Releases: FHIR/sushi
SUSHI 3.12.0
SUSHI 3.12.0 contains several enhancements and bug fixes, the most notable of which is support for FHIR R6 ballot 2. To base an IG on FHIR R6 ballot 2, specify fhirVersion
as follows in your sushi-config.yaml
:
fhirVersion: 6.0.0-ballot2
What's Changed
Software Changes
- Allow 6.x versions of FHIR by @mint-thompson in #1517
- Allow ValueSet to reference contained inline CodeSystem by @mint-thompson in #1520
- Only return FshType id from rule value if the value is a string by @mint-thompson in #1524
- Improve handling of ValueSet with self-reference by @KaelynJefferson in #1503
- Fix FSH Finder URL for regression script by @cmoesel in #1523
Documentation Changes
- Replace MITRE in project statement "maintainers" section by @mint-thompson in #1507
- Link to Knowledge Sharing Sessions by @jafeltra in #1521
- Correct date in DEPENDENCY-NOTES.md by @cmoesel in #1506
Install or Update
SUSHI 3.12.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.12.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.11.1), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.11.1...v3.12.0
SUSHI 3.11.1
What's Changed
Software Changes
- Improve performance when processing predefined resources by @mint-thompson in #1500
- Fix caret rules for versioned codes in ValueSets by @sebg-mio42 in #1493
- Warn when reference values do not resolve and have incorrect format by @KaelynJefferson in #1468
- Minor code cleanup by @cmoesel in #1498
- Update dependencies by @mint-thompson in #1473, @cmoesel in #1496, and @cmoesel in #1502
Documentation Changes
- Add security policy by @mint-thompson in #1471
- Add contribution policy by @jafeltra in #1470
- Add best practices by @jafeltra in #1474
- Add FHIR Foundation project statement to README by @KaelynJefferson in #1472
New Contributors
- @sebg-mio42 made their first contribution in #1493
Install or Update
SUSHI 3.11.1 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.11.1, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.10.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.11.0...v3.11.1
SUSHI 3.11.0
SUSHI 3.11.0 contains the following enhancements and bug fixes:
What's Changed
- Add new
snapshot
option to FshToFhir API by @joepaquette in #1465 - Remove releaseLabel coded options from
sushi-config.yaml
created bysushi init
by @jafeltra in #1462 - Warn when
sushi-config.yaml
does not include a menu and there is no providedmenu.xml
by @KaelynJefferson in #1464 - Set a default for Logical Model and Resource root elements to prevent empty/missing definition by @KaelynJefferson in #1466
New Contributors
- @KaelynJefferson made their first contribution in #1464
Install or Update
SUSHI 3.11.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.11.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.10.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.10.0...v3.11.0
SUSHI 3.10.0
SUSHI 3.10.0 contains the following enhancements and bug fixes:
What's Changed
- New options for sushi init command by @jafeltra in #1459
- Override sushi-config options from command line by @LodewijkSioen in #1442
- Set version based on sushi-config.yaml in FSHOnly projects by @jafeltra in #1456
- Prevent logging an error when Parent doesn't have a mapping array by @jafeltra in #1455
New options for sushi init command
The sushi init
command now allows users to specify the project name via a command line argument and other project metadata via command line options. In addition, there are flags to automatically choose default values and to automatically confirm initialization of the project folder.
For example, to start the initialization dialog for a project named MyBreakfastIG, run the following command:
$ sushi init MyBreakfastIG
Or to create a test IG called MyTestIG with status unknown and version 0.0.1, accepting all other default metadata values and immediately creating the project folder, run this command:
$ sushi init -c status:unknown -c version:0.0.1 -d -a MyTestIG
This feature is most helpful for people who create projects often (either for testing or as part of a script). For full usage information, run sushi help init
or sushi init --help
:
$ sushi help init
Usage: sushi init [options] [name]
initialize a SUSHI project
Arguments:
name project name
Options:
-c, --config <config> configure a specific property for the project (supported: 'id', 'canonical', 'status',
'version', 'releaselabel', 'publisher-name', 'publisher-url') (eg: --config status:draft)
-d, --default accept all remaining defaults
-a, --auto-initialize automatically initialize the SUSHI project in the current directory
-l, --log-level <level> specify the level of log messages (default: "info") (choices: "error", "warn", "info",
"debug")
-h, --help display help for command
Override sushi-config options from command line
Typically, SUSHI uses the sushi-config.yaml
file to define the configuration options it uses when processing FSH. However, in rare cases, it may be useful to override the values provided in sushi-config.yaml
without changing the file itself. For these cases, the --config
(or -c
) option can be used to specify a configuration property and the override value for it. Currently, this option only allows version
, status
, and releaselabel
to be overridden.
For example, to temporarily change the version
to 1.2.3
and status
to draft
when building the current directory, run:
$ sushi build -c version:1.2.3 -c status:draft .
Many thanks to @LodewijkSioen for thinking of and implementing this feature!
Set version based on sushi-config.yaml in FSHOnly projects
In SUSHI 2.x, SUSHI always defaulted the version
of conformance resources to the version of the IG (as specified in sushi-config.yaml
). In SUSHI 3.x, we removed this feature so that the version
assignment could be controlled by the IG Publisher instead. This change, however, adversely impacted FSHOnly projects that do not use the IG Publisher. Now, starting in SUSHI 3.10.0, if a project has FSHOnly: true
in its sushi-config.yaml
, SUSHI will default the version
of conformance resources to the project version specified in sushi-config.yaml
. This restores the previous SUSHI 2.x behavior for FSHOnly projects.
New Contributors
- @LodewijkSioen made their first contribution in #1442
Install or Update
SUSHI 3.10.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.10.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.9.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.9.0...v3.10.0
SUSHI 3.9.0
SUSHI 3.9.0 contains the following enhancements and bug fixes:
What's Changed
- Improve performance when exporting Instances by @mint-thompson in #1443
- Support extensions on IG.definition in sushi-config.yaml by @jafeltra in #1452 (details below)
- Replace type.aggregation on ElementDefinition when modified by @mint-thompson in #1433
- Replace references when applying caret rules on CodeSystems by @mint-thompson in #1444
- Find value for choice slice when choice element has one type by @mint-thompson in #1446
- Improve Logical Model type controls to not re-add elements by @jafeltra in #1450
- Ignore all regresion/output* folders by @jafeltra in #1448
Support extensions on IG.definition in sushi-config.yaml
SUSHI now supports adding extensions to the ImplementationGuide definition
element. To add extensions, authors can add definition
as a top-level property in the sushi-config.yaml
file and add an extension
list below it. This will add extensions to the ImplementationGuide.definition
element in the generated ImplementationGuide.
An example of this configuration within sushi-config.yaml
is below:
definition:
extension:
- url: http://example.org/example/ig-definition-ext
valueBoolean: true
Note that all other IG.definition properties are available as top-level properties within sushi-config.yaml
. Those properties should continue to be used. Only extensions can be added to the new definition
configuration property.
Install or Update
SUSHI 3.9.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.9.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.8.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.8.0...v3.9.0
SUSHI 3.8.0
SUSHI 3.8.0 contains the following enhancements and bug fixes:
What's Changed
- Assign FSH Code or Reference to CodeableReference element by @mint-thompson in #1428 (details below)
- Quantity may omit numeric value by @mint-thompson in #1430 (details below)
- Export new mappings only (or at top of list in snapshot mode) by @jafeltra in #1436
- Allow path-resource paths with a wildcard by @jafeltra in #1427
- Warn when aliases have unsupported characters or only
$
by @jafeltra in #1429 and #1437 - Handle when sliced element is not available when unfolding by @mint-thompson in #1434
- Combine included concepts when exporting ValueSet by @mint-thompson in #1432
Assign FSH Code or Reference to CodeableReference element
Authors can now assign a FSH Coding or reference directly to CodeableReference types. Previously, authors needed to access either the concept
or reference
portions of the CodeableReference directly to assign values. Now, the top level CodeableReference element can be used instead.
For example, to assign the concept
and reference
properties of a code
element that is a CodeableReference
type, the following rules can be used:
* code = $SCT#1003754000 "Natural rubber latex (substance)"
* code = Reference(NaturalLatexSubstanceDefinitionExample)
These two rules are equivalent to the following rules that assign the values directly:
* code.concept = $SCT#1003754000 "Natural rubber latex (substance)"
* code.reference = Reference(NaturalLatexSubstanceDefinitionExample)
For more information and examples, see the Assignments with CodeableReference Data Type section of the FSH 3.0.0 Current Build Specification.
Quantity may omit numeric value
Authors can now assign the units of measure without assigning a value. Authors can specify the units using the FSH syntax for UCUM units and omit the value. For example, you can se the units of Observation.valueQuantity
to millimeters using UCUM units and a display string, without setting a value, using the following rule:
* valueQuantity = 'mm' "millimeter"
For more details on this syntax, see the Assignments with the Quantity Data Type section of the FSH 3.0.0 Current Build Specification.
Install or Update
SUSHI 3.8.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.8.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.7.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.7.0...v3.8.0
SUSHI 3.7.0
SUSHI 3.7.0 contains the following enhancements and bug fixes:
What's Changed
- Support logical model examples without
resourceType
orid
by @jafeltra in #1418 - Allow extensions on configured dependencies by @jafeltra in #1420
- Use current extension for specifying IG resource format by @jafeltra in #1421
- Fall back to package.json when resolving "latest" version in IG by @cmoesel in #1423
- Update assorted dependencies by @mint-thompson in #1417
- Regression script: handle errors thrown during repo compare by @cmoesel in #1419
Install or Update
SUSHI 3.7.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.7.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.6.1), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.6.1...v3.7.0
SUSHI 3.6.1
SUSHI 3.6.1 contains the following bug fixes and small enhancements:
What's Changed
- Allow binding to inline ValueSet instances by @mint-thompson in #1395
- Create fragment canonical references to non-Instance contained resources by @jafeltra in #1405
- Use actual version in IG JSON when dependency version is "latest" by @mint-thompson in #1409
- Unfold using profile on slice when its profile is different than sliced element's profile by @mint-thompson in #1410
- Use https to download scripts during sushi init by @cmoesel in #1400
- Fix fishing type order to match default order by @mint-thompson in #1412
- Add informational disclaimers to grammar files by @cmoesel in #1399
Install or Update
SUSHI 3.6.1 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.6.1, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.6.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.6.0...v3.6.1
SUSHI 3.6.0
What's Changed
- Create index files for FSH-defined entities by @mint-thompson in #1377
- Unfold choice type slices when no unfolded elements match by @jafeltra in #1373
- CodeSystem implied values can only be extension URLs by @mint-thompson in #1374
- Update FPL dependency by @mint-thompson in #1376
- Handle recursive extension contexts by @cmoesel in #1378
- CaretValueRule codes are quoted if they contain spaces by @mint-thompson in #1382
- Value Set concept components have one code per line by @mint-thompson in #1381
- Improve IG exampleCanonical matching on versioned meta.profile for profiles that don't specify a version by @cmoesel in #1387
- Produce correct FSH for concept CaretValueRules on ValueSets by @mint-thompson in #1385
- Add Characteristics to Logical FSH representation by @mint-thompson in #1390
- Use rules for most Invariant keywords by @mint-thompson in #1397
New Feature: FSH index files
SUSHI will create two new files that contain the mappings between the input FSH definitions and output JSON files. The files are created in the fsh-generated
directory. One file is in a text format for ease of readability, and the other file is in JSON format for ease of processing.
Install or Update
SUSHI 3.6.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.6.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.5.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.5.0...v3.6.0
SUSHI 3.5.0
What's Changed
- Allow binding to types with the #can-bind characteristic by @jafeltra in #1363
- Consider imposeProfile extensions when constraining types by @cmoesel in #1366
- Remove antlr4 workaround by @mint-thompson in #1362
- Bug fix: Improve handling of child elements on meta.profile by @mint-thompson in #1353
- Bug fix: Don't return instance rules when looking for id by @mint-thompson in #1355
- Bug fix: Stop collecting ParamRuleSet contents when encountering a Logical or Resource by @mint-thompson in #1365
- v3.5.0 by @cmoesel in #1370
Install or Update
SUSHI 3.5.0 is the latest stable release of fsh-sushi. To install or update to SUSHI 3.5.0, run the following command:
$ npm install -g fsh-sushi
To revert to the previous SUSHI stable release (3.4.0), run the following command:
$ npm install -g [email protected]
To check or confirm what version of SUSHI you have installed, you can run the following command:
$ sushi -v
Full Changelog: v3.4.0...v3.5.0