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 |
{
"resourceType" : "StructureMap",
"id" : "Practitioner-CareWorker",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap Practitioner-CareWorker</b></p><a name=\"Practitioner-CareWorker\"> </a><a name=\"hcPractitioner-CareWorker\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Practitioner-CareWorker<span style=\"color: navy\">" = "</span>PractitionerToCareWorker<span style=\"color: navy\">"\r\n\r\n</span><b>uses</b><span style=\"color: navy\"> "</span><a href=\"StructureDefinition-MODS-Practitioner.html\" title=\"MODS Practitioner\">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Practitioner</a><span style=\"color: navy\">" </span><b>alias </b>Practitioner <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"StructureDefinition-MODS-CareWorker.html\" title=\"MODS Care Worker\">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-CareWorker</a><span style=\"color: navy\">" </span><b>alias </b>CareWorker <b>as </b><b>target</b>\r\n\r\n<b>group </b>CareWorker<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Practitioner, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>CareWorker<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</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>"setCareWorkerId"</i><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>dataClass.name = <span style=\"color: blue\">'Care Worker'</span> <i>"ac0d9409-65d3-4ac5-a2e4-82e311729d39"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setDataClassName"</i><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</span> src.name<b> as </b><span style=\"color: maroon\">humanName</span><b> then</b><span style=\"color: navy\"> {\r\n</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>"5b7971e2-4ecc-4f09-a7f3-480d6620c5fa"</i><span style=\"color: navy\">;</span>\r\n 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>"ff76faaa-9937-4c29-9e4b-b7ee6587b724"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setFamilyAndGivenName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setName"</i><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</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\"> {\r\n</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>"056d2626-9d12-411c-8aa7-9ce762c25520"</i><span style=\"color: navy\">;</span>\r\n 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>"9c3e2c64-fa5c-4f1a-bd0e-b1214d7f3042"</i><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</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\"> {\r\n</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>"df5ca7a7-596b-4316-863d-a1b078386d9b"</i><span style=\"color: navy\">;</span>\r\n 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>"dc2268a7-1f92-4d75-b21a-7075ff68c701"</i><span style=\"color: navy\">;</span>\r\n 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>"88beab9d-b983-44ad-ab6f-67cffec63f8b"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ccd293d4-7b1f-4e72-86d4-d38cfa46cbc2"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</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>"ec42b1e7-46b5-40f9-9948-9e9c8c4097cb"</i><span style=\"color: navy\">;</span>\r\n 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>"3122fe00-dc00-455e-9785-5779e8f82e21"</i><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</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\"> {\r\n</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>"0520f2c7-d19c-41b0-b26f-99deb20298fd"</i><span style=\"color: navy\">;</span>\r\n 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>"2d449562-de74-496f-9aeb-e950492fb40d"</i><span style=\"color: navy\">;</span>\r\n 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>"683286cd-5953-4d92-8a19-ec2f0caa133f"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"738d2d8c-f42f-4a10-adc2-6ce7948eec06"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setContactDetails"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Practitioner-CareWorker",
"version" : "0.1.0",
"name" : "PractitionerToCareWorker",
"status" : "draft",
"date" : "2026-03-24T16:18:08+00:00",
"publisher" : "Synanetics Ltd on behalf of DHSC/Social Care Interoperability Platform",
"contact" : [
{
"name" : "Synanetics Ltd on behalf of DHSC/Social Care Interoperability Platform",
"telecom" : [
{
"system" : "url",
"value" : "https://synanetics.com"
},
{
"system" : "email",
"value" : "info@synanetics.com"
}
]
}
],
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "GB",
"display" : "United Kingdom of Great Britain and Northern Ireland"
}
]
}
],
"structure" : [
{
"url" : "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Practitioner",
"mode" : "source",
"alias" : "Practitioner"
},
{
"url" : "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-CareWorker",
"mode" : "target",
"alias" : "CareWorker"
}
],
"group" : [
{
"name" : "CareWorker",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "Practitioner",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "CareWorker",
"mode" : "target"
}
],
"rule" : [
{
"name" : "setCareWorkerId",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "id",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "src"
},
{
"valueString" : "id"
}
]
}
]
},
{
"name" : "setDataClassName",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "meta",
"variable" : "meta"
},
{
"context" : "meta",
"contextType" : "variable",
"element" : "dataClass",
"variable" : "dataClass"
}
],
"rule" : [
{
"name" : "ac0d9409-65d3-4ac5-a2e4-82e311729d39",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "dataClass",
"contextType" : "variable",
"element" : "name",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Care Worker"
}
]
}
]
}
]
},
{
"name" : "setName",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "name",
"variable" : "name"
}
],
"rule" : [
{
"name" : "setFamilyAndGivenName",
"source" : [
{
"context" : "src",
"min" : 1,
"max" : "1",
"element" : "name",
"variable" : "humanName"
}
],
"rule" : [
{
"name" : "5b7971e2-4ecc-4f09-a7f3-480d6620c5fa",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "name",
"contextType" : "variable",
"element" : "given",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "humanName"
},
{
"valueString" : "given"
}
]
}
]
},
{
"name" : "ff76faaa-9937-4c29-9e4b-b7ee6587b724",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "name",
"contextType" : "variable",
"element" : "family",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "humanName"
},
{
"valueString" : "family"
}
]
}
]
}
]
}
]
},
{
"name" : "setContactDetails",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "contactDetails",
"variable" : "contactDetails"
}
],
"rule" : [
{
"name" : "telecom",
"source" : [
{
"context" : "src",
"element" : "telecom",
"variable" : "emailAddress",
"condition" : "$this.system='email'"
}
],
"target" : [
{
"context" : "contactDetails",
"contextType" : "variable",
"element" : "emailAddressDetails",
"variable" : "emailAddressDetails"
}
],
"rule" : [
{
"name" : "056d2626-9d12-411c-8aa7-9ce762c25520",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressDetails",
"contextType" : "variable",
"element" : "emailAddress",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "emailAddress"
},
{
"valueString" : "value"
}
]
}
]
},
{
"name" : "9c3e2c64-fa5c-4f1a-bd0e-b1214d7f3042",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressDetails",
"contextType" : "variable",
"element" : "preferredOrder",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "emailAddress"
},
{
"valueString" : "rank"
}
]
}
]
},
{
"name" : "extension",
"source" : [
{
"context" : "emailAddress",
"element" : "extension",
"variable" : "emailAddressTypeExt",
"condition" : "$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonEmailAddressType'"
}
],
"rule" : [
{
"name" : "ccd293d4-7b1f-4e72-86d4-d38cfa46cbc2",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressDetails",
"contextType" : "variable",
"element" : "type",
"variable" : "emailAddressType"
}
],
"rule" : [
{
"name" : "df5ca7a7-596b-4316-863d-a1b078386d9b",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressType",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://data.digitisingsocialcare.co.uk/mods/v1/person-email-address-type"
}
]
}
]
},
{
"name" : "dc2268a7-1f92-4d75-b21a-7075ff68c701",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressType",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "emailAddressTypeExt"
},
{
"valueString" : "valueCoding.code"
}
]
}
]
},
{
"name" : "88beab9d-b983-44ad-ab6f-67cffec63f8b",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressType",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "emailAddressTypeExt"
},
{
"valueString" : "valueCoding.display"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "telecom",
"source" : [
{
"context" : "src",
"element" : "telecom",
"variable" : "telephoneNumber",
"condition" : "$this.system='phone'"
}
],
"target" : [
{
"context" : "contactDetails",
"contextType" : "variable",
"element" : "telephoneDetails",
"variable" : "telephoneNumberDetails"
}
],
"rule" : [
{
"name" : "ec42b1e7-46b5-40f9-9948-9e9c8c4097cb",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberDetails",
"contextType" : "variable",
"element" : "telephoneNumber",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumber"
},
{
"valueString" : "value"
}
]
}
]
},
{
"name" : "3122fe00-dc00-455e-9785-5779e8f82e21",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberDetails",
"contextType" : "variable",
"element" : "preferredOrder",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumber"
},
{
"valueString" : "rank"
}
]
}
]
},
{
"name" : "extension",
"source" : [
{
"context" : "telephoneNumber",
"element" : "extension",
"variable" : "telephoneNumberExt",
"condition" : "$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-PersonTelephoneNumberType'"
}
],
"rule" : [
{
"name" : "738d2d8c-f42f-4a10-adc2-6ce7948eec06",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberDetails",
"contextType" : "variable",
"element" : "type",
"variable" : "telephoneNumberType"
}
],
"rule" : [
{
"name" : "0520f2c7-d19c-41b0-b26f-99deb20298fd",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberType",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://data.digitisingsocialcare.co.uk/mods/v1/person-telephone-type"
}
]
}
]
},
{
"name" : "2d449562-de74-496f-9aeb-e950492fb40d",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberType",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumberExt"
},
{
"valueString" : "valueCoding.code"
}
]
}
]
},
{
"name" : "683286cd-5953-4d92-8a19-ec2f0caa133f",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberType",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumberExt"
},
{
"valueString" : "valueCoding.display"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}