Release notes
Note
openFHIR Sandbox is usually on latest version of openFHIR. To see the exact version of the sandbox, go to https://sandbox.open-fhir.com
Release 1.2.3
Added
ability to use FhirPath concatenation when going openEHR -> FHIR, for example suffixing
fhir: "$resource.context.related.reference & '^^^^urn:ihe:iti:xds:2016:studyInstanceUID'"
or prefixingfhir: "'prefixOfInstitution'&$resource.custodian.as(Reference).display"
/openfhir/tofhir
can now handle array of Compositions in a canonical format, rather than just a single one. When an array is provided, openFHIR expects payload to be an array of Compositions in a canonical format (not flat) and of the same template (if they’re not, they will all attempted to be mapped base on a templateId on the 0th Composition in the array). Results of mappings from those multiple compositions will be added to the returned Bundle.entries.support Identifier to String, see: https://github.com/medblocks/openFHIR/pull/140 (thanks @subigre)
Fixed
when Insights fail, they fail gracefully now and dont impact successfulness of a mapping
Release 1.2.2
Added
ability to map DV_ORDINAL to/from Coding/CodeableConcept and with that, |ordinal values to inline terminology
Fixed
Bundle type now defaults to
collection
when returned in openEHR —> FHIR
Release 1.2.1
Added
insights now include mapper name as well
Fixed
if fhirCondition as a preprocessor includes multiple ‘one of’ criteria, these now properly result in ‘or’ statements
Release 1.2.0
Added
compliance to FHIR Connect spec version 1.0.0 with implicit typing (‘type’ in model mapper is no longer required, types are implied based on RMType and data type on data values being mapped). At the moment, explicit typing is still supported, but will be removed in future versions.
Fixed
proper serialization to YAML when requesting YAML representation of model/context mappers (with Accept: application/x-yaml)
Changed
snake-yaml de/serialization replaced with jackson yaml
Release 1.1.2
Fixed
prevent overriding of recurring elements when they reference a different parent openehr path within a followed by
Release 1.1.1
Added
hierarchy
to the model schema, although not yet implemented/supported by the enginecreated
andupdated
(timestamp) added to all database entities
Changed
if constructed FHIRPath during runtime of the engine is invalid, mapping now gracefully fails and logs a warning/error instead of failing altogether
Fixed
manual mappings, if present in followedBy statements, are now applied on all parent occurrences instead of only the last one
proper handling of
$openehrRoot
and$archetype
fixed behavior of the engine when parent path had multiple fhir where clauses
Release 1.1.0
Added
Introduced the preprocessor : The
spec.fhirConfig.conditions
have been relocated topreprocessor.fhirConditions
in accordance with the FHIR Connect v1.0.0 specification. All existing mappings have been automatically migrated to comply with this update. No further action required on users.
Before
spec: ... fhirConfig: structureDefinition: http://hl7.org/fhir/StructureDefinition/Observation condition: - targetRoot: "$resource" targetAttribute: "code.coding.code" operator: "one of" criteria: "[$snomed.364075005,$snomed.78564009,$loinc.8867-4]"
Now
spec: ... fhirConfig: structureDefinition: http://hl7.org/fhir/StructureDefinition/Observation preprocessor: fhirConditions: - targetRoot: "$resource" targetAttribute: "code.coding.code" operator: "one of" criteria: "[$snomed.364075005,$snomed.78564009,$loinc.8867-4]"
Changed
The RESTful API endpoints (
/fc/model
,/fc/context
) now return and accept model/context mappers directly, without any additional wrapper.Example: When retrieving a model mapper (
GET /fc/model/{id}
) for an update, you can now use the entire response payload as the PUT body.
Before (context example)
{ "id": "67e8351186096400101ba5ae", "fhirConnectContext": { "grammar": "FHIRConnect/v1.0.0", "type": "CONTEXT", "metadata": { "name": "Growth chart", "version": "1.0.0" }, "spec": { "system": "FHIR", "version": "R4" }, "context": { "profile": { "url": "" }, "template": { "id": "Growth chart" }, "archetypes": [ "openEHR-EHR-OBSERVATION.body_weight.v2", "openEHR-EHR-OBSERVATION.height.v2", "openEHR-EHR-OBSERVATION.body_mass_index.v2", "openEHR-EHR-OBSERVATION.head_circumference.v1" ], "start": "openEHR-EHR-OBSERVATION.body_weight.v2" } }, "user": "123", "organisation": "123" }
Now (context example)
{ "id": "67e8351186096400101ba5ae", "grammar": "FHIRConnect/v1.0.0", "type": "context", "metadata": { "name": "Growth chart", "version": "1.0.0" }, "spec": { "system": "FHIR", "version": "R4" }, "context": { "profile": { "url": "" }, "template": { "id": "Growth chart" }, "archetypes": [ "openEHR-EHR-OBSERVATION.body_weight.v2", "openEHR-EHR-OBSERVATION.height.v2", "openEHR-EHR-OBSERVATION.body_mass_index.v2", "openEHR-EHR-OBSERVATION.head_circumference.v1" ], "start": "openEHR-EHR-OBSERVATION.body_weight.v2" } }
Fixed
$fhirRoot
is now correctly processed if set in a mapperfhirCondition.targetRoot