This Implementation Guide provides maps to transform documents between CDA and FHIR and back. This manual describes for which exchange formats the transformation can be used and how it is executed.
This description focuses on how to execute the transformation in the local development environment. You can also add your own maps in this context.
The transformation as a micro service is described here.
The maps are intended for the transformation of documents, especially eMedication documents, in the context of the Swiss EPR.
Note: The scope is based on the eMedication case study; there is as yet no final mapping of data types, templates and documents.
The following document types are supported and examples of these are shown in these directories:
Document type | CDA examples | FHIR examples | Map CDA to FHIR | Map FHIR to CDA |
---|---|---|---|---|
Swiss EPR document | input\cda-ch | input\ch-core | input\maps\CdaChToBundle.map | input\maps\BundleToCdaCh.map |
Medication Card document | input\cda-ch-emed | input\ch-emed | input\maps\CdaChEmed MedicationCardDocumentToBundle.map | input\maps\BundleToCdaChEmed MedicationCardDocument.map |
Medication Prescription document | input\cda-ch-emed | input\ch-emed | input\maps\CdaChEmed MedicationPrescriptionDocumentToBundle.map | input\maps\BundleToCdaChEmed MedicationPrescriptionDocument.map |
Medication Dispense document | input\cda-ch-emed | input\ch-emed | input\maps\CdaChEmed MedicationDispenseDocumentToBundle.map | input\maps\BundleToCdaCh EmedMedicationDispenseDocument.map |
Medication List document | input\cda-ch-emed | input\ch-emed | input\maps\CdaChEmed MedicationListDocumentToBundle.map | - |
Pharmaceutical Advice document | input\cda-ch-emed | input\ch-emed | input\maps\CdaChEmed PharmaceuticalAdviceDocumentToBundle.map | input\maps\BundleToCdaCh EmedPharmaceuticalAdviceDocument.map |
Medication Treatment Plan document | input\cda-ch-emed | input\ch-emed | input\maps\CdaChEmed MedicationTreatmentPlanDocumentToBundle.map | input\maps\BundleToCdaCh EmedMedicationTreatmentPlanDocument.map |
Immunization Administration | input\cda-ch-vacd | input\ch-vacd | input\maps\CdaChVacd ImmunizationAdministrationDocumentToBundle.map | input\maps\BundleToCdaCh ImmunizationAdministrationDocument.map |
Immunization Certificate | input\cda-ch-vacd | input\ch-vacd | input\maps\CdaChVacd ImmunizationCertificateDocumentToBundle.map | input\maps\BundleToCdaCh ImmunizationCertificateDocument.map |
Vaccination Record | input\cda-ch-vacd | input\ch-vacd | input\maps\CdaChVacd VaccinationRecordDocumentToBundle.map | input\maps\BundleToCdaCh VaccinationRecordDocument.map |
Immunization Recommendation Request | input\cda-ch-vacd | input\ch-vacd | input\maps\CdaChVacd ImmunizationRecommendationRequestDocumentToBundle.map | input\maps\BundleToCdaCh ImmunizationRecommendationRequestDocument.map |
Immunization Recommendation Response | input\cda-ch-vacd | input\ch-vacd | input\maps\CdaChVacd ImmunizationRecommendationResponseDocumentToBundle.map | input\maps\BundleToCdaCh ImmunizationRecommendationResponseDocument.map |
Table 1: Document types with examples and maps
The example documents are structured according to the CDA/FHIR specifications for the exchange formats. The specification of the eMedication depends on the specification of the Swiss EPR exchange format.
Documents in the context of the Swiss EPR:
eMedication Documents:
-
Art-Decor CDA-CH-EMED eMedication
-
FHIR Implementation Guide CH EMED
eVaccination Documents:
-
FHIR Implementation Guide CH VACD
To transform the documents from CDA to FHIR and back and maybe add your own maps, you should prepare the following setup:
- Download Visual Studio Code
- Install a REST Client for Visual Studio Code:
Open VSC, press Ctrl + Shift + X, search for rest-client, then install it (humao.rest-client)
- Download and install Docker
docker pull eu.gcr.io/fhir-ch/matchbox:v0815
docker run -d --name matchbox -p 8080:8080 eu.gcr.io/fhir-ch/matchbox:v0815
docker logs matchbox
- Download GitHub Desktop
Clone this project https://github.com/hl7ch/cda-fhir-maps
- Option 1: GitHub Desktop
- Option 2: VSC Terminal:
git clone https://github.com/hl7ch/cda-fhir-maps.git
Open it with Visual Studio Code (REST Client extension is needed).
- Open cdatofhir.http or fhirtocda.http from the main directory with Visual Studio Code.
- Choose @host = http://localhost:8080/r4
- Add the maps to matchbox (Step 1 to 3).
- Transform your document (Examples shown in Step 5).
- Open following files, depending on the requiered exchange format, from the main directory with Visual Studio Code:
- Medication Card document: cdatofhir_card.http, fhirtocda_card.http
- Medication Dispense document: cdatofhir_dispense.http, fhirtocda_dispense.http
- Medication Prescription document: cdatofhir_prescription.http, fhirtocda_prescription.http
- Medication List document: cdatofhir_list.http, -
- Pharmaceutical Advice document: cdatofhir_padv.http, fhirtocda_padv.http
- Medication Treatment Plan document: cdatofhir_treatmentplan.http, fhirtocda_treatmentplan.http
- Choose @host = http://localhost:8080/r4
- Transform your document of the choosen exchange format (Examples shown in Step 5).