// ------------------------------------------------------------------------------- // Concept Model. File: patientSummary-to-fhir-map.fsh // ------------------------------------------------------------------------------- Instance: patientSummary2FHIR-eu-ps InstanceOf: ConceptMap Usage: #definition // * url = "http://terminology.hl7.it/ConceptMap/ConceptMap-subject2osiris" * name = "PatientSummary2FHIR" * title = "eHN Patient Summary to this guide Map" * status = #draft * experimental = true * description = "eHN Patient Summary to this guide Map" * purpose = "It shows how the Patient Summary data set defined by the EU eHN guidelines is mapped into this guide" * sourceUri = "http://hl7.eu/fhir/ig/xpandh/ps/StructureDefinition/PatientSummary" * targetUri = "http://hl7.eu/fhir/ig/xpandh/ps/StructureDefinition/Bundle-eu-ps" * group[+].source = "http://hl7.eu/fhir/ig/xpandh/ps/StructureDefinition/PatientSummary" * group[=].target = "http://hl7.eu/fhir/ig/xpandh/ps/StructureDefinition/Composition-ps-xpandh" * group[=].element[+].code = #PatientSummary.header * group[=].element[=].display = "A.1 Report header data elements" * group[=].element[=].target.code = #Composition * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.subject * group[=].element[=].display = "A.1.1 A1.2 Patient/subject" * group[=].element[=].target.code = #Composition.subject * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.insuranceInfo * group[=].element[=].display = "A.1.3 Insurance information" * group[=].element[=].target.code = #Composition.subject * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.insuranceInfo.insuranceNumber * group[=].element[=].display = "A.1.3.1 Insurance number" * group[=].element[=].target.code = #Composition.subject.identifier * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "In some cases the identifier assigned by the payor (e.g. the SSN) is used as one of the Patient Identifiers, this is how it expected to be used foe the PS. The appropriate resource for covneying such a kind of data is Coverage, but a dedicated section should be added to the PS." * group[=].element[+].code = #PatientSummary.header.documentData * group[=].element[=].display = "A.1.4 Document data" * group[=].element[=].target.code = #Composition * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.documentData.created * group[=].element[=].display = "A.1.4.1 Date created" * group[=].element[=].target.code = #Composition.date * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.documentData.lastUpdate * group[=].element[=].display = "A.1.4.2 Date of last update" * group[=].element[=].target.code = #Composition.event:careProvisioningEvent.period.end * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "If it represents the period of time this Patient Summary is covering" * group[=].element[+].code = #PatientSummary.header.documentData.lastUpdate * group[=].element[=].display = "A.1.4.2 Date of last update" * group[=].element[=].target.code = #Composition.meta.lastUpdated * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "If it represents the last update of this FHIR resource" * group[=].element[+].code = #PatientSummary.header.documentData.natureOfIPS * group[=].element[=].display = "A.1.4.3 Nature of the PS" * group[=].element[=].target.code = #Composition.author * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "the nature of a PS is determined as a comobination of type if author and legal authenticator. Future versions may cosndier to use Provenance data for this scope" * group[=].element[+].code = #PatientSummary.header.participant * group[=].element[=].display = "A.1.5 Author and Organisation" * group[=].element[=].target.code = #Composition * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.participant.author * group[=].element[=].display = "A.1.5.1 Author organization" * group[=].element[=].target.code = #Composition.author * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[=].target.comment = "author can be of type Organziation, Pracitctioner or PractictionerRole" * group[=].element[+].code = #PatientSummary.header.participant.legalAuth * group[=].element[=].display = "A.1.5.2 Legal authenticator" * group[=].element[=].target.code = #Composition.attester * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "attester.mode = 'legal'" * group[=].element[+].code = #PatientSummary.header.additionalInfo * group[=].element[=].display = "A.1.6 Additional information / Knowledge resources" //-- unmatched //-- unmatched * group[=].element[=].target.equivalence = #unmatched * group[=].element[=].target.comment = "Covered by other resources" * group[=].element[+].code = #PatientSummary.header.additionalInfo.reference * group[=].element[=].display = "A.1.6.1 External reference" //-- unmatched //-- unmatched * group[=].element[=].target.equivalence = #unmatched * group[=].element[=].target.comment = "Covered by other resources" * group[=].element[+].code = #PatientSummary.header.additionalInfo.relatedWith * group[=].element[=].display = "A.1.6.2 Related with" //-- unmatched //-- unmatched * group[=].element[=].target.equivalence = #unmatched * group[=].element[=].target.comment = "Covered by other resources" * group[=].element[+].code = #PatientSummary.body * group[=].element[=].display = "A.2 Patient summary body data elements" * group[=].element[=].target.code = #Composition.section * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.alerts * group[=].element[=].display = "A.2.1 Alerts" * group[=].element[=].target.code = #Composition.section * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.alerts.allergy * group[=].element[=].display = "A.2.1.1 Allergy" * group[=].element[=].target.code = #Composition.section:sectionAllergies * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.alerts.alert * group[=].element[=].display = "A.2.1.2 Medical alert information (other alerts not included in allergies)" * group[=].element[=].target.code = #Composition.section:sectionAlert * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.alerts.alert.description * group[=].element[=].display = "A.2.1.2.1 Healthcare alert description" * group[=].element[=].target.code = #Composition.section:sectionAlert.text * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "Common textual descirption" * group[=].element[+].code = #PatientSummary.body.alerts.alert.description * group[=].element[=].display = "A.2.1.2.1 Healthcare alert description" * group[=].element[=].target.code = #Composition.section:sectionAlert.entry.code.text * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "entry level description" * group[=].element[+].code = #PatientSummary.body.medicalHistory * group[=].element[=].display = "A.2.2 Medical history" * group[=].element[=].target.code = #Composition.section * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.medicalHistory.vaccination * group[=].element[=].display = "A.2.2.1 Vaccination/ prophylaxis information" * group[=].element[=].target.code = #Composition.section:sectionImmunizations * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicalHistory.inactiveProblem * group[=].element[=].display = "A.2.2.2 Resolved, closed or inactive problems" * group[=].element[=].target.code = #Composition.section:sectionPastIllnessHx * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicalHistory.anamnesis * group[=].element[=].display = "A.2.2.3 Medical history" * group[=].element[=].target.code = #Composition.section * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.medicalHistory.anamnesis.details * group[=].element[=].display = "A.2.2.3.1 Medical history" * group[=].element[=].target.code = #Composition.section:section:sectionPatientHx * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.medicalProblems * group[=].element[=].display = "A.2.3 Medical problems" * group[=].element[=].target.code = #Composition.section * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.medicalProblems.problems * group[=].element[=].display = "A.2.3.1 Current problems" * group[=].element[=].target.code = #Composition.section:section:sectionProblems * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicalProblems.medicalDevices * group[=].element[=].display = "A.2.3.2 Medical devices and implants" * group[=].element[=].target.code = #Composition.section:sectionMedicalDevices * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicalProblems.procedures * group[=].element[=].display = "A.2.3.3 Procedures" * group[=].element[=].target.code = #Composition.section:sectionProceduresHx * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicalProblems.functionalStatus * group[=].element[=].display = "A.2.3.4 Functional status" * group[=].element[=].target.code = #Composition.section:sectionFunctionalStatus * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicationSummary * group[=].element[=].display = "A.2.4 Medication summary" * group[=].element[=].target.code = #Composition.section:sectionMedications * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.medicationSummary.medication * group[=].element[=].display = "A.2.4.1 Current and relevant past medicines" * group[=].element[=].target.code = #Composition.section:sectionMedications.entry * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.socialHistory * group[=].element[=].display = "A.2.5 Social history" * group[=].element[=].target.code = #Composition.section:sectionSocialHistory * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.socialHistory.observation * group[=].element[=].display = "A.2.5.1 Social history observations related to health" * group[=].element[=].target.code = #Composition.section:sectionSocialHistory.entry * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.socialHistory.referenceRange * group[=].element[=].display = "A.2.5.2 Reference date range" * group[=].element[=].target.code = #Composition.section:sectionSocialHistory.entry.effective[x] * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.pregnancyHistory * group[=].element[=].display = "A.2.6 Pregnancy history" * group[=].element[=].target.code = #Composition.section:sectionPregnancyHx * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.patientData * group[=].element[=].display = "A.2.7 Patient provided data" * group[=].element[=].target.code = #Composition.section * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.patientData.travelHistory * group[=].element[=].display = "A.2.7.1 Travel history" * group[=].element[=].target.code = #Composition.section:sectionTravelHx * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.body.patientData.travelHistory.country * group[=].element[=].display = "A.2.7.1.1 Country" * group[=].element[=].target.code = #Composition.section:sectionTravelHx.text * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "if textual description" * group[=].element[+].code = #PatientSummary.body.patientData.travelHistory.period * group[=].element[=].display = "A.2.7.1.2 Period" * group[=].element[=].target.code = #Composition.section:sectionTravelHx.text * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "if textual description" * group[=].element[+].code = #PatientSummary.body.patientData.travelHistory.country * group[=].element[=].display = "A.2.7.1.1 Country" * group[=].element[=].target.code = #Composition.section:sectionTravelHx.entry.valueCodeableConcept * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "entry of type Observation and Obseravtion.code = http://loinc.org#94651-7 'Country of travel [Location]' TBD" * group[=].element[+].code = #PatientSummary.body.patientData.travelHistory.period * group[=].element[=].display = "A.2.7.1.2 Period" * group[=].element[=].target.code = #Composition.section:sectionTravelHx.entry.effectivePeriod * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "OBSERVATION PROFILE TO BE SPECIFIED" * group[=].element[+].code = #PatientSummary.body.patientData.advanceDirective * group[=].element[=].display = "A.2.7.2 Advance Directive" * group[=].element[=].target.code = #Composition.section:sectionAdvanceDirectives * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.patientData.advanceDirective.documentation * group[=].element[=].display = "A.2.7.2.1 Documentation" * group[=].element[=].target.code = #Composition.section:sectionAdvanceDirectives * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "to be reviewed" * group[=].element[+].code = #PatientSummary.body.results * group[=].element[=].display = "A.2.8 Results" * group[=].element[=].target.code = #Composition.section:sectionResults * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.planOfCare * group[=].element[=].display = "A.2.9 Plan of Care" * group[=].element[=].target.code = #Composition.section:sectionPlanOfCare * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent * group[=].element[+].code = #PatientSummary.body.planOfCare.carePlan * group[=].element[=].display = "A.2.9.1 Plan of care" * group[=].element[=].target.code = #Composition.section:sectionPlanOfCare.text * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #equivalent //---END //---END //---END * group[+].source = "http://hl7.eu/fhir/ig/xpandh/ps/StructureDefinition/PatientSummary" * group[=].target = "http://hl7.eu/fhir/ig/xpandh/ps/StructureDefinition/Condition-ps-xpandh" * group[=].element[+].code = #PatientSummary.header.additionalInfo * group[=].element[=].display = "A.1.6 Additional information / Knowledge resources" * group[=].element[=].target.code = #Condition.extension:supporintInfo * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[+].code = #PatientSummary.header.additionalInfo.reference * group[=].element[=].display = "A.1.6.1 External reference" * group[=].element[=].target.code = #Condition.extension:supporintInfo * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "extension[supporintInfo].resolve().ofType(DocumentReference)" * group[=].element[+].code = #PatientSummary.header.additionalInfo.relatedWith * group[=].element[=].display = "A.1.6.2 Related with" * group[=].element[=].target.code = #Condition * group[=].element[=].target.display = "" * group[=].element[=].target.equivalence = #relatedto * group[=].element[=].target.comment = "the containing resource describes the context in this case the Condition" //---END //---END //---END //---END //---END //---END