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-03-24 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) "c5628203-4e07-4206-9bcf-df1507a746bb";
  src ->  tgt.meta as meta,  meta.dataClass as dataClass then {
    src -> dataClass.name = 'Wish' "5a1cf2a1-5162-47b1-a610-8a8741bec71c";
  } "setDataClassName";
  src.subject as subject then {
    src -> tgt.subjectOfCare as subjectOfCare then {
      src -> subjectOfCare.id = evaluate(subject, reference.replace('Patient/','')) "34eecfa4-75c4-4e80-abce-9ec3412a3ee9";
      src -> subjectOfCare.type = 'SubjectOfCare' "d60f3454-bf6e-408f-b9dd-4020c03c0b23";
      src -> subjectOfCare.display = evaluate(subject, display) "55554e77-0464-4d10-8b15-5e72bcbd1156";
    } "84cc9c46-57d8-403e-a5fb-49cb9e526f97";
  } "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/','')) "84429606-339e-40c9-8353-47af1326f030";
          src -> careWorker.type = 'CareWorker' "3e252120-fd98-4e87-a2c6-78c29a7db04e";
          src -> careWorker.display = evaluate(careWorkerParticipantRef, display) "9742156d-908b-496f-b0be-a6113450cc71";
        };
      };
    };
  } "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) "1a1f8522-e0cf-45e1-a7c5-4e60d22f57e9";
        src -> coding.display = evaluate(vc, display) "8bb0cab5-9d96-42ab-a7cd-12aa0c85ab56";
      } "valueCodeableConcept";
    } "62a112a1-c611-48db-8fbf-909df1feccc4";
  } "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) "1ae3f453-8a5e-43fb-8efe-00e8cb781871";
  } "setWishText";
}