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-03-24 | 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) "f33d7a72-af48-4149-a047-ce5c099b7263"; "setTransferId" "6c29f53b-c9c7-4389-91f7-2becd074c5c7"; src -> tgt.meta as meta, meta.dataClass as dataClass then { src -> dataClass.name = 'Transfer' "f2350ffa-64e9-463f-a11a-bc88575c9d2c"; } "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) "7fe698c2-c9b6-4e63-b49c-381c671fb7ed"; src -> organisation.type = 'CareOrganisation' "4c7ba806-0cb8-4a4e-8128-71e386ce8f7d"; src -> organisation.display = evaluate(requester, display) "66a86472-8fcf-4b40-86c3-1c1ee1610c2c"; }; } "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) "a223dfa0-45f9-47bb-b221-06ee0f464f16"; src -> requestedByContact.type = 'CareWorker' "1ed11879-9f4c-4519-a876-8a221b86a260"; src -> requestedByContact.display = evaluate(requestorReference, display) "e8faefe8-3b47-47c9-afb3-3a1ae18745e4"; } "24527dc7-88d3-4733-afde-81eed58bce50"; }; }; }; } "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) "6f5ab9f9-49c7-4266-b19f-88338cb99b56"; src -> organisation.type = 'CareOrganisation' "9406e5c5-7067-4568-a668-b081b9cbaa77"; src -> organisation.display = evaluate(owner, display) "14728991-d095-4322-a09a-a47d75952c6f"; }; } "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) "707b4a2d-7110-4974-8874-e1ef1a6b2d48"; src -> fulfilledByContact.type = 'CareWorker' "5afd91e2-e68f-4696-b777-758274f567dc"; src -> fulfilledByContact.display = evaluate(fulfillerReference, display) "112651ff-4e91-4361-8627-4ecc9678719d"; } "87c65109-135e-44a0-8ca2-3f3d6f1a85be"; }; }; }; } "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]) "a91e9838-2125-451c-af92-01300e7fc63f"; src -> name.family = evaluate(patient, display.split(' ')[1]) "7f69bfa2-7ad7-4bf4-969f-2320084476f9"; } "c46cffe5-23b5-4220-897d-547f2a69fcd5"; src -> subject.nhsNumber as nhsNumber then { patient.identifier as patientNhsNumber then { src -> nhsNumber.value = evaluate(patientNhsNumber, value) "a40f5515-0343-48e5-bf0d-ebcaf8693c81"; 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) "d87bff6c-e21b-402e-81f9-1d8f76e6a57c"; src -> statusIndicator.display = evaluate(traceStatusCoding, display) "63cd7af9-1023-46af-9e35-3b3bcae421fc"; } "2bd45bc3-b30c-4d36-a1a0-8181aa207fb6"; } "extension"; }; } "c8510416-c02a-4c46-a234-e96ffc98839c"; }; } "setSubject"; src.executionPeriod as period then { src -> tgt.targetCompletion = evaluate(period, end) "f839a107-b477-4126-b2aa-8c1a3e26173e"; } "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 "1f2fc416-09a5-4dbe-9ea4-934729de83ba"; } "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 "c9bc9c5e-860b-4f38-b57e-df699b431750"; } "identifier"; src -> tracking.progress as progress then { src -> progress.status = evaluate(src, status) "79647b7f-3c0d-4c67-b73e-7205de6268c5"; src.lastModified as lastModified then { src -> progress.date = lastModified "a394c17d-3f9d-4b76-b813-260a1946230b"; }; } "5e47a4dd-7946-4786-9b56-e52cbb149d6e"; src.note as notes -> tracking.notes as note then { src -> note.date = evaluate(notes, time) "1d900578-90f1-41a7-a09a-f6c5a86becd6"; src -> note.text = evaluate(notes, text) "a586d995-cd01-403b-8383-b6904040259e"; }; } "setTrackingInformation"; }