German Practice Management FHIR Profiles (R4)
0.90.0 - STU1 Germany

German Practice Management FHIR Profiles (R4) - Local Development build (v0.90.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: Upper-arm injection Job StructureMap (example) - JSON Representation

Active as of 2026-07-29

Raw json | Download

{
  "resourceType" : "StructureMap",
  "id" : "map-upper-arm-injection",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap map-upper-arm-injection</b></p><a name=\"map-upper-arm-injection\"> </a><a name=\"hcmap-upper-arm-injection\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> &quot;</span>https://fhir.cognovis.de/praxis/StructureMap/map-upper-arm-injection<span style=\"color: navy\">&quot; = &quot;</span>MapUpperArmInjection<span style=\"color: navy\">&quot;\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">EXAMPLE-ONLY worked StructureMap for the upper-arm injection Job (GOÄ 252). Not a curated production binding discovery artifact. Executed by the bounded R4 StructureMap rule-tree interpreter. Composition/Condition/Observation/Procedure/ChargeItem candidates. QR.subject/.encounter/.author/.authored supply Composition context (never fabricated). ChargeItem.code is Job-fixed GOÄ 252 (http://fhir.de/CodeSystem/bäk/goä#252); definitionCanonical from cid.primary answer.valueUri only. Procedure carries instantiatesCanonical to the Job; basedOn only when a real ServiceRequest exists (separate fixture, not this map). Binding identity: (job-upper-arm-injection|0.90.0, q-upper-arm-injection|0.90.0, map-upper-arm-injection|0.90.0).</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R4/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">&quot; </span><b>alias </b>qr <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"http://hl7.org/fhir/R4/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">&quot; </span><b>alias </b>bundle <b>as </b><b>target</b>\r\n\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Bind QuestionnaireResponse.subject/.encounter/.author/.authored (standard QR fields; not duplicated Questionnaire items), then invoke fillCondition / fillDocumentation / fillProcedure / fillChargeItems / fillComposition.</span>\r\n<b>group </b>main<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span>bundle.type = <span style=\"color: blue\">'collection'</span> <i>&quot;bundleType&quot;</i><span style=\"color: navy\">;</span>\r\n  qr.subject<b> as </b><span style=\"color: maroon\">subjectRef</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.encounter<b> as </b><span style=\"color: maroon\">encRef</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      qr.author<b> as </b><span style=\"color: maroon\">authorRef</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr.authored<b> as </b><span style=\"color: maroon\">authoredDt</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          qr.item<b> as </b><span style=\"color: maroon\">diagCodingItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'diag.icd'<span style=\"color: navy\">)</span><b> then </b>fillCondition<span style=\"color: navy\">(</span><span style=\"color: maroon\">diagCodingItem</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">)</span> <i>&quot;invokeFillCondition&quot;</i><span style=\"color: navy\">;</span>\r\n          qr.item<b> as </b><span style=\"color: maroon\">noteItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'doc.note'<span style=\"color: navy\">)</span><b> then </b>fillDocumentation<span style=\"color: navy\">(</span><span style=\"color: maroon\">noteItem</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">)</span> <i>&quot;invokeFillDocumentation&quot;</i><span style=\"color: navy\">;</span>\r\n          qr.item<b> as </b><span style=\"color: maroon\">perfItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'svc.performed' and answer.valueBoolean = true<span style=\"color: navy\">)</span><b> then </b>fillProcedure<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">)</span> <i>&quot;invokeFillProcedure&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<b> as </b><span style=\"color: maroon\">qrForCharges</span><b> then </b>fillChargeItems<span style=\"color: navy\">(</span><span style=\"color: maroon\">qrForCharges</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">encRef</span><span style=\"color: navy\">)</span> <i>&quot;invokeFillChargeItems&quot;</i><span style=\"color: navy\">;</span>\r\n          qr<b> as </b><span style=\"color: maroon\">qrForComp</span><b> then </b>fillComposition<span style=\"color: navy\">(</span><span style=\"color: maroon\">qrForComp</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">bundle</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">encRef</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">authorRef</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">authoredDt</span><span style=\"color: navy\">)</span> <i>&quot;invokeFillComposition&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;bindAuthoredFromQr&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;bindAuthorFromQr&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;bindEncounterFromQr&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bindSubjectFromQr&quot;</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\">diag.icd answer.valueCoding -&gt; Condition; verificationStatus=unconfirmed; subject from QR.subject.</span>\r\n<b>group </b>fillCondition<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">diagItem</span>, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle, <b>source</b> <span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  diagItem.answer<b> as </b><span style=\"color: maroon\">ans</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    ans.value<span style=\"color: navy\"> : </span>Coding<b> as </b><span style=\"color: maroon\">coding</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">condEntry</span><span style=\"color: navy\">, </span> condEntry.fullUrl = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000001'</span><span style=\"color: navy\">, </span> condEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Condition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">cond</span><span style=\"color: navy\">, </span> cond.code = <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\">condCode</span><span style=\"color: navy\">, </span> condCode.coding = <span style=\"color: maroon\">coding</span><span style=\"color: navy\">, </span> cond.verificationStatus = <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\">ver</span><span style=\"color: navy\">, </span> ver.coding = <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\">verCoding</span><span style=\"color: navy\">, </span> verCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-ver-status'</span><span style=\"color: navy\">, </span> verCoding.code = <span style=\"color: blue\">'unconfirmed'</span><span style=\"color: navy\">, </span> cond.clinicalStatus = <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\">clin</span><span style=\"color: navy\">, </span> clin.coding = <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\">clinCoding</span><span style=\"color: navy\">, </span> clinCoding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-clinical'</span><span style=\"color: navy\">, </span> clinCoding.code = <span style=\"color: blue\">'active'</span><span style=\"color: navy\">, </span> cond.subject = <span style=\"color: maroon\">subjectRef</span> <i>&quot;codingValue&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;conditionFromValueCoding&quot;</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\">doc.note answer.valueString -&gt; Observation.value (serialized as valueString) status=preliminary.</span>\r\n<b>group </b>fillDocumentation<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">noteItem</span>, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle, <b>source</b> <span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  noteItem.answer<b> as </b><span style=\"color: maroon\">ans</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    ans.value<span style=\"color: navy\"> : </span>string<b> as </b><span style=\"color: maroon\">text</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obsEntry</span><span style=\"color: navy\">, </span> obsEntry.fullUrl = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000002'</span><span style=\"color: navy\">, </span> obsEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obs</span><span style=\"color: navy\">, </span> obs.status = <span style=\"color: blue\">'preliminary'</span><span style=\"color: navy\">, </span> obs.code = <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\">obsCode</span><span style=\"color: navy\">, </span> obsCode.coding = <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\">obsCoding</span><span style=\"color: navy\">, </span> obsCoding.system = <span style=\"color: blue\">'http://snomed.info/sct'</span><span style=\"color: navy\">, </span> obsCoding.code = <span style=\"color: blue\">'371524004'</span><span style=\"color: navy\">, </span> obs.value = <span style=\"color: maroon\">text</span><span style=\"color: navy\">, </span> obs.subject = <span style=\"color: maroon\">subjectRef</span> <i>&quot;stringValue&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;obsFromValueString&quot;</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\">bodySiteFromValueCoding + SNOMED laterality; status=preparation; reasonReference from diag.condition.</span>\r\n<b>group </b>fillProcedure<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle, <b>source</b> <span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr.item<b> as </b><span style=\"color: maroon\">siteItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'site.bodySite'<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span>qr.item<b> as </b><span style=\"color: maroon\">latItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'site.laterality'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    siteItem.answer<b> as </b><span style=\"color: maroon\">siteAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      siteAns.value<span style=\"color: navy\"> : </span>Coding<b> as </b><span style=\"color: maroon\">siteCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        latItem.answer<b> as </b><span style=\"color: maroon\">latAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          latAns.value<span style=\"color: navy\"> : </span>Coding<b> as </b><span style=\"color: maroon\">latCoding</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">procEntry</span><span style=\"color: navy\">, </span> procEntry.fullUrl = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000003'</span><span style=\"color: navy\">, </span> procEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Procedure'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">proc</span><span style=\"color: navy\">, </span> proc.status = <span style=\"color: blue\">'preparation'</span><span style=\"color: navy\">, </span> proc.code = <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\">procCode</span><span style=\"color: navy\">, </span> procCode.coding = <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\">procCoding</span><span style=\"color: navy\">, </span> procCoding.system = <span style=\"color: blue\">'http://snomed.info/sct'</span><span style=\"color: navy\">, </span> procCoding.code = <span style=\"color: blue\">'59108006'</span><span style=\"color: navy\">, </span> proc.subject = <span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">, </span> proc.instantiatesCanonical = <span style=\"color: blue\">'https://fhir.cognovis.de/praxis/PlanDefinition/job-upper-arm-injection|0.90.0'</span><span style=\"color: navy\">, </span> proc.bodySite = <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\">bs</span><span style=\"color: navy\">, </span> bs.coding = <span style=\"color: maroon\">siteCoding</span><span style=\"color: navy\">, </span> bs.coding = <span style=\"color: maroon\">latCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            qr.item<b> as </b><span style=\"color: maroon\">diagRefItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'diag.condition'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              diagRefItem.answer<b> as </b><span style=\"color: maroon\">drAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span>                drAns.value<span style=\"color: navy\"> : </span>Reference<b> as </b><span style=\"color: maroon\">reasonRef</span><span style=\"color: navy\"><b> -&gt; </b></span>proc.reasonReference = <span style=\"color: maroon\">reasonRef</span> <i>&quot;diagRefValue&quot;</i><span style=\"color: navy\">;</span>\r\n              <span style=\"color: navy\">}</span> <i>&quot;diagRefAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;reasonFromConditionRef&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;latValue&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;latAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;siteValue&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;siteAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;bodySiteFromValueCoding&quot;</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\">One ChargeItem per runtime contract (cid.primary answer.valueUri). ChargeItem.code is the Job-fixed GOÄ 252 Coding (http://fhir.de/CodeSystem/bäk/goä), never derived from CID identity or service codes. context from QR.encounter; subject from QR.subject; 1:n service lineage when performed; supportingInformation from diag.condition.</span>\r\n<b>group </b>fillChargeItems<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle, <b>source</b> <span style=\"color: maroon\">subjectRef</span>, <b>source</b> <span style=\"color: maroon\">encRef</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr.item<b> as </b><span style=\"color: maroon\">cidItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'cid.primary'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    cidItem.answer<b> as </b><span style=\"color: maroon\">cidAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span>      cidAns.value<span style=\"color: navy\"> : </span>uri<b> as </b><span style=\"color: maroon\">primaryCid</span><span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">chg1Entry</span><span style=\"color: navy\">, </span> chg1Entry.fullUrl = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000004'</span><span style=\"color: navy\">, </span> chg1Entry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'ChargeItem'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">chg1</span><span style=\"color: navy\">, </span> chg1.status = <span style=\"color: blue\">'planned'</span><span style=\"color: navy\">, </span> chg1.subject = <span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">, </span> chg1.context = <span style=\"color: maroon\">encRef</span><span style=\"color: navy\">, </span> chg1.code = <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\">chgCode</span><span style=\"color: navy\">, </span> chgCode.coding = <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\">fixedCoding</span><span style=\"color: navy\">, </span> fixedCoding.system = <span style=\"color: blue\">'http://fhir.de/CodeSystem/bäk/goä'</span><span style=\"color: navy\">, </span> fixedCoding.code = <span style=\"color: blue\">'252'</span><span style=\"color: navy\">, </span> fixedCoding.display = <span style=\"color: blue\">'Injektion, s.c./s.m./i.c./i.m.'</span><span style=\"color: navy\">, </span> chg1.definitionCanonical = <span style=\"color: maroon\">primaryCid</span><span style=\"color: navy\">, </span> chg1.quantity = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">qty</span><span style=\"color: navy\">, </span> qty.value = <span style=\"color: blue\">1</span><b> then</b><span style=\"color: navy\"> {\r\n</span>        qr.item<b> as </b><span style=\"color: maroon\">amtItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'fee.amount'<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span>qr.item<b> as </b><span style=\"color: maroon\">curItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'fee.currency'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          amtItem.answer<b> as </b><span style=\"color: maroon\">amtAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            amtAns.value<span style=\"color: navy\"> : </span>decimal<b> as </b><span style=\"color: maroon\">amount</span><b> then</b><span style=\"color: navy\"> {\r\n</span>              curItem.answer<b> as </b><span style=\"color: maroon\">curAns</span><b> then</b><span style=\"color: navy\"> {\r\n</span>                curAns.value<span style=\"color: navy\"> : </span>Coding<b> as </b><span style=\"color: maroon\">curCoding</span><b> then</b><span style=\"color: navy\"> {\r\n</span>                  curCoding.code<b> as </b><span style=\"color: maroon\">currencyCode</span><span style=\"color: navy\"><b> -&gt; </b></span> chg1.priceOverride = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Money'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">money</span><span style=\"color: navy\">, </span> money.value = <span style=\"color: maroon\">amount</span><span style=\"color: navy\">, </span> money.currency = <span style=\"color: maroon\">currencyCode</span> <i>&quot;currencyCode&quot;</i><span style=\"color: navy\">;</span>\r\n                <span style=\"color: navy\">}</span> <i>&quot;currencyValue&quot;</i><span style=\"color: navy\">;</span>\r\n              <span style=\"color: navy\">}</span> <i>&quot;currencyAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n            <span style=\"color: navy\">}</span> <i>&quot;amountValue&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;amountAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;moneyFromParts&quot;</i><span style=\"color: navy\">;</span>\r\n        qr.item<b> as </b><span style=\"color: maroon\">perfItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'svc.performed' and answer.valueBoolean = true<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> chg1.service = <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\">svcProc</span><span style=\"color: navy\">, </span> svcProc.reference = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000003'</span><span style=\"color: navy\">, </span> chg1.service = <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\">svcObs</span><span style=\"color: navy\">, </span> svcObs.reference = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000002'</span> <i>&quot;serviceWhenPerformedPrimary&quot;</i><span style=\"color: navy\">;</span>\r\n        qr.item<b> as </b><span style=\"color: maroon\">diagRefItem2</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'diag.condition'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span>          diagRefItem2.answer<b> as </b><span style=\"color: maroon\">dr2Ans</span><b> then</b><span style=\"color: navy\"> {\r\n</span>            dr2Ans.value<span style=\"color: navy\"> : </span>Reference<b> as </b><span style=\"color: maroon\">reasonRef2</span><span style=\"color: navy\"><b> -&gt; </b></span>chg1.supportingInformation = <span style=\"color: maroon\">reasonRef2</span> <i>&quot;dr2Value&quot;</i><span style=\"color: navy\">;</span>\r\n          <span style=\"color: navy\">}</span> <i>&quot;dr2Answer&quot;</i><span style=\"color: navy\">;</span>\r\n        <span style=\"color: navy\">}</span> <i>&quot;supportingInfoFromConditionRef&quot;</i><span style=\"color: navy\">;</span>\r\n      <span style=\"color: navy\">}</span> <i>&quot;cidValue&quot;</i><span style=\"color: navy\">;</span>\r\n    <span style=\"color: navy\">}</span> <i>&quot;cidAnswer&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;primaryFromValueUri&quot;</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\">Composition proposal (status=preliminary). subject/encounter/author/date from QR.subject/.encounter/.author/.authored only — never fabricated. Sections Reference generated Observation/ChargeItem UUIDs; optional Procedure/Condition sections when those outputs are produced.</span>\r\n<b>group </b>fillComposition<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">bundle</span><span style=\"color: navy\"> : </span>Bundle, <b>source</b> <span style=\"color: maroon\">subjectRef</span>, <b>source</b> <span style=\"color: maroon\">encRef</span>, <b>source</b> <span style=\"color: maroon\">authorRef</span>, <b>source</b> <span style=\"color: maroon\">authoredDt</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  qr<span style=\"color: navy\"><b> -&gt; </b></span> bundle.entry = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">compEntry</span><span style=\"color: navy\">, </span> compEntry.fullUrl = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000006'</span><span style=\"color: navy\">, </span> compEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Composition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">comp</span><span style=\"color: navy\">, </span> comp.status = <span style=\"color: blue\">'preliminary'</span><span style=\"color: navy\">, </span> comp.type = <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\">compType</span><span style=\"color: navy\">, </span> compType.coding = <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\">compTypeCoding</span><span style=\"color: navy\">, </span> compTypeCoding.system = <span style=\"color: blue\">'http://loinc.org'</span><span style=\"color: navy\">, </span> compTypeCoding.code = <span style=\"color: blue\">'11506-3'</span><span style=\"color: navy\">, </span> compTypeCoding.display = <span style=\"color: blue\">'Progress note'</span><span style=\"color: navy\">, </span> comp.title = <span style=\"color: blue\">'Upper-arm injection visit - pre-approval proposal'</span><span style=\"color: navy\">, </span> comp.subject = <span style=\"color: maroon\">subjectRef</span><span style=\"color: navy\">, </span> comp.encounter = <span style=\"color: maroon\">encRef</span><span style=\"color: navy\">, </span> comp.author = <span style=\"color: maroon\">authorRef</span><span style=\"color: navy\">, </span> comp.date = <span style=\"color: maroon\">authoredDt</span><span style=\"color: navy\">, </span> comp.section = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">secDoc</span><span style=\"color: navy\">, </span> secDoc.title = <span style=\"color: blue\">'Documentation'</span><span style=\"color: navy\">, </span> secDoc.entry = <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\">docEntry</span><span style=\"color: navy\">, </span> docEntry.reference = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000002'</span><span style=\"color: navy\">, </span> comp.section = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">secBill</span><span style=\"color: navy\">, </span> secBill.title = <span style=\"color: blue\">'Billing proposal'</span><span style=\"color: navy\">, </span> secBill.entry = <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\">billEntry</span><span style=\"color: navy\">, </span> billEntry.reference = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000004'</span><b> then</b><span style=\"color: navy\"> {\r\n</span>    qr.item<b> as </b><span style=\"color: maroon\">perfItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'svc.performed' and answer.valueBoolean = true<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> comp.section = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">secProc</span><span style=\"color: navy\">, </span> secProc.title = <span style=\"color: blue\">'Procedure proposal'</span><span style=\"color: navy\">, </span> secProc.entry = <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\">procEntryRef</span><span style=\"color: navy\">, </span> procEntryRef.reference = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000003'</span> <i>&quot;sectionProcedureWhenPerformed&quot;</i><span style=\"color: navy\">;</span>\r\n    qr.item<b> as </b><span style=\"color: maroon\">diagCodingItem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'diag.icd'<span style=\"color: navy\">)</span><span style=\"color: navy\"><b> -&gt; </b></span> comp.section = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">secDx</span><span style=\"color: navy\">, </span> secDx.title = <span style=\"color: blue\">'Diagnosis proposal'</span><span style=\"color: navy\">, </span> secDx.entry = <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\">dxEntry</span><span style=\"color: navy\">, </span> dxEntry.reference = <span style=\"color: blue\">'urn:uuid:00000000-0000-4000-8000-000000000001'</span> <i>&quot;sectionDiagnosisWhenCoding&quot;</i><span style=\"color: navy\">;</span>\r\n  <span style=\"color: navy\">}</span> <i>&quot;compositionShell&quot;</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
  },
  "url" : "https://fhir.cognovis.de/praxis/StructureMap/map-upper-arm-injection",
  "identifier" : [
    {
      "system" : "urn:ietf:rfc:3986",
      "value" : "urn:oid:2.16.840.1.113883.3.7985.43.1"
    }
  ],
  "version" : "0.90.0",
  "name" : "MapUpperArmInjection",
  "title" : "Upper-arm injection Job — QuestionnaireResponse to pre-approval candidate Bundle",
  "status" : "active",
  "experimental" : true,
  "date" : "2026-07-29T13:00:36+02:00",
  "publisher" : "cognovis GmbH",
  "contact" : [
    {
      "name" : "cognovis GmbH",
      "telecom" : [
        {
          "system" : "url",
          "value" : "https://www.cognovis.de"
        },
        {
          "system" : "email",
          "value" : "info@cognovis.de"
        }
      ]
    }
  ],
  "description" : "EXAMPLE-ONLY worked StructureMap for the upper-arm injection Job (GOÄ 252). Not a curated production binding discovery artifact. Executed by the bounded R4 StructureMap rule-tree interpreter. Composition/Condition/Observation/Procedure/ChargeItem candidates. QR.subject/.encounter/.author/.authored supply Composition context (never fabricated). ChargeItem.code is Job-fixed GOÄ 252 (http://fhir.de/CodeSystem/bäk/goä#252); definitionCanonical from cid.primary answer.valueUri only. Procedure carries instantiatesCanonical to the Job; basedOn only when a real ServiceRequest exists (separate fixture, not this map). Binding identity: (job-upper-arm-injection|0.90.0, q-upper-arm-injection|0.90.0, map-upper-arm-injection|0.90.0).",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "DE",
          "display" : "Germany"
        }
      ]
    }
  ],
  "structure" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
      "mode" : "source",
      "alias" : "qr"
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
      "mode" : "target",
      "alias" : "bundle"
    }
  ],
  "group" : [
    {
      "name" : "main",
      "typeMode" : "none",
      "documentation" : "Bind QuestionnaireResponse.subject/.encounter/.author/.authored (standard QR fields; not duplicated Questionnaire items), then invoke fillCondition / fillDocumentation / fillProcedure / fillChargeItems / fillComposition.",
      "input" : [
        {
          "name" : "qr",
          "type" : "QuestionnaireResponse",
          "mode" : "source"
        },
        {
          "name" : "bundle",
          "type" : "Bundle",
          "mode" : "target"
        }
      ],
      "rule" : [
        {
          "name" : "bundleType",
          "source" : [
            {
              "context" : "qr"
            }
          ],
          "target" : [
            {
              "context" : "bundle",
              "contextType" : "variable",
              "element" : "type",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "collection"
                }
              ]
            }
          ]
        },
        {
          "name" : "bindSubjectFromQr",
          "source" : [
            {
              "context" : "qr",
              "element" : "subject",
              "variable" : "subjectRef"
            }
          ],
          "rule" : [
            {
              "name" : "bindEncounterFromQr",
              "source" : [
                {
                  "context" : "qr",
                  "element" : "encounter",
                  "variable" : "encRef"
                }
              ],
              "rule" : [
                {
                  "name" : "bindAuthorFromQr",
                  "source" : [
                    {
                      "context" : "qr",
                      "element" : "author",
                      "variable" : "authorRef"
                    }
                  ],
                  "rule" : [
                    {
                      "name" : "bindAuthoredFromQr",
                      "source" : [
                        {
                          "context" : "qr",
                          "element" : "authored",
                          "variable" : "authoredDt"
                        }
                      ],
                      "rule" : [
                        {
                          "name" : "invokeFillCondition",
                          "source" : [
                            {
                              "context" : "qr",
                              "element" : "item",
                              "variable" : "diagCodingItem",
                              "condition" : "linkId = 'diag.icd'"
                            }
                          ],
                          "dependent" : [
                            {
                              "name" : "fillCondition",
                              "variable" : [
                                "diagCodingItem",
                                "bundle",
                                "subjectRef"
                              ]
                            }
                          ]
                        },
                        {
                          "name" : "invokeFillDocumentation",
                          "source" : [
                            {
                              "context" : "qr",
                              "element" : "item",
                              "variable" : "noteItem",
                              "condition" : "linkId = 'doc.note'"
                            }
                          ],
                          "dependent" : [
                            {
                              "name" : "fillDocumentation",
                              "variable" : [
                                "noteItem",
                                "bundle",
                                "subjectRef"
                              ]
                            }
                          ]
                        },
                        {
                          "name" : "invokeFillProcedure",
                          "source" : [
                            {
                              "context" : "qr",
                              "element" : "item",
                              "variable" : "perfItem",
                              "condition" : "linkId = 'svc.performed' and answer.valueBoolean = true"
                            }
                          ],
                          "dependent" : [
                            {
                              "name" : "fillProcedure",
                              "variable" : [
                                "qr",
                                "bundle",
                                "subjectRef"
                              ]
                            }
                          ]
                        },
                        {
                          "name" : "invokeFillChargeItems",
                          "source" : [
                            {
                              "context" : "qr",
                              "variable" : "qrForCharges"
                            }
                          ],
                          "dependent" : [
                            {
                              "name" : "fillChargeItems",
                              "variable" : [
                                "qrForCharges",
                                "bundle",
                                "subjectRef",
                                "encRef"
                              ]
                            }
                          ]
                        },
                        {
                          "name" : "invokeFillComposition",
                          "source" : [
                            {
                              "context" : "qr",
                              "variable" : "qrForComp"
                            }
                          ],
                          "dependent" : [
                            {
                              "name" : "fillComposition",
                              "variable" : [
                                "qrForComp",
                                "bundle",
                                "subjectRef",
                                "encRef",
                                "authorRef",
                                "authoredDt"
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name" : "fillCondition",
      "typeMode" : "none",
      "documentation" : "diag.icd answer.valueCoding -> Condition; verificationStatus=unconfirmed; subject from QR.subject.",
      "input" : [
        {
          "name" : "diagItem",
          "mode" : "source"
        },
        {
          "name" : "bundle",
          "type" : "Bundle",
          "mode" : "target"
        },
        {
          "name" : "subjectRef",
          "mode" : "source"
        }
      ],
      "rule" : [
        {
          "name" : "conditionFromValueCoding",
          "source" : [
            {
              "context" : "diagItem",
              "element" : "answer",
              "variable" : "ans"
            }
          ],
          "rule" : [
            {
              "name" : "codingValue",
              "source" : [
                {
                  "context" : "ans",
                  "type" : "Coding",
                  "element" : "value",
                  "variable" : "coding"
                }
              ],
              "target" : [
                {
                  "context" : "bundle",
                  "contextType" : "variable",
                  "element" : "entry",
                  "variable" : "condEntry",
                  "transform" : "create"
                },
                {
                  "context" : "condEntry",
                  "contextType" : "variable",
                  "element" : "fullUrl",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000001"
                    }
                  ]
                },
                {
                  "context" : "condEntry",
                  "contextType" : "variable",
                  "element" : "resource",
                  "variable" : "cond",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Condition"
                    }
                  ]
                },
                {
                  "context" : "cond",
                  "contextType" : "variable",
                  "element" : "code",
                  "variable" : "condCode",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "CodeableConcept"
                    }
                  ]
                },
                {
                  "context" : "condCode",
                  "contextType" : "variable",
                  "element" : "coding",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "coding"
                    }
                  ]
                },
                {
                  "context" : "cond",
                  "contextType" : "variable",
                  "element" : "verificationStatus",
                  "variable" : "ver",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "CodeableConcept"
                    }
                  ]
                },
                {
                  "context" : "ver",
                  "contextType" : "variable",
                  "element" : "coding",
                  "variable" : "verCoding",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Coding"
                    }
                  ]
                },
                {
                  "context" : "verCoding",
                  "contextType" : "variable",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "http://terminology.hl7.org/CodeSystem/condition-ver-status"
                    }
                  ]
                },
                {
                  "context" : "verCoding",
                  "contextType" : "variable",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "unconfirmed"
                    }
                  ]
                },
                {
                  "context" : "cond",
                  "contextType" : "variable",
                  "element" : "clinicalStatus",
                  "variable" : "clin",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "CodeableConcept"
                    }
                  ]
                },
                {
                  "context" : "clin",
                  "contextType" : "variable",
                  "element" : "coding",
                  "variable" : "clinCoding",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Coding"
                    }
                  ]
                },
                {
                  "context" : "clinCoding",
                  "contextType" : "variable",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "http://terminology.hl7.org/CodeSystem/condition-clinical"
                    }
                  ]
                },
                {
                  "context" : "clinCoding",
                  "contextType" : "variable",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "active"
                    }
                  ]
                },
                {
                  "context" : "cond",
                  "contextType" : "variable",
                  "element" : "subject",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "subjectRef"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name" : "fillDocumentation",
      "typeMode" : "none",
      "documentation" : "doc.note answer.valueString -> Observation.value (serialized as valueString) status=preliminary.",
      "input" : [
        {
          "name" : "noteItem",
          "mode" : "source"
        },
        {
          "name" : "bundle",
          "type" : "Bundle",
          "mode" : "target"
        },
        {
          "name" : "subjectRef",
          "mode" : "source"
        }
      ],
      "rule" : [
        {
          "name" : "obsFromValueString",
          "source" : [
            {
              "context" : "noteItem",
              "element" : "answer",
              "variable" : "ans"
            }
          ],
          "rule" : [
            {
              "name" : "stringValue",
              "source" : [
                {
                  "context" : "ans",
                  "type" : "string",
                  "element" : "value",
                  "variable" : "text"
                }
              ],
              "target" : [
                {
                  "context" : "bundle",
                  "contextType" : "variable",
                  "element" : "entry",
                  "variable" : "obsEntry",
                  "transform" : "create"
                },
                {
                  "context" : "obsEntry",
                  "contextType" : "variable",
                  "element" : "fullUrl",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000002"
                    }
                  ]
                },
                {
                  "context" : "obsEntry",
                  "contextType" : "variable",
                  "element" : "resource",
                  "variable" : "obs",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Observation"
                    }
                  ]
                },
                {
                  "context" : "obs",
                  "contextType" : "variable",
                  "element" : "status",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "preliminary"
                    }
                  ]
                },
                {
                  "context" : "obs",
                  "contextType" : "variable",
                  "element" : "code",
                  "variable" : "obsCode",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "CodeableConcept"
                    }
                  ]
                },
                {
                  "context" : "obsCode",
                  "contextType" : "variable",
                  "element" : "coding",
                  "variable" : "obsCoding",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Coding"
                    }
                  ]
                },
                {
                  "context" : "obsCoding",
                  "contextType" : "variable",
                  "element" : "system",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "http://snomed.info/sct"
                    }
                  ]
                },
                {
                  "context" : "obsCoding",
                  "contextType" : "variable",
                  "element" : "code",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "371524004"
                    }
                  ]
                },
                {
                  "context" : "obs",
                  "contextType" : "variable",
                  "element" : "value",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "text"
                    }
                  ]
                },
                {
                  "context" : "obs",
                  "contextType" : "variable",
                  "element" : "subject",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueId" : "subjectRef"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name" : "fillProcedure",
      "typeMode" : "none",
      "documentation" : "bodySiteFromValueCoding + SNOMED laterality; status=preparation; reasonReference from diag.condition.",
      "input" : [
        {
          "name" : "qr",
          "type" : "QuestionnaireResponse",
          "mode" : "source"
        },
        {
          "name" : "bundle",
          "type" : "Bundle",
          "mode" : "target"
        },
        {
          "name" : "subjectRef",
          "mode" : "source"
        }
      ],
      "rule" : [
        {
          "name" : "bodySiteFromValueCoding",
          "source" : [
            {
              "context" : "qr",
              "element" : "item",
              "variable" : "siteItem",
              "condition" : "linkId = 'site.bodySite'"
            },
            {
              "context" : "qr",
              "element" : "item",
              "variable" : "latItem",
              "condition" : "linkId = 'site.laterality'"
            }
          ],
          "rule" : [
            {
              "name" : "siteAnswer",
              "source" : [
                {
                  "context" : "siteItem",
                  "element" : "answer",
                  "variable" : "siteAns"
                }
              ],
              "rule" : [
                {
                  "name" : "siteValue",
                  "source" : [
                    {
                      "context" : "siteAns",
                      "type" : "Coding",
                      "element" : "value",
                      "variable" : "siteCoding"
                    }
                  ],
                  "rule" : [
                    {
                      "name" : "latAnswer",
                      "source" : [
                        {
                          "context" : "latItem",
                          "element" : "answer",
                          "variable" : "latAns"
                        }
                      ],
                      "rule" : [
                        {
                          "name" : "latValue",
                          "source" : [
                            {
                              "context" : "latAns",
                              "type" : "Coding",
                              "element" : "value",
                              "variable" : "latCoding"
                            }
                          ],
                          "target" : [
                            {
                              "context" : "bundle",
                              "contextType" : "variable",
                              "element" : "entry",
                              "variable" : "procEntry",
                              "transform" : "create"
                            },
                            {
                              "context" : "procEntry",
                              "contextType" : "variable",
                              "element" : "fullUrl",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000003"
                                }
                              ]
                            },
                            {
                              "context" : "procEntry",
                              "contextType" : "variable",
                              "element" : "resource",
                              "variable" : "proc",
                              "transform" : "create",
                              "parameter" : [
                                {
                                  "valueString" : "Procedure"
                                }
                              ]
                            },
                            {
                              "context" : "proc",
                              "contextType" : "variable",
                              "element" : "status",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueString" : "preparation"
                                }
                              ]
                            },
                            {
                              "context" : "proc",
                              "contextType" : "variable",
                              "element" : "code",
                              "variable" : "procCode",
                              "transform" : "create",
                              "parameter" : [
                                {
                                  "valueString" : "CodeableConcept"
                                }
                              ]
                            },
                            {
                              "context" : "procCode",
                              "contextType" : "variable",
                              "element" : "coding",
                              "variable" : "procCoding",
                              "transform" : "create",
                              "parameter" : [
                                {
                                  "valueString" : "Coding"
                                }
                              ]
                            },
                            {
                              "context" : "procCoding",
                              "contextType" : "variable",
                              "element" : "system",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueString" : "http://snomed.info/sct"
                                }
                              ]
                            },
                            {
                              "context" : "procCoding",
                              "contextType" : "variable",
                              "element" : "code",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueString" : "59108006"
                                }
                              ]
                            },
                            {
                              "context" : "proc",
                              "contextType" : "variable",
                              "element" : "subject",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueId" : "subjectRef"
                                }
                              ]
                            },
                            {
                              "context" : "proc",
                              "contextType" : "variable",
                              "element" : "instantiatesCanonical",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueString" : "https://fhir.cognovis.de/praxis/PlanDefinition/job-upper-arm-injection|0.90.0"
                                }
                              ]
                            },
                            {
                              "context" : "proc",
                              "contextType" : "variable",
                              "element" : "bodySite",
                              "variable" : "bs",
                              "transform" : "create",
                              "parameter" : [
                                {
                                  "valueString" : "CodeableConcept"
                                }
                              ]
                            },
                            {
                              "context" : "bs",
                              "contextType" : "variable",
                              "element" : "coding",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueId" : "siteCoding"
                                }
                              ]
                            },
                            {
                              "context" : "bs",
                              "contextType" : "variable",
                              "element" : "coding",
                              "transform" : "copy",
                              "parameter" : [
                                {
                                  "valueId" : "latCoding"
                                }
                              ]
                            }
                          ],
                          "rule" : [
                            {
                              "name" : "reasonFromConditionRef",
                              "source" : [
                                {
                                  "context" : "qr",
                                  "element" : "item",
                                  "variable" : "diagRefItem",
                                  "condition" : "linkId = 'diag.condition'"
                                }
                              ],
                              "rule" : [
                                {
                                  "name" : "diagRefAnswer",
                                  "source" : [
                                    {
                                      "context" : "diagRefItem",
                                      "element" : "answer",
                                      "variable" : "drAns"
                                    }
                                  ],
                                  "rule" : [
                                    {
                                      "name" : "diagRefValue",
                                      "source" : [
                                        {
                                          "context" : "drAns",
                                          "type" : "Reference",
                                          "element" : "value",
                                          "variable" : "reasonRef"
                                        }
                                      ],
                                      "target" : [
                                        {
                                          "context" : "proc",
                                          "contextType" : "variable",
                                          "element" : "reasonReference",
                                          "transform" : "copy",
                                          "parameter" : [
                                            {
                                              "valueId" : "reasonRef"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name" : "fillChargeItems",
      "typeMode" : "none",
      "documentation" : "One ChargeItem per runtime contract (cid.primary answer.valueUri). ChargeItem.code is the Job-fixed GOÄ 252 Coding (http://fhir.de/CodeSystem/bäk/goä), never derived from CID identity or service codes. context from QR.encounter; subject from QR.subject; 1:n service lineage when performed; supportingInformation from diag.condition.",
      "input" : [
        {
          "name" : "qr",
          "type" : "QuestionnaireResponse",
          "mode" : "source"
        },
        {
          "name" : "bundle",
          "type" : "Bundle",
          "mode" : "target"
        },
        {
          "name" : "subjectRef",
          "mode" : "source"
        },
        {
          "name" : "encRef",
          "mode" : "source"
        }
      ],
      "rule" : [
        {
          "name" : "primaryFromValueUri",
          "source" : [
            {
              "context" : "qr",
              "element" : "item",
              "variable" : "cidItem",
              "condition" : "linkId = 'cid.primary'"
            }
          ],
          "rule" : [
            {
              "name" : "cidAnswer",
              "source" : [
                {
                  "context" : "cidItem",
                  "element" : "answer",
                  "variable" : "cidAns"
                }
              ],
              "rule" : [
                {
                  "name" : "cidValue",
                  "source" : [
                    {
                      "context" : "cidAns",
                      "type" : "uri",
                      "element" : "value",
                      "variable" : "primaryCid"
                    }
                  ],
                  "target" : [
                    {
                      "context" : "bundle",
                      "contextType" : "variable",
                      "element" : "entry",
                      "variable" : "chg1Entry",
                      "transform" : "create"
                    },
                    {
                      "context" : "chg1Entry",
                      "contextType" : "variable",
                      "element" : "fullUrl",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000004"
                        }
                      ]
                    },
                    {
                      "context" : "chg1Entry",
                      "contextType" : "variable",
                      "element" : "resource",
                      "variable" : "chg1",
                      "transform" : "create",
                      "parameter" : [
                        {
                          "valueString" : "ChargeItem"
                        }
                      ]
                    },
                    {
                      "context" : "chg1",
                      "contextType" : "variable",
                      "element" : "status",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueString" : "planned"
                        }
                      ]
                    },
                    {
                      "context" : "chg1",
                      "contextType" : "variable",
                      "element" : "subject",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "subjectRef"
                        }
                      ]
                    },
                    {
                      "context" : "chg1",
                      "contextType" : "variable",
                      "element" : "context",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "encRef"
                        }
                      ]
                    },
                    {
                      "context" : "chg1",
                      "contextType" : "variable",
                      "element" : "code",
                      "variable" : "chgCode",
                      "transform" : "create",
                      "parameter" : [
                        {
                          "valueString" : "CodeableConcept"
                        }
                      ]
                    },
                    {
                      "context" : "chgCode",
                      "contextType" : "variable",
                      "element" : "coding",
                      "variable" : "fixedCoding",
                      "transform" : "create",
                      "parameter" : [
                        {
                          "valueString" : "Coding"
                        }
                      ]
                    },
                    {
                      "context" : "fixedCoding",
                      "contextType" : "variable",
                      "element" : "system",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueString" : "http://fhir.de/CodeSystem/bäk/goä"
                        }
                      ]
                    },
                    {
                      "context" : "fixedCoding",
                      "contextType" : "variable",
                      "element" : "code",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueString" : "252"
                        }
                      ]
                    },
                    {
                      "context" : "fixedCoding",
                      "contextType" : "variable",
                      "element" : "display",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueString" : "Injektion, s.c./s.m./i.c./i.m."
                        }
                      ]
                    },
                    {
                      "context" : "chg1",
                      "contextType" : "variable",
                      "element" : "definitionCanonical",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueId" : "primaryCid"
                        }
                      ]
                    },
                    {
                      "context" : "chg1",
                      "contextType" : "variable",
                      "element" : "quantity",
                      "variable" : "qty",
                      "transform" : "create",
                      "parameter" : [
                        {
                          "valueString" : "Quantity"
                        }
                      ]
                    },
                    {
                      "context" : "qty",
                      "contextType" : "variable",
                      "element" : "value",
                      "transform" : "copy",
                      "parameter" : [
                        {
                          "valueDecimal" : 1
                        }
                      ]
                    }
                  ],
                  "rule" : [
                    {
                      "name" : "moneyFromParts",
                      "source" : [
                        {
                          "context" : "qr",
                          "element" : "item",
                          "variable" : "amtItem",
                          "condition" : "linkId = 'fee.amount'"
                        },
                        {
                          "context" : "qr",
                          "element" : "item",
                          "variable" : "curItem",
                          "condition" : "linkId = 'fee.currency'"
                        }
                      ],
                      "rule" : [
                        {
                          "name" : "amountAnswer",
                          "source" : [
                            {
                              "context" : "amtItem",
                              "element" : "answer",
                              "variable" : "amtAns"
                            }
                          ],
                          "rule" : [
                            {
                              "name" : "amountValue",
                              "source" : [
                                {
                                  "context" : "amtAns",
                                  "type" : "decimal",
                                  "element" : "value",
                                  "variable" : "amount"
                                }
                              ],
                              "rule" : [
                                {
                                  "name" : "currencyAnswer",
                                  "source" : [
                                    {
                                      "context" : "curItem",
                                      "element" : "answer",
                                      "variable" : "curAns"
                                    }
                                  ],
                                  "rule" : [
                                    {
                                      "name" : "currencyValue",
                                      "source" : [
                                        {
                                          "context" : "curAns",
                                          "type" : "Coding",
                                          "element" : "value",
                                          "variable" : "curCoding"
                                        }
                                      ],
                                      "rule" : [
                                        {
                                          "name" : "currencyCode",
                                          "source" : [
                                            {
                                              "context" : "curCoding",
                                              "element" : "code",
                                              "variable" : "currencyCode"
                                            }
                                          ],
                                          "target" : [
                                            {
                                              "context" : "chg1",
                                              "contextType" : "variable",
                                              "element" : "priceOverride",
                                              "variable" : "money",
                                              "transform" : "create",
                                              "parameter" : [
                                                {
                                                  "valueString" : "Money"
                                                }
                                              ]
                                            },
                                            {
                                              "context" : "money",
                                              "contextType" : "variable",
                                              "element" : "value",
                                              "transform" : "copy",
                                              "parameter" : [
                                                {
                                                  "valueId" : "amount"
                                                }
                                              ]
                                            },
                                            {
                                              "context" : "money",
                                              "contextType" : "variable",
                                              "element" : "currency",
                                              "transform" : "copy",
                                              "parameter" : [
                                                {
                                                  "valueId" : "currencyCode"
                                                }
                                              ]
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name" : "serviceWhenPerformedPrimary",
                      "source" : [
                        {
                          "context" : "qr",
                          "element" : "item",
                          "variable" : "perfItem",
                          "condition" : "linkId = 'svc.performed' and answer.valueBoolean = true"
                        }
                      ],
                      "target" : [
                        {
                          "context" : "chg1",
                          "contextType" : "variable",
                          "element" : "service",
                          "variable" : "svcProc",
                          "transform" : "create",
                          "parameter" : [
                            {
                              "valueString" : "Reference"
                            }
                          ]
                        },
                        {
                          "context" : "svcProc",
                          "contextType" : "variable",
                          "element" : "reference",
                          "transform" : "copy",
                          "parameter" : [
                            {
                              "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000003"
                            }
                          ]
                        },
                        {
                          "context" : "chg1",
                          "contextType" : "variable",
                          "element" : "service",
                          "variable" : "svcObs",
                          "transform" : "create",
                          "parameter" : [
                            {
                              "valueString" : "Reference"
                            }
                          ]
                        },
                        {
                          "context" : "svcObs",
                          "contextType" : "variable",
                          "element" : "reference",
                          "transform" : "copy",
                          "parameter" : [
                            {
                              "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000002"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name" : "supportingInfoFromConditionRef",
                      "source" : [
                        {
                          "context" : "qr",
                          "element" : "item",
                          "variable" : "diagRefItem2",
                          "condition" : "linkId = 'diag.condition'"
                        }
                      ],
                      "rule" : [
                        {
                          "name" : "dr2Answer",
                          "source" : [
                            {
                              "context" : "diagRefItem2",
                              "element" : "answer",
                              "variable" : "dr2Ans"
                            }
                          ],
                          "rule" : [
                            {
                              "name" : "dr2Value",
                              "source" : [
                                {
                                  "context" : "dr2Ans",
                                  "type" : "Reference",
                                  "element" : "value",
                                  "variable" : "reasonRef2"
                                }
                              ],
                              "target" : [
                                {
                                  "context" : "chg1",
                                  "contextType" : "variable",
                                  "element" : "supportingInformation",
                                  "transform" : "copy",
                                  "parameter" : [
                                    {
                                      "valueId" : "reasonRef2"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name" : "fillComposition",
      "typeMode" : "none",
      "documentation" : "Composition proposal (status=preliminary). subject/encounter/author/date from QR.subject/.encounter/.author/.authored only — never fabricated. Sections Reference generated Observation/ChargeItem UUIDs; optional Procedure/Condition sections when those outputs are produced.",
      "input" : [
        {
          "name" : "qr",
          "type" : "QuestionnaireResponse",
          "mode" : "source"
        },
        {
          "name" : "bundle",
          "type" : "Bundle",
          "mode" : "target"
        },
        {
          "name" : "subjectRef",
          "mode" : "source"
        },
        {
          "name" : "encRef",
          "mode" : "source"
        },
        {
          "name" : "authorRef",
          "mode" : "source"
        },
        {
          "name" : "authoredDt",
          "mode" : "source"
        }
      ],
      "rule" : [
        {
          "name" : "compositionShell",
          "source" : [
            {
              "context" : "qr"
            }
          ],
          "target" : [
            {
              "context" : "bundle",
              "contextType" : "variable",
              "element" : "entry",
              "variable" : "compEntry",
              "transform" : "create"
            },
            {
              "context" : "compEntry",
              "contextType" : "variable",
              "element" : "fullUrl",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000006"
                }
              ]
            },
            {
              "context" : "compEntry",
              "contextType" : "variable",
              "element" : "resource",
              "variable" : "comp",
              "transform" : "create",
              "parameter" : [
                {
                  "valueString" : "Composition"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "status",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "preliminary"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "type",
              "variable" : "compType",
              "transform" : "create",
              "parameter" : [
                {
                  "valueString" : "CodeableConcept"
                }
              ]
            },
            {
              "context" : "compType",
              "contextType" : "variable",
              "element" : "coding",
              "variable" : "compTypeCoding",
              "transform" : "create",
              "parameter" : [
                {
                  "valueString" : "Coding"
                }
              ]
            },
            {
              "context" : "compTypeCoding",
              "contextType" : "variable",
              "element" : "system",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "http://loinc.org"
                }
              ]
            },
            {
              "context" : "compTypeCoding",
              "contextType" : "variable",
              "element" : "code",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "11506-3"
                }
              ]
            },
            {
              "context" : "compTypeCoding",
              "contextType" : "variable",
              "element" : "display",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "Progress note"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "title",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "Upper-arm injection visit - pre-approval proposal"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "subject",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueId" : "subjectRef"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "encounter",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueId" : "encRef"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "author",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueId" : "authorRef"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "date",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueId" : "authoredDt"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "section",
              "variable" : "secDoc",
              "transform" : "create"
            },
            {
              "context" : "secDoc",
              "contextType" : "variable",
              "element" : "title",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "Documentation"
                }
              ]
            },
            {
              "context" : "secDoc",
              "contextType" : "variable",
              "element" : "entry",
              "variable" : "docEntry",
              "transform" : "create",
              "parameter" : [
                {
                  "valueString" : "Reference"
                }
              ]
            },
            {
              "context" : "docEntry",
              "contextType" : "variable",
              "element" : "reference",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000002"
                }
              ]
            },
            {
              "context" : "comp",
              "contextType" : "variable",
              "element" : "section",
              "variable" : "secBill",
              "transform" : "create"
            },
            {
              "context" : "secBill",
              "contextType" : "variable",
              "element" : "title",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "Billing proposal"
                }
              ]
            },
            {
              "context" : "secBill",
              "contextType" : "variable",
              "element" : "entry",
              "variable" : "billEntry",
              "transform" : "create",
              "parameter" : [
                {
                  "valueString" : "Reference"
                }
              ]
            },
            {
              "context" : "billEntry",
              "contextType" : "variable",
              "element" : "reference",
              "transform" : "copy",
              "parameter" : [
                {
                  "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000004"
                }
              ]
            }
          ],
          "rule" : [
            {
              "name" : "sectionProcedureWhenPerformed",
              "source" : [
                {
                  "context" : "qr",
                  "element" : "item",
                  "variable" : "perfItem",
                  "condition" : "linkId = 'svc.performed' and answer.valueBoolean = true"
                }
              ],
              "target" : [
                {
                  "context" : "comp",
                  "contextType" : "variable",
                  "element" : "section",
                  "variable" : "secProc",
                  "transform" : "create"
                },
                {
                  "context" : "secProc",
                  "contextType" : "variable",
                  "element" : "title",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "Procedure proposal"
                    }
                  ]
                },
                {
                  "context" : "secProc",
                  "contextType" : "variable",
                  "element" : "entry",
                  "variable" : "procEntryRef",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Reference"
                    }
                  ]
                },
                {
                  "context" : "procEntryRef",
                  "contextType" : "variable",
                  "element" : "reference",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000003"
                    }
                  ]
                }
              ]
            },
            {
              "name" : "sectionDiagnosisWhenCoding",
              "source" : [
                {
                  "context" : "qr",
                  "element" : "item",
                  "variable" : "diagCodingItem",
                  "condition" : "linkId = 'diag.icd'"
                }
              ],
              "target" : [
                {
                  "context" : "comp",
                  "contextType" : "variable",
                  "element" : "section",
                  "variable" : "secDx",
                  "transform" : "create"
                },
                {
                  "context" : "secDx",
                  "contextType" : "variable",
                  "element" : "title",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "Diagnosis proposal"
                    }
                  ]
                },
                {
                  "context" : "secDx",
                  "contextType" : "variable",
                  "element" : "entry",
                  "variable" : "dxEntry",
                  "transform" : "create",
                  "parameter" : [
                    {
                      "valueString" : "Reference"
                    }
                  ]
                },
                {
                  "context" : "dxEntry",
                  "contextType" : "variable",
                  "element" : "reference",
                  "transform" : "copy",
                  "parameter" : [
                    {
                      "valueString" : "urn:uuid:00000000-0000-4000-8000-000000000001"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}