Skip to content
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
_build/
._buildhtml/
.vscode/
.vs/
._buildhtml/
/.vs/slnx.sqlite
/.vs/slnx.sqlite-journal
Expand Down
75 changes: 75 additions & 0 deletions ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,81 @@

OldReleaseNotes

Release 2026.1.0
----------------
Changes
^^^^^^^
* Upgraded to Firely .NET SDK 5.13.3
* Added support for clearing elements. In effect this removes any differential values for the element.

- Clear element and its children
- Clear element properties

* Added support in the user-interface for the following (choice) data types:

- Annotation
- Attachment
- Availability **[R5]**
- Base64binary
- Contributor
- DataRequirement
- Dosage
- Expression **[R4/R4B/R5]**
- ExtendedContactDetail **[R5]**
- Meta
- MonetaryComponent **[R5]**
- Integer64
- ParameterDefinition
- RelatedArtifact
- Signature
- TriggerDefinition
- VirtualServiceDetail **[R5]**

* Added support for package feeds. See `Simplifier documentation for more information <simplifier_docs:package_feeds>`_.
* Elements with a content reference are no longer automatically expanded one level deep. Instead, you can expand these elements manually
by opening the context menu for that element and clicking **Expand**.
* Forge now also validates extensions in the element tree to check if the extension is used in a valid context.
* Added type information to the element property tooltip. For some data types range information and examples are shown too.
* Added display of a status flag in the element tree view for the obligation extension.
* By default the new Firely validator is now used as the engine for Quality Control validation rules.
If you want to run the legacy validator, then you can use the action *validate* in your custom rules with the option of *flavor=legacy*.
* FHIR specifications errors are now automatically corrected when opening and resolving resources.
* When creating a new project, package pre-release versions are no longer selected by default unless there are only pre-release versions.
* Packages on Simplifier that are marked as unlisted can now be added to your project as a dependency.
* Added extension support for ElementDefinition constraint and mapping elements.
* Inherited constraints and mappings are now shown ordered by their key in the **Element Properties** panel.
* Added support for additional file types supported in Simplifier:

- *.ini*
- *.svg*
- *.plantuml, .pu, .puml*
- *.yml*
* **[STU3]** Forge now fully supports all choice types for **Binding value set reference** in the UI.

Bug fixes
^^^^^^^^^
* After adding a simple extension that supports multiple types to an element property, the type selection combobox was not shown.
* For some elements, the binding properties were shown in the element properties panel even though the element was not bindable.
* Profiles derived from a profile where a user defined structure definition type was used could not be opened resulting in a "Null reference exception" error message.
* When creating profiles where the base profile is using the text append feature (e.g. "... this text is to be appended"), the appended
text was appended multiple times resulting in a modified status.
* Forge could not handle elements defined after a choice type, that start with the name of that choice type.
* When creating a new profile, elements could sometimes be initially expanded even though there were no modifications.
* Extensions on **Slicing Details** were not loaded and could not be added.
* When removing a type profile that contains slices, the slicing element of the slice intro was always cleared
even when the profile itself contained additional slices which resulted in the slices being merged.
* Simple values in lists (e.g. Timing.event) were not validated.
* The **Key** field of a **Constraint** was not validated.
* When searching for packages and the search result contained a package with a non-compliant version specification then no packages were shown in the search results.
* When running Forge Validation, non structure definition resources were not validated.
* Fixed regression bug introduced in version 2025.1.2: a validation error was not always cleared after correcting the value of an element property and
the validation rule involved multiple element properties.
* **[STU3]** Fixed adding unnecessary elements to the differential for choice types.
* **[STU3]** The **Add Type** dialog now only lists the allowed types.
* **[R5]** Interface resources **CanonicalResource** and **MetadataResource** could be selected to create derive profiles from.
* **[R5]** Forge could not create an **ImagingSelection** profile due to an error in the core specification.
* Fixed various minor UI (styling) issues.

Release 2025.1.3
----------------
Bug fixes
Expand Down
2 changes: 1 addition & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# -- Project information -----------------------------------------------------

project = 'Forge'
copyright = '2025, Firely'
copyright = '2026, Firely'
author = 'Firely'


Expand Down
55 changes: 49 additions & 6 deletions features/CreateDerivedProfiles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,17 @@ profile.
:alt: The hierarchy between FHIR profiles
:width: 674

Adding dependencies
-------------------
Dependencies
------------

To do this in Forge you first need to add one or more Core Packages. The
following example adds the **hl7.fhir.us.core** package to the project.
Select the ``Dependencies`` tab, then click ``Simplifier``, then type
To do this in Forge you first need to add one or more Core Packages.

Adding a public package
-----------------------

The following example adds the **hl7.fhir.us.core** package to the project.

Select the ``Dependencies`` tab, click ``Public``, then type
*hl7.fhir.us* in the **Search** field and finally click ``Search``.
Select **hl7.fhir.us.core** in the list and then select package version
**6.1.0**. Finally click ``Add`` to add the package to the project.
Expand All @@ -46,6 +51,44 @@ Select **hl7.fhir.us.core** in the list and then select package version
:alt: Add a core package
:width: 850

Adding a package from a feed
----------------------------

Package feeds allow organizations to manage private FHIR packages using controlled dependencies and distribution boundaries.
See the `Simplifier documentation for more information <simplifier_docs:package_feeds>`_.

Click ``Open...`` to go to Simplfier and open the **Feeds** tab of your Portal. This page
lists all the feeds that you have access to.

.. figure:: ../images/SimplifierFeeds.png
:alt: Simplifier feeds
:width: 1155

Click ``Feeds`` to open the **Package feed selection** dialog.

.. figure:: ../images/PackageFeedSelection.png
:alt: Package feed selection
:width: 470

Use the drop down combobox to select a feed. You can use the ``...`` button
to see what packages are contained in the selected feed.
Click ``OK`` to select the feed.

.. figure:: ../images/PackageFeedListing.png
:alt: Package feed listing
:width: 1323

You can now add one or more packages from the selected feed to your project.

Click ``Open...`` to go to Simplfier and open the page for the selected feed.

.. figure:: ../images/SimplifierFeed.png
:alt: Simplifier feed
:width: 1153

Project
-------

Click the ``Project`` tab to see what packages are installed. Notice
that dependent packages are installed too.

Expand Down Expand Up @@ -73,7 +116,7 @@ is created and opened. You can now make your own modifications.

.. figure:: ../images/DerivedUSCorePatientProfile.png
:alt: US Core Patient profile
:width: 853
:width: 900

Things to keep in mind are that you can only further constrain (or add
extensions to) profiles. This means that each derived profile is more
Expand Down
4 changes: 2 additions & 2 deletions features/CreateLogicalModels.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ and/or other (nested) backbone elements.

.. figure:: ../images/LogicalModel-BackboneElement.png
:alt: Editing a backbone element for a Logical Model in Forge
:width: 1003
:width: 1005

A typed element is mapped to a FHIR datatype or resource profile.

.. figure:: ../images/LogicalModel-TypedElement.png
:alt: Editing a typed element for a Logical Model in Forge
:width: 1003
:width: 1005

You cannot introduce new child elements of a typed element, because they
are implicitly defined by the element datatype profile.You also have the
Expand Down
46 changes: 36 additions & 10 deletions features/DefineConstraints.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ happens.

.. figure:: ../images/ConstraintsCardinality.png
:alt: Set element cardinality in Forge
:width: 1037
:width: 1132

Element Type
------------
Expand All @@ -40,14 +40,14 @@ the profile as a Type option if the profile is opened in the session
explorer and the profile's base Resource fits the element.

.. figure:: ../images/ConstraintsType.png
:alt: Setting valueset binding in Forge
:width: 1037
:alt: Setting a element type
:width: 1132

*Setting Observation.value[x] types in Forge*

.. figure:: ../images/ConstraintsTypeReference.png
:alt: Setting valueset binding in Forge
:width: 1037
:alt: Setting a element type reference
:width: 1132

*Setting Observation.subject reference type in Forge*

Expand All @@ -62,8 +62,8 @@ binding strength. The value must be equal to or strichter than the base
value.

.. figure:: ../images/ConstraintsValueSetBinding.png
:alt: Setting valueset binding in Forge
:width: 1037
:alt: Setting valueset binding
:width: 1132

Inline constraints
------------------
Expand All @@ -83,8 +83,8 @@ This feature allows you to specify inline constraints that “walk into”
elements defined by external type profiles.

.. figure:: ../images/Inlineconstraintontypeslice.png
:alt: Setting an inline constraint on an element in Forge
:width: 1037
:alt: Setting an inline constraint on an element
:width: 1132

This behavior also applies to Extension Definitions, as technically they
are also external type profiles. Suppose you author a profile with an
Expand All @@ -97,5 +97,31 @@ in the underlying extension definition.

.. figure:: ../images/Inlineconstraintonprofileextension.png
:alt: Setting an inline constraint on an extension in Forge
:width: 1037
:width: 1131

Clear constraints
-----------------

Select the element that you want to clear and click on ``Clear``.

.. figure:: ../images/ClearElement.png
:alt: Clearing element constraints
:width: 553

A drop down combobox opens with two clear options:

* Element and children
* Element properties

^^^^^^^^^^^^^^^^^^^^
Element and children
^^^^^^^^^^^^^^^^^^^^

With this option the element properties of the selected element and the element properties of
all its children are cleared. In addition, all extensions and slices are removed.

^^^^^^^^^^^^^^^^^^
Element properties
^^^^^^^^^^^^^^^^^^

With this option only the element properties of the selected element are cleared.
14 changes: 11 additions & 3 deletions features/DefineExtensions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@ to your project folder or add a package to your project folder.

.. figure:: ../images/AddPackage.png
:alt: Adding a package to your project
:width: 797
:width: 1123

Select the element in the Element Tree of your profile where you want to
add the extension. Then, click ``Extend`` which is shown in the tool
section above the element tree.

.. figure:: ../images/SelectElement.png
:alt: Adding an extension to a profile in Forge
:width: 474
:width: 552

Forge shows the extensions that are available in your project folder.

Expand All @@ -103,6 +103,12 @@ extensions by clicking ``Filter`` to turn off filtering.
:alt: Showing only compatible extensions in Forge
:width: 359

Click ``OK`` to add the selected extension to your profile.

.. figure:: ../images/ExtensionSelected.png
:alt: Selected extension added to a profile
:width: 370

Add the extension to an element property
----------------------------------------

Expand All @@ -111,7 +117,7 @@ you can also add extensions to some of the element properties.

.. figure:: ../images/ElementPropertiesExtension.png
:alt: Extensions on element properties
:width: 673
:width: 550

If an element property can be extended then a details button is shown next to it.
The color indicates if the element property has extensions:
Expand Down Expand Up @@ -139,6 +145,8 @@ Extensions on element properties are supported for:
- Binding

- Additional **(R5)**
- Constraint
- Mapping
- Slicing
- Type

Expand Down
6 changes: 3 additions & 3 deletions features/DefineSlices.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Select the element that you want to slice and click on ``Slice``.

.. figure:: ../images/SliceCreate.png
:alt: Slicing an element in Forge
:width: 465
:width: 552

The element is now ‘Sliced’ and it is possible to add slices by clicking
``Add Slice``. You can create as many slices as necessary by selecting
Expand All @@ -32,7 +32,7 @@ message that there is no discriminator defined for the sliced elements.

.. figure:: ../images/SliceCreated.png
:alt: Slicing an element in Forge
:width: 945
:width: 1039

The discriminator is used to distinguish the sliced elements from one
another. The discriminators in their sum should allow applications to
Expand All @@ -42,7 +42,7 @@ element under **Slicing Details**.

.. figure:: ../images/SlicingDetails.png
:alt: Slicing an element in Forge
:width: 1210
:width: 1132

More information concerning slicing and discriminators can be found
here: http://hl7.org/fhir/profiling.html.
Expand Down
4 changes: 2 additions & 2 deletions features/EditProfiles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ detail.

.. figure:: ../images/EditProfileTabs.png
:alt: The tabs in Forge for editing a profile
:width: 825
:width: 904

Properties
----------
Expand Down Expand Up @@ -47,7 +47,7 @@ Element Tree

.. figure:: ../images/ElementTree.png
:alt: The Element Tree overview in Forge
:width: 928
:width: 1105

Via the ``Element Tree`` tab you can edit Element Properties, slice
Elements, or add extensions.
Expand Down
2 changes: 1 addition & 1 deletion features/ForgeOptions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ FHIR
.. image:: ../images/Settings_DiscardResourceText.png
:width: 490

- **Repeat slicing discriminators om the differential to suppress eld-1 warnings** (R4)
- **Repeat slicing discriminators om the differential to suppress eld-1 warnings (R4)**

Check this option to prevent **eld-1** validator warnings.

Expand Down
4 changes: 2 additions & 2 deletions features/IntegrationwithSimplifier.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Integration with Simplifier
`Simplifier.net <https://simplifier.net/>`__ is a FHIR specification
development, collaboration and publishing platform. The documentation
for the platform can be found
`here <https://docs.fire.ly/projects/Simplifier/>`__.
`here <simplifier_docs>`__.

Forge can synchronize the project files in your local folder with the
files in your project on Simplifier. The following menu options are
Expand All @@ -28,7 +28,7 @@ options.

.. figure:: ../images/SyncProjectToolbar.png
:alt: Project tab
:width: 875
:width: 886

The following paragraphs describe the options in more detail.

Expand Down
Loading