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

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

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

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

group EducationHistoryObservation(source src : EducationHistory, target tgt : EducationHistoryObservation) {
  src -> tgt.id = evaluate(src, id) "fa9d08ad-ed52-4584-892c-cde2061fb2dd";
  src ->  tgt.meta as meta,  meta.tag as tag then {
    src -> tag.system = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-FhirStructureMapCatalog-1' "250f5fd9-1911-4d1f-a513-fcfcd1e95317";
    src -> tag.code = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-EducationHistory-EducationHistory' "4fc25808-4265-44f9-ac82-d126d2186220";
  } "setMetaTag";
  src.careWorker as careWorker then {
    src ->  src.extension as participantExt,  participantExt.url = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/Extension-MODS-ParticipantCareActor' then {
      careWorker -> participantExt.extension as participantRoleExt then {
        careWorker -> participantRoleExt.url = 'participantRole' "ea5f6693-ea61-4c3e-adab-22b8fed8a397";
        careWorker -> participantRoleExt.valueCode = 'performer' "17219382-3de1-46ef-ae6a-6aa1f3a7e0c9";
      } "3d4bac06-dde0-4138-a77b-f3fbe6f04bc1";
      careWorker -> participantExt.extension as participantRefExt then {
        careWorker -> participantRefExt.url = 'participantReference' "cbd035c0-e1b5-4bea-8db0-bfec151c261f";
        careWorker -> participantRefExt.valueReference as participantReference then {
          careWorker -> participantReference.reference = evaluate(careWorker, 'Practitioner/'+id) "1d29081f-46ed-4d0e-8390-7ef8af6f30a5";
          careWorker -> participantReference.display = evaluate(careWorker, display) "02081227-2f20-4a34-9384-fc47f95e6f6e";
        } "7a4c826d-6f8c-457b-876e-4b7fff825c53";
      } "3a257a23-60e0-4871-ad4a-cbe91a795d7f";
      participantExt -> tgt.extension "3b9273ea-b684-4a14-b2f6-b1a42fa3529d";
    } "c6ceb905-32c3-4ce8-9026-088297f692bd";
  } "setObservationPerformer";
  src.subjectOfCare as subjectOfCare then {
    src -> tgt.subject as subject then {
      src -> subject.reference = evaluate(subjectOfCare, 'Patient/'+id) "c793b06d-619f-43b0-af39-5745e5dfa03d";
      src -> subject.display = evaluate(subjectOfCare, display) "6696e6aa-24e0-4c76-ad03-e2440243b2c0";
    } "d3e2b30f-ce8e-4b77-a6a7-b389979a43cc";
  } "setObservationSubject";
  src -> tgt.status = 'final' "setObservationStatus";
  src -> tgt.category = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationCategory-1', '3', 'Observations') "setObservationCategory";
  src -> tgt.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationCode-1', '13', 'Education History') "setObservationCode";
  src -> tgt.effectiveDateTime = evaluate(src, datetime) "setObservationEffectDateTime";
  src.text as text then {
    src -> tgt.component as freeText then {
      src -> freeText.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationComponentCode-1', 'text', 'Free-text') "75a56237-bc2e-4fae-92b4-2cb34c40ccb8";
      src -> freeText.valueString = evaluate(src, text) "2f692b8f-b18b-47da-925a-a6ec3b716e77";
    } "setObservationTextComponent";
  };
}