Forge is the official HL7 FHIR Profile & Conformance editor.
Forge 23.0 for R4 is a minor update with some important bug fixes and improvements.
We recommend all users to update to this release.
This Forge release supports FHIR R4.
We publish separate Forge releases for FHIR DSTU2, STU3 and R4. Subsequent FHIR releases introduce breaking changes and are not backwards compatible. Each Forge release only supports a single FHIR version and is updated separately. Different Forge releases can be installed side-by-side on the same machine.
Visit simplifier.net to download the latest Forge releases.
Visit our company blog to read about our new licensing terms.
Forge requires the .NET Framework 4.7.2.
The .NET Framework 4.7.2 is fully .NET Standard 2.0 compliant, without any additional dependencies.
Relevant bug fixes:
Enable Simplifier integration
The Import from / Publish to Simplifier commands have been updated to support the latest Simplifier API. Simplifier now also provides a FHIR R4 compatible API endpoint, enabling the integration features in Forge R4.
Auto-repair common errors
Forge is capable of automatically repairing some common errors in profiles. When opening a profile, Forge will detect and try to correct known errors. The author can then review the corrected profile and save changes back to disk.
Specifically, Forge detects and corrects some common errors in extension definitions and profiles that introduce external extensions:
If you have authored profiles and extensions in a previous Forge R4 release or another tool, then we recommend that you open & save the extension definitions using this release, in order to apply corrections and ensure compliance to the FHIR R4 specification.
Ctrl+C on validation warning may cause freeze
Some users reported that copying a validation message to the clipboard would freeze the application, possibly because the Clipboard was unavailable. Forge now catches unexpected exceptions while copying.
FOR-316 Expand elements with complex types
In some circumstances, the previous release would not always expand children of elements with a complex type. For example, Forge would not expand children of
Extension.extension.value[x] when constrained to
This was caused by (overly) aggressive cycle detection, which is required to prevent infinite recursion.
The cycle detection logic has been improved to allow child element expansion whenever applicable.
Also, Forge now dynamically expands the child elements of a type choice element (
value[x]) when constrained
to a single complex type - unless the type choice element is (type) sliced.
FOR-332 Show all element properties for closed slice
Forge no longer hides some element properties for a sliced element with
Slicing.Rules = closed
FOR-334 Do not show extension definition selector for complex extension child elements
For profile extension elements that reference an external extension definition, instead of a list of element types (fixed to
Extension), Forge displays a command button
that allows you to quickly open the target extension definition for editing.
Forge now hides the Open... button for complex extension child elements (
type.profile is empty),
as you cannot directly open a single child element of a structure.
The Open... button is only visible on the root element of the referenced external extension.
FOR-335 Forge sometimes does not rename choice type elements when constrained?
This issue has been solved by #1123 (
ElementDefinition.base empty for
StructureDefinition.type is editable for logical models
For constraining profiles and extension definitions, Forge auto-generates a read-only structure type code. However for logical models,
StructureDefinition.type should specify a fully-qualified
that uniquely identifies the logical type (similar to canonical url).
Forge now exposes the structure type property of a logical model as an editable TextBox control,
allowing the author to specify and modify the custom logical type
By convention, the last segment of the type
Uri should match the name of the root element,
otherwise Forge will generate a warning.
Extension.url (instead of
Extension.url elements are automatically generated by Forge and invisible in the UI.
The previous 22.1 release introduced a bug where Forge would incorrectly generate
elements with a fixed value of the wrong type (
fixedString instead of
This has now been fixed. Forge will also try to auto-correct invalid input, i.e.
fixedString properties on
Extension.url elements to
Note: The core spec defines the
Extension.url element with system type
Actually, the element value represents an
Uri. However, this is hard coded knowledge
that cannot be programatically derived from the core type definitions.
FHIR R4 Technical Correction will address this issue by introducing improved system types declarations.
ElementDefinition.sliceName property for type slice entry element
Only show the
sliceName property for the actual type slices of type choice element (
Forge will automatically generate a standard slice name when a slice is constrained to a single datatype (
Always hide the
sliceName property for the original
[x] element (even if constrained to a single type),
to prevent the author from inadvertently specifying a slice name on the slice entry element itself.
FOR-344 sliced element cannot be unsliced when cardinality is set to
Forge would prevent you from unslicing a sliced element if maximum cardinality is constrained to
This has been fixed.
Visit our Firely website to read more about the new licensing terms.
If you want to ask us a question, submit a comment or report an issue, you can contact us at firstname.lastname@example.org.
Go Forge and simplify!