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-03-24 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="RelatedPerson-ProxyForSubjectOfCare"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap RelatedPerson-ProxyForSubjectOfCare</b></p><a name="RelatedPerson-ProxyForSubjectOfCare"> </a><a name="hcRelatedPerson-ProxyForSubjectOfCare"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/RelatedPerson-ProxyForSubjectOfCare<span style="color: navy">" = "</span>RelatedPersonToProxyForSubjectOfCare<span style="color: navy">"
</span><b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-MODS-RelatedPerson.html" title="MODS Related Person">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-RelatedPerson</a><span style="color: navy">" </span><b>alias </b>RelatedPerson <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-MODS-ProxyForSubjectOfCare.html" title="MODS Proxy For Subject of Care">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-ProxyForSubjectOfCare</a><span style="color: navy">" </span><b>alias </b>Proxy <b>as </b><b>target</b>
<b>group </b>Proxy<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>RelatedPerson, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Proxy<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>"setProxyId"</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.dataClass<b> as </b><span style="color: maroon">dataClass</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>dataClass.name = <span style="color: blue">'Proxy for Subject of Care'</span> <i>"3962abac-af28-4327-ab68-7caa99f87b8d"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setDataClassName"</i><span style="color: navy">;</span>
src.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>tgt.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>subjectOfCare.id = evaluate<span style="color: navy">(</span>patient<span style="color: navy">, </span>reference.replace('Patient/','')<span style="color: navy">)</span> <i>"f1ead33b-b3a9-4663-bbd9-069092e273cf"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>subjectOfCare.type = <span style="color: blue">'SubjectOfCare'</span> <i>"e9525080-6679-4c08-8964-80750507d37f"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>subjectOfCare.display = evaluate<span style="color: navy">(</span>patient<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"ad81f3dd-86eb-4da9-925e-c183b848a391"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"7abc1d2b-e964-4093-aa38-e4a0fc2f12ff"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setProxySubject"</i><span style="color: navy">;</span>
src.relationship<b> as </b><span style="color: maroon">relationshipCodeableConcept</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.relationship<b> as </b><span style="color: maroon">relationship</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>relationship.system = <span style="color: blue">'https://data.digitisingsocialcare.co.uk/mods/v1/person-marital-status'</span> <i>"969a90c2-b837-46ed-b0c1-1a5041beab0b"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>relationship.code = evaluate<span style="color: navy">(</span>relationshipCodeableConcept<span style="color: navy">, </span>coding.code<span style="color: navy">)</span> <i>"c15501ec-5665-4143-96cd-5da339065397"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>relationship.display = evaluate<span style="color: navy">(</span>relationshipCodeableConcept<span style="color: navy">, </span>coding.display<span style="color: navy">)</span> <i>"f1a41f9f-69bd-4407-b0ae-9452e726e2fa"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"8622ee2e-a48b-44f5-8fc7-e41029dd62a4"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setProxyRelationship"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tgt.name<b> as </b><span style="color: maroon">name</span><b> then</b><span style="color: navy"> {
</span> src.name<b> as </b><span style="color: maroon">humanName</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>name.given = evaluate<span style="color: navy">(</span>humanName<span style="color: navy">, </span>given<span style="color: navy">)</span> <i>"50623afe-a95a-4503-8470-015a6c042835"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>name.family = evaluate<span style="color: navy">(</span>humanName<span style="color: navy">, </span>family<span style="color: navy">)</span> <i>"fde0cd17-a67f-45a5-b751-2c782565090d"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setProxyFamilyAndGivenName"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setProxyName"</i><span style="color: navy">;</span>
src.address<b> as </b><span style="color: maroon">address</span><span style="color: navy"><b> -> </b></span>src.addresses<b> as </b><span style="color: maroon">addresses</span><b> then</b><span style="color: navy"> {
</span> addresses<b> as </b><span style="color: maroon">addr</span><b> then</b><span style="color: navy"> {
</span> address<span style="color: navy"><b> -> </b></span>addr.addressEntry1 = evaluate<span style="color: navy">(</span>address<span style="color: navy">, </span>line[0]<span style="color: navy">)</span> <i>"e05ed7c5-de2c-4dcf-a61d-d65d25c22e71"</i><span style="color: navy">;</span>
address<span style="color: navy"><b> -> </b></span>addr.addressEntry2 = evaluate<span style="color: navy">(</span>address<span style="color: navy">, </span>line[1]<span style="color: navy">)</span> <i>"eb789793-140c-4101-80d2-86d338377b11"</i><span style="color: navy">;</span>
address<span style="color: navy"><b> -> </b></span>addr.addressEntry3 = evaluate<span style="color: navy">(</span>address<span style="color: navy">, </span>line[2]<span style="color: navy">)</span> <i>"8e8bd8c5-c226-4be4-9196-3af02f0f74d7"</i><span style="color: navy">;</span>
address<span style="color: navy"><b> -> </b></span>addr.addressEntry4 = evaluate<span style="color: navy">(</span>address<span style="color: navy">, </span>line[3]<span style="color: navy">)</span> <i>"76b791a2-1ef3-465b-b7d7-b2d0e975837f"</i><span style="color: navy">;</span>
address<span style="color: navy"><b> -> </b></span>addr.postCode = evaluate<span style="color: navy">(</span>address<span style="color: navy">, </span>postalCode<span style="color: navy">)</span> <i>"e7361fe5-f432-46b3-8aab-e945dc1fa4fe"</i><span style="color: navy">;</span>
address.extension<b> as </b><span style="color: maroon">countryExt</span><b> where </b>$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-AddressCountry'<b> then</b><span style="color: navy"> {
</span> address<span style="color: navy"><b> -> </b></span>addr.country<b> as </b><span style="color: maroon">country</span><b> then</b><span style="color: navy"> {
</span> address<span style="color: navy"><b> -> </b></span>country.system = <span style="color: blue">'https://data.digitisingsocialcare.co.uk/mods/v1/country'</span> <i>"ed6d2b05-7402-4dca-84e8-b54ebe83595b"</i><span style="color: navy">;</span>
address<span style="color: navy"><b> -> </b></span>country.code = evaluate<span style="color: navy">(</span>countryExt<span style="color: navy">, </span>valueCoding.code<span style="color: navy">)</span> <i>"8e995954-3551-479c-9abe-470f12e691d3"</i><span style="color: navy">;</span>
address<span style="color: navy"><b> -> </b></span>country.display = evaluate<span style="color: navy">(</span>countryExt<span style="color: navy">, </span>valueCoding.display<span style="color: navy">)</span> <i>"aec6988f-b119-452a-8799-d9fdeba2a6f7"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"68e7bbdd-e76e-480c-9668-3c3f9785844e"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"1fadf555-c8b2-4ea3-a3b0-69cc7f0dd34c"</i><span style="color: navy">;</span>
addresses<span style="color: navy"><b> -> </b></span>tgt.address <i>"0ceffdae-391c-46a7-be2c-8f2e326d75df"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setProxyAddress"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tgt.contactDetails<b> as </b><span style="color: maroon">contactDetails</span><b> then</b><span style="color: navy"> {
</span> src.telecom<b> as </b><span style="color: maroon">emailAddress</span><b> where </b>$this.system='email'<span style="color: navy"><b> -> </b></span>contactDetails.emailAddressDetails<b> as </b><span style="color: maroon">emailAddressDetails</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>emailAddressDetails.emailAddress = evaluate<span style="color: navy">(</span>emailAddress<span style="color: navy">, </span>value<span style="color: navy">)</span> <i>"852fbd38-2bab-4798-9e9a-47347446e3c1"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>emailAddressDetails.preferredOrder = evaluate<span style="color: navy">(</span>emailAddress<span style="color: navy">, </span>rank<span style="color: navy">)</span> <i>"1d8fab4d-380e-48a0-bf21-3475ec3aa622"</i><span style="color: navy">;</span>
emailAddress.extension<b> as </b><span style="color: maroon">emailAddressTypeExt</span><b> where </b>$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType'<b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>emailAddressDetails.type<b> as </b><span style="color: maroon">emailAddressType</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>emailAddressType.system = <span style="color: blue">'https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type'</span> <i>"799e594a-e1ae-461f-b511-12fa9230becc"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>emailAddressType.code = evaluate<span style="color: navy">(</span>emailAddressTypeExt<span style="color: navy">, </span>valueCoding.code<span style="color: navy">)</span> <i>"ac0f5c3a-cff5-4ef2-94d5-71a40c2e81c8"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>emailAddressType.display = evaluate<span style="color: navy">(</span>emailAddressTypeExt<span style="color: navy">, </span>valueCoding.display<span style="color: navy">)</span> <i>"ab1af801-bd61-468d-86d1-197a0caae4bf"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"c8c18109-be37-4266-bd00-0b7083daf158"</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>
src.telecom<b> as </b><span style="color: maroon">telephoneNumber</span><b> where </b>$this.system='phone'<span style="color: navy"><b> -> </b></span>contactDetails.telephoneDetails<b> as </b><span style="color: maroon">telephoneNumberDetails</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>telephoneNumberDetails.telephoneNumber = evaluate<span style="color: navy">(</span>telephoneNumber<span style="color: navy">, </span>value<span style="color: navy">)</span> <i>"df200086-4111-4fc0-a773-6ca4d66e52de"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>telephoneNumberDetails.preferredOrder = evaluate<span style="color: navy">(</span>telephoneNumber<span style="color: navy">, </span>rank<span style="color: navy">)</span> <i>"28039973-32d4-4d16-adc5-5d764bc8956d"</i><span style="color: navy">;</span>
telephoneNumber.extension<b> as </b><span style="color: maroon">telephoneNumberExt</span><b> where </b>$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType'<b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>telephoneNumberDetails.type<b> as </b><span style="color: maroon">telephoneNumberType</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>telephoneNumberType.system = <span style="color: blue">'https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type'</span> <i>"1b991f78-0946-4a80-94ff-0b6214ad8a11"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>telephoneNumberType.code = evaluate<span style="color: navy">(</span>telephoneNumberExt<span style="color: navy">, </span>valueCoding.code<span style="color: navy">)</span> <i>"a291ccde-c5fd-4762-b037-3465f13ea674"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>telephoneNumberType.display = evaluate<span style="color: navy">(</span>telephoneNumberExt<span style="color: navy">, </span>valueCoding.display<span style="color: navy">)</span> <i>"8fcd7d68-9796-4d7d-a334-f246f9d6b484"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"683b404c-2ab5-4f03-a0b9-0d24e5a64916"</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> <i>"setProxyContactDetails"</i><span style="color: navy">;</span>
src.extension<b> as </b><span style="color: maroon">careProviderExt</span><b> where </b>$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonCareProvider'<span style="color: navy"><b> -> </b></span>tgt.organisation<b> as </b><span style="color: maroon">organisation</span><b> then</b><span style="color: navy"> {
</span> careProviderExt.valueReference<b> as </b><span style="color: maroon">careProviderReference</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>organisation.id = evaluate<span style="color: navy">(</span>careProviderReference<span style="color: navy">, </span>identifier.value<span style="color: navy">)</span> <i>"416b8dcb-e752-4822-a464-1c10fc33a8f9"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>organisation.type = <span style="color: blue">'CareOrganisation'</span> <i>"6e6c8b87-c6db-404a-8af2-f8086f0ff727"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>organisation.display = evaluate<span style="color: navy">(</span>careProviderReference<span style="color: navy">, </span>display<span style="color: navy">)</span> <i>"2a557171-8d94-46f2-9505-9639873c3294"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"setProxyOrganisation"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/RelatedPerson-ProxyForSubjectOfCare"/>
<version value="0.1.0"/>
<name value="RelatedPersonToProxyForSubjectOfCare"/>
<status value="draft"/>
<date value="2026-03-24T16:18:08+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-RelatedPerson"/>
<mode value="source"/>
<alias value="RelatedPerson"/>
</structure>
<structure>
<url
value="https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-ProxyForSubjectOfCare"/>
<mode value="target"/>
<alias value="Proxy"/>
</structure>
<group>
<name value="Proxy"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="RelatedPerson"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="Proxy"/>
<mode value="target"/>
</input>
<rule>
<name value="setProxyId"/>
<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="setDataClassName"/>
<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="dataClass"/>
<variable value="dataClass"/>
</target>
<rule>
<name value="3962abac-af28-4327-ab68-7caa99f87b8d"/>
<source>
<context value="src"/>
</source>
<target>
<context value="dataClass"/>
<contextType value="variable"/>
<element value="name"/>
<transform value="copy"/>
<parameter>
<valueString value="Proxy for Subject of Care"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="setProxySubject"/>
<source>
<context value="src"/>
<element value="patient"/>
<variable value="patient"/>
</source>
<rule>
<name value="7abc1d2b-e964-4093-aa38-e4a0fc2f12ff"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="subjectOfCare"/>
<variable value="subjectOfCare"/>
</target>
<rule>
<name value="f1ead33b-b3a9-4663-bbd9-069092e273cf"/>
<source>
<context value="src"/>
</source>
<target>
<context value="subjectOfCare"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="evaluate"/>
<parameter>
<valueId value="patient"/>
</parameter>
<parameter>
<valueString value="reference.replace('Patient/','')"/>
</parameter>
</target>
</rule>
<rule>
<name value="e9525080-6679-4c08-8964-80750507d37f"/>
<source>
<context value="src"/>
</source>
<target>
<context value="subjectOfCare"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueString value="SubjectOfCare"/>
</parameter>
</target>
</rule>
<rule>
<name value="ad81f3dd-86eb-4da9-925e-c183b848a391"/>
<source>
<context value="src"/>
</source>
<target>
<context value="subjectOfCare"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="patient"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setProxyRelationship"/>
<source>
<context value="src"/>
<element value="relationship"/>
<variable value="relationshipCodeableConcept"/>
</source>
<rule>
<name value="8622ee2e-a48b-44f5-8fc7-e41029dd62a4"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="relationship"/>
<variable value="relationship"/>
</target>
<rule>
<name value="969a90c2-b837-46ed-b0c1-1a5041beab0b"/>
<source>
<context value="src"/>
</source>
<target>
<context value="relationship"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://data.digitisingsocialcare.co.uk/mods/v1/person-marital-status"/>
</parameter>
</target>
</rule>
<rule>
<name value="c15501ec-5665-4143-96cd-5da339065397"/>
<source>
<context value="src"/>
</source>
<target>
<context value="relationship"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="relationshipCodeableConcept"/>
</parameter>
<parameter>
<valueString value="coding.code"/>
</parameter>
</target>
</rule>
<rule>
<name value="f1a41f9f-69bd-4407-b0ae-9452e726e2fa"/>
<source>
<context value="src"/>
</source>
<target>
<context value="relationship"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="relationshipCodeableConcept"/>
</parameter>
<parameter>
<valueString value="coding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setProxyName"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="name"/>
</target>
<rule>
<name value="setProxyFamilyAndGivenName"/>
<source>
<context value="src"/>
<min value="1"/>
<max value="1"/>
<element value="name"/>
<variable value="humanName"/>
</source>
<rule>
<name value="50623afe-a95a-4503-8470-015a6c042835"/>
<source>
<context value="src"/>
</source>
<target>
<context value="name"/>
<contextType value="variable"/>
<element value="given"/>
<transform value="evaluate"/>
<parameter>
<valueId value="humanName"/>
</parameter>
<parameter>
<valueString value="given"/>
</parameter>
</target>
</rule>
<rule>
<name value="fde0cd17-a67f-45a5-b751-2c782565090d"/>
<source>
<context value="src"/>
</source>
<target>
<context value="name"/>
<contextType value="variable"/>
<element value="family"/>
<transform value="evaluate"/>
<parameter>
<valueId value="humanName"/>
</parameter>
<parameter>
<valueString value="family"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="setProxyAddress"/>
<source>
<context value="src"/>
<element value="address"/>
<variable value="address"/>
</source>
<target>
<context value="src"/>
<contextType value="variable"/>
<element value="addresses"/>
<variable value="addresses"/>
</target>
<rule>
<name value="1fadf555-c8b2-4ea3-a3b0-69cc7f0dd34c"/>
<source>
<context value="addresses"/>
<variable value="addr"/>
</source>
<rule>
<name value="e05ed7c5-de2c-4dcf-a61d-d65d25c22e71"/>
<source>
<context value="address"/>
</source>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="addressEntry1"/>
<transform value="evaluate"/>
<parameter>
<valueId value="address"/>
</parameter>
<parameter>
<valueString value="line[0]"/>
</parameter>
</target>
</rule>
<rule>
<name value="eb789793-140c-4101-80d2-86d338377b11"/>
<source>
<context value="address"/>
</source>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="addressEntry2"/>
<transform value="evaluate"/>
<parameter>
<valueId value="address"/>
</parameter>
<parameter>
<valueString value="line[1]"/>
</parameter>
</target>
</rule>
<rule>
<name value="8e8bd8c5-c226-4be4-9196-3af02f0f74d7"/>
<source>
<context value="address"/>
</source>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="addressEntry3"/>
<transform value="evaluate"/>
<parameter>
<valueId value="address"/>
</parameter>
<parameter>
<valueString value="line[2]"/>
</parameter>
</target>
</rule>
<rule>
<name value="76b791a2-1ef3-465b-b7d7-b2d0e975837f"/>
<source>
<context value="address"/>
</source>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="addressEntry4"/>
<transform value="evaluate"/>
<parameter>
<valueId value="address"/>
</parameter>
<parameter>
<valueString value="line[3]"/>
</parameter>
</target>
</rule>
<rule>
<name value="e7361fe5-f432-46b3-8aab-e945dc1fa4fe"/>
<source>
<context value="address"/>
</source>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="postCode"/>
<transform value="evaluate"/>
<parameter>
<valueId value="address"/>
</parameter>
<parameter>
<valueString value="postalCode"/>
</parameter>
</target>
</rule>
<rule>
<name value="extension"/>
<source>
<context value="address"/>
<element value="extension"/>
<variable value="countryExt"/>
<condition
value="$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-AddressCountry'"/>
</source>
<rule>
<name value="68e7bbdd-e76e-480c-9668-3c3f9785844e"/>
<source>
<context value="address"/>
</source>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="country"/>
<variable value="country"/>
</target>
<rule>
<name value="ed6d2b05-7402-4dca-84e8-b54ebe83595b"/>
<source>
<context value="address"/>
</source>
<target>
<context value="country"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://data.digitisingsocialcare.co.uk/mods/v1/country"/>
</parameter>
</target>
</rule>
<rule>
<name value="8e995954-3551-479c-9abe-470f12e691d3"/>
<source>
<context value="address"/>
</source>
<target>
<context value="country"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="countryExt"/>
</parameter>
<parameter>
<valueString value="valueCoding.code"/>
</parameter>
</target>
</rule>
<rule>
<name value="aec6988f-b119-452a-8799-d9fdeba2a6f7"/>
<source>
<context value="address"/>
</source>
<target>
<context value="country"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="countryExt"/>
</parameter>
<parameter>
<valueString value="valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="0ceffdae-391c-46a7-be2c-8f2e326d75df"/>
<source>
<context value="addresses"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="address"/>
</target>
</rule>
</rule>
<rule>
<name value="setProxyContactDetails"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="contactDetails"/>
<variable value="contactDetails"/>
</target>
<rule>
<name value="telecom"/>
<source>
<context value="src"/>
<element value="telecom"/>
<variable value="emailAddress"/>
<condition value="$this.system='email'"/>
</source>
<target>
<context value="contactDetails"/>
<contextType value="variable"/>
<element value="emailAddressDetails"/>
<variable value="emailAddressDetails"/>
</target>
<rule>
<name value="852fbd38-2bab-4798-9e9a-47347446e3c1"/>
<source>
<context value="src"/>
</source>
<target>
<context value="emailAddressDetails"/>
<contextType value="variable"/>
<element value="emailAddress"/>
<transform value="evaluate"/>
<parameter>
<valueId value="emailAddress"/>
</parameter>
<parameter>
<valueString value="value"/>
</parameter>
</target>
</rule>
<rule>
<name value="1d8fab4d-380e-48a0-bf21-3475ec3aa622"/>
<source>
<context value="src"/>
</source>
<target>
<context value="emailAddressDetails"/>
<contextType value="variable"/>
<element value="preferredOrder"/>
<transform value="evaluate"/>
<parameter>
<valueId value="emailAddress"/>
</parameter>
<parameter>
<valueString value="rank"/>
</parameter>
</target>
</rule>
<rule>
<name value="extension"/>
<source>
<context value="emailAddress"/>
<element value="extension"/>
<variable value="emailAddressTypeExt"/>
<condition
value="$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType'"/>
</source>
<rule>
<name value="c8c18109-be37-4266-bd00-0b7083daf158"/>
<source>
<context value="src"/>
</source>
<target>
<context value="emailAddressDetails"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="emailAddressType"/>
</target>
<rule>
<name value="799e594a-e1ae-461f-b511-12fa9230becc"/>
<source>
<context value="src"/>
</source>
<target>
<context value="emailAddressType"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type"/>
</parameter>
</target>
</rule>
<rule>
<name value="ac0f5c3a-cff5-4ef2-94d5-71a40c2e81c8"/>
<source>
<context value="src"/>
</source>
<target>
<context value="emailAddressType"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="emailAddressTypeExt"/>
</parameter>
<parameter>
<valueString value="valueCoding.code"/>
</parameter>
</target>
</rule>
<rule>
<name value="ab1af801-bd61-468d-86d1-197a0caae4bf"/>
<source>
<context value="src"/>
</source>
<target>
<context value="emailAddressType"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="emailAddressTypeExt"/>
</parameter>
<parameter>
<valueString value="valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="src"/>
<element value="telecom"/>
<variable value="telephoneNumber"/>
<condition value="$this.system='phone'"/>
</source>
<target>
<context value="contactDetails"/>
<contextType value="variable"/>
<element value="telephoneDetails"/>
<variable value="telephoneNumberDetails"/>
</target>
<rule>
<name value="df200086-4111-4fc0-a773-6ca4d66e52de"/>
<source>
<context value="src"/>
</source>
<target>
<context value="telephoneNumberDetails"/>
<contextType value="variable"/>
<element value="telephoneNumber"/>
<transform value="evaluate"/>
<parameter>
<valueId value="telephoneNumber"/>
</parameter>
<parameter>
<valueString value="value"/>
</parameter>
</target>
</rule>
<rule>
<name value="28039973-32d4-4d16-adc5-5d764bc8956d"/>
<source>
<context value="src"/>
</source>
<target>
<context value="telephoneNumberDetails"/>
<contextType value="variable"/>
<element value="preferredOrder"/>
<transform value="evaluate"/>
<parameter>
<valueId value="telephoneNumber"/>
</parameter>
<parameter>
<valueString value="rank"/>
</parameter>
</target>
</rule>
<rule>
<name value="extension"/>
<source>
<context value="telephoneNumber"/>
<element value="extension"/>
<variable value="telephoneNumberExt"/>
<condition
value="$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType'"/>
</source>
<rule>
<name value="683b404c-2ab5-4f03-a0b9-0d24e5a64916"/>
<source>
<context value="src"/>
</source>
<target>
<context value="telephoneNumberDetails"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="telephoneNumberType"/>
</target>
<rule>
<name value="1b991f78-0946-4a80-94ff-0b6214ad8a11"/>
<source>
<context value="src"/>
</source>
<target>
<context value="telephoneNumberType"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type"/>
</parameter>
</target>
</rule>
<rule>
<name value="a291ccde-c5fd-4762-b037-3465f13ea674"/>
<source>
<context value="src"/>
</source>
<target>
<context value="telephoneNumberType"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueId value="telephoneNumberExt"/>
</parameter>
<parameter>
<valueString value="valueCoding.code"/>
</parameter>
</target>
</rule>
<rule>
<name value="8fcd7d68-9796-4d7d-a334-f246f9d6b484"/>
<source>
<context value="src"/>
</source>
<target>
<context value="telephoneNumberType"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="telephoneNumberExt"/>
</parameter>
<parameter>
<valueString value="valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="setProxyOrganisation"/>
<source>
<context value="src"/>
<element value="extension"/>
<variable value="careProviderExt"/>
<condition
value="$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonCareProvider'"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="organisation"/>
<variable value="organisation"/>
</target>
<rule>
<name value="valueReference"/>
<source>
<context value="careProviderExt"/>
<element value="valueReference"/>
<variable value="careProviderReference"/>
</source>
<rule>
<name value="416b8dcb-e752-4822-a464-1c10fc33a8f9"/>
<source>
<context value="src"/>
</source>
<target>
<context value="organisation"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="evaluate"/>
<parameter>
<valueId value="careProviderReference"/>
</parameter>
<parameter>
<valueString value="identifier.value"/>
</parameter>
</target>
</rule>
<rule>
<name value="6e6c8b87-c6db-404a-8af2-f8086f0ff727"/>
<source>
<context value="src"/>
</source>
<target>
<context value="organisation"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueString value="CareOrganisation"/>
</parameter>
</target>
</rule>
<rule>
<name value="2a557171-8d94-46f2-9505-9639873c3294"/>
<source>
<context value="src"/>
</source>
<target>
<context value="organisation"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueId value="careProviderReference"/>
</parameter>
<parameter>
<valueString value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
</StructureMap>