avatar   Michel Rutten  

Introduction

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.

Release information

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.

IMPORTANT! Update to Forge End User License Agreement

To ensure continuity of Forge, we decided to make Forge part of the paid plans on Simplifier. On January 1st, 2020, we will issue a new license for Forge, replacing the current license. Forge will remain free for non-commercial use. Commercial use of Forge will be linked to the Simplifier pricing plans, which also give access to our support team and advanced features on Simplifier. Starting with the next release, Forge will require you to sign in to Simplifier with your personal user account, with a grace period to allow for offline usage. We are updating our Privacy Policy per Nov 1, 2019 to reflect that we are logging this contact.

Visit our company blog to read about our new licensing terms.

Dependencies

  • .NET Framework
    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.

  • FHIR API
    Update to .NET API for FHIR R4 version 1.4.0 (official release)
    Change log on GitHub.
    Release notes on Simplifier.

    Relevant bug fixes:

    • #1116 Initialize [...].extension.url fixed value, if missing
    • #1123 ElementDefinition.base empty for contentReference children

Improvements:

  • 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:

    • Auto-generate missing [...].extension.url elements
    • Rewrite [...].extension.url:fixedString to fixedUri

    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.

Bug fixes:

  • FOR-196 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 CodeableConcept. 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 contentReference children)

  • FOR-337 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 Uri 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 Uri. By convention, the last segment of the type Uri should match the name of the root element, otherwise Forge will generate a warning.

  • FOR-339 Generate fixedUri for Extension.url (instead of fixedString)
    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 Extension.url elements with a fixed value of the wrong type (fixedString instead of fixedUri). This has now been fixed. Forge will also try to auto-correct invalid input, i.e. convert existing fixedString properties on Extension.url elements to fixedUri.

    Note: The core spec defines the Extension.url element with system type xsd:string. 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.

  • FOR-342 Hide ElementDefinition.sliceName property for type slice entry element
    Only show the sliceName property for the actual type slices of type choice element ([x]). Forge will automatically generate a standard slice name when a slice is constrained to a single datatype (valueString). 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 0..0
    Forge would prevent you from unslicing a sliced element if maximum cardinality is constrained to 0. This has been fixed.

Blog

Visit our Firely website to read more about the new licensing terms.

Feedback

If you want to ask us a question, submit a comment or report an issue, you can contact us at forge@fire.ly.

Go Forge and simplify!

Other news from Firely
Ardon Toonstra
You now decide who can see that you work on a project. This release adds private user profiles and private team members, and brings Mermaid diagrams.
Ardon Toonstra
Firely Terminal `4.0.0` validates and runs Quality Control the way Simplifier does, and gives your pipelines better control over when a build fails. It is a major release: it runs on .NET 10 and the Firely .NET SDK 6, and a few things you may script against have changed.
Ardon Toonstra
The Forge 2026.3.0 release brings the two package changes Simplifier introduced this year to Forge: canonical pinning, and more than one version of a package in your project.
Ardon Toonstra
Simplifier now keeps every version of a package that your dependencies bring in and resolves your references predictably across them. This release also redesigns the guides overview and starts retiring DSTU2.
Ardon Toonstra
Earlier this year, we asked the Simplifier community how they use Simplifier, Forge, and Firely Terminal in their day-to-day FHIR work. First of all, thank you to everyone who took the time to participate.
Ardon Toonstra
Simplifier now runs entirely on Firely .NET SDK 6. This release brings a list of rendering improvements for your conformance resources, and consolidates our documentation in one place.
Ardon Toonstra
Forge 2026.2.0 upgrades the profiling engine to .NET 10 and Firely .NET SDK 6.2.1, adds support for the suppression extension, and speeds up loading of complex profiles. Quality Control now runs solely on the current Firely validator, and the Project view's Structure Type filter has been streamlined. Note that .NET 10 may need to be installed by your IT department on managed machines.
Ardon Toonstra
Simplifier.net now hosts country-specific results from the 2026 State of FHIR Survey, letting you explore how HL7 FHIR is being adopted in each participating jurisdiction.
Ardon Toonstra
This release lets you pin canonical references when creating a package, locking each one to the exact version it resolved to so your packages stay reproducible. Simplifier honours the version in a reference when resolving, with two new quality-control rules to help you pin safely. On top of that, the platform has moved to .NET 10, alongside a set of UI improvements and bug fixes.
Ardon Toonstra
The 2026 Simplifier User Survey is now open, and we need your input. Tell us which tools and features drive real value in your FHIR workflow, and where the platform can do better. It only takes a few minutes, and your response shapes what we build next.