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
| Official URL: https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Task-Transfer | Version: 0.1.0 | |||
| Draft as of 2026-06-10 | Computable Name: TaskToTransfer | |||
map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Task-Transfer" = "TaskToTransfer" uses "http://hl7.org/fhir/StructureDefinition/Task" alias Task as source uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Transfer" alias Transfer as target group Transfer(source src : Task, target tgt : Transfer) { src -> tgt.id = evaluate(src, id) "335aa944-2966-4cbb-ace2-27a0974da230"; "setTransferId" "d6f9ef6f-4a74-4dd2-a13c-3f62132ffee5"; src -> tgt.meta as meta, meta.dataClass as dataClass then { src -> dataClass.name = 'Transfer' "1c0a7271-c357-48d1-94dd-f74a6f41eb01"; } "setDataClassName"; src -> tgt.requestor as requestor then { src -> requestor.organisation as organisation then { src.requester as requester then { src -> organisation.id = evaluate(requester, identifier.value) "9dd5716f-bc27-45e8-b6d5-6e8e42a634e2"; src -> organisation.type = 'CareOrganisation' "88b2de08-62b5-4303-8ffa-d73d0246ee39"; src -> organisation.display = evaluate(requester, display) "c249e7f0-1fee-453f-a866-77e1d4598452"; }; } "setRequestorOrganisation"; src.extension as transferParticipantsExt where $this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-TransferTaskParticipant' then { transferParticipantsExt.extension as requestedByParticipantExt where $this.url='transferTaskParticipantRole'and$this.valueCode='requested-by' then { transferParticipantsExt.extension as requestorParticipentExt where $this.url='transferTaskParticipant' then { requestorParticipentExt.valueReference as requestorReference then { src -> requestor.contact as requestedByContact then { src -> requestedByContact.id = evaluate(requestorReference, identifier.value) "49b0d9ff-fb40-4fa8-9f2a-0db94ab7d4de"; src -> requestedByContact.type = 'CareWorker' "8289247a-9a57-4128-a84b-0ab74b18ba18"; src -> requestedByContact.display = evaluate(requestorReference, display) "9580ff8c-2f1c-4c0e-a2d2-aa61b530d6d0"; } "d30fb211-6f23-4a3c-b25a-497ec505036a"; }; }; }; } "setRequestorContact"; } "setRequestor"; src -> tgt.fulfiller as fulfiller then { src -> fulfiller.organisation as organisation then { src.owner as owner then { src -> organisation.id = evaluate(owner, identifier.value) "d106ee31-76a8-4c30-9d77-b33466883e51"; src -> organisation.type = 'CareOrganisation' "a6864fe4-61f1-4ac5-911e-6953db8435df"; src -> organisation.display = evaluate(owner, display) "b3f5f6a2-43e9-4cc4-8b59-abfc511db4b7"; }; } "setFulfillerOrganisation"; src.extension as transferParticipantsExt where $this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-TransferTaskParticipant' then { transferParticipantsExt.extension as fulfilledByParticipantExt where $this.url='transferTaskParticipantRole'and$this.valueCode='fulfilled-by' then { transferParticipantsExt.extension as fulfillerParticipentExt where $this.url='transferTaskParticipant' then { fulfillerParticipentExt.valueReference as fulfillerReference then { src -> fulfiller.contact as fulfilledByContact then { src -> fulfilledByContact.id = evaluate(fulfillerReference, identifier.value) "7e7d3f57-6cc8-4072-b6be-58f695efe208"; src -> fulfilledByContact.type = 'CareWorker' "6dbbdd58-441a-4b55-89cf-051f25afdd94"; src -> fulfilledByContact.display = evaluate(fulfillerReference, display) "811d7fcf-17b8-4ea3-bbd9-0070b0fff8aa"; } "ee7f3983-f99f-48e1-9c5c-30b594b58bf4"; }; }; }; } "setFulfillerContact"; } "setFulfiller"; src -> tgt.subject as subject then { src.for as patient then { src -> subject.name as name then { src -> name.given = evaluate(patient, display.split(' ')[0]) "d2928417-6f00-4479-af25-06fab85fd74d"; src -> name.family = evaluate(patient, display.split(' ')[1]) "aaeca338-cc07-4f4f-a4c9-25ce959f293d"; } "ad21e89e-7229-47e3-9d64-4a293f116fb7"; src -> subject.nhsNumber as nhsNumber then { patient.identifier as patientNhsNumber then { src -> nhsNumber.value = evaluate(patientNhsNumber, value) "3c912d74-138d-4671-8157-ac34d90f5230"; patientNhsNumber.extension as nhsNumberTraceStatusExt where $this.url='https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus', nhsNumberTraceStatusExt.valueCodeableConcept as traceStatusCodeableConcept, traceStatusCodeableConcept.coding as traceStatusCoding then { src -> nhsNumber.statusIndicator as statusIndicator then { src -> statusIndicator.code = evaluate(traceStatusCoding, code) "f4ae38cb-c1de-4b77-8b9f-e7be2a183575"; src -> statusIndicator.display = evaluate(traceStatusCoding, display) "4feb88f8-9488-4813-8dae-f5d1d51b88b8"; } "82d4539f-4091-4b5f-bd43-8174c489bc81"; } "extension"; }; } "2e5c25f1-10c3-4f00-8ece-909fc3ba2553"; }; } "setSubject"; src.executionPeriod as period then { src -> tgt.targetCompletion = evaluate(period, end) "84a326cb-4580-4141-8628-4d08bf0ec7b4"; } "setTargetCompletionDate"; src -> tgt.tracking as tracking then { src.identifier as requestorTrackingIdentifier where $this.system='https://metadata.phase2.scip.synanetics.cloud/transfer-tracking-id/requestor-tracking-id', requestorTrackingIdentifier.value as requestorTrackingId then { src -> tracking.requestorTrackingId = requestorTrackingId "5d50e482-1c06-4042-84ec-cc8c34d9952b"; } "identifier"; src.identifier as fulfillerTrackingIdentifier where $this.system='https://metadata.phase2.scip.synanetics.cloud/transfer-tracking-id/fulfiller-tracking-id', fulfillerTrackingIdentifier.value as fulfillerTrackingId then { src -> tracking.fulfillerTrackingId = fulfillerTrackingId "b6b491c7-d765-491f-a26e-b90c6c1c77cb"; } "identifier"; src -> tracking.progress as progress then { src -> progress.status = evaluate(src, status) "00aa50e3-05df-48f4-bf63-e206dc732a73"; src.lastModified as lastModified then { src -> progress.date = lastModified "2f128f84-8925-41f7-850a-faae31eda010"; }; } "d6d65cc3-131e-4ed2-a6d8-13c08bcbd48a"; src.note as notes -> tracking.notes as note then { src -> note.date = evaluate(notes, time) "f1afa3f3-13de-4414-9b9b-7615ccd923dd"; src -> note.text = evaluate(notes, text) "8096b036-8298-4375-87fe-078b796de5be"; }; } "setTrackingInformation"; }