Concept type mappings

Overview

Concept type mappings Description

SLOT

Used to reference another model mapping

MANUAL

Manually maps values

REFERENCE

Creates and reference a new resource in FHIR

HIERARCHY

Aligns different levels of structure to each other

PROGRAMMED

References a part of code outside the FHIRconnect files

PARTICIPATION

Maps a participation in openEHR

LINKED

Triggers and links the mapping of another Composition

NONE

Used to iterate

Participation mappings

OpenEHR has a class in the Reference Model that standardizes how participation of people for a activity are represented. The function in this method is not something that is auto-transformable. Therefore, it is added to the with: statement, as an additional parameter to the automatic-transformation. The presence of the participationsFunction: indicates this mapping type.

we could make the same logic using static

  - name: "other_participations"
    with:
      fhir: "$resource.asserter"
      openehr: "$archetype/other_participations"
    participationsFunction: "asserter"

Programmed mappings

Sometimes the FHIRconnect specification grammar is not enough and a mapping requires a unique logic. For this the Programmed mappings where introduced. In this mapping an external bit of code is retrieved and executed by the engine. The way how this code is provided and where is up to the vendor. This type of mapping will not auto-transform between the paths, since the mapping logic is done in the program code.

  - name: "dosageTiming"
    with:
      fhir: "$fhirRoot.timing"
      openehr: "$archetype"
    # type: "PROGRAMMED" not necessary, mappingCode is unique for PROGRAMMED_MAPPINGS
    mappingCode: "timingToDaily_NonDaily" #FHIR and openEHR are here very different, openEHR uses ISO, FHIR uses custom syntax

Linked mappings

There are cases where it is needed to map data into another composition. To redirect a part of the FHIR data to a different FHIRconnect mapping. Hereby, the engine checks the meta.url contained in the FHIR resource and searches all available FHIRconnect context mappings. If a context mapping for this meta.url is found, it is executed and saved as a separate composition. This composition is linked using the openEHR links. The fields of this link are set in the link.

  - name: "partOf"
    with:
      fhir: "$resource.partOf"
      openehr: "$archetype/links" # will use link
    link:
      meaning: "Part of referenced event"
      type: "partOf"

NONE

Does nothing, usually used to iterate and access nested elements of the path, via the child mapping methods.

  - name: "problemDiagnose"
    with:
      fhir: "$resource.code"
      openehr: "$archetype"
      type: "NONE" # iterate 0..n codes
    followedBy:
      mappings:
        - name: "problemDiagnoseName"
          with:
            fhir: "coding"
            openehr: "data[at0001]/items[at0002]"
        - name: "problemDiagnoseText"
          with:
            fhir: "text"
            openehr: "data[at0001]/items[at0009]"