StructureMap-BundleToCdaChEmedMedicationDispenseDocument

Sourcech.fhir.ig.cda-fhir-maps#0.3.0:CDA-FHIR-Maps (R4) (v4.0.1)
resourceTypeStructureMap
idBundleToCdaChEmedMedicationDispenseDocument
canonicalhttp://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCdaChEmedMedicationDispenseDocument
version0.3.0
statusdraft
publisherahdis
nameBundleToCdaChEmedMedicationDispenseDocument
date2022-02-11T11:14:39+01:00
descriptionMedication Dispense document, 2.16.756.5.30.1.1.10.1.5 2020-01-09 Oliver Egger, copyright ahdis ag, Apache License CDA-CH-EMED: https://art-decor.org/art-decor/decor-project--cdachemed- FHIR CH-EMED: http://fhir.ch/ig/ch-emed/index.html
copyrightCC-BY-SA-4.0
Usages(none)

    
/// url = 
    
    'http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCdaChEmedMedicationDispenseDocument'

    
/// name = 
    
    'BundleToCdaChEmedMedicationDispenseDocument'

    
/// status = 
    
    'draft'


    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/ClinicalDocument    " 
    alias 
ClinicalDocument     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/AssignedAuthor    " 
    alias 
AssignedAuthor     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/AssignedEntity    " 
    alias 
AssignedEntity     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/Author    " 
    alias 
Author     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/CustodianOrganization    " 
    alias 
CustodianOrganization     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/IVL_TS    " 
    alias 
IVL_TS     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/EIVL_TS    " 
    alias 
EIVL_TS     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/PatientRole    " 
    alias 
PatientRole     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/RecordTarget    " 
    alias 
RecordTarget     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/Section    " 
    alias 
Section     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/SubstanceAdministration    " 
    alias 
SubstanceAdministration     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/SXPR_TS    " 
    alias 
SXPR_TS     as 
    target

    uses
     "
http://hl7.org/fhir/cda/StructureDefinition/Supply    " 
    alias 
Supply     as 
    target

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Bundle
    " 
    alias 
Bundle     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Composition
    " 
    alias 
Composition     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Patient
    " 
    alias 
Patient     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Practitioner
    " 
    alias 
Practitioner     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Organization
    " 
    alias 
Organization     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/MedicationDispense
    " 
    alias 
MedicationDispense     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Dosage
    " 
    alias 
Dosage     as 
    source


    imports
     "
    http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes
    "

    imports
     "
    http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCda
    "

    imports
     "
    http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCdaCh
    "

    imports
     "
    http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCdaChEmed
    "


    // 
    source: http://build.fhir.org/ig/hl7ch/ch-emed/StructureDefinition-ch-emed-composition-medicationdispense.html

    // 
    target: https://art-decor.org/art-decor/decor-templates--cdachemed-?section=templates&id=2.16.756.5.30.1.1.10.1.5

    group 
BundleToCdaChEmedMedicationDispenseDocument    (
    source
     bundle
     : 
Bundle,     target
     cda
     : 
ClinicalDocument    )
     {

  bundle    
 ->     
 cda.recordTarget     as 
    recordTarget
    , 
 cda.author     as 
    author
     then 
BundleToClinicalDocumentEmedMedicationDispenseDocument    (
    bundle
    , 
    recordTarget
    , 
    author
    , 
    cda
    )
     "bundle"
    ;

    }


    // 
    source: http://build.fhir.org/ig/hl7ch/ch-emed/StructureDefinition-ch-emed-composition-medicationdispense.html

    // 
    target: https://art-decor.org/art-decor/decor-templates--cdachemed-?section=templates&id=2.16.756.5.30.1.1.10.1.5

    group 
CompositionClinicalDocumentChEmedMedicationDispenseDocument    (
    source
     bundle
     : 
Bundle,     source
     composition
     : 
Composition,     target
     cda
     : 
ClinicalDocument    )
     {

  composition.type    
 ->     
 cda.code     as 
    code
    , 
 code.codeSystem =     '2.16.840.1.113883.6.1'
    , 
 code.codeSystemName =     'LOINC'
    , 
 code.code =     '60593-1'
    , 
 code.displayName =     'Medication dispensed.extended'
     "fixloinc"
    ;

  composition.section     as 
    section
     where 
$this.code.coding.where((system = 'http://loinc.org') and (code = '60590-7'))    
 ->     
cda.component     as 
    component
     then
     {

    section    
 ->     
component.contextConductionInd =     true
     "contextConductionInd"
    ;

    section    
 ->     
 component.structuredBody     as 
    structuredBody
    , 
 structuredBody.component     as 
    component
    , 
 component.section     as 
    cdasection
     then 
SectionDispenseSectionContentModule    (
    bundle
    , 
    section
    , 
    cdasection
    )
     "cdasection"
    ;

      }
     "SectionDispenseSectionContentModule"
    ;

  composition.section     as 
    section
     where 
$this.code.coding.where((system = 'http://loinc.org') and (code = '48767-8'))    
 ->     
cda.component     as 
    component
     then
     {

    section    
 ->     
component.contextConductionInd =     true
     "contextConductionInd"
    ;

    section    
 ->     
 component.structuredBody     as 
    structuredBody
    , 
 structuredBody.component     as 
    component
    , 
 component.section     as 
    cdasection
     then 
SectionCdaRemarksCoded    (
    bundle
    , 
    section
    , 
    cdasection
    )
     "cdasection"
    ;

      }
     "SectionRemarksCoded"
    ;

  composition.section     as 
    section
     where 
$this.code.coding.where((system = 'http://loinc.org') and (code = '55108-5'))    
 ->     
cda.component     as 
    component
     then
     {

    section    
 ->     
component.contextConductionInd =     true
     "contextConductionInd"
    ;

    section    
 ->     
 component.structuredBody     as 
    structuredBody
    , 
 structuredBody.component     as 
    component
    , 
 component.section     as 
    cdasection
     then 
SectionCdaOriginalRepresentation    (
    bundle
    , 
    section
    , 
    cdasection
    )
     "cdasection"
    ;

      }
     "SectionCdaOriginalRepresentation"
    ;

    }


    // 
    _________________________ Section Level Templates _________________________

    // 
    source: http://build.fhir.org/ig/hl7ch/ch-emed/StructureDefinition-ch-emed-composition-medicationdispense.html

    // 
    target: https://art-decor.org/art-decor/decor-templates--cdachemed-?section=templates&id=2.16.756.5.30.1.1.10.3.11

    group 
SectionDispenseSectionContentModule    (
    source
     bundle
     : 
Bundle,     source
     section
     : 
Section,     target
     cdasection
     : 
CdaSection    )
     extends 
SectionCdaSection     {

  section    
 ->     
 cdasection.templateId     as 
    templateId
    , 
 templateId.root =     '2.16.756.5.30.1.1.10.3.11'
     "CH-PHARM-DispenseSectionContentModule"
    ;

  section    
 ->     
 cdasection.templateId     as 
    templateId
    , 
 templateId.root =     '1.3.6.1.4.1.19376.1.9.1.2.3'
     "IHE-DispenseSectionContentModule"
    ;

  section     where 
text.exists() = false    
 ->     
cdasection.text =     '<div xmlns=\"http://www.w3.org/1999/xhtml\"><span id=\"refpdf\">see pdf</span></div>'
     "Section"
    ;

  bundle.entry     as 
    entry
     then
     {

    entry.fullUrl     where 
($this in %section.entry.reference) and $this.startsWith('urn:uuid')     then
     {

      entry.resource     as 
    medicationDispense
     where 
$this.ofType(FHIR.MedicationDispense)    
 ->     
 cdasection.entry     as 
    entry
    , 
 entry.supply     as 
    supply
     then 
DispenseItemEntryContentModule    (
    bundle
    , 
    medicationDispense
    , 
    supply
    )
     "MedicationDispense"
    ;

        }
     "fullUrlAsUuid"
    ;

    entry.resource     as 
    medicationDispense
     where 
$this.ofType(FHIR.MedicationDispense) and (('MedicationDispense' + '/' + $this.id) in %section.entry.reference)    
 ->     
 cdasection.entry     as 
    entry
    , 
 entry.supply     as 
    supply
     then 
DispenseItemEntryContentModule    (
    bundle
    , 
    medicationDispense
    , 
    supply
    )
     "MedicationDispense"
    ;

      }
    ;

    }


    // 
    _________________________ Header Level Templates _________________________

    // 
    source: http://build.fhir.org/ig/hl7ch/ch-emed/StructureDefinition-ch-emed-composition-medicationdispense.html

    // 
    target: 2.16.756.5.30.1.1.10.9.42

    group 
BundleToClinicalDocumentEmedMedicationDispenseDocument    (
    source
     bundle
     : 
Bundle,     target
     recordTarget
     : 
RecordTarget,     target
     author
     : 
Author,     target
     cda
     : 
ClinicalDocument    )
     extends 
BundleToClinicalDocumentCh     {

  bundle    
 ->     
 cda.templateId     as 
    templateId
    , 
 templateId.root =     '2.16.756.5.30.1.127.1.4'
     "ExchangeFormatAccordingToTheSwissEPR"
    ;

  bundle    
 ->     
 cda.templateId     as 
    templateId
    , 
 templateId.root =     '1.3.6.1.4.1.19376.1.5.3.1.1.1'
     "IHE-PCC"
    ;

  bundle    
 ->     
 cda.templateId     as 
    templateId
    , 
 templateId.root =     '1.3.6.1.4.1.19376.1.9.1.1.3'
     "IHE-PharmacyDispenseDocumentContentModule"
    ;

  bundle    
 ->     
 cda.templateId     as 
    templateId
    , 
 templateId.root =     '2.16.756.5.30.1.1.10.1.5'
     "CDA-CH-EMED-MedicationDispenseDocument"
    ;

  bundle.entry     as 
    entry
     then
     {

    entry.resource     as 
    resource
     where 
$this.ofType(FHIR.Composition)     then 
CompositionClinicalDocumentChEmedMedicationDispenseDocument    (
    bundle
    , 
    resource
    , 
    cda
    )
    ;

      }
    ;

    }


  

Produced 08 Sep 2023