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

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

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

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

group AboutMeObservation(source src : AboutMeObservation, target tgt : AboutMe) {
  src -> tgt.id = evaluate(src, id) "setAboutMeId";
  src ->  tgt.meta as meta,  meta.dataClass as dataClass then {
    src -> dataClass.name = 'About Me' "43e0c2e3-ef2b-4186-a128-bf43d57f04c2";
  } "setDataClassName";
  src.subject as subject then {
    src -> tgt.subjectOfCare as subjectOfCare then {
      src -> subjectOfCare.id = evaluate(subject, reference.replace('Patient/','')) "cdadf285-8ec1-4cd9-8937-127268f356ff";
      src -> subjectOfCare.type = 'SubjectOfCare' "dc9e8a23-10a0-45d3-8780-6380db1c3ff4";
      src -> subjectOfCare.display = evaluate(subject, display) "ba0d28d5-29e2-4078-af76-e8e428ada5a2";
    } "25ee860b-f2e6-46a9-a701-c57afb83053c";
  } "setSubject";
  src.performer as performer then {
    src -> tgt.careWorker as careWorker then {
      src -> careWorker.id = evaluate(performer, reference.replace('Practitioner/','')) "27d76006-647b-4282-87e2-f18f0c950def";
      src -> careWorker.type = 'CareWorker' "e3ae4919-227e-43a9-8139-3aa14e047059";
      src -> careWorker.display = evaluate(performer, display) "0270f0c8-55f6-4d95-81f0-c0152d1392e5";
    } "905800db-ec79-4fea-997f-61f5b0630e3e";
  } "setCareWorker";
  src -> tgt.date = evaluate(src, effectiveDateTime) "setDate";
  src.component as component where $this.code.coding.code='people-who-are-important-to-me' then {
    src -> tgt.sections as peopleWhoAreImportantToMe then {
      src -> peopleWhoAreImportantToMe.title as title then {
        src -> title.code = 'people-who-are-important-to-me' "ac83c381-7e74-495e-8488-fd4f64ddcdb2";
        src -> title.display = 'People who are important to me' "63d1048f-7559-44dc-a501-13e96a3b31b3";
      } "d5b744a5-be0a-4833-a0c6-516c1d54a98b";
      src -> peopleWhoAreImportantToMe.content = evaluate(component, valueString) "15db6ac9-d439-4a9e-8c2e-387926eb9450";
    } "096ad24d-64f2-446e-a025-82fcc89eefb2";
  } "setPeopleWhoAreImportantToMe";
  src.component as component where $this.code.coding.code='my-wellness' then {
    src -> tgt.sections as myWellness then {
      src -> myWellness.title as title then {
        src -> title.code = 'my-wellness' "625ae743-8db0-477b-a3bb-2d9f3d5fbc7d";
        src -> title.display = 'My wellness' "d10fc7ec-dcd0-4cda-9312-78592b4ef67b";
      } "ac20ba49-4c88-45fe-bdb2-88618dd957ed";
      src -> myWellness.content = evaluate(component, valueString) "139fe8a3-a1e3-4f9b-a8ed-e6eadd51e7a7";
    } "0125c6ff-eaa6-4938-803a-06873f261aeb";
  } "setMyWellness";
  src.component as component where $this.code.coding.code='supported-to-write-this-by' then {
    src -> tgt.sections as supportedToWriteThisBy then {
      src -> supportedToWriteThisBy.title as title then {
        src -> title.code = 'supported-to-write-this-by' "1fc3e732-2fb3-4ae7-887a-ed63749eb36e";
        src -> title.display = 'Supported to write this by' "52ef04e5-eb08-4ad9-a009-8f4002a1bb84";
      } "a37a6fea-a274-4471-92ac-82aa0b79b632";
      src -> supportedToWriteThisBy.content = evaluate(component, valueString) "58fb4977-5653-48cc-a2c6-16df81d3de54";
    } "ef68b145-1f93-4ed2-a870-4bbaba9a8111";
  } "setSupportedToWriteThisBy";
  src.component as component where $this.code.coding.code='please-do-and-please-dont' then {
    src -> tgt.sections as pleaseDoAndPleaseDont then {
      src -> pleaseDoAndPleaseDont.title as title then {
        src -> title.code = 'please-do-and-please-dont' "6981b4f3-d207-4d37-a0d3-6f547ddbd4d2";
        src -> title.display = 'Please do and please dont' "2f0d182b-f3b3-4ce7-bf3b-30d730dfcba4";
      } "89550aa2-b289-4233-a167-a5edd977a10b";
      src -> pleaseDoAndPleaseDont.content = evaluate(component, valueString) "a189432d-d0e4-4f1f-ba09-3ff2e75e97a4";
    } "8bd4f886-4c35-4bea-8d20-0133b9f70353";
  } "setPleaseDoAndPleaseDont";
  src.component as component where $this.code.coding.code='how-i-communicate' then {
    src -> tgt.sections as howICommunicate then {
      src -> howICommunicate.title as title then {
        src -> title.code = 'how-i-communicate' "94765567-97c7-40fe-899f-31a1e7504ed9";
        src -> title.display = 'How I communicate and how to communicate with me' "1b5dc147-c3f3-4693-9b62-1a384865b503";
      } "e57ef2f1-9ed6-4c9f-a21f-2eb14e93a822";
      src -> howICommunicate.content = evaluate(component, valueString) "b648e867-0ea6-420e-9f57-fb0e709bb1ac";
    } "7f758f15-d2a1-419c-bd4b-95ae843193c4";
  } "setHowICommunicate";
  src.component as component where $this.code.coding.code='also-worth-knowing-about-me' then {
    src -> tgt.sections as alsoWorthKnowingAboutMe then {
      src -> alsoWorthKnowingAboutMe.title as title then {
        src -> title.code = 'also-worth-knowing-about-me' "e9945b0f-7bfb-46c2-9405-021c1e8a99fe";
        src -> title.display = 'Also worth knowing about me' "7572d5d3-03cb-4302-b093-066e79e00130";
      } "6bc1bbae-43bd-4663-afaf-84cd651f8441";
      src -> alsoWorthKnowingAboutMe.content = evaluate(component, valueString) "ce5e301d-fbc4-4e94-ad1c-4e5ccdd272dc";
    } "76cf3037-6a33-4ca0-8244-fb3d61ee97cd";
  } "setAlsoWorthKnowingAboutMe";
  src.component as component where $this.code.coding.code='what-is-most-important-to-me' then {
    src -> tgt.sections as whatIsMostImportantToMe then {
      src -> whatIsMostImportantToMe.title as title then {
        src -> title.code = 'what-is-most-important-to-me' "c6871e06-96ae-4f44-be5e-8c953db78a60";
        src -> title.display = 'What is most important to me' "a382f819-5bc9-48e0-9e60-9a6d66626b54";
      } "09d01e3b-ecde-4207-8795-4db4f2b180fb";
      src -> whatIsMostImportantToMe.content = evaluate(component, valueString) "543c9cc3-7b99-4864-af84-27e910c60b2a";
    } "770673bf-ac2a-4e8f-b437-052517c341c2";
  } "setWhatIsMostImportantToMe";
  src.component as component where $this.code.coding.code='how-and-when-to-support-me' then {
    src -> tgt.sections as howAndWhenToSupportMe then {
      src -> howAndWhenToSupportMe.title as title then {
        src -> title.code = 'how-and-when-to-support-me' "b5080aff-cbdc-4dda-b03a-5f8204147621";
        src -> title.display = 'How and when to support me' "d05ef758-81a7-4897-b6be-d642fc0eb18a";
      } "a751962a-58f7-4766-b532-fcfd652b3f6b";
      src -> howAndWhenToSupportMe.content = evaluate(component, valueString) "f88ce8a3-0a0f-44bc-87ff-5401996e385d";
    } "75b3cd11-b0a1-463f-8241-c48b1d3fb058";
  } "setHowAndWhenToSupportMe";
}