Ethiopia FHIR Implementation Guide - HIV Treatment & Care Services
1.0.1 - ci-build Ethiopia flag

Ethiopia FHIR Implementation Guide - HIV Treatment & Care Services, published by Jembi Health Systems. This guide is not an authorized publication; it is the continuous build for version 1.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/jembi/ethiopia-hiv/ and changes regularly. See the Directory of published versions

StructureMap: Map Family Planning Method Question to an Observation

Official URL: http://moh.gov.et/fhir/hiv/StructureMap/FamilyPlanningMethodToObservation Version: 1.0.1
Draft as of 2024-10-14 Computable Name: FamilyPlanningMethodToObservation

Generated Narrative: StructureMap FamilyPlanningMethodToObservation

map "http://moh.gov.et/fhir/hiv/StructureMap/FamilyPlanningMethodToObservation" = "FamilyPlanningMethodToObservation"

uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" as source
uses "http://moh.gov.et/fhir/hiv/StructureDefinition/family-planning-method-observation" as target

group FamilyPlanningMethodToObservation(source src : QuestionnaireResponse, target tgt : Observation) {
  src -> tgt.id = uuid() "SetObservationId";
  src -> tgt.status = 'final' "SetStatusCodeValue";
  src -> tgt.code = cc('http://snomed.info/sct', '243816001') "SetCodeCodeableConcept";
  src.authored as authored -> tgt.effective = create('dateTime') as observationDate then {
    authored as authoredDate -> observationDate = authoredDate "SetObservationDate";
  } "ProcessObservationDate";
  src -> tgt.category = cc('http://hl7.org/fhir/observation-category', 'social-history') "SetCategoryCodeableConcept";
  src.subject as patient -> tgt.subject = create('Reference') as subject then {
    patient as pat -> subject.reference = pat "SetPatientReference";
  } "ProcessPatientReference";
  src.author as author -> tgt.performer = create('Reference') as performer then {
    author as auth -> performer.reference = auth "SetAuthorReference";
  } "ProcessAuthorReference";
  src.encounter as QREncounter -> tgt.encounter = create('Reference') as ObsEncounter then {
    QREncounter as enc -> ObsEncounter.reference = enc "SetEncounterReference";
  } "ProcessAuthorReference";
  src.item as item where (linkId = 'fpm') then {
    item.answer first as ans then {
      ans.value : Coding as fpm -> tgt.extension = create('Extension') as fpmExtension then {
        fpm -> fpmExtension.value = create('CodeableConcept') as fpmExtensionValue then {
          fpm -> fpmExtensionValue = fpm "SetCoding";
        } "SetExtensionCodeCodeableConcept";
      };
    };
  };
}