This page is part of the FHIR Specification (v5.0.0-snapshot1: R5 Snapshot #1). 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;
}