Organization Firely

Forge 23.0 for FHIR STU3 - Fall 2019 Edition

avatar   MichelR  

Introduction

Forge is the official HL7 FHIR Profile & Conformance editor.
Forge 23.0 for STU3 is a major update with new features and improvements and important bug fixes.
We recommend all users to update to this release.

Release information

This Forge release supports FHIR STU3.

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 STU3 version 1.4.0 (official release)
    Change log on GitHub.
    Release notes on Simplifier.

    Relevant bug fixes:

    • #1069 Fix incorrect base for profile extension root element
    • #1090 SnapshotGenerator supports Logical Models
    • #1101 Handle element constraint without a path
    • #1116 Initialize [...].extension.url fixed value, if missing
    • #1123 ElementDefinition.base empty for contentReference children

Improvements:

  • Update Simplifier integration
    The Import from / Publish to Simplifier commands have been updated to support the latest Simplifier API.

  • Serialize Logical Model to differential component
    After some discussion within the community, we have changed the serialization of logical models in Forge, in order to harmonize the behavior of different kinds of StructureDefinitions. Previous Forge releases would serialize logical model constraints to the StructureDefinition.snapshot component. As of this release, Forge will now serialize logical models to the StructureDefinition.differential component, similar to regular resource profiles. This allows a FHIR API to generate (calculate) the snapshot component of the logical model, based on the author-specified constraints included in the differential component and by resolving any referenced external structures, again similar to regular resource profiles.

  • Copy global mappings
    The configuration option "Copy global mappings" is now enabled by default. This option affects newly created profiles.

    Enabled: initialize new profiles by copying global mappings over from selected base profile
    Disabled: new profiles are initialized with empty global mappings

  • Improved rendering of named slices
    The rendering of named slices has been updated, similar to the official FHIR website & build tool. The element tree now displays named slices as "elementName:sliceName", to clearly indicate slice groups. This also affects extension elements, which are now displayed as "extension:sliceName".

  • Save dialog: select output serialization format (XML or JSON)
    The Save dialogs now provide distinct file type selection options (XML or JSON). Saving an existing profile to a different serialization format will automatically create a separate copy; the active document will still refer to the original file with the original format.

    Note: when opening a Folder, the user can select a preferred serialization format (XML or JSON). In case a project folder contains duplicates of the same profile in different serialization formats, then Forge will only resolve and display the version with the preferred format and ignore/exclude all other versions. Generally, it is recommended to use a single serialization format per project.

  • Show package versions in descending order
    The Package Manager shows a drop-down combobox with the available versions for each package. The package versions are now sorted in descending order, with the highest (latest) version on top.

Bug fixes:

  • Fix application freezes/hangs after Save
    In some circumstances, the application could freeze/hang after saving a profile. This was caused by infinite recursion in broken cache invalidation logic. The relevant cache invalidation logic has been completely rewritten and optimized. Save operations more efficient, faster and no longer cause deadlocks.

  • Fix copy to clipboard crash
    In some circumstances, when copying the message of a popup (error) dialog to the clipboard (using Ctrl+C), the application could crash with an unhandled runtime exception. This has been fixed.

  • 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-333 Validate slicing components during load
    Forge would not validate the ElementDefinition.slicing component nor report violations during load, e.g. when the mandatory slicing.rules property is empty. This has been fixed. Forge now explicitly validates slicing components and reports validation errors during load.

  • 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-344 sliced element can't 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
Michel Rutten
Forge 23.0 for STU3 is a major update with new features and improvements and important bug fixes. We recommend all users to update to this release.
Michel Rutten
Forge 23.0 for FHIR R4 is a minor update with some important bug fixes. We recommend all users to update to this release.
Michel Rutten
Forge is the official HL7 FHIR Profile & Conformance editor. Forge 22.1 for R4 is a major update with important improvements to conformancy, including a significant revision of type slicing according to the new R4 behavior.
Michel Rutten
Minor update with compliance & usability improvements
Michel Rutten
Minor update with compliance & usability improvements
Martijn Harthoorn
Simplifier 21.4 is released. This release has Snapshot Generation and Validation for FHIR R4 and it has significant performance improvements in it.
Michel Rutten
Introducing a brand new Forge release compatible with FHIR R4
Michel Rutten
Introducing support for OperationDefinition and SearchParameter
Martijn Harthoorn
This week we released Simplifier 21.3 with beta support for FHIR R4, inline validation and other features.
Michel Rutten
New blog article about changes in FHIR R4 concerning profiling and the roadmap for Forge.