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

StructureMap: ObservationWishToWish

Official URL: https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-Wish-Wish Version: 0.1.0
Draft as of 2026-06-10 Computable Name: ObservationWishToWish

map "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-Wish-Wish" = "ObservationWishToWish"

uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-WishObservation" alias WishObservation as source
uses "https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Wish" alias Wish as target

group Wish(source src : WishObservation, target tgt : Wish) {
  src -> tgt.id = evaluate(src, id) "8a6e8c94-0683-4e2d-b054-59c628778af0";
  src ->  tgt.meta as meta,  meta.dataClass as dataClass then {
    src -> dataClass.name = 'Wish' "1ee24f86-efa9-4e62-95ce-cb31be339b67";
  } "setDataClassName";
  src.subject as subject then {
    src -> tgt.subjectOfCare as subjectOfCare then {
      src -> subjectOfCare.id = evaluate(subject, reference.replace('Patient/','')) "b1f32675-c09e-431d-8d0f-93eb66ec0a58";
      src -> subjectOfCare.type = 'SubjectOfCare' "b56d7432-bc25-4c65-82a1-2ee8df8fb248";
      src -> subjectOfCare.display = evaluate(subject, display) "fc9fea85-859d-40b1-9834-e3e4089c0540";
    } "9969a229-0039-408d-8fc7-f0132df3cb8b";
  } "setWishSubject";
  src.extension as participantsExt where $this.url='https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-ParticipantCareActor' -> tgt.careWorker as careWorker then {
    participantsExt.extension as careWorkers where $this.url='participantRole'and$this.valueCode='performer' then {
      participantsExt.extension as careWorkerParticipantReferences where $this.url='participantReference' then {
        careWorkerParticipantReferences.valueReference as careWorkerParticipantRef then {
          src -> careWorker.id = evaluate(careWorkerParticipantRef, reference.replace('Practitioner/','')) "8622a6c4-4a54-4cac-82fc-659eddc231d3";
          src -> careWorker.type = 'CareWorker' "e1309bda-c135-4834-b80d-a24b9a2fdeac";
          src -> careWorker.display = evaluate(careWorkerParticipantRef, display) "7918c355-d390-4efc-a7af-bf89a6b7fd05";
        };
      };
    };
  } "setWishCareWorker";
  src.component as component where $this.code.coding.code='coded' then {
    src -> tgt.coding as coding then {
      component.valueCodeableConcept as vcc, vcc.coding as vc then {
        src -> coding.code = evaluate(vc, code) "8257cdc3-fe17-434e-bed9-ac79de0b8745";
        src -> coding.display = evaluate(vc, display) "232051e3-ff4b-4b15-8685-ed037f9eecdb";
      } "valueCodeableConcept";
    } "66c3b571-14cb-4ee3-845f-79f2a546813e";
  } "setWishCoding";
  src -> tgt.datetime = evaluate(src, effectiveDateTime) "setWishDateTime";
  src.component as component where $this.code.coding.code='text' then {
    src -> tgt.text = evaluate(component, valueString) "728fd9bb-25dc-41e9-9050-09cdd2e62361";
  } "setWishText";
}