Skip to main content

Unified Messaging: ADRXML Cookbook

Written by Wim Jans

🔗 Source article (Salesforce): Click here


The ADR-XML format is intended for advanced message sending purposes. This convention will be used by both Hector as the Unified Messaging module. It is used both as a file or as an element in web service communication. The main purpose of this format is to enhance the communication between eHealthBoxes and to extend some of the functionalities/shortcomings of the existing adr format (=adrV1, the txt-file containing the riziv/inami of the receiver).

The ADR format is an XML based interface which enables a lot more functionalities in the communication over the eHealthBox channel. More information on eHealthBox can be found on the following website: http://www.ehealth.fgov.be.

In general an adrxml file is a reprensentation of one message containg a body and optionally attachments. To empower EMD's/DMI's for automatic integration of ADRXML, the format is enriched with a patient identifier and metadata.

The Adrxml folders

In case the adrxml is used as a file, you can define Outgoing or Incoming folder for ADR-XML-files.

UM:

  • Outgoing: Out-folder defined in the settings page (Settings-File Interface-Outgoing folder); typically c:\unifiedmessaging\out

  • Incoming: activate via Settings-Dispatch

Hector:

  • Outgoing: default location c:/hector/to_send (configurable via config/emd integration)

  • Incoming: default location c:/hector/received (configurable via config/emd integration)

XSD Definition

[ IMAGE: Graphical representation of the XSD ]



The XSD consists of a main element: ADR which has the following attributes:

Field name

Description

ClientMessageID

This unique ID can be freely chosen by the sending party. This message ID uniquely identifies the message.

PrevClientMessageID

Message ID of the previous message.

Sender

The address of the person or organization the message is sent from.

Addressee

The address of the person or organization the message is sent to.

Subject

The subject of the message, if there is no subject supplied a default value is used by Hector when the message is sent

Body

The body will contain the content of the message. The body references to a file on the file system of the format specified in the MimeType.

Patient

The patient the message is about.

Attachment

All attachments added to the message. All attachments reference to a file on the file system of the format specified in the MimeType.

MetaData

A key-value pair which hold additional information concerning the message.

Link

Deprecated - An additional link to the message that a receiver can click and be forwarded to existing references (for example PACS or lab result viewers)

Every ADR can also have a ClientMessageID. This unique ID can be freely chosen by the sending party. This message ID is intended for tracking purposes (eg. Request the status of the message to the UM module over webservices, etc.).

  • Sender

The sender is an optional field and defines the sender of the message. This can be a person or organization.

If Hector or UM contain multiple ehealth certificates, it is necessary to specify a sender when sending a message. If not, Hector or UM will choose the first certificate as sending identity. This information is important if the receiver wants to reply to the 'real' sender. When the sender field is present it has to match with the configuration in Hector or UM. For example if the sender contains an ehboxid or applicationID that is not configured in Hector with its ehealth certificate, then the message will be refused and moved to error.

When the sender is not present, Hector will send the message using the certificate of the default sender (this is a configurable property in Hector/UM)

The sender elements are the same as the addressee elements. For more explanation, see the next paragraphs.

  • Addressee

[ IMAGE: image.png ]

Field name

Description

Quality

Required: Defines the ehealthbox quality of the receiver. The overview of possible values is listed in the quality table.

Identifier

Required: Defines the ehealthbox identifier of the receiver. Cfr quality – type list table

Name

The name of the organization. This value will only be shown in Hector, if the identifier was not a known Hector contact. When a known contact is available in Hector it will use the name of the existing (Hector) contact.

EhboxIdType

The type of the ehoxid. If not defined, Hector will try to derive it. The overview of possible values is listed in the quality table.
Hint: Only use this field when the EhboxIdType is INSS in other cases do not use it, and let Hector derive it.

Firstname

The firstname of the individual caregiver. This value will only be shown in Hector, if the identifier was not a known hector contact. When a known contact is available in Hector it will use the first name of the existing (Hector) contact.

Lastname

The lastname of the individual caregiver. This value will only be shown in Hector, if the identifier was not a known hector contact. When a known contact is available in Hector it will use the last name of the existing (Hector) contact.

ApplicationID

The applicationID of the addressee. This is only possible when the receiver is some organization (hospital, labo, …)

Subaddressee

The person or group inside the receivers' organization for whom the message is intended to

LocationId

(Deprecated) Useful when the receiver has multiple clients and only wants to receive certain messages in one location. This location is defined by the locationID and is published on the Yellow Pages.

LocationAlias

(Deprecated) A description of the locationID. For instance "De praktijk in Destelbergen"

An Addressee can be a person or an organization. List of all supported qualities.

  • SubAddressee

When sending to an organization, a subAddressee can be filled in. A subAddresssee can for example be a doctor inside a hospital or a department inside a hospital.
The possible subAddressees are (* indicates that the subquality currently is not yet supported):

DEPARTMENT

DOCTOR

NURSE

PHYSIOTHERAPIST

DENTIST

Field name

Description

SubqualityType

Describes the quality of the subaddressee. Cfr Subquality table.

Name

Describes the name of the department (not used for individual caregivers). In hospital only kmehr IDs of the following list and starting with 'dept' are allowed: https://www.ehealth.fgov.be/standards/kmehr/en/tables/healthcare-party-type

Firstname

The first name of the individual caregiver

Lastname

The last name of the individual caregiver

Identifier

Contains the identifier (NIHII, INSZ,…) of the individual caregiver

The subAddressee information is given as extra information to the Addressee. The message is still send to the eHealthBox of the Addressee.
Example: When sending to a doctor inside a hospital, the message is sent to the eHealthBox of the Hospital. The Hospital is able to react to the subAddressee information and can choose to treat the message differently.

  • Body

The body entry will contain the content of the message and is an optional field. When no body is specified, HealthConnect will set a default body-content to send the message.
When a body entry is supplied you must provide the content of the file as a Base64 encoded string. Please note that only text files will be used for the body (TXT, HTML, RTF or other). The content of this file will be used for the body of the eHealthBox message.

[ IMAGE: image.png ]


Field name

Description

FileReference

a filesystem-reference to the file to include

Content

Base64 encoding of the content of the original file

Name

(Optional) The name of the body. This will be used to give a filename at the receiver side. Although it is optional in the xsd, it should always be filled in.

MimeType

(Optional) The mime type of the body. If text/plain is used, the body will displayed differently in the ehealthbox webapp. When the mimetype is not supplied "application/x" will be used

Encoding

(Optional) Only useful for mime types text/plain. Defines the text encoding that is used. The receiver will see this value. Can be useful for the receiving EMD. The supported encodings are defined in this list: http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html
(use the column "Canonical Name for java.io API and java.lang AP")

  • Subject

This is the subject of the eHealthBox messages. The subject is optional.

  • Attachments

An attachment is identical to the body structure. It is allowed to have multiple attachments.
IMPORTANT: You can add as many attachments as you want given that the total size of the attachments does not exceed 10MB (MegaBytes).

[ IMAGE: image.png ]

Field name

Description

All fields

Cfr Body table

FunctionalType

This element is necessary for the receiving EMR to know what type of file is added. Without it is not possible to perform routing to EMR

The FunctionalType is used for defining the purpose of the attachment. It will be used for routing the attachments to the correct location for importing by the EMR. For example: ALA-LAB, DMA-REP.

  • MetaData

The metadata are optional key-value pairs. These pairs should be used to either provide more information about the message before downloading it from the eHealthBox or provide more information about the message in order to correctly dispatch the file to the receiving system.
It is important not to include any patient specific data in the metadata pairs as these fields will not be encrypted before sending to eHealthBox. Eg. The name of the patient should not be added as metadata, but in the dedicated patient field.
The metadata can hold any key-value pair, but there are some predefined meta-data key-value pairs identified:

Key

Value

Description

important

Boolean

Indicating high or low priority (used to be isImportant)

Default is false

FlashMessages

Boolean

Deprecated

encrypted

Boolean

Indicating the fact that this message is encrypted or not when sent through eHealthBox.

Default is true

askPublicationReceipt

Boolean

Indicating the fact that a publication receipt must be asked when sending the message. The receipt will be received as message.

Default is false

askReceivedReceipt

Boolean

Indicating the fact that a received receipt must be asked when sending the message. The receipt will be received as message.

Default is false

askReadReceipt

Boolean

Indicating the fact that a read receipt must be asked when sending the message. The receipt will be received as message.

Default is false

createMetaDataAttachment

Boolean

Deprecated

CreateHCMetaDataKeys

Boolean

Creates HC specific metadata in the ehealthbox message

Default value is true.

CodageEncryptionApplicationID

String

The application ID of the eHealth certificate used to encrypt the message

LocationIdentifierNumber

Integer

(Deprecated) Unique number to identify the location where the message should be downloaded

  • Patient

As every eHealthBox message is intended for one specific patient, it is advised to add patient identification details:

INSS number
LastName
FirstName

Important:

only use firstname and lastname for none-medical data. On ehealthbox-level firstname and lastname will NOT be encrypted.

The patient field in the ADR is optional but strongly advised to be used when sending eHealthBox messages.

  • Links

Deprecated.

Use of the ADR XML file

You can also use the adr format in the SendMessageRequest for the Hector webservices. This is the recommended way to communicate with Hector, as it does not rely on having a shared file interface between any third party software and Hector.
For more information regarding the Hector Webservices, please consult the Hector Webservices documentation.
An elaborate example:

[ IMAGE: image.png ]



When a new message is received in Hector or Unified Message Module, the complete message can be made available to the EMR. The adr xml file will provide all necessary information as it was received, including metadata, to the EMR.

  • Mapping from old ADR format

The easiest old adr file which contained only a NIHII number and was intended to send a file with name test.txt, now looks like this:

[ IMAGE: image.png ]

The file is not placed in the body. It is added as an attachment. The body is intended for a human readable file (text, html, …) and should contain a message, a summary or a description for the receiver.

[ IMAGE: image.png ]

XSD and WSDL Definition

Use the latest installation of Hector or UM to find the adr.xsd.

Did this answer your question?