SMART PH4H
0.9.9 - release
This page is part of the PH4H (v0.9.9: Releases Draft) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
| Draft as of 2026-07-09 |
{
"resourceType" : "StructureMap",
"id" : "MedicationOverviewLMToMedicationOverviewBundle",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap MedicationOverviewLMToMedicationOverviewBundle</b></p><a name=\"MedicationOverviewLMToMedicationOverviewBundle\"> </a><a name=\"hcMedicationOverviewLMToMedicationOverviewBundle\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>http://smart.who.int/ph4h/StructureMap/MedicationOverviewLMToMedicationOverviewBundle<span style=\"color: navy\">" = "</span>MedicationOverviewLMToMedicationOverviewBundle<span style=\"color: navy\">"\r\n\r\n</span><b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-MedicationOverviewLM.html\" title=\"Medication Overview (model)\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationOverviewLM</a><span style=\"color: navy\">" </span><b>alias </b>MedicationOverviewLM <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-PatientLM.html\" title=\"Patient (model)\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/PatientLM</a><span style=\"color: navy\">" </span><b>alias </b>PatientLM <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-MedicationTreatmentLineLM.html\" title=\"Medication Treatment Line (model)\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationTreatmentLineLM</a><span style=\"color: navy\">" </span><b>alias </b>MedicationTreatmentLineLM <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-PractitionerLM.html\" title=\"Practitioner (model)\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/PractitionerLM</a><span style=\"color: navy\">" </span><b>alias </b>PractitionerLM <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-MedicationOverview.html\" title=\"Medication Overview Bundle\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationOverview</a><span style=\"color: navy\">" </span><b>alias </b>MedicationOverviewBundle <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-MedicationOverviewComposition.html\" title=\"Medication Overview Composition\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationOverviewComposition</a><span style=\"color: navy\">" </span><b>alias </b>MedicationOverviewComposition <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"file://E:\\work\\ImplementationGuides\\ihe-pharm-meow\\output/StructureDefinition-MedicationTreatmentLine.html\" title=\"Medication Treatment Line\">https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationTreatmentLine</a><span style=\"color: navy\">" </span><b>alias </b>MedicationTreatmentLine <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/patient.html\" title=\"Patient\">http://hl7.org/fhir/StructureDefinition/Patient</a><span style=\"color: navy\">" </span><b>alias </b>Patient <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/practitioner.html\" title=\"Practitioner\">http://hl7.org/fhir/StructureDefinition/Practitioner</a><span style=\"color: navy\">" </span><b>alias </b>Practitioner <b>as </b><b>target</b>\r\n\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Top-level group: assemble MedicationOverview Bundle (document)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<b>group </b>MedicationOverviewLMToMedicationOverviewBundle<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>MedicationOverviewLM, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>MedicationOverviewBundle<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>tgt.type = <span style=\"color: blue\">'document'</span> <i>"bundleType"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.timestamp = <span style=\"color: navy\">(</span>now()<span style=\"color: navy\">)</span> <i>"bundleTimestamp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Generate fixed UUIDs once; reuse them across entries and Reference targets.</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">bid</span><span style=\"color: navy\">, </span> <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cid</span><span style=\"color: navy\">, </span> <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">pid</span><b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Bundle.identifier (UUID identifier per RFC 4122)</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> tgt.identifier<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\">, </span> id.system = <span style=\"color: blue\">'urn:ietf:rfc:4122'</span><span style=\"color: navy\">, </span> id.value = <span style=\"color: maroon\">bid</span> <i>"bundleIdentifier"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Composition entry. The Composition group ALSO emits the treatment-line bundle</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">entries (passing tgt in), so each section.entry reference can share the same</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">UUID as its bundle entry — making the lines reachable from the Composition.</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> tgt.entry<b> as </b><span style=\"color: maroon\">ce</span><span style=\"color: navy\">, </span> ce.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:uuid:'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">cid</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> ce.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'MedicationOverviewComposition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">comp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<b> then </b>MedicationOverviewLMToComposition<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">comp</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pid</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"compositionContent"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"compositionEntry"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Patient entry</span>\r\n src.patient<b> as </b><span style=\"color: maroon\">pref</span><span style=\"color: navy\"><b> -> </b></span> tgt.entry<b> as </b><span style=\"color: maroon\">pe</span><span style=\"color: navy\">, </span> pe.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:uuid:'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pid</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> pe.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Patient'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">pat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> pref<b> then </b>PatientLMToPatient<span style=\"color: navy\">(</span><span style=\"color: maroon\">pref</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pat</span><span style=\"color: navy\">)</span> <i>"patientContent"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"patientEntry"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setEntries"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">MedicationOverviewLM -> MedicationOverviewComposition</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Receives the Patient entry's UUID (pid) so subject can reference it.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<b>group </b>MedicationOverviewLMToComposition<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>MedicationOverviewLM, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>MedicationOverviewComposition, <b>source</b> <span style=\"color: maroon\">pid</span>, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>MedicationOverviewBundle<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>tgt.status = <span style=\"color: blue\">'final'</span> <i>"compStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Composition.type — LOINC 56445-0 "Medication summary Document"</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Coding'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cc</span><span style=\"color: navy\">, </span> cc.system = <span style=\"color: blue\">'http://loinc.org'</span><span style=\"color: navy\">, </span> cc.code = <span style=\"color: blue\">'56445-0'</span><span style=\"color: navy\">, </span> cc.display = <span style=\"color: blue\">'Medication summary Document'</span><span style=\"color: navy\">, </span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ct</span><span style=\"color: navy\">, </span> ct.coding = <span style=\"color: maroon\">cc</span><span style=\"color: navy\">, </span> tgt.type = <span style=\"color: maroon\">ct</span> <i>"compType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Composition.subject -> Patient entry by uuid</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">subj</span><span style=\"color: navy\">, </span> subj.reference = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:uuid:'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pid</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> tgt.subject = <span style=\"color: maroon\">subj</span> <i>"compSubject"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.date = <span style=\"color: navy\">(</span>now()<span style=\"color: navy\">)</span> <i>"compDate"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.title = <span style=\"color: blue\">'Medication Overview'</span> <i>"compTitle"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Composition.author is 1..* (required). The Min source carries no author, so</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">emit a display-only placeholder Reference to satisfy the cardinality.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">TODO: replace with the real authoring Organization/Device once the source</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">(or a config value) provides it.</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">au</span><span style=\"color: navy\">, </span> au.display = <span style=\"color: blue\">'Medication Overview generator'</span><span style=\"color: navy\">, </span> tgt.author = <span style=\"color: maroon\">au</span> <i>"compAuthor"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Section: MedRecordTreatmentLine</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.section<b> as </b><span style=\"color: maroon\">sect</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>sect.title = <span style=\"color: blue\">'Medication Treatment Lines'</span> <i>"sectTitle"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Coding'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">scc</span><span style=\"color: navy\">, </span> scc.system = <span style=\"color: blue\">'http://loinc.org'</span><span style=\"color: navy\">, </span> scc.code = <span style=\"color: blue\">'10160-0'</span><span style=\"color: navy\">, </span> scc.display = <span style=\"color: blue\">'History of Medication use Narrative'</span><span style=\"color: navy\">, </span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">sc</span><span style=\"color: navy\">, </span> sc.coding = <span style=\"color: maroon\">scc</span><span style=\"color: navy\">, </span> sect.code = <span style=\"color: maroon\">sc</span> <i>"sectCode"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">One UUID per line, shared by the section.entry reference AND the bundle entry,</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">so each treatment line is reachable by forward traversal from the Composition</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">(mirrors the ICVP ICVPLMToIPS pattern). This is why the group receives the</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Bundle: the line entries are created here, not in the top-level group.</span>\r\n src.medicationTreatmentLine<b> as </b><span style=\"color: maroon\">lref</span><span style=\"color: navy\"><b> -> </b></span><b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tid</span><b> then</b><span style=\"color: navy\"> {\r\n</span> lref<span style=\"color: navy\"><b> -> </b></span> sect.entry<b> as </b><span style=\"color: maroon\">se</span><span style=\"color: navy\">, </span> se.reference = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:uuid:'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tid</span><span style=\"color: navy\">)</span> <i>"sectEntry"</i><span style=\"color: navy\">;</span>\r\n lref<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">te</span><span style=\"color: navy\">, </span> te.fullUrl = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:uuid:'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tid</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> te.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'MedicationTreatmentLine'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ms</span><b> then</b><span style=\"color: navy\"> {\r\n</span> lref<b> then </b>MedicationTreatmentLineLMToMedicationStatement<span style=\"color: navy\">(</span><span style=\"color: maroon\">lref</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">ms</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pid</span><span style=\"color: navy\">)</span> <i>"lineContent"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"lineEntry"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"treatmentLines"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"sectionTreatmentLines"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Attester from verification BackboneElement</span>\r\n src.verification<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>tgt.attester<b> as </b><span style=\"color: maroon\">att</span><b> then</b><span style=\"color: navy\"> {\r\n</span> v<span style=\"color: navy\"><b> -> </b></span>att.mode = <span style=\"color: blue\">'professional'</span> <i>"attMode"</i><span style=\"color: navy\">;</span>\r\n v.verificationTime<b> as </b><span style=\"color: maroon\">vt</span><span style=\"color: navy\"><b> -> </b></span>att.time = <span style=\"color: maroon\">vt</span> <i>"attTime"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">practicioner is Reference(PractitionerLM) in the LM — copy the reference</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">as-is ((pr.name.text) was invalid: References have no name).</span>\r\n v.practicioner<b> as </b><span style=\"color: maroon\">pr</span><span style=\"color: navy\"><b> -> </b></span>att.party = <span style=\"color: maroon\">pr</span> <i>"attParty"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"attester"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Comment -> R4 Composition has NO `note` element (R5-only). Use the</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">cross-version extension, mirroring the r4 profile's approach for adherence.</span>\r\n src.comment<b> as </b><span style=\"color: maroon\">cm</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ext</span><span style=\"color: navy\">, </span> ext.url = <span style=\"color: blue\">'http://hl7.org/fhir/5.0/StructureDefinition/extension-Composition.note'</span><span style=\"color: navy\">, </span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Annotation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">nt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> cm.commentText<b> as </b><span style=\"color: maroon\">ctxt</span><span style=\"color: navy\"><b> -> </b></span>nt.text = <span style=\"color: maroon\">ctxt</span> <i>"noteText"</i><span style=\"color: navy\">;</span>\r\n cm.date<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -> </b></span>nt.time = <span style=\"color: maroon\">d</span> <i>"noteTime"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">author is a Reference in the LM; Annotation.author[x] resolves by type.</span>\r\n cm.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -> </b></span>nt.author = <span style=\"color: maroon\">a</span> <i>"noteAuthor"</i><span style=\"color: navy\">;</span>\r\n cm<span style=\"color: navy\"><b> -> </b></span> ext.value = <span style=\"color: maroon\">nt</span><span style=\"color: navy\">, </span> tgt.extension = <span style=\"color: maroon\">ext</span> <i>"noteAssign"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"noteFromComment"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">PatientLM -> FHIR Patient</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<b>group </b>PatientLMToPatient<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>PatientLM, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>Patient<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">id</span> <i>"patIdentifier"</i><span style=\"color: navy\">;</span>\r\n src.name<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\"><b> -> </b></span>tgt.name = <span style=\"color: maroon\">n</span> <i>"patName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">gender: navigate instead of a FHIRPath evaluate — validator can't scope</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">rule variables inside (…) expressions.</span>\r\n src.gender<b> as </b><span style=\"color: maroon\">g</span><b> then</b><span style=\"color: navy\"> {\r\n</span> g.coding<b> as </b><span style=\"color: maroon\">gc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gc.code<b> as </b><span style=\"color: maroon\">gcode</span><span style=\"color: navy\"><b> -> </b></span>tgt.gender = <span style=\"color: maroon\">gcode</span> <i>"patGenderCode"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"patGenderCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"patGender"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">dateOfBirth is dateTime in LM; birthDate is date — silent truncation expected.</span>\r\n src.dateOfBirth<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -> </b></span>tgt.birthDate = <span style=\"color: maroon\">d</span> <i>"patBirthDate"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">MedicationTreatmentLineLM -> MedicationTreatmentLine (profile on MedicationStatement, R4)</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Receives the Patient entry's UUID (pid) so MS.subject can reference it.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<b>group </b>MedicationTreatmentLineLMToMedicationStatement<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>MedicationTreatmentLineLM, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>MedicationTreatmentLine, <b>source</b> <span style=\"color: maroon\">pid</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">id</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">subject -> Patient entry by uuid (MS.subject is 1..1)</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">subj</span><span style=\"color: navy\">, </span> subj.reference = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:uuid:'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pid</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> tgt.subject = <span style=\"color: maroon\">subj</span> <i>"subject"</i><span style=\"color: navy\">;</span>\r\n src.status<b> as </b><span style=\"color: maroon\">st</span><span style=\"color: navy\"><b> -> </b></span>tgt.status = <span style=\"color: maroon\">st</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">medication[x] choice -> R4 medication[x] (no CodeableReference in R4;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">the engine resolves medicationReference/medicationCodeableConcept by value type)</span>\r\n src.medication<span style=\"color: navy\"> : </span>Reference<b> as </b><span style=\"color: maroon\">mr</span><span style=\"color: navy\"><b> -> </b></span>tgt.medication = <span style=\"color: maroon\">mr</span> <i>"medicationRef"</i><span style=\"color: navy\">;</span>\r\n src.medication<span style=\"color: navy\"> : </span>CodeableConcept<b> as </b><span style=\"color: maroon\">mc</span><span style=\"color: navy\"><b> -> </b></span>tgt.medication = <span style=\"color: maroon\">mc</span> <i>"medicationCC"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">effective[x] on R4 MedicationStatement — address the choice by base name.</span>\r\n src.effectivePeriod<b> as </b><span style=\"color: maroon\">ep</span><span style=\"color: navy\"><b> -> </b></span>tgt.effective = <span style=\"color: maroon\">ep</span><span style=\"color: navy\">;</span>\r\n src.recordingMetadata<b> as </b><span style=\"color: maroon\">rm</span><b> then</b><span style=\"color: navy\"> {\r\n</span> rm.recordedTime<b> as </b><span style=\"color: maroon\">rt</span><span style=\"color: navy\"><b> -> </b></span>tgt.dateAsserted = <span style=\"color: maroon\">rt</span> <i>"dateAsserted"</i><span style=\"color: navy\">;</span>\r\n rm.recorder<b> as </b><span style=\"color: maroon\">rc</span><span style=\"color: navy\"><b> -> </b></span>tgt.informationSource = <span style=\"color: maroon\">rc</span> <i>"informationSource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">reason -> R4 reasonCode (0..* CodeableConcept; no CodeableReference in R4)</span>\r\n src.indication<b> as </b><span style=\"color: maroon\">ind</span><span style=\"color: navy\"><b> -> </b></span>tgt.reasonCode = <span style=\"color: maroon\">ind</span> <i>"reasonIndication"</i><span style=\"color: navy\">;</span>\r\n src.indicationText<b> as </b><span style=\"color: maroon\">it</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cc</span><span style=\"color: navy\">, </span> cc.text = <span style=\"color: maroon\">it</span><span style=\"color: navy\">, </span> tgt.reasonCode = <span style=\"color: maroon\">cc</span> <i>"reasonIndicationText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">intendedUse: no R4 MedicationStatement element and no extension slice in the</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">r4 MEOW profile — intentionally not mapped (stays LM-only).</span>\r\n src.usageInstructions<b> as </b><span style=\"color: maroon\">ui</span><span style=\"color: navy\"><b> -> </b></span>tgt.dosage = <span style=\"color: maroon\">ui</span> <i>"dosage"</i><span style=\"color: navy\">;</span>\r\n src.preparationInstructions<b> as </b><span style=\"color: maroon\">pi</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Dosage'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">dos</span><span style=\"color: navy\">, </span> dos.text = <span style=\"color: maroon\">pi</span><span style=\"color: navy\">, </span> tgt.dosage = <span style=\"color: maroon\">dos</span> <i>"prepInstructions"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">note = comment</span>\r\n src.comment<b> as </b><span style=\"color: maroon\">cm</span><span style=\"color: navy\"><b> -> </b></span><b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Annotation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">nt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> cm.commentText<b> as </b><span style=\"color: maroon\">ct</span><span style=\"color: navy\"><b> -> </b></span>nt.text = <span style=\"color: maroon\">ct</span> <i>"lineNoteText"</i><span style=\"color: navy\">;</span>\r\n cm.date<b> as </b><span style=\"color: maroon\">d</span><span style=\"color: navy\"><b> -> </b></span>nt.time = <span style=\"color: maroon\">d</span> <i>"lineNoteTime"</i><span style=\"color: navy\">;</span>\r\n cm.author<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -> </b></span>nt.author = <span style=\"color: maroon\">a</span> <i>"lineNoteAuthor"</i><span style=\"color: navy\">;</span>\r\n cm<span style=\"color: navy\"><b> -> </b></span>tgt.note = <span style=\"color: maroon\">nt</span> <i>"lineNoteAssign"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"lineNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">adherence -> R4 has no MS.adherence; the r4 profile slices the R5</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">cross-version extension (1..1 in the profile, sub-extensions code/reason).</span>\r\n src.treatmentStatus<b> as </b><span style=\"color: maroon\">ts</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ext</span><span style=\"color: navy\">, </span> ext.url = <span style=\"color: blue\">'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence'</span><span style=\"color: navy\">, </span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e1</span><span style=\"color: navy\">, </span> e1.url = <span style=\"color: blue\">'code'</span><span style=\"color: navy\">, </span> e1.value = <span style=\"color: maroon\">ts</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e1</span><span style=\"color: navy\">, </span> tgt.extension = <span style=\"color: maroon\">ext</span> <i>"extAdherence"</i><span style=\"color: navy\">;</span>\r\n src.treatmentStatusReasonCode<b> as </b><span style=\"color: maroon\">tsr</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ext</span><span style=\"color: navy\">, </span> ext.url = <span style=\"color: blue\">'http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence'</span><span style=\"color: navy\">, </span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e1</span><span style=\"color: navy\">, </span> e1.url = <span style=\"color: blue\">'reason'</span><span style=\"color: navy\">, </span> e1.value = <span style=\"color: maroon\">tsr</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e1</span><span style=\"color: navy\">, </span> tgt.extension = <span style=\"color: maroon\">ext</span> <i>"extAdherenceReason"</i><span style=\"color: navy\">;</span>\r\n src.category<b> as </b><span style=\"color: maroon\">cat</span><span style=\"color: navy\"><b> -> </b></span>tgt.category = <span style=\"color: maroon\">cat</span><span style=\"color: navy\">;</span>\r\n src.derivedFrom<b> as </b><span style=\"color: maroon\">df</span><b> then</b><span style=\"color: navy\"> {\r\n</span> df.request<b> as </b><span style=\"color: maroon\">rq</span><span style=\"color: navy\"><b> -> </b></span>tgt.derivedFrom = <span style=\"color: maroon\">rq</span> <i>"derivedFromRequest"</i><span style=\"color: navy\">;</span>\r\n df.statement<b> as </b><span style=\"color: maroon\">stm</span><span style=\"color: navy\"><b> -> </b></span>tgt.derivedFrom = <span style=\"color: maroon\">stm</span> <i>"derivedFromStatement"</i><span style=\"color: navy\">;</span>\r\n df.dispensation<b> as </b><span style=\"color: maroon\">dsp</span><span style=\"color: navy\"><b> -> </b></span>tgt.derivedFrom = <span style=\"color: maroon\">dsp</span> <i>"derivedFromDispensation"</i><span style=\"color: navy\">;</span>\r\n df.administration<b> as </b><span style=\"color: maroon\">adm</span><span style=\"color: navy\"><b> -> </b></span>tgt.derivedFrom = <span style=\"color: maroon\">adm</span> <i>"derivedFromAdministration"</i><span style=\"color: navy\">;</span>\r\n df.other<b> as </b><span style=\"color: maroon\">oth</span><span style=\"color: navy\"><b> -> </b></span>tgt.derivedFrom = <span style=\"color: maroon\">oth</span> <i>"derivedFromOther"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Extension: artifact-version</span>\r\n src.version<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ext</span><span style=\"color: navy\">, </span> ext.url = <span style=\"color: blue\">'http://hl7.org/fhir/StructureDefinition/artifact-version'</span><span style=\"color: navy\">, </span> ext.value = <span style=\"color: maroon\">v</span><span style=\"color: navy\">, </span> tgt.extension = <span style=\"color: maroon\">ext</span> <i>"extVersion"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Extension: VerificationInformation</span>\r\n src.verificationInformation<b> as </b><span style=\"color: maroon\">vi</span><span style=\"color: navy\"><b> -> </b></span><b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ext</span><b> then</b><span style=\"color: navy\"> {\r\n</span> vi<span style=\"color: navy\"><b> -> </b></span>ext.url = <span style=\"color: blue\">'https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/ihe-ext-medicationstatement-verificationinformation'</span> <i>"viUrl"</i><span style=\"color: navy\">;</span>\r\n vi.verifier<b> as </b><span style=\"color: maroon\">vr</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e1</span><span style=\"color: navy\">, </span> e1.url = <span style=\"color: blue\">'verifier'</span><span style=\"color: navy\">, </span> e1.value = <span style=\"color: maroon\">vr</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e1</span> <i>"viVerifier"</i><span style=\"color: navy\">;</span>\r\n vi.verificationTime<b> as </b><span style=\"color: maroon\">vt</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e2</span><span style=\"color: navy\">, </span> e2.url = <span style=\"color: blue\">'verificationTime'</span><span style=\"color: navy\">, </span> e2.value = <span style=\"color: maroon\">vt</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e2</span> <i>"viTime"</i><span style=\"color: navy\">;</span>\r\n vi<span style=\"color: navy\"><b> -> </b></span>tgt.extension = <span style=\"color: maroon\">ext</span> <i>"viAssign"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"extVerification"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Extension: Substitution</span>\r\n src.substitution<b> as </b><span style=\"color: maroon\">sub</span><span style=\"color: navy\"><b> -> </b></span><b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">ext</span><b> then</b><span style=\"color: navy\"> {\r\n</span> sub<span style=\"color: navy\"><b> -> </b></span>ext.url = <span style=\"color: blue\">'https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/ihe-ext-medicationstatement-substitution'</span> <i>"subUrl"</i><span style=\"color: navy\">;</span>\r\n sub.substitutionType<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e1</span><span style=\"color: navy\">, </span> e1.url = <span style=\"color: blue\">'substitutionType'</span><span style=\"color: navy\">, </span> e1.value = <span style=\"color: maroon\">t</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e1</span> <i>"subType"</i><span style=\"color: navy\">;</span>\r\n sub.substitutionTypeReason<b> as </b><span style=\"color: maroon\">r</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e2</span><span style=\"color: navy\">, </span> e2.url = <span style=\"color: blue\">'substitutionTypeReason'</span><span style=\"color: navy\">, </span> e2.value = <span style=\"color: maroon\">r</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e2</span> <i>"subReason"</i><span style=\"color: navy\">;</span>\r\n sub.substitutionTypeReasonText<b> as </b><span style=\"color: maroon\">rt</span><span style=\"color: navy\"><b> -> </b></span> <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">e3</span><span style=\"color: navy\">, </span> e3.url = <span style=\"color: blue\">'substitutionTypeReasonText'</span><span style=\"color: navy\">, </span> e3.value = <span style=\"color: maroon\">rt</span><span style=\"color: navy\">, </span> ext.extension = <span style=\"color: maroon\">e3</span> <i>"subReasonText"</i><span style=\"color: navy\">;</span>\r\n sub<span style=\"color: navy\"><b> -> </b></span>tgt.extension = <span style=\"color: maroon\">ext</span> <i>"subAssign"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"extSubstitution"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">PractitionerLM -> FHIR Practitioner</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------------------</span>\r\n<b>group </b>PractitionerLMToPractitioner<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>PractitionerLM, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>Practitioner<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">id</span> <i>"practIdentifier"</i><span style=\"color: navy\">;</span>\r\n src.name<b> as </b><span style=\"color: maroon\">n</span><span style=\"color: navy\"><b> -> </b></span>tgt.name = <span style=\"color: maroon\">n</span> <i>"practName"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "http://smart.who.int/ph4h/StructureMap/MedicationOverviewLMToMedicationOverviewBundle",
"version" : "0.9.9",
"name" : "MedicationOverviewLMToMedicationOverviewBundle",
"status" : "draft",
"date" : "2026-07-09T08:34:46+00:00",
"publisher" : "WHO",
"contact" : [
{
"name" : "WHO",
"telecom" : [
{
"system" : "url",
"value" : "http://who.int"
}
]
}
],
"structure" : [
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationOverviewLM",
"mode" : "source",
"alias" : "MedicationOverviewLM"
},
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/PatientLM",
"mode" : "source",
"alias" : "PatientLM"
},
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationTreatmentLineLM",
"mode" : "source",
"alias" : "MedicationTreatmentLineLM"
},
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/PractitionerLM",
"mode" : "source",
"alias" : "PractitionerLM"
},
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationOverview",
"mode" : "target",
"alias" : "MedicationOverviewBundle"
},
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationOverviewComposition",
"mode" : "target",
"alias" : "MedicationOverviewComposition"
},
{
"url" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/MedicationTreatmentLine",
"mode" : "target",
"alias" : "MedicationTreatmentLine"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Patient",
"mode" : "target",
"alias" : "Patient"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Practitioner",
"mode" : "target",
"alias" : "Practitioner"
}
],
"group" : [
{
"name" : "MedicationOverviewLMToMedicationOverviewBundle",
"typeMode" : "none",
"documentation" : "---------------------------------------------------------------------------\r\nTop-level group: assemble MedicationOverview Bundle (document)\r\n---------------------------------------------------------------------------",
"input" : [
{
"name" : "src",
"type" : "MedicationOverviewLM",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "MedicationOverviewBundle",
"mode" : "target"
}
],
"rule" : [
{
"name" : "bundleType",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueString" : "document"
}
]
}
]
},
{
"name" : "bundleTimestamp",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "timestamp",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "now()"
}
]
}
]
},
{
"name" : "setEntries",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "bid",
"transform" : "uuid"
},
{
"contextType" : "variable",
"variable" : "cid",
"transform" : "uuid"
},
{
"contextType" : "variable",
"variable" : "pid",
"transform" : "uuid"
}
],
"rule" : [
{
"name" : "bundleIdentifier",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"variable" : "id"
},
{
"context" : "id",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "urn:ietf:rfc:4122"
}
]
},
{
"context" : "id",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "bid"
}
]
}
]
},
{
"name" : "compositionEntry",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "entry",
"variable" : "ce"
},
{
"context" : "ce",
"contextType" : "variable",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "urn:uuid:"
},
{
"valueId" : "cid"
}
]
},
{
"context" : "ce",
"contextType" : "variable",
"element" : "resource",
"variable" : "comp",
"transform" : "create",
"parameter" : [
{
"valueString" : "MedicationOverviewComposition"
}
]
}
],
"rule" : [
{
"name" : "compositionContent",
"source" : [
{
"context" : "src"
}
],
"dependent" : [
{
"name" : "MedicationOverviewLMToComposition",
"variable" : [
"src",
"comp",
"pid",
"tgt"
]
}
]
}
]
},
{
"name" : "patientEntry",
"source" : [
{
"context" : "src",
"element" : "patient",
"variable" : "pref"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "entry",
"variable" : "pe"
},
{
"context" : "pe",
"contextType" : "variable",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "urn:uuid:"
},
{
"valueId" : "pid"
}
]
},
{
"context" : "pe",
"contextType" : "variable",
"element" : "resource",
"variable" : "pat",
"transform" : "create",
"parameter" : [
{
"valueString" : "Patient"
}
]
}
],
"rule" : [
{
"name" : "patientContent",
"source" : [
{
"context" : "pref"
}
],
"dependent" : [
{
"name" : "PatientLMToPatient",
"variable" : [
"pref",
"pat"
]
}
]
}
]
}
]
}
]
},
{
"name" : "MedicationOverviewLMToComposition",
"typeMode" : "none",
"documentation" : "---------------------------------------------------------------------------\r\nMedicationOverviewLM -> MedicationOverviewComposition\r\nReceives the Patient entry's UUID (pid) so subject can reference it.\r\n---------------------------------------------------------------------------",
"input" : [
{
"name" : "src",
"type" : "MedicationOverviewLM",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "MedicationOverviewComposition",
"mode" : "target"
},
{
"name" : "pid",
"mode" : "source"
},
{
"name" : "bundle",
"type" : "MedicationOverviewBundle",
"mode" : "target"
}
],
"rule" : [
{
"name" : "compStatus",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "final"
}
]
}
]
},
{
"name" : "compType",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "cc",
"transform" : "create",
"parameter" : [
{
"valueString" : "Coding"
}
]
},
{
"context" : "cc",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
},
{
"context" : "cc",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "56445-0"
}
]
},
{
"context" : "cc",
"contextType" : "variable",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Medication summary Document"
}
]
},
{
"contextType" : "variable",
"variable" : "ct",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
},
{
"context" : "ct",
"contextType" : "variable",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "cc"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ct"
}
]
}
]
},
{
"name" : "compSubject",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "subj",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
},
{
"context" : "subj",
"contextType" : "variable",
"element" : "reference",
"transform" : "append",
"parameter" : [
{
"valueString" : "urn:uuid:"
},
{
"valueId" : "pid"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "subj"
}
]
}
]
},
{
"name" : "compDate",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "date",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "now()"
}
]
}
]
},
{
"name" : "compTitle",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "title",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Medication Overview"
}
]
}
]
},
{
"name" : "compAuthor",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "au",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
},
{
"context" : "au",
"contextType" : "variable",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Medication Overview generator"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "author",
"transform" : "copy",
"parameter" : [
{
"valueId" : "au"
}
]
}
]
},
{
"name" : "sectionTreatmentLines",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "section",
"variable" : "sect"
}
],
"rule" : [
{
"name" : "sectTitle",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "sect",
"contextType" : "variable",
"element" : "title",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Medication Treatment Lines"
}
]
}
]
},
{
"name" : "sectCode",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "scc",
"transform" : "create",
"parameter" : [
{
"valueString" : "Coding"
}
]
},
{
"context" : "scc",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
},
{
"context" : "scc",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "10160-0"
}
]
},
{
"context" : "scc",
"contextType" : "variable",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "History of Medication use Narrative"
}
]
},
{
"contextType" : "variable",
"variable" : "sc",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
},
{
"context" : "sc",
"contextType" : "variable",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "scc"
}
]
},
{
"context" : "sect",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueId" : "sc"
}
]
}
]
},
{
"name" : "treatmentLines",
"source" : [
{
"context" : "src",
"element" : "medicationTreatmentLine",
"variable" : "lref"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "tid",
"transform" : "uuid"
}
],
"rule" : [
{
"name" : "sectEntry",
"source" : [
{
"context" : "lref"
}
],
"target" : [
{
"context" : "sect",
"contextType" : "variable",
"element" : "entry",
"variable" : "se"
},
{
"context" : "se",
"contextType" : "variable",
"element" : "reference",
"transform" : "append",
"parameter" : [
{
"valueString" : "urn:uuid:"
},
{
"valueId" : "tid"
}
]
}
]
},
{
"name" : "lineEntry",
"source" : [
{
"context" : "lref"
}
],
"target" : [
{
"context" : "bundle",
"contextType" : "variable",
"element" : "entry",
"variable" : "te"
},
{
"context" : "te",
"contextType" : "variable",
"element" : "fullUrl",
"transform" : "append",
"parameter" : [
{
"valueString" : "urn:uuid:"
},
{
"valueId" : "tid"
}
]
},
{
"context" : "te",
"contextType" : "variable",
"element" : "resource",
"variable" : "ms",
"transform" : "create",
"parameter" : [
{
"valueString" : "MedicationTreatmentLine"
}
]
}
],
"rule" : [
{
"name" : "lineContent",
"source" : [
{
"context" : "lref"
}
],
"dependent" : [
{
"name" : "MedicationTreatmentLineLMToMedicationStatement",
"variable" : [
"lref",
"ms",
"pid"
]
}
]
}
]
}
]
}
]
},
{
"name" : "attester",
"source" : [
{
"context" : "src",
"element" : "verification",
"variable" : "v"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "attester",
"variable" : "att"
}
],
"rule" : [
{
"name" : "attMode",
"source" : [
{
"context" : "v"
}
],
"target" : [
{
"context" : "att",
"contextType" : "variable",
"element" : "mode",
"transform" : "copy",
"parameter" : [
{
"valueString" : "professional"
}
]
}
]
},
{
"name" : "attTime",
"source" : [
{
"context" : "v",
"element" : "verificationTime",
"variable" : "vt"
}
],
"target" : [
{
"context" : "att",
"contextType" : "variable",
"element" : "time",
"transform" : "copy",
"parameter" : [
{
"valueId" : "vt"
}
]
}
]
},
{
"name" : "attParty",
"source" : [
{
"context" : "v",
"element" : "practicioner",
"variable" : "pr"
}
],
"target" : [
{
"context" : "att",
"contextType" : "variable",
"element" : "party",
"transform" : "copy",
"parameter" : [
{
"valueId" : "pr"
}
]
}
]
}
]
},
{
"name" : "noteFromComment",
"source" : [
{
"context" : "src",
"element" : "comment",
"variable" : "cm"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "ext",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/5.0/StructureDefinition/extension-Composition.note"
}
]
},
{
"contextType" : "variable",
"variable" : "nt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Annotation"
}
]
}
],
"rule" : [
{
"name" : "noteText",
"source" : [
{
"context" : "cm",
"element" : "commentText",
"variable" : "ctxt"
}
],
"target" : [
{
"context" : "nt",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ctxt"
}
]
}
]
},
{
"name" : "noteTime",
"source" : [
{
"context" : "cm",
"element" : "date",
"variable" : "d"
}
],
"target" : [
{
"context" : "nt",
"contextType" : "variable",
"element" : "time",
"transform" : "copy",
"parameter" : [
{
"valueId" : "d"
}
]
}
]
},
{
"name" : "noteAuthor",
"source" : [
{
"context" : "cm",
"element" : "author",
"variable" : "a"
}
],
"target" : [
{
"context" : "nt",
"contextType" : "variable",
"element" : "author",
"transform" : "copy",
"parameter" : [
{
"valueId" : "a"
}
]
}
]
},
{
"name" : "noteAssign",
"source" : [
{
"context" : "cm"
}
],
"target" : [
{
"context" : "ext",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "nt"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ext"
}
]
}
]
}
]
}
]
},
{
"name" : "PatientLMToPatient",
"typeMode" : "none",
"documentation" : "---------------------------------------------------------------------------\r\nPatientLM -> FHIR Patient\r\n---------------------------------------------------------------------------",
"input" : [
{
"name" : "src",
"type" : "PatientLM",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "Patient",
"mode" : "target"
}
],
"rule" : [
{
"name" : "patIdentifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "id"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "id"
}
]
}
]
},
{
"name" : "patName",
"source" : [
{
"context" : "src",
"element" : "name",
"variable" : "n"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "name",
"transform" : "copy",
"parameter" : [
{
"valueId" : "n"
}
]
}
]
},
{
"name" : "patGender",
"source" : [
{
"context" : "src",
"element" : "gender",
"variable" : "g"
}
],
"rule" : [
{
"name" : "patGenderCoding",
"source" : [
{
"context" : "g",
"element" : "coding",
"variable" : "gc"
}
],
"rule" : [
{
"name" : "patGenderCode",
"source" : [
{
"context" : "gc",
"element" : "code",
"variable" : "gcode"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "gender",
"transform" : "copy",
"parameter" : [
{
"valueId" : "gcode"
}
]
}
]
}
]
}
]
},
{
"name" : "patBirthDate",
"source" : [
{
"context" : "src",
"element" : "dateOfBirth",
"variable" : "d"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "birthDate",
"transform" : "copy",
"parameter" : [
{
"valueId" : "d"
}
]
}
]
}
]
},
{
"name" : "MedicationTreatmentLineLMToMedicationStatement",
"typeMode" : "none",
"documentation" : "---------------------------------------------------------------------------\r\nMedicationTreatmentLineLM -> MedicationTreatmentLine (profile on MedicationStatement, R4)\r\nReceives the Patient entry's UUID (pid) so MS.subject can reference it.\r\n---------------------------------------------------------------------------",
"input" : [
{
"name" : "src",
"type" : "MedicationTreatmentLineLM",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "MedicationTreatmentLine",
"mode" : "target"
},
{
"name" : "pid",
"mode" : "source"
}
],
"rule" : [
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "id"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "id"
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "subj",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
},
{
"context" : "subj",
"contextType" : "variable",
"element" : "reference",
"transform" : "append",
"parameter" : [
{
"valueString" : "urn:uuid:"
},
{
"valueId" : "pid"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "subj"
}
]
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "src",
"element" : "status",
"variable" : "st"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueId" : "st"
}
]
}
]
},
{
"name" : "medicationRef",
"source" : [
{
"context" : "src",
"type" : "Reference",
"element" : "medication",
"variable" : "mr"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "medication",
"transform" : "copy",
"parameter" : [
{
"valueId" : "mr"
}
]
}
]
},
{
"name" : "medicationCC",
"source" : [
{
"context" : "src",
"type" : "CodeableConcept",
"element" : "medication",
"variable" : "mc"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "medication",
"transform" : "copy",
"parameter" : [
{
"valueId" : "mc"
}
]
}
]
},
{
"name" : "effectivePeriod",
"source" : [
{
"context" : "src",
"element" : "effectivePeriod",
"variable" : "ep"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "effective",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ep"
}
]
}
]
},
{
"name" : "recordingMetadata",
"source" : [
{
"context" : "src",
"element" : "recordingMetadata",
"variable" : "rm"
}
],
"rule" : [
{
"name" : "dateAsserted",
"source" : [
{
"context" : "rm",
"element" : "recordedTime",
"variable" : "rt"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "dateAsserted",
"transform" : "copy",
"parameter" : [
{
"valueId" : "rt"
}
]
}
]
},
{
"name" : "informationSource",
"source" : [
{
"context" : "rm",
"element" : "recorder",
"variable" : "rc"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "informationSource",
"transform" : "copy",
"parameter" : [
{
"valueId" : "rc"
}
]
}
]
}
]
},
{
"name" : "reasonIndication",
"source" : [
{
"context" : "src",
"element" : "indication",
"variable" : "ind"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "reasonCode",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ind"
}
]
}
]
},
{
"name" : "reasonIndicationText",
"source" : [
{
"context" : "src",
"element" : "indicationText",
"variable" : "it"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "cc",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
},
{
"context" : "cc",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "it"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "reasonCode",
"transform" : "copy",
"parameter" : [
{
"valueId" : "cc"
}
]
}
]
},
{
"name" : "dosage",
"source" : [
{
"context" : "src",
"element" : "usageInstructions",
"variable" : "ui"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "dosage",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ui"
}
]
}
]
},
{
"name" : "prepInstructions",
"source" : [
{
"context" : "src",
"element" : "preparationInstructions",
"variable" : "pi"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "dos",
"transform" : "create",
"parameter" : [
{
"valueString" : "Dosage"
}
]
},
{
"context" : "dos",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "pi"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "dosage",
"transform" : "copy",
"parameter" : [
{
"valueId" : "dos"
}
]
}
]
},
{
"name" : "lineNote",
"source" : [
{
"context" : "src",
"element" : "comment",
"variable" : "cm"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "nt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Annotation"
}
]
}
],
"rule" : [
{
"name" : "lineNoteText",
"source" : [
{
"context" : "cm",
"element" : "commentText",
"variable" : "ct"
}
],
"target" : [
{
"context" : "nt",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ct"
}
]
}
]
},
{
"name" : "lineNoteTime",
"source" : [
{
"context" : "cm",
"element" : "date",
"variable" : "d"
}
],
"target" : [
{
"context" : "nt",
"contextType" : "variable",
"element" : "time",
"transform" : "copy",
"parameter" : [
{
"valueId" : "d"
}
]
}
]
},
{
"name" : "lineNoteAuthor",
"source" : [
{
"context" : "cm",
"element" : "author",
"variable" : "a"
}
],
"target" : [
{
"context" : "nt",
"contextType" : "variable",
"element" : "author",
"transform" : "copy",
"parameter" : [
{
"valueId" : "a"
}
]
}
]
},
{
"name" : "lineNoteAssign",
"source" : [
{
"context" : "cm"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "note",
"transform" : "copy",
"parameter" : [
{
"valueId" : "nt"
}
]
}
]
}
]
},
{
"name" : "extAdherence",
"source" : [
{
"context" : "src",
"element" : "treatmentStatus",
"variable" : "ts"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "ext",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence"
}
]
},
{
"contextType" : "variable",
"variable" : "e1",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "code"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ts"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e1"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ext"
}
]
}
]
},
{
"name" : "extAdherenceReason",
"source" : [
{
"context" : "src",
"element" : "treatmentStatusReasonCode",
"variable" : "tsr"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "ext",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence"
}
]
},
{
"contextType" : "variable",
"variable" : "e1",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "reason"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "tsr"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e1"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ext"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "src",
"element" : "category",
"variable" : "cat"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "category",
"transform" : "copy",
"parameter" : [
{
"valueId" : "cat"
}
]
}
]
},
{
"name" : "derivedFrom",
"source" : [
{
"context" : "src",
"element" : "derivedFrom",
"variable" : "df"
}
],
"rule" : [
{
"name" : "derivedFromRequest",
"source" : [
{
"context" : "df",
"element" : "request",
"variable" : "rq"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "derivedFrom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "rq"
}
]
}
]
},
{
"name" : "derivedFromStatement",
"source" : [
{
"context" : "df",
"element" : "statement",
"variable" : "stm"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "derivedFrom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "stm"
}
]
}
]
},
{
"name" : "derivedFromDispensation",
"source" : [
{
"context" : "df",
"element" : "dispensation",
"variable" : "dsp"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "derivedFrom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "dsp"
}
]
}
]
},
{
"name" : "derivedFromAdministration",
"source" : [
{
"context" : "df",
"element" : "administration",
"variable" : "adm"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "derivedFrom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "adm"
}
]
}
]
},
{
"name" : "derivedFromOther",
"source" : [
{
"context" : "df",
"element" : "other",
"variable" : "oth"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "derivedFrom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "oth"
}
]
}
]
}
]
},
{
"name" : "extVersion",
"source" : [
{
"context" : "src",
"element" : "version",
"variable" : "v"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "ext",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/StructureDefinition/artifact-version"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ext"
}
]
}
]
},
{
"name" : "extVerification",
"source" : [
{
"context" : "src",
"element" : "verificationInformation",
"variable" : "vi"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "ext",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
}
],
"rule" : [
{
"name" : "viUrl",
"source" : [
{
"context" : "vi"
}
],
"target" : [
{
"context" : "ext",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/ihe-ext-medicationstatement-verificationinformation"
}
]
}
]
},
{
"name" : "viVerifier",
"source" : [
{
"context" : "vi",
"element" : "verifier",
"variable" : "vr"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "e1",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "verifier"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "vr"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e1"
}
]
}
]
},
{
"name" : "viTime",
"source" : [
{
"context" : "vi",
"element" : "verificationTime",
"variable" : "vt"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "e2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e2",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "verificationTime"
}
]
},
{
"context" : "e2",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "vt"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e2"
}
]
}
]
},
{
"name" : "viAssign",
"source" : [
{
"context" : "vi"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ext"
}
]
}
]
}
]
},
{
"name" : "extSubstitution",
"source" : [
{
"context" : "src",
"element" : "substitution",
"variable" : "sub"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "ext",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
}
],
"rule" : [
{
"name" : "subUrl",
"source" : [
{
"context" : "sub"
}
],
"target" : [
{
"context" : "ext",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://profiles.ihe.net/PHARM/MEOW/StructureDefinition/ihe-ext-medicationstatement-substitution"
}
]
}
]
},
{
"name" : "subType",
"source" : [
{
"context" : "sub",
"element" : "substitutionType",
"variable" : "t"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "e1",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "substitutionType"
}
]
},
{
"context" : "e1",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e1"
}
]
}
]
},
{
"name" : "subReason",
"source" : [
{
"context" : "sub",
"element" : "substitutionTypeReason",
"variable" : "r"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "e2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e2",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "substitutionTypeReason"
}
]
},
{
"context" : "e2",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "r"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e2"
}
]
}
]
},
{
"name" : "subReasonText",
"source" : [
{
"context" : "sub",
"element" : "substitutionTypeReasonText",
"variable" : "rt"
}
],
"target" : [
{
"contextType" : "variable",
"variable" : "e3",
"transform" : "create",
"parameter" : [
{
"valueString" : "Extension"
}
]
},
{
"context" : "e3",
"contextType" : "variable",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "substitutionTypeReasonText"
}
]
},
{
"context" : "e3",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "rt"
}
]
},
{
"context" : "ext",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e3"
}
]
}
]
},
{
"name" : "subAssign",
"source" : [
{
"context" : "sub"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ext"
}
]
}
]
}
]
}
]
},
{
"name" : "PractitionerLMToPractitioner",
"typeMode" : "none",
"documentation" : "---------------------------------------------------------------------------\r\nPractitionerLM -> FHIR Practitioner\r\n---------------------------------------------------------------------------",
"input" : [
{
"name" : "src",
"type" : "PractitionerLM",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "Practitioner",
"mode" : "target"
}
],
"rule" : [
{
"name" : "practIdentifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "id"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "id"
}
]
}
]
},
{
"name" : "practName",
"source" : [
{
"context" : "src",
"element" : "name",
"variable" : "n"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "name",
"transform" : "copy",
"parameter" : [
{
"valueId" : "n"
}
]
}
]
}
]
}
]
}