Logo

This specification conforms to FHIR®© R4

MedCom FHIR®© LandingPage

Mapping between OIOXML standard (XDIS91) and FHIR CareCommunication

This document describes mapping between the OIOXML (XDIS91) and the FHIR CareCommunication. Not all elements from OIOXML are relevant in FHIR CareCommunication, which is marked with a ‘NA’. The purpose of this document is to help implementers of FHIR CareCommunication.
Click here to read the Implementation Guide which includes all requirements for the CareCommunication.

Please notice, that the expressions in ‘Actual FHIR path’ are made using the windows app FHIRPath tester. In other applications, will the apostrophe (‘…’) might not be used.

Table 1:Mapping table between OIOXML, XDIS91 and FHIR CareCommunication

Data

OIOXML

Pseudo FHIR path

Must

Support

Comment

Actual FHIR path

Date for Message sent

Emessage.Envelope.Sent.Date

MedComCareCommunicationMessage.timestamp

Yes

All FHIR timestamps contain both date and time. This element holds information about when a bundle is created. The timestamp is equivalent to MedComCareCommunicationMessage.MedcomMessagingProvenance. occurredDateTime

Bundle.timestamp

Time for Message sent

Emessage.Envelope.Sent.Time

MedComCareCommunicationMessage.timestamp

Yes

All FHIR timestamps contain both date and time. This element holds information about when a bundle is created. The timestamp is equivalent to MedComCareCommunicationMessage.MedcomMessagingProvenance. occurredDateTime

Bundle.timestamp

Message envelope id

Emessage.Envelope.Identifier

MedComCareCommunicationMessage.id

Yes

A unique identifier for a bundle. The MedComCareCommunicationMessage.id must be updated with a new value each time a new message is sent, or a message is resent.

Bundle.id

AcknowledgementCode

Emessage.Envelope.AcknowledgementCode

NA


Not relevant, as all FHIR messages shall be acknowledged.

Message letter id

Emessage.ClinicalEmail.Letter.Identifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.id

Yes

A unique identifier for each message. This identifier should be globally unique.

Bundle.entry.resource.ofType('MessageHeader').id

Version code

Emessage.ClinicalEmail.Letter.VersionCode

NA


The version of a FHIR message can be found in the respective Implementation Guide but is not included when exchanging a message.

Statistical code

Emessage.ClinicalEmail.Letter.StatisticalCode

NA


Only VANSEnvelope contains a statistical code.

Authorization timestamp date

Emessage.ClinicalEmail.Letter.Authorisation.Date

MedComCareCommunicationMessage.timestamp

Yes

This timestamp includes a date and time. It represents the date and time for when the healthcare professional press the ‘sent’-button in the screen.

Bundle.timestamp

Authorization timestamp time

Emessage.ClinicalEmail.Letter.Authorisation.Time

MedComCareCommunicationMessage. MedComCareCommunicationMessageHeader.MedComCareCommunication.sent

Yes

This timestamp includes a date and time. It represents the date and time for when the healthcare professional press the ‘sent’-button in the screen.

Bundle.entry.resource.ofType('Communication').sent


Message type (DIS91)

Emessage.ClinicalEmail.Letter.TypeCode

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.event[x].eventcoding.code

Yes

The type of message. For CareCommunication the code shall be "care-communication-message"

Bundle.entry.resource.ofType('MessageHeader').event.code

Message status

Emessage.ClinicalEmail.Letter.StatusCode

MedComCareCommunicationMessage.MedComMessagingProvenance.activity.coding.code

Yes

The element that describes the status of the CareCommunication e.g. new-message

Bundle.entry.where(resource.ofType('Provenance').target.reference.replace('MessageHeader/','') = %resource.entry.resource.ofType('MessageHeader' ).id).resource.ofType('Provenance').activity.coding.code

Episode of care identifier

Emessage.ClinicalEmail.Letter.EpisodeOfCareIdentifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.episodeOfCare.identifier.value

Yes

A unique identifier for the episode of care.

Bundle.entry.resource.ofType('Encounter').episodeOfCare.identifier.value

EAN id for sender

Emessage.ClinicalEmail.sender.EANIdentifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.sender.MedComMessagingOrganization.identifier.eanIdentifier

Yes

The EAN identifier for a sending organization.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').sender.reference.replace('Organization/','')).resource.ofType('Organization').identifier.where(system = 'urn:oid:1.3.88').value

EAN id for receiver

Emessage.ClinicalEmail.receiver.EANIdentifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.destination.primary.receiver.MedComMessagingOrganization.identifier.eanIdentifier

Yes

The EAN identifier for a receiving organization.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').destination.receiver.reference.replace('Organization/','')).resource.ofType('Organization').identifier.where(system = 'urn:oid:1.3.88').value

Sender id

Emessage.ClinicalEmail.sender.Identifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.sender.MedComMessagingOrganization.identifier

Yes

The identifier that describes the sender of the CareCommunication message. Both a SOR- and EAN-identifier must be sent.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').sender.reference.replace('Organization/','')).resource.ofType('Organization').identifier

Receiver id

Emessage.ClinicalEmail.receiver.Identifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.destination.primary.receiver.MedComMessagingOrganization.identifier

Yes

The identifier that describes the receiver of the CareCommunication message. Both a SOR- and EAN-identifier must be sent.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').destination.receiver.reference.replace('Organization/','')).resource.ofType('Organization').identifier

Sender type

Emessage.ClinicalEmail.sender.IdentifierCode

NA


The type of the organization is given in the SOR identifier. See ‘sender id’.

Receiver type

Emessage.ClinicalEmail.receiver.IdentifierCode

NA


The type of the organization is given in the SOR identifier. See ‘receiver id’.

Sender organization

Emessage.ClinicalEmail.sender.OrganizationName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.sender.MedComMessagingOrganization.name

Yes

This information is depending on the SOR identifier and shall only be included, if the OrganizationName is given in the SOR identifier.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').sender.reference.replace('Organization/','')).resource.ofType('Organization').name

Receiver organization

Emessage.ClinicalEmail.receiver.OrganizationName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.destination.primary.receiver.MedComMessagingOrganization.name

Yes

This information is depending on the SOR identifier and shall only be included, if the OrganizationName is given in the SOR identifier.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').destination.receiver.reference.replace('Organization/','')).resource.ofType('Organization').name

Sender department

Emessage.ClinicalEmail.sender.DepartmentName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.sender.MedComMessagingOrganization.name

Yes

This information is depending on the SOR identifier and shall only be included, if the DepartmentName is given in the SOR identifier.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').sender.reference.replace('Organization/','')).resource.ofType('Organization').name

Receiver department

Emessage.ClinicalEmail.receiver.DepartmentName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.destination.primary.receiver.MedComMessagingOrganization.name

Yes

This information is depending on the SOR identifier and shall only be included, if the OrganizationName is given in the SOR identifier.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').destination.receiver.reference.replace('Organization/','')).resource.ofType('Organization').name

Sender unit

Emessage.ClinicalEmail.sender.UnitName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.sender.MedComMessagingOrganization.name

Yes

This information is depending on the SOR identifier and shall only be included, if the UnitName is given in the SOR identifier.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').sender.reference.replace('Organization/','')).resource.ofType('Organization').name

Receiver unit

Emessage.ClinicalEmail.receiver.UnitName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.destination.primary.receiver.MedComMessagingOrganization.name

Yes

This information is depending on the SOR identifier and shall only be included, if the OrganizationName is given in the SOR identifier.

Bundle.entry.where(resource.ofType('Organization').id.replace('string', 'id') = %resource.entry.resource.ofType('MessageHeader').destination.receiver.reference.replace('Organization/','')).resource.ofType('Organization').name

Sender streetname

Emessage.ClinicalEmail.sender.StreetName

NA


The address of the Organization is described by the SOR identifier.

Receiver streetname

Emessage.ClinicalEmail.receiver.StreetName

NA


The address of the Organization is described by the SOR identifier.

Sender suburb name

Emessage.ClinicalEmail.sender. SuburbName

NA


The address of the Organization is described by the SOR identifier.

Receiver suburb name

Emessage.ClinicalEmail.receiver. DistrictName

NA


The address of the Organization is described by the SOR identifier.

Sender district name

Emessage.ClinicalEmail.sender. DistrictName

NA


The address of the Organization is described by the SOR identifier.

Receiver postal code identifier

Emessage.ClinicalEmail.receiver. PostCodeIdentifier

NA


The address of the Organization is described by the SOR identifier.

Sender postal code identifier

Emessage.ClinicalEmail.sender. PostCodeIdentifier

NA


The address of the Organization is described by the SOR identifier.

Sender telephone

Emessage.ClinicalEmail.sender.TelephoneSubscriberIdentifier

NA


Organization contactinformation is described by the SOR identifier.

Sender speciality code

Emessage.ClinicalEmail.sender.MedicalSpecialityCode

NA


This element is not of relevance in the FHIR CareCommunication message.

Patient id

Emessage.ClinicalEmail.Patient.CivilRegistrationNumber

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient.identifier.cpr

Yes

Information about the patient cpr-identifier.

Bundle.entry.resource.ofType('Patient').identifier.where(system = 'urn:oid:1.2.208.176.1.2').value

Patient alternative id

Emessage.ClinicalEmail.Patient.AlternativeIdentifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient.identifier

Yes

It is allowed to add a replacement CPR-identifier to the MedComCorePatient, however it is preferred to use the cpr-identifier.

Bundle.entry.resource.ofType('Patient').identifier.where(system = ‘https://sundhedsdatastyrelsen.dk/da/registre-og-services/ecpr’).value

Patient family name

Emessage.Clinicalemail.Patient.PersonSurName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient.name.official.family

Yes



Bundle.entry.resource.ofType('Patient').name.family

Patient name

Emessage.Clinicalemail.Patient.PersonGivenName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient. name.official.given

Yes



Bundle.entry.resource.ofType('Patient').name.given

Patient street name

Emessage.Clinicalemail.Patient.StreetName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient.adress.line

Yes



Bundle.entry.resource.ofType('Patient').address.line

Patient suburb name

Emessage.Clinicalemail.Patient.SuburbName

NA



Patient city name

Emessage.Clinicalemail.Patient.DistrictName

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient.adress.city

Yes



Bundle.entry.resource.ofType('Patient').address.city

Patient post code

Emessage.Clinicalemail.Patient.PostCodeIdentifier

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunicationEncounter.MedComCorePatient.adress.postalCode

Yes



Bundle.entry.resource.ofType('Patient').address.postalCode

Patient occupancy

Emessage.Clinicalemail.Patient.OccupancyText

NA



Episode of care status

Emessage.ClinicalEmail.Patient.EpisodeOfCareStatusCode

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCoreEncounter.status



MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCoreEncounter.class



MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCoreEncounter.MedComCorePatient.deceased

Yes (all)

The CareCommunication message episodeofcare status is more complexed than the OIOXML message. Together these three elements constitute the status of the patient.


Bundle.entry.resource.ofType(‘Encounter’).status



Bundle.entry.resource.ofType(Encounter).class.code



Bundle.entry.resource.ofType('Patient').deceased

Priority

Emessage.ClinicalEmail.AdditionalInformation.Priority

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunication.priority


Yes

It is only allowed to used priority when the category is ‘Regarding Referral’, in Danish ‘Vedr. Henvisning’.

Bundle.entry.resource.ofType('Communication').priority

Subject

Emessage.ClinicalEmail.AdditionalInformation.Subject

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunication.topic

Yes

This element refers to the regionally agreed topics, called ‘emne’ in Danish.

Bundle.entry.resource.ofType('Communication').topic

Text

Emessage.ClinicalEmail.ClinicalInformation.Text01

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunication.payload.content

Yes

This element holds the actual text message included in the CareCommunication.

Bundle.entry.resource.ofType('Communication').payload.content

Reference

Emessage.ClinicalEmail.Reference

MedComCareCommunicationMessage.MedComCareCommunicationMessageHeader.MedComCareCommunication.payload.attachement

Yes

This element holds the attachments in the CareCommunication.

Bundle.entry.resource.ofType('Communication').payload.attachment



About

Support or contact

MedCom is responsible for this page. If you have any questions regarding this page, please contact fhir@medcom.dk or write to MedCom's stream on Zulip.

Version of this documentation

The version of this documentation is: Version 4.0.15. You can find the release note of the version here.



"FHIR® is the registered trademark of HL7 and is used with the permission of HL7. Use of the FHIR trademark does not constitute endorsement of this implementation guide by HL7, nor affirmation that this content is conformant to the various applicable standards"