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

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

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

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

group DailyLivingObservation(source src : DailyLiving, target tgt : DailyLivingObservation) {
  src -> tgt.id = evaluate(src, id) "15ec3d36-a564-49d4-9100-f429a2a7dfd6";
  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' "f430d1b1-d30f-47b1-9982-997f82911926";
    src -> tag.code = 'https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureMap/Observation-DailyLiving-DailyLiving' "64000e68-5542-4892-9e4e-0bef43c9a869";
  } "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' "be6090a9-0495-4a1f-8fa3-aabb2621e4a5";
        careWorker -> participantRoleExt.valueCode = 'performer' "4dc7ed88-cda0-466c-8221-3020f4f6388a";
      } "b44629ab-0a19-4b58-8a37-d41725cac676";
      careWorker -> participantExt.extension as participantRefExt then {
        careWorker -> participantRefExt.url = 'participantReference' "6407004c-5f7d-4c67-8a82-3832aba33edb";
        careWorker -> participantRefExt.valueReference as participantReference then {
          careWorker -> participantReference.reference = evaluate(careWorker, 'Practitioner/'+id) "8a9c144b-6ff7-4300-98d9-4497f9e79e4b";
          careWorker -> participantReference.display = evaluate(careWorker, display) "5168db09-de82-4cf9-9dfc-160312229458";
        } "8bf3f956-a7bc-4d59-973f-3549beb1a302";
      } "900c8b27-0855-48e4-b84c-eaa8c458bf18";
      participantExt -> tgt.extension "871f7aff-2382-4a03-bd58-2a84842c0f65";
    } "2cee474a-8403-490e-b2f6-1458eeef77f0";
  } "setObservationPerformer";
  src.subjectOfCare as subjectOfCare then {
    src -> tgt.subject as subject then {
      src -> subject.reference = evaluate(subjectOfCare, 'Patient/'+id) "bcd5364e-d806-45eb-a09c-af76aaa6c6cd";
      src -> subject.display = evaluate(subjectOfCare, display) "015f9805-d007-43ec-a985-1b1b7997729e";
    } "0018051a-1c25-44d6-a8d4-bb6ebb3bef92";
  } "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', '9', 'Daily Living') "setObservationCode";
  src -> tgt.effectiveDateTime = evaluate(src, datetime) "setObservationEffectDateTime";
  src.coding as aspectCoding then {
    src -> tgt.component as coded then {
      src -> coded.code = cc('https://metadata.phase2.scip.synanetics.cloud/fhir/r4/CodeSystem/MODS-ObservationComponentCode-1', 'coded', 'Coded') "c3c31620-e94a-481b-9ade-e805afd63a9e";
      src -> coded.valueCodeableConcept = cc('http://snomed.info/sct', '', '') as vcc then {
        vcc.coding as coding then {
          vcc -> coding.code = evaluate(aspectCoding, code) "edea6aba-8a49-48a0-bedc-e9c5a3d664d5";
          vcc -> coding.display = evaluate(aspectCoding, display) "cfe86230-9862-4962-895f-401be7ae69d2";
        };
      } "c84e785c-22dc-4240-b4fd-61d5dc790b2f";
    } "05d9922a-89e5-41ab-a7ab-b18548d9870b";
  } "setObservationDailyLivingAspectComponentCode";
  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') "81a0083f-93e2-4df6-9d2b-98ae1cd283d7";
      src -> freeText.valueString = evaluate(src, text) "247d0740-74b3-45b2-b516-333ae12e2f1c";
    } "setObservationTextComponent";
  };
}