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: ObservationEducationHistoryToEducationHistory

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

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

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

group EducationHistory(source src : EducationHistoryObservation, target tgt : EducationHistory) {
  src -> tgt.id = evaluate(src, id) "fb60cd59-6274-4813-ba7b-a0ec48d07f86";
  src ->  tgt.meta as meta,  meta.dataClass as dataClass then {
    src -> dataClass.name = 'Education History' "f69599b2-ebe7-43db-b5f5-f0ac86c5b9eb";
  } "setDataClassName";
  src.subject as subject then {
    src -> tgt.subjectOfCare as subjectOfCare then {
      src -> subjectOfCare.id = evaluate(subject, reference.replace('Patient/','')) "b9f53d5e-bc33-479f-832d-93d4dc538639";
      src -> subjectOfCare.type = 'SubjectOfCare' "a4f6b3fb-7605-4213-9651-a52b01692313";
      src -> subjectOfCare.display = evaluate(subject, display) "333bac12-6b23-41eb-85f2-1ac2986a1a1d";
    } "3e09106a-0a5a-4e16-8693-a005211bf0d9";
  } "setEducationHistorySubject";
  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/','')) "977276a8-a951-4136-9d29-00c822421790";
          src -> careWorker.type = 'CareWorker' "9ce331c6-802b-4c33-b57c-fc09aae2bb2c";
          src -> careWorker.display = evaluate(careWorkerParticipantRef, display) "d8c8587a-5f4d-4e1e-866d-95ccc126254c";
        };
      };
    };
  } "setEducationHistoryCareWorker";
  src -> tgt.datetime = evaluate(src, effectiveDateTime) "setEducationHistoryDateTime";
  src.component as component where $this.code.coding.code='text' then {
    src -> tgt.text = evaluate(component, valueString) "b7915b0f-c3c2-47f6-8ccd-29b91f2a71d2";
  } "setEducationHistoryText";
}