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" : "Patient-Trace",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap Patient-Trace</b></p><a name=\"Patient-Trace\"> </a><a name=\"hcPatient-Trace\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Patient-Trace<span style=\"color: navy\">" = "</span>PatientToTrace<span style=\"color: navy\">"\r\n\r\n</span><b>uses</b><span style=\"color: navy\"> "</span><a href=\"StructureDefinition-MODS-Patient.html\" title=\"MODS Patient\">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Patient</a><span style=\"color: navy\">" </span><b>alias </b>Patient <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"StructureDefinition-MODS-Trace.html\" title=\"MODS Trace\">https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Trace</a><span style=\"color: navy\">" </span><b>alias </b>Trace <b>as </b><b>target</b>\r\n\r\n<b>group </b>Trace<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Patient, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>Trace<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</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\"> {\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[0]<span style=\"color: navy\">)</span> <i>"fcbb409d-21ec-496b-aea5-7358bde14e62"</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>"99e9a33d-5dc2-4ad5-9bf2-0a669a2500a2"</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.gender<b> as </b><span style=\"color: maroon\">genderCode</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>src.genderIdentity = <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\">givt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>givt.system = <span style=\"color: blue\">'http://hl7.org/fhir/administrative-gender'</span> <i>"98fd9b68-935b-44f5-8d24-4b0d5272f4a3"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>givt.code = <span style=\"color: maroon\">genderCode</span> <i>"82830d28-4053-45cd-ac5d-f1f5d4e3110a"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.sex = <b>translate</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">givt</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRBirthSex-1'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'Coding'</span><span style=\"color: navy\">)</span> <i>"de9ffcd4-3fa6-4208-8e22-e5fadeef0ab5"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"f41fbaac-b651-4235-89ff-ddf86260b8d1"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setGender"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.nhsNumber<b> as </b><span style=\"color: maroon\">nhsNumber</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">nhsNumberIdentifier</span><b> where </b>$this.system='https://fhir.nhs.uk/Id/nhs-number'<span style=\"color: navy\">, </span>nhsNumberIdentifier.value<b> as </b><span style=\"color: maroon\">nhsNumberValue</span><span style=\"color: navy\">, </span>nhsNumberIdentifier.extension<b> as </b><span style=\"color: maroon\">nhsNumberTraceStatusExt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>nhsNumber.value = <span style=\"color: maroon\">nhsNumberValue</span> <i>"10b379ad-ddee-45f1-beec-5ad7e11f2cf8"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>nhsNumber.statusIndicator<b> as </b><span style=\"color: maroon\">statusIndicator</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>statusIndicator.code = evaluate<span style=\"color: navy\">(</span>nhsNumberTraceStatusExt<span style=\"color: navy\">, </span>valueCodeableConcept.coding[0].code<span style=\"color: navy\">)</span> <i>"f906c0f5-d7ce-46ea-b5e5-9b4ffc57d4dd"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>statusIndicator.display = evaluate<span style=\"color: navy\">(</span>nhsNumberTraceStatusExt<span style=\"color: navy\">, </span>valueCodeableConcept.coding[0].display<span style=\"color: navy\">)</span> <i>"00034db1-5bfc-44eb-a092-7a5be2fe18f9"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dd9e7695-c4df-4d80-a2ee-7d9a08af0fd1"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setNHSNumber"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>tgt.dateOfBirth = evaluate<span style=\"color: navy\">(</span>src<span style=\"color: navy\">, </span>birthDate<span style=\"color: navy\">)</span> <i>"setDateOfBirth"</i><span style=\"color: navy\">;</span>\r\n src.address<b> as </b><span style=\"color: maroon\">address</span><span style=\"color: navy\"><b> -> </b></span>tgt.homeAddress<b> as </b><span style=\"color: maroon\">addr</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<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>"d42d1e07-79a8-43d9-b389-efb86f1d8025"</i><span style=\"color: navy\">;</span>\r\n src<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>"722cbb0f-b508-42da-b16e-091a41bb913d"</i><span style=\"color: navy\">;</span>\r\n src<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>"311243b0-203e-4194-b184-2a4dc9278a41"</i><span style=\"color: navy\">;</span>\r\n src<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>"5fe54941-5b14-45c5-8290-1479c42485ba"</i><span style=\"color: navy\">;</span>\r\n src<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>"cdce6a13-470e-4629-9f11-82995e7aadb4"</i><span style=\"color: navy\">;</span>\r\n 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\"> {\r\n</span> src<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\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>country.system = <span style=\"color: blue\">'https://data.digitisingsocialcare.co.uk/mods/v1/country'</span> <i>"f4aca984-380c-4ea1-8764-d07245d1f720"</i><span style=\"color: navy\">;</span>\r\n src<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>"c264a30b-0b13-4595-83f5-51dfb52437b7"</i><span style=\"color: navy\">;</span>\r\n src<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>"c3eb1876-0412-403e-bbd0-b3eaa28623d1"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"2005bb05-be9c-4516-854c-99effd2b6d53"</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> <i>"setAddress"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"2f258739-c027-4d1e-84b9-285ec5b4228d"</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/Patient-Trace",
"version" : "0.1.0",
"name" : "PatientToTrace",
"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-Patient",
"mode" : "source",
"alias" : "Patient"
},
{
"url" : "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Trace",
"mode" : "target",
"alias" : "Trace"
}
],
"group" : [
{
"name" : "Trace",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "Patient",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "Trace",
"mode" : "target"
}
],
"rule" : [
{
"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" : "fcbb409d-21ec-496b-aea5-7358bde14e62",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "name",
"contextType" : "variable",
"element" : "given",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "humanName"
},
{
"valueString" : "given[0]"
}
]
}
]
},
{
"name" : "99e9a33d-5dc2-4ad5-9bf2-0a669a2500a2",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "name",
"contextType" : "variable",
"element" : "family",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "humanName"
},
{
"valueString" : "family"
}
]
}
]
}
]
}
]
},
{
"name" : "setGender",
"source" : [
{
"context" : "src",
"element" : "gender",
"variable" : "genderCode"
}
],
"rule" : [
{
"name" : "f41fbaac-b651-4235-89ff-ddf86260b8d1",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "src",
"contextType" : "variable",
"element" : "genderIdentity",
"variable" : "givt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Coding"
}
]
}
],
"rule" : [
{
"name" : "98fd9b68-935b-44f5-8d24-4b0d5272f4a3",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "givt",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/administrative-gender"
}
]
}
]
},
{
"name" : "82830d28-4053-45cd-ac5d-f1f5d4e3110a",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "givt",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueId" : "genderCode"
}
]
}
]
},
{
"name" : "de9ffcd4-3fa6-4208-8e22-e5fadeef0ab5",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "sex",
"transform" : "translate",
"parameter" : [
{
"valueId" : "givt"
},
{
"valueString" : "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/ConceptMap/MODS-FHIRBirthSex-1"
},
{
"valueString" : "Coding"
}
]
}
]
}
]
}
]
},
{
"name" : "2f258739-c027-4d1e-84b9-285ec5b4228d",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "nhsNumber",
"variable" : "nhsNumber"
}
],
"rule" : [
{
"name" : "setNHSNumber",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "nhsNumberIdentifier",
"condition" : "$this.system='https://fhir.nhs.uk/Id/nhs-number'"
},
{
"context" : "nhsNumberIdentifier",
"element" : "value",
"variable" : "nhsNumberValue"
},
{
"context" : "nhsNumberIdentifier",
"element" : "extension",
"variable" : "nhsNumberTraceStatusExt"
}
],
"rule" : [
{
"name" : "10b379ad-ddee-45f1-beec-5ad7e11f2cf8",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "nhsNumber",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "nhsNumberValue"
}
]
}
]
},
{
"name" : "dd9e7695-c4df-4d80-a2ee-7d9a08af0fd1",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "nhsNumber",
"contextType" : "variable",
"element" : "statusIndicator",
"variable" : "statusIndicator"
}
],
"rule" : [
{
"name" : "f906c0f5-d7ce-46ea-b5e5-9b4ffc57d4dd",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "statusIndicator",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "nhsNumberTraceStatusExt"
},
{
"valueString" : "valueCodeableConcept.coding[0].code"
}
]
}
]
},
{
"name" : "00034db1-5bfc-44eb-a092-7a5be2fe18f9",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "statusIndicator",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "nhsNumberTraceStatusExt"
},
{
"valueString" : "valueCodeableConcept.coding[0].display"
}
]
}
]
}
]
}
]
},
{
"name" : "setDateOfBirth",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "dateOfBirth",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "src"
},
{
"valueString" : "birthDate"
}
]
}
]
},
{
"name" : "setAddress",
"source" : [
{
"context" : "src",
"min" : 1,
"max" : "1",
"element" : "address",
"variable" : "address"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "homeAddress",
"variable" : "addr"
}
],
"rule" : [
{
"name" : "d42d1e07-79a8-43d9-b389-efb86f1d8025",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry1",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[0]"
}
]
}
]
},
{
"name" : "722cbb0f-b508-42da-b16e-091a41bb913d",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry2",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[1]"
}
]
}
]
},
{
"name" : "311243b0-203e-4194-b184-2a4dc9278a41",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry3",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[2]"
}
]
}
]
},
{
"name" : "5fe54941-5b14-45c5-8290-1479c42485ba",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry4",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[3]"
}
]
}
]
},
{
"name" : "cdce6a13-470e-4629-9f11-82995e7aadb4",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "postCode",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "postalCode"
}
]
}
]
},
{
"name" : "extension",
"source" : [
{
"context" : "address",
"element" : "extension",
"variable" : "countryExt",
"condition" : "$this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-AddressCountry'"
}
],
"rule" : [
{
"name" : "2005bb05-be9c-4516-854c-99effd2b6d53",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "country",
"variable" : "country"
}
],
"rule" : [
{
"name" : "f4aca984-380c-4ea1-8764-d07245d1f720",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "country",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://data.digitisingsocialcare.co.uk/mods/v1/country"
}
]
}
]
},
{
"name" : "c264a30b-0b13-4595-83f5-51dfb52437b7",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "country",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "countryExt"
},
{
"valueString" : "valueCoding.code"
}
]
}
]
},
{
"name" : "c3eb1876-0412-403e-bbd0-b3eaa28623d1",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "country",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "countryExt"
},
{
"valueString" : "valueCoding.display"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}