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 |
{
"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>"63274580-6236-4b37-b349-85da3eb80868"</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>"a1aa72bd-5d36-442d-a8db-444a494499f1"</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>"e8e16e25-3ba6-45bd-b883-3aea0a283c18"</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>"8c217a06-1e19-4980-b5d2-fb2dbef16080"</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>"896ec1e6-9252-40ab-9386-e0855d339a9e"</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>"b81d50ef-2c67-40b6-ad1e-d2e3c0780226"</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>"43646139-d262-469f-a7ce-2784ee5a335b"</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>"2bdba0aa-1573-4650-b3f7-756d749ca565"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"b942758f-e3c8-4cd1-86c4-f2bbefc18a80"</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>"0eb552ce-5144-4185-999c-cc470e7d54cd"</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>"34987f67-d804-44a3-ba17-10d3a3520874"</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>"a33366a7-6cad-4d3b-b9f8-0d3d5086fe6f"</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>"4b5036fb-f67b-4ca4-b397-9a0f50026ad6"</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>"2c41e96d-d946-4466-a6f7-10f47682b13e"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"2d6536c2-9e85-433d-a5f5-0ed2344b8cdb"</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-06-10T19:05:58+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" : "63274580-6236-4b37-b349-85da3eb80868",
"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" : "a1aa72bd-5d36-442d-a8db-444a494499f1",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "name",
"contextType" : "variable",
"element" : "given",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "humanName"
},
{
"valueString" : "given"
}
]
}
]
},
{
"name" : "e8e16e25-3ba6-45bd-b883-3aea0a283c18",
"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" : "8c217a06-1e19-4980-b5d2-fb2dbef16080",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressDetails",
"contextType" : "variable",
"element" : "emailAddress",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "emailAddress"
},
{
"valueString" : "value"
}
]
}
]
},
{
"name" : "896ec1e6-9252-40ab-9386-e0855d339a9e",
"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" : "b942758f-e3c8-4cd1-86c4-f2bbefc18a80",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressDetails",
"contextType" : "variable",
"element" : "type",
"variable" : "emailAddressType"
}
],
"rule" : [
{
"name" : "b81d50ef-2c67-40b6-ad1e-d2e3c0780226",
"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" : "43646139-d262-469f-a7ce-2784ee5a335b",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "emailAddressType",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "emailAddressTypeExt"
},
{
"valueString" : "valueCoding.code"
}
]
}
]
},
{
"name" : "2bdba0aa-1573-4650-b3f7-756d749ca565",
"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" : "0eb552ce-5144-4185-999c-cc470e7d54cd",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberDetails",
"contextType" : "variable",
"element" : "telephoneNumber",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumber"
},
{
"valueString" : "value"
}
]
}
]
},
{
"name" : "34987f67-d804-44a3-ba17-10d3a3520874",
"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" : "2d6536c2-9e85-433d-a5f5-0ed2344b8cdb",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberDetails",
"contextType" : "variable",
"element" : "type",
"variable" : "telephoneNumberType"
}
],
"rule" : [
{
"name" : "a33366a7-6cad-4d3b-b9f8-0d3d5086fe6f",
"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" : "4b5036fb-f67b-4ca4-b397-9a0f50026ad6",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberType",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumberExt"
},
{
"valueString" : "valueCoding.code"
}
]
}
]
},
{
"name" : "2c41e96d-d946-4466-a6f7-10f47682b13e",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "telephoneNumberType",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "telephoneNumberExt"
},
{
"valueString" : "valueCoding.display"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}