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" : "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>"aa821d4a-9a93-4951-bc86-1ca39c9866b6"</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>"f85c1e52-2d5e-41af-8705-cda0c77ed7eb"</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>"158e25ef-bcac-4d1e-89f8-7831401efedc"</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>"d1e01564-ff83-4638-8b81-2938239ed7d2"</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>"be811ab8-eb0f-4eea-b100-733b00d6ec2a"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"8e9a5cd3-897c-458a-823d-dccb0fd65be8"</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>"ccd3bd86-d59f-4e10-82b3-4716d2d3f798"</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>"f3235a2e-ef0c-4e92-a4cc-17d5700d52ec"</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>"e70645af-fedf-466d-9298-b2c8252fcbf4"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"6551dd2a-8e4e-45bb-9c66-b7299b55b8d4"</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>"ea927ea0-93e5-421a-9ac4-baebfdc60aa5"</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>"f598ba7d-16cc-4828-b6f6-67763ba00c13"</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>"3ba21f91-72d9-4796-bc72-a85af895a3c4"</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>"ba7f1aec-482b-4d62-b79b-bbab6631e065"</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>"7131afd6-19d1-4885-8269-ff9aa797ad29"</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>"319f4d41-dfd9-4bca-aa41-9170dda9bedf"</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>"b4cb57f6-61a5-4aa4-bf0a-6fef30a9d70a"</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>"a03430f9-3648-46a4-94e8-29df2ec31351"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"010a9a1f-aa2b-48cd-a447-0a34ea40d7ef"</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>"e0998579-28eb-48bb-8b61-85f0f325e01b"</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-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-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" : "aa821d4a-9a93-4951-bc86-1ca39c9866b6",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "name",
"contextType" : "variable",
"element" : "given",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "humanName"
},
{
"valueString" : "given[0]"
}
]
}
]
},
{
"name" : "f85c1e52-2d5e-41af-8705-cda0c77ed7eb",
"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" : "8e9a5cd3-897c-458a-823d-dccb0fd65be8",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "src",
"contextType" : "variable",
"element" : "genderIdentity",
"variable" : "givt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Coding"
}
]
}
],
"rule" : [
{
"name" : "158e25ef-bcac-4d1e-89f8-7831401efedc",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "givt",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/administrative-gender"
}
]
}
]
},
{
"name" : "d1e01564-ff83-4638-8b81-2938239ed7d2",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "givt",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueId" : "genderCode"
}
]
}
]
},
{
"name" : "be811ab8-eb0f-4eea-b100-733b00d6ec2a",
"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" : "e0998579-28eb-48bb-8b61-85f0f325e01b",
"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" : "ccd3bd86-d59f-4e10-82b3-4716d2d3f798",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "nhsNumber",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "nhsNumberValue"
}
]
}
]
},
{
"name" : "6551dd2a-8e4e-45bb-9c66-b7299b55b8d4",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "nhsNumber",
"contextType" : "variable",
"element" : "statusIndicator",
"variable" : "statusIndicator"
}
],
"rule" : [
{
"name" : "f3235a2e-ef0c-4e92-a4cc-17d5700d52ec",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "statusIndicator",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "nhsNumberTraceStatusExt"
},
{
"valueString" : "valueCodeableConcept.coding[0].code"
}
]
}
]
},
{
"name" : "e70645af-fedf-466d-9298-b2c8252fcbf4",
"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" : "ea927ea0-93e5-421a-9ac4-baebfdc60aa5",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry1",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[0]"
}
]
}
]
},
{
"name" : "f598ba7d-16cc-4828-b6f6-67763ba00c13",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry2",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[1]"
}
]
}
]
},
{
"name" : "3ba21f91-72d9-4796-bc72-a85af895a3c4",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry3",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[2]"
}
]
}
]
},
{
"name" : "ba7f1aec-482b-4d62-b79b-bbab6631e065",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "addressEntry4",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "address"
},
{
"valueString" : "line[3]"
}
]
}
]
},
{
"name" : "7131afd6-19d1-4885-8269-ff9aa797ad29",
"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" : "010a9a1f-aa2b-48cd-a447-0a34ea40d7ef",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "country",
"variable" : "country"
}
],
"rule" : [
{
"name" : "319f4d41-dfd9-4bca-aa41-9170dda9bedf",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "country",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://data.digitisingsocialcare.co.uk/mods/v1/country"
}
]
}
]
},
{
"name" : "b4cb57f6-61a5-4aa4-bf0a-6fef30a9d70a",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "country",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "countryExt"
},
{
"valueString" : "valueCoding.code"
}
]
}
]
},
{
"name" : "a03430f9-3648-46a4-94e8-29df2ec31351",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "country",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueId" : "countryExt"
},
{
"valueString" : "valueCoding.display"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}