Skip to content

SUSHI 2.3.0

Compare
Choose a tag to compare
@jafeltra jafeltra released this 25 Feb 20:12
· 244 commits to master since this release
db6a745

SUSHI 2.3.0 includes the following enhancements and bug fixes:

  • Improve warning message about files in unsupported folders within the input directory (#987, #986)
  • Add support for specifying additional resource paths to predefined resources (#1014, #986) (details below)
  • Include provided extensions from sushi-config in the ImplementationGuide resource (#1005)
  • Create an IG URL for dependencies listed in sushi-config that do not have an ImplementationGuide resource (#1007) (details below)
  • Support referencing the canonical URL of the ImplementationGuide using the Canonical keyword (#963) (details below)
  • Improve SUSHI's efficiency when processing profiles and eliminate unexpected error (#1013)
  • Improve support for processing large base64 encoded values (#998)
  • Update the copy utility used during the build process (#1004)

Specifying additional resource paths

Sometimes authors may wish to put predefined resources in folders other than the normally supported input sub-folders. To support this, SUSHI now recognizes the ImplementationGuide parameter path-resource. Authors can include this parameter in sushi-config.yaml to specify relative paths to additional folders that contain predefined resources. For example, the following can now be used in sushi-config.yaml to include resources from the sub-folder predefined-resources:

parameters:
  path-resource:
    - input/predefined-resources

Note that the value of path-resource is an array (or sequence) formatted in the standard YAML style.

For SUSHI users who manage their own ImplementationGuide resource (i.e. FSHOnly IGs), SUSHI will use the parameter from the ImplementationGuide resource:

"parameter": [
  {
    "code": "path-resource",
    "value": "input/predefined-resource"
  }
]

Automatically create a URL for dependencies with no ImplementationGuide

Some dependency packages do not contain an ImplementationGuide resource. Since SUSHI needs the ImplementationGuide URL to specify the dependency in its own generated ImplementationGuide (per FHIR requirements), this caused problems in the past. Prior to this release, authors had to address the problem by fully specifying the dependency with a uri, like this:

dependencies:
  de.basisprofil.r4:
    uri: http://fhir.org/packages/de.basisprofil.r4/ImplementationGuide/de.basisprofil.r4
    version: 1.1.0

Since then, the FHIR community has determined that packages without an ImplementationGuide should use a virtual IG URL of the format http://fhir.org/packages/${packageId}/ImplementationGuide/${packageId}. Using that guidance, SUSHI can now infer IG URLs for dependency packages without an IG; meaning that authors no longer need to fully specify such dependencies. Starting with this release, authors can simply declare an IG-less dependency like all other dependencies:

dependencies:
  de.basisprofil.r4: 1.1.0

Use the Canonical keyword to reference the canonical URL of the ImplementationGuide

There may be cases where an author needs to refer to the canonical URL of the ImplementationGuide resource they are creating. SUSHI now supports using the Canonical keyword with the id, packageId, or name that is specified in sushi-config.yaml. For example, when creating a CapabilityStatement, the following Assignment Rule can be added:

* implementationGuide = Canonical(my-package-id)

Full Documentation

For additional documentation, refer to FSH School's SUSHI documentation and/or the FSH Specification.

Install or Update

To install or update to this release, run the following command:

$ npm install -g fsh-sushi

To revert to a previous release, run a command like the following:

$ npm install -g [email protected]

To check or confirm what version of SUSHI you have installed, you can run the following command:

$ sushi -v