This page is part of the FHIR Specification v4.1.0: R4B Ballot. About the R4B version of FHIR. The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
Pharmacy Work Group | Maturity Level: N/A | Standards Status: Informative | Security Category: Business | Compartments: Not linked to any defined compartments |
R3 : R4 Conversion maps for Medication.
Functional status for this map: 23 tests that all execute ok. 22 fail round-trip testing and 22 r3 resources are invalid (0 errors). (see documentation)
map "http://hl7.org/fhir/StructureMap/Medication3to4" = "R3 to R4 Conversions for Medication" uses "http://hl7.org/fhir/3.0/StructureDefinition/Medication" alias MedicationR3 as source uses "http://hl7.org/fhir/StructureDefinition/Medication" alias Medication as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Medication(source src : MedicationR3, target tgt : Medication) extends DomainResource <<type+>> { src.code -> tgt.code; src.status as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.status', vt.value = v; src.isBrand as v -> tgt.extension as vt, vt.url = 'hhttp://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.isBrand', vt.value = v; src.isOverTheCounter as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationOTC', vt.value = v; src.manufacturer -> tgt.manufacturer; src.form -> tgt.form; src.ingredient as vs0 -> tgt.ingredient as vt0 then ingredient(vs0, vt0); src.package as vs0 then package(vs0, tgt); src.image as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationImage', vt.value = v; } group ingredient(source src, target tgt) extends BackboneElement { src.item : CodeableConcept as vs -> tgt.item = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.item : Reference as vs -> tgt.item = create('Reference') as vt then Reference(vs, vt); src.isActive -> tgt.isActive; src.amount -> tgt.strength; } group package(source src, target tgt) { src.container as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.container', vt.value = v; src.content as vs0 -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content' then content(vs0, vt); src.batch as vs0 -> tgt.batch as vt0 then batch(vs0, vt0); } group content(source src, target tgt) extends Element { src.item as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content', vt.value = v; src.amount as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content.amount', vt.value = v; } group batch(source src, target tgt) extends BackboneElement { src.lotNumber -> tgt.lotNumber; src.expirationDate -> tgt.expirationDate; }
map "http://hl7.org/fhir/StructureMap/Medication4to3" = "R4 to R3 Conversion for Medication" uses "http://hl7.org/fhir/StructureDefinition/Medication" alias Medication as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Medication" alias MedicationR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Medication(source src : Medication, target tgt : MedicationR3) extends DomainResource <<type+>> { src.code -> tgt.code; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.status' then { e.value -> tgt.status; }; src.extension as e where url = 'hhttp://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.isBrand' then { e.value -> tgt.isBrand; }; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationOTC' then { e.value -> tgt.isOverTheCounter; }; src.manufacturer -> tgt.manufacturer; src.form -> tgt.form; src.ingredient as vs0 -> tgt.ingredient as vt0 then ingredient(vs0, vt0); src where batch.exists() or extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.container').exists() or extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content').exists() -> tgt.package as vt0 then package(src, vt0) "batch"; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationImage' then { e.value -> tgt.image; }; } group ingredient(source src, target tgt) extends BackboneElement { src.item : CodeableConcept as vs -> tgt.item = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.item : Reference as vs -> tgt.item = create('Reference') as vt then Reference(vs, vt); src.isActive -> tgt.isActive; src.strength -> tgt.amount; } group package(source src, target tgt) { src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.container' then { e.value -> tgt.container; }; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content' -> tgt.content as vt0 then content(e, vt0); src.batch as vs0 -> tgt.batch as vt0 then batch(vs0, vt0); } group content(source src, target tgt) extends Element { src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content' then { e.value : CodeableConcept as vs -> tgt.item = create('CodeableConcept') as vt then CodeableConcept(vs, vt); e.value : Reference as vs -> tgt.item = create('Reference') as vt then Reference(vs, vt); }; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-Medication.package.content.amount' then { e.value -> tgt.amount; }; } group batch(source src, target tgt) extends BackboneElement { src.lotNumber -> tgt.lotNumber; src.expirationDate -> tgt.expirationDate; }