This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
(v4.0.1:
R4
-
Mixed
Normative
and
STU
3).
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
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
R4
R3
Pharmacy
Work
Group
|
Maturity Level : N/A |
| Security Category : Patient | Compartments : Device , Encounter , Patient , Practitioner , RelatedPerson |
R2
:
R3
Converson
:
R4
Conversion
maps
for
MedicationAdministration.
Functional
status
for
this
map:
3
14
tests
that
all
execute
ok.
All
tests
pass
4
fail
round-trip
testing
and
all
14
r3
resources
are
valid.
invalid
(0
errors).
(
see
documentation)
map "http://hl7.org/fhir/StructureMap/MedicationAdministration2to3" = "R2 to R3 Conversions for MedicationAdministration"map "http://hl7.org/fhir/StructureMap/MedicationAdministration3to4" = "R3 to R4 Conversions for MedicationAdministration"uses "http://hl7.org/fhir/DSTU2/StructureDefinition/MedicationAdministration" alias MedicationAdministrationR2 as source uses "http://hl7.org/fhir/DSTU2/StructureDefinition/MedicationAdministration" alias RatioR2 as source uses "http://hl7.org/fhir/StructureDefinition/MedicationAdministration" alias MedicationAdministration as targetuses "http://hl7.org/fhir/3.0/StructureDefinition/MedicationAdministration" alias MedicationAdministrationR3 as source uses "http://hl7.org/fhir/StructureDefinition/MedicationAdministration" alias MedicationAdministration as targetimports "http://hl7.org/fhir/StructureMap/*2to3"imports "http://hl7.org/fhir/StructureMap/*3to4"group for type+types MedicationAdministration extends DomainResource input src : MedicationAdministrationR2 as source input tgt : MedicationAdministration as targetgroup MedicationAdministration(source src : MedicationAdministrationR3, target tgt : MedicationAdministration) extends DomainResource <<type+>> { src.identifier -> tgt.identifier; src.definition -> tgt.instantiates; src.partOf -> tgt.partOf; src.status as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.status', vt.value = v; src.notGiven as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.notGiven', vt.value = v; src.status where src.notGiven.not() -> tgt.status; src.notGiven -> tgt.status = 'not-done'; src.category -> tgt.category; src.medication : CodeableConcept as vs -> tgt.medication = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.medication : Reference as vs -> tgt.medication = create('Reference') as vt then Reference(vs, vt); src.subject -> tgt.subject; src.context -> tgt.context; src.supportingInformation -> tgt.supportingInformation; src.effective : dateTime as vs -> tgt.effective = create('dateTime') as vt then dateTime(vs, vt); src.effective : Period as vs -> tgt.effective = create('Period') as vt then Period(vs, vt); src.performer as vs0 -> tgt.performer as vt0 then actor(vs0, vt0); src.statusReason -> tgt.statusReason; src.reasonNotGiven -> tgt.reasonCode; src.reasonCode -> tgt.reasonCode; src.reasonReference -> tgt.reasonReference; src.prescription -> tgt.request; src.device -> tgt.device; src.note -> tgt.note; src.dosage as s -> tgt.dosage as t then dosage(s, t); src.eventHistory -> tgt.eventHistory; }"MedicationAdministration-identifier" : for src.identifier make tgt.identifier "MedicationAdministration-status" : for src.status make tgt.status "MedicationAdministration-patient" : for src.patient make tgt.subject "MedicationAdministration-practitioner" : for src.practitioner as v make tgt.performer as vd, vd.actor = v "MedicationAdministration-encounter" : for src.encounter make tgt.context "MedicationAdministration-prescription" : for src.prescription make tgt.prescription "MedicationAdministration-notGiven" : for src.wasNotGiven make tgt.notGiven "MedicationAdministration-reasonNotGiven" : for src.reasonNotGiven make tgt.reasonNotGiven "MedicationAdministration-effectiveTime" : for src.effectiveTime make tgt.effective "MedicationAdministration-medication" : for src.medication make tgt.medication "MedicationAdministration-device" : for src.device make tgt.device "MedicationAdministration-note" : for src.note make tgt.note "MedicationAdministration-dosage" : for src.dosage as vs0 make tgt.dosage as vt0 then mAdDosage(vs0, vt0) endgroupgroup actor(source src, target tgt) extends BackboneElement { src.actor -> tgt.actor; src.onBehalfOf as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.performer.onBehalfOf', vt.value = v; }group mAdDosage extends BackboneElement input src : MedicationAdministrationR2 as source input tgt : MedicationAdministration as targetgroup dosage(source src, target tgt) extends BackboneElement { src.text -> tgt.text; src.site -> tgt.site; src.route -> tgt.route; src.method -> tgt.method; src.dose -> tgt.dose; src.rate : Ratio as vs -> tgt.rate = create('Ratio') as vt then Ratio(vs, vt); src.rate : Quantity as vs -> tgt.rate = create('Quantity') as vt then Quantity(vs, vt); }"MedicationAdministration.dosage-text" : for src.text make tgt.text "MedicationAdministration.dosage-site" : for src.site make tgt.site "MedicationAdministration.dosage-route" : for src.route make tgt.route "MedicationAdministration.dosage-method" : for src.method make tgt.method "MedicationAdministration.dosage-dose" : for src.quantity make tgt.dose "MedicationAdministration.dosage-rate-Ratio" : for src.rate where $this is Ratio make tgt.rate // Range is not valid; should not use it, and cannot convert to R3 endgroup
map "http://hl7.org/fhir/StructureMap/MedicationAdministration3to2" = "R3 to R2 Conversion for MedicationAdministration"map "http://hl7.org/fhir/StructureMap/MedicationAdministration4to3" = "R4 to R3 Conversion for MedicationAdministration"uses "http://hl7.org/fhir/StructureDefinition/MedicationAdministration" alias MedicationAdministration as source uses "http://hl7.org/fhir/DSTU2/StructureDefinition/MedicationAdministration" alias MedicationAdministrationR2 as targetuses "http://hl7.org/fhir/StructureDefinition/MedicationAdministration" alias MedicationAdministration as source uses "http://hl7.org/fhir/3.0/StructureDefinition/MedicationAdministration" alias MedicationAdministrationR3 as targetimports "http://hl7.org/fhir/StructureMap/*3to2"imports "http://hl7.org/fhir/StructureMap/*4to3"group for type+types MedicationAdministration extends DomainResource input src : MedicationAdministration as source input tgt : MedicationAdministrationR2 as targetgroup MedicationAdministration(source src : MedicationAdministrationR3, target tgt : MedicationAdministration) extends DomainResource <<type+>> { src.identifier -> tgt.identifier; src.instantiates -> tgt.definition; src.partOf -> tgt.partOf; src where src.extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.status').exists() then statusR3(src, tgt) "status1"; src where src.extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.status').empty() then statusNR3(src, tgt) "status2"; src.category -> tgt.category; src.medication : CodeableConcept as vs -> tgt.medication = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.medication : Reference as vs -> tgt.medication = create('Reference') as vt then Reference(vs, vt); src.subject -> tgt.subject; src.context -> tgt.context; src.supportingInformation -> tgt.supportingInformation; src.effective : dateTime as vs -> tgt.effective = create('dateTime') as vt then dateTime(vs, vt); src.effective : Period as vs -> tgt.effective = create('Period') as vt then Period(vs, vt); src.performer as vs0 -> tgt.performer as vt0 then actor(vs0, vt0); src.statusReason -> tgt.statusReason; src.reasonCode where value = 'not-done' -> tgt.reasonNotGiven; src.reasonCode where value != 'not-done' -> tgt.reasonCode; src.reasonReference -> tgt.reasonReference; src.request -> tgt.prescription; src.device -> tgt.device; src.note -> tgt.note; src.dosage as s -> tgt.dosage as t then dosage(s, t); src.eventHistory -> tgt.eventHistory; }"MedicationAdministration-identifier" : for src.identifier make tgt.identifier "MedicationAdministration-status" : for src.status make tgt.status "MedicationAdministration-patient" : for src.subject make tgt.patient "MedicationAdministration-performer" : for src.performer as vs0 then mAdPerformer(vs0, tgt) "MedicationAdministration-encounter" : for src.context make tgt.encounter "MedicationAdministration-prescription" : for src.prescription make tgt.prescription "MedicationAdministration-notGiven" : for src.notGiven make tgt.wasNotGiven "MedicationAdministration-reasonNotGiven" : for src.reasonNotGiven make tgt.reasonNotGiven "MedicationAdministration-effectiveTime" : for src.effective make tgt.effectiveTime "MedicationAdministration-medication" : for src.medication make tgt.medication "MedicationAdministration-device" : for src.device make tgt.device "MedicationAdministration-note" : for src.note only_one make tgt.note "MedicationAdministration-dosage" : for src.dosage as vs0 make tgt.dosage as vt0 then mAdDosage(vs0, vt0) endgroupgroup actor(source src, target tgt) extends BackboneElement { src.actor -> tgt.actor; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.performer.onBehalfOf' then { e.value -> tgt.onBehalfOf; }; }group mAdPerformer extends BackboneElement input src as source input tgt as targetgroup dosage(source src, target tgt) extends BackboneElement { src.text -> tgt.text; src.site -> tgt.site; src.route -> tgt.route; src.method -> tgt.method; src.dose -> tgt.dose; src.rate : Ratio as vs -> tgt.rate = create('Ratio') as vt then Ratio(vs, vt); src.rate : Quantity as vs -> tgt.rate = create('Quantity') as vt then Quantity(vs, vt); }"MedicationAdministration-performer-actor" : for src.actor make tgt.practitioner endgroupgroup statusR3(source src, target tgt) { src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.notGiven' then { e.value -> tgt.notGiven; }; src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationAdministration.status' then { e.value -> tgt.status; }; }group mAdDosage extends BackboneElement input src : MedicationAdministrationR2 as source input tgt : MedicationAdministration as targetgroup statusNR3(source src, target tgt) { src.status where value != 'not-done' -> tgt.status; src.status where value = 'not-done' -> tgt.notGiven = false; }"MedicationAdministration.dosage-text" : for src.text make tgt.text "MedicationAdministration.dosage-site" : for src.site make tgt.site "MedicationAdministration.dosage-route" : for src.route make tgt.route "MedicationAdministration.dosage-method" : for src.method make tgt.method "MedicationAdministration.dosage-dose" : for src.dose make tgt.quantity "MedicationAdministration.dosage-rate-Ratio" : for src.rate where $this is Ratio make tgt.rate endgroup