Social Care Interoperability Platform FHIR Implementation Guide
Version: 0.1.0, Status: draft
Social Care Interoperability Platform FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft as of 2026-06-10 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="Allergy-AllergyIntelorance"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap Allergy-AllergyIntelorance</b></p><a name="Allergy-AllergyIntelorance"> </a><a name="hcAllergy-AllergyIntelorance"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Allergy-AllergyIntelorance<span style="color: navy">" = "</span>AllergyToAllergyIntelorance<span style="color: navy">"
</span><b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-MODS-Allergy.html" title="MODS Allergy">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Allergy</a><span style="color: navy">" </span><b>alias </b>Allergy <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-MODS-AllergyIntolerance.html" title="MODS Allergy Intolerance">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-AllergyIntolerance</a><span style="color: navy">" </span><b>alias </b>AllergyIntolerance <b>as </b><b>target</b>
<b>group </b>AllergyIntelorance<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>Allergy, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>AllergyIntolerance<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.id = evaluate<span style="color: navy">(</span>src<span style="color: navy">, </span>id<span style="color: navy">)</span> <i>"setAllergyInteloranceId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span> tgt.meta<b> as </b><span style="color: maroon">meta</span><span style="color: navy">, </span> meta.tag<b> as </b><span style="color: maroon">tag</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tag.system = <span style="color: blue">'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-FhirStructureMapCatalog-1'</span> <i>"0cddd506-f4ad-44fd-a615-d4bdfd0d90a0"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tag.code = <span style="color: blue">'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/AllergyIntolerance-Allergy'</span> <i>"c86b31d7-4ae3-468c-acd3-881658908857"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setMetaTag"</i><span style="color: navy">;</span>
src.type<b> as </b><span style="color: maroon">type</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>src.allergyType = <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">allergyType</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>allergyType.code = evaluate<span style="color: navy">(</span>type<span style="color: navy">, </span>code<span style="color: navy">)</span> <i>"3eb287e2-be03-40d0-ab0e-949faa382e7c"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>allergyType.system = <span style="color: blue">'https://data.digitisingsocialcare.co.uk/mods/v1/type-of-reaction'</span> <i>"d4789746-13da-4621-b353-212c3f91e864"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tgt.type = <b>translate</b><span style="color: navy">(</span><span style="color: maroon">allergyType</span><span style="color: navy">, </span><span style="color: blue">'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRAllergyIntoleranceType-1'</span><span style="color: navy">, </span><span style="color: blue">'code'</span><span style="color: navy">)</span> <i>"549c4647-ae3c-42e8-b08e-d0e91653ee43"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"cbb0c55a-2da5-4e14-8b18-bbffcf76c6b2"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyIntoleranceType"</i><span style="color: navy">;</span>
src.causativeAgent<b> as </b><span style="color: maroon">causativeAgent</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.code = <b>cc</b><span style="color: navy">(</span><span style="color: blue">'http://snomed.info/sct'</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">vcc</span><b> then</b><span style="color: navy"> {
</span> vcc.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> vcc<span style="color: navy"><b> -> </b></span>coding.code = evaluate<span style="color: navy">(</span>causativeAgent<span style="color: navy">, </span>code<span style="color: navy">)</span> <i>"6693f82d-5491-4d90-ab47-ba6fd4b4e8a4"</i><span style="color: navy">;</span>
vcc<span style="color: navy"><b> -> </b></span>coding.display = evaluate<span style="color: navy">(</span>causativeAgent<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"2b9ef0dc-47ad-47b6-ae70-909a50db9a63"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"818c31e6-39d8-4e54-ba53-95eadea3799d"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyCode"</i><span style="color: navy">;</span>
src.subjectOfCare<b> as </b><span style="color: maroon">subjectOfCare</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.patient<b> as </b><span style="color: maroon">patient</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>patient.reference = evaluate<span style="color: navy">(</span>subjectOfCare<span style="color: navy">, </span>'Patient/'+id<span style="color: navy">)</span> <i>"18930ca9-653d-4bda-9a72-286a6024311d"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>patient.display = evaluate<span style="color: navy">(</span>subjectOfCare<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"c8d7f473-0583-44d1-ae45-da3ae8a23bf7"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"85608c74-6bec-4d9b-89d0-599325b3d080"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyPatient"</i><span style="color: navy">;</span>
src.observer<b> as </b><span style="color: maroon">observer</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.recorder<b> as </b><span style="color: maroon">recorder</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>recorder.reference = evaluate<span style="color: navy">(</span>observer<span style="color: navy">, </span>'Practitioner/'+id<span style="color: navy">)</span> <i>"31530357-c42a-43b7-9e6d-1b86aa36061b"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>recorder.display = evaluate<span style="color: navy">(</span>observer<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"d2b98ecf-c394-4b7d-9f9f-99ee351187e3"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"450a4378-d1b6-4212-8dd4-0614ef469954"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyRecorder"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>src.onsetPeriod<b> as </b><span style="color: maroon">period</span><b> then</b><span style="color: navy"> {
</span> src.firstExperienced<b> as </b><span style="color: maroon">start</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>period.start = evaluate<span style="color: navy">(</span>src<span style="color: navy">, </span>firstExperienced<span style="color: navy">)</span> <i>"02371aa5-4d45-40d3-9ae3-cdb6f68b2b1b"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
src.endDate<b> as </b><span style="color: maroon">end</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>period.end = evaluate<span style="color: navy">(</span>src<span style="color: navy">, </span>endDate<span style="color: navy">)</span> <i>"b4d7facb-9ade-4bc8-a6ba-0f488c9d1866"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
period<b> where </b>$this.start.empty().not()or$this.end.empty().not()<span style="color: navy"><b> -> </b></span>tgt.onsetPeriod <i>"a532a305-26d5-4164-b824-9fe68c63739c"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyOnsetPeriod"</i><span style="color: navy">;</span>
src.comment<b> as </b><span style="color: maroon">comment</span><span style="color: navy"><b> -> </b></span>tgt.note<b> as </b><span style="color: maroon">note</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>note.text = evaluate<span style="color: navy">(</span>src<span style="color: navy">, </span>comment<span style="color: navy">)</span> <i>"486d3c2f-36bc-4955-a434-cde5274983d0"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyCommentNote"</i><span style="color: navy">;</span>
src.evidence<b> as </b><span style="color: maroon">evidence</span><span style="color: navy"><b> -> </b></span>tgt.note<b> as </b><span style="color: maroon">note</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>note.text = evaluate<span style="color: navy">(</span>src<span style="color: navy">, </span>evidence<span style="color: navy">)</span> <i>"034331a8-7002-489c-aef1-216f2040348a"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyEvidenceNote"</i><span style="color: navy">;</span>
src.reaction<b> as </b><span style="color: maroon">allergyReaction</span><span style="color: navy"><b> -> </b></span>tgt.reaction<b> as </b><span style="color: maroon">reaction</span><b> then</b><span style="color: navy"> {
</span> allergyReaction.substance<b> as </b><span style="color: maroon">substance</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>reaction.substance = <b>cc</b><span style="color: navy">(</span><span style="color: blue">'http://snomed.info/sct'</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">vcc</span><b> then</b><span style="color: navy"> {
</span> vcc.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>coding.code = evaluate<span style="color: navy">(</span>substance<span style="color: navy">, </span>code<span style="color: navy">)</span> <i>"f29553cb-3356-47f4-adbe-6db5a86ba143"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = evaluate<span style="color: navy">(</span>substance<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"b55899dd-ef86-42e0-be02-ce623fa8600f"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setReactionSubstance"</i><span style="color: navy">;</span>
allergyReaction.description<b> as </b><span style="color: maroon">description</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>reaction.manifestation = <b>cc</b><span style="color: navy">(</span><span style="color: blue">'http://snomed.info/sct'</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">vcc</span><b> then</b><span style="color: navy"> {
</span> vcc.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>coding.code = evaluate<span style="color: navy">(</span>description<span style="color: navy">, </span>code<span style="color: navy">)</span> <i>"2a29a76e-7acd-4ec3-8d84-9d5c149b905f"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = evaluate<span style="color: navy">(</span>description<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"48c14339-442d-4b74-af03-0b92af912688"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setReactionManifestation"</i><span style="color: navy">;</span>
allergyReaction.route<b> as </b><span style="color: maroon">route</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>reaction.exposureRoute = <b>cc</b><span style="color: navy">(</span><span style="color: blue">'http://snomed.info/sct'</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">, </span><span style="color: blue">''</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">vcc</span><b> then</b><span style="color: navy"> {
</span> vcc.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>coding.code = evaluate<span style="color: navy">(</span>route<span style="color: navy">, </span>code<span style="color: navy">)</span> <i>"c8d26798-5f6b-405f-b01a-582ef07b3dfc"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = evaluate<span style="color: navy">(</span>route<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"f0de28d0-4ebf-4007-a6fe-135433df06b4"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setReactionRoute"</i><span style="color: navy">;</span>
allergyReaction.severity<b> as </b><span style="color: maroon">severity</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>reaction.severity = evaluate<span style="color: navy">(</span>severity<span style="color: navy">, </span>code<span style="color: navy">)</span> <i>"0609a717-13f2-4080-b332-44e65a84ae44"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setReactionSeverity"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setAllergyReaction"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Allergy-AllergyIntelorance"/>
<version value="0.1.0"/>
<name value="AllergyToAllergyIntelorance"/>
<status value="draft"/>
<date value="2026-06-10T19:05:58+00:00"/>
<publisher
value="Synanetics Ltd on behalf of DHSC/Social Care Interoperability Platform"/>
<contact>
<name
value="Synanetics Ltd on behalf of DHSC/Social Care Interoperability Platform"/>
<telecom>
<system value="url"/>
<value value="https://synanetics.com"/>
</telecom>
<telecom>
<system value="email"/>
<value value="info@synanetics.com"/>
</telecom>
</contact>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="GB"/>
<display value="United Kingdom of Great Britain and Northern Ireland"/>
</coding>
</jurisdiction>
<structure>
<url
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Allergy"/>
<mode value="source"/>
<alias value="Allergy"/>
</structure>
<structure>
<url
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-AllergyIntolerance"/>
<mode value="target"/>
<alias value="AllergyIntolerance"/>
</structure>
<group>
<name value="AllergyIntelorance"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="Allergy"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="AllergyIntolerance"/>
<mode value="target"/>
</input>
<rule>
<name value="setAllergyInteloranceId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="evaluate"/>
<parameter>
<valueId value="src"/>
</parameter>
<parameter>
<valueString value="id"/>
</parameter>
</target>
</rule>
<rule>
<name value="setMetaTag"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="meta"/>
<variable value="meta"/>
</target>
<target>
<context value="meta"/>
<contextType value="variable"/>
<element value="tag"/>
<variable value="tag"/>
</target>
<rule>
<name value="0cddd506-f4ad-44fd-a615-d4bdfd0d90a0"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tag"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-FhirStructureMapCatalog-1"/>
</parameter>
</target>
</rule>
<rule>
<name value="c86b31d7-4ae3-468c-acd3-881658908857"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tag"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/AllergyIntolerance-Allergy"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="setAllergyIntoleranceType"/>
<source>
<context value="src"/>
<element value="type"/>
<variable value="type"/>
</source>
<rule>
<name value="cbb0c55a-2da5-4e14-8b18-bbffcf76c6b2"/>
<source>
<context value="src"/>
</source>
<target>
<context value="src"/>
<contextType value="variable"/>
<element value="allergyType"/>
<variable value="allergyType"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="3eb287e2-be03-40d0-ab0e-949faa382e7c"/>
<source>
<context value="src"/>
</source>
<target>
<context value="allergyType"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="type"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="d4789746-13da-4621-b353-212c3f91e864"/>
<source>
<context value="src"/>
</source>
<target>
<context value="allergyType"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://data.digitisingsocialcare.co.uk/mods/v1/type-of-reaction"/>
</parameter>
</target>
</rule>
<rule>
<name value="549c4647-ae3c-42e8-b08e-d0e91653ee43"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="translate"/>
<parameter>
<valueId value="allergyType"/>
</parameter>
<parameter>
<valueString
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRAllergyIntoleranceType-1"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setAllergyCode"/>
<source>
<context value="src"/>
<element value="causativeAgent"/>
<variable value="causativeAgent"/>
</source>
<rule>
<name value="818c31e6-39d8-4e54-ba53-95eadea3799d"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="vcc"/>
<transform value="cc"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
<parameter/>
<parameter/>
</target>
<rule>
<name value="coding"/>
<source>
<context value="vcc"/>
<element value="coding"/>
<variable value="coding"/>
</source>
<rule>
<name value="6693f82d-5491-4d90-ab47-ba6fd4b4e8a4"/>
<source>
<context value="vcc"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="causativeAgent"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="2b9ef0dc-47ad-47b6-ae70-909a50db9a63"/>
<source>
<context value="vcc"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="causativeAgent"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="setAllergyPatient"/>
<source>
<context value="src"/>
<element value="subjectOfCare"/>
<variable value="subjectOfCare"/>
</source>
<rule>
<name value="85608c74-6bec-4d9b-89d0-599325b3d080"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="patient"/>
<variable value="patient"/>
</target>
<rule>
<name value="18930ca9-653d-4bda-9a72-286a6024311d"/>
<source>
<context value="src"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueId value="subjectOfCare"/>
</parameter>
<parameter>
<valueString value="'Patient/'+id"/>
</parameter>
</target>
</rule>
<rule>
<name value="c8d7f473-0583-44d1-ae45-da3ae8a23bf7"/>
<source>
<context value="src"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="subjectOfCare"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setAllergyRecorder"/>
<source>
<context value="src"/>
<element value="observer"/>
<variable value="observer"/>
</source>
<rule>
<name value="450a4378-d1b6-4212-8dd4-0614ef469954"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="recorder"/>
<variable value="recorder"/>
</target>
<rule>
<name value="31530357-c42a-43b7-9e6d-1b86aa36061b"/>
<source>
<context value="src"/>
</source>
<target>
<context value="recorder"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueId value="observer"/>
</parameter>
<parameter>
<valueString value="'Practitioner/'+id"/>
</parameter>
</target>
</rule>
<rule>
<name value="d2b98ecf-c394-4b7d-9f9f-99ee351187e3"/>
<source>
<context value="src"/>
</source>
<target>
<context value="recorder"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="observer"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setAllergyOnsetPeriod"/>
<source>
<context value="src"/>
</source>
<target>
<context value="src"/>
<contextType value="variable"/>
<element value="onsetPeriod"/>
<variable value="period"/>
</target>
<rule>
<name value="firstExperienced"/>
<source>
<context value="src"/>
<element value="firstExperienced"/>
<variable value="start"/>
</source>
<rule>
<name value="02371aa5-4d45-40d3-9ae3-cdb6f68b2b1b"/>
<source>
<context value="src"/>
</source>
<target>
<context value="period"/>
<contextType value="variable"/>
<element value="start"/>
<transform value="evaluate"/>
<parameter>
<valueId value="src"/>
</parameter>
<parameter>
<valueString value="firstExperienced"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="endDate"/>
<source>
<context value="src"/>
<element value="endDate"/>
<variable value="end"/>
</source>
<rule>
<name value="b4d7facb-9ade-4bc8-a6ba-0f488c9d1866"/>
<source>
<context value="src"/>
</source>
<target>
<context value="period"/>
<contextType value="variable"/>
<element value="end"/>
<transform value="evaluate"/>
<parameter>
<valueId value="src"/>
</parameter>
<parameter>
<valueString value="endDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="a532a305-26d5-4164-b824-9fe68c63739c"/>
<source>
<context value="period"/>
<condition
value="$this.start.empty().not()or$this.end.empty().not()"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="onsetPeriod"/>
</target>
</rule>
</rule>
<rule>
<name value="setAllergyCommentNote"/>
<source>
<context value="src"/>
<element value="comment"/>
<variable value="comment"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="note"/>
<variable value="note"/>
</target>
<rule>
<name value="486d3c2f-36bc-4955-a434-cde5274983d0"/>
<source>
<context value="src"/>
</source>
<target>
<context value="note"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="evaluate"/>
<parameter>
<valueId value="src"/>
</parameter>
<parameter>
<valueString value="comment"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="setAllergyEvidenceNote"/>
<source>
<context value="src"/>
<element value="evidence"/>
<variable value="evidence"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="note"/>
<variable value="note"/>
</target>
<rule>
<name value="034331a8-7002-489c-aef1-216f2040348a"/>
<source>
<context value="src"/>
</source>
<target>
<context value="note"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="evaluate"/>
<parameter>
<valueId value="src"/>
</parameter>
<parameter>
<valueString value="evidence"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="reaction"/>
<source>
<context value="src"/>
<element value="reaction"/>
<variable value="allergyReaction"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="reaction"/>
<variable value="reaction"/>
</target>
<rule>
<name value="substance"/>
<source>
<context value="allergyReaction"/>
<element value="substance"/>
<variable value="substance"/>
</source>
<rule>
<name value="setReactionSubstance"/>
<source>
<context value="src"/>
</source>
<target>
<context value="reaction"/>
<contextType value="variable"/>
<element value="substance"/>
<variable value="vcc"/>
<transform value="cc"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
<parameter/>
<parameter/>
</target>
<rule>
<name value="coding"/>
<source>
<context value="vcc"/>
<element value="coding"/>
<variable value="coding"/>
</source>
<rule>
<name value="f29553cb-3356-47f4-adbe-6db5a86ba143"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="substance"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="b55899dd-ef86-42e0-be02-ce623fa8600f"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="substance"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="description"/>
<source>
<context value="allergyReaction"/>
<element value="description"/>
<variable value="description"/>
</source>
<rule>
<name value="setReactionManifestation"/>
<source>
<context value="src"/>
</source>
<target>
<context value="reaction"/>
<contextType value="variable"/>
<element value="manifestation"/>
<variable value="vcc"/>
<transform value="cc"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
<parameter/>
<parameter/>
</target>
<rule>
<name value="coding"/>
<source>
<context value="vcc"/>
<element value="coding"/>
<variable value="coding"/>
</source>
<rule>
<name value="2a29a76e-7acd-4ec3-8d84-9d5c149b905f"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="description"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="48c14339-442d-4b74-af03-0b92af912688"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="description"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setAllergyReaction"/>
<source>
<context value="allergyReaction"/>
<element value="route"/>
<variable value="route"/>
</source>
<rule>
<name value="setReactionRoute"/>
<source>
<context value="src"/>
</source>
<target>
<context value="reaction"/>
<contextType value="variable"/>
<element value="exposureRoute"/>
<variable value="vcc"/>
<transform value="cc"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
<parameter/>
<parameter/>
</target>
<rule>
<name value="coding"/>
<source>
<context value="vcc"/>
<element value="coding"/>
<variable value="coding"/>
</source>
<rule>
<name value="c8d26798-5f6b-405f-b01a-582ef07b3dfc"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="route"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="f0de28d0-4ebf-4007-a6fe-135433df06b4"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="route"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setReactionSeverity"/>
<source>
<context value="allergyReaction"/>
<element value="severity"/>
<variable value="severity"/>
</source>
<rule>
<name value="0609a717-13f2-4080-b332-44e65a84ae44"/>
<source>
<context value="src"/>
</source>
<target>
<context value="reaction"/>
<contextType value="variable"/>
<element value="severity"/>
<transform value="evaluate"/>
<parameter>
<valueId value="severity"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</rule>
</rule>
</group>
</StructureMap>