Table of contents
In case of discrepancies between the Acknowledgement Implementation Guide(IG) and this page, it is the IG which should be followed. Please contact fhir@medcom.dk if you find discrepancies.
The Acknowledgement standard is based on profiles from, respectively MedCom Acknowledgement IG MedCom Messaging IG. A short description of each profile can be seen in the Table 1.
Profile | Resource | Description | MustSupportelements | Implementation Guide Origin |
---|---|---|---|---|
MedComAcknowledgementMessage | Bundle | Acts as a container for the content of the message. The type of the Bundle shall always be 'message'. This profile inherits from MedComMessagingMessage. |
Id Type Timestamp entry (Reference to all included profiles) |
Acknowledgement |
MedComAcknowledgementMessageHeader | MessageHeader | The header of a message, which shall always be the first referenced profile, when the type of the Bundle is 'message'. This profile holds references to the fundamental information in a message such as sender, receiver, and how the delivery went. This profile inherits from MedComMessagingMessageHeader. |
Id EventCoding (Type of message) Sender Receiver Response identifier (id) Response code |
Acknowledgement |
MedComAcknowledgementOperationOutcome | OperationOutcome | Includes a detailed description of the error and the severity of the error. It shall always be included when an error occurs in the message exchange. | Id Issue Severity Issue code Details |
Acknowledgement |
MedComMessagingOrganization | Organization | Inherits from MedComCoreOrganization Information useful to identify an organization. In a Acknowledgement message it is used to describe the sender and receiver organizations. |
Id Slices for identifier (SOR-id) Slices for identifier (EAN/GLN-id) Name |
Messaging |
MedComMessagingProvenance | Provenance | Describes the activity and references the message that is acknowledged. | Id Target OccurredDateTime Timestamps Activity Agent Entity (Reference to the previous message) |
Messaging |
Note:The Acknowledgement standard is inherited from MedCom Messaging.Therefore a detailed description of the MustSupport elements can be found on the technical content of MedCom Messaging.
The ValueSet and CodeSystem used for detailed error description, in the element OperationOutCome.issue.details.coding, are currently fairly empty, as MedCom wants input from IT-vendors on which codes give values in their systems. Across sectors there must be an agreed list of codes. Therefore, the ValueSet and CodeSystem has a status as ‘draft’ and vendors should expect the CodeSystem and ValueSet to be extended.
Figure 1 illustrates the structure of the Acknowledgement message. The Acknowledgement message follows MedCom’s FHIR messaging model except the carbon-copy destination, which is not allowed.
The Acknowledgement message can have three different outcomes: one positive (Ok), and two negative, respectively transient-error and fatal-error. An example of an Ok Acknowledgement message is shown in Figure 2, wherease an example of an erro Acknowledgement message is shown in Figure 3.
The acknowledgement message contains three timestamps:
The three timestamps are registered at different time during Acknowledgement message generation and sending. The Acknowledgement message is sent when a system receives a FHIR message e.g. when a municipality receives a HospitalNotification message from the hospital, the it-system will evaluate the message. Based on the result from the evaluation, the system will generate an acknowlegement message that represet the evaluation results. This means that if the HospitalNotification is evaluated positive the acknowlegdement is as well positive. Whereas if the HospitalNotification is evaluated negative then a negative Acknowledgement is generated and send. When the acknowledgement message is generated a Bundle.timestamp is registered. When the acknowledgement message is sent the Provenance.occuredDateTime[x] and Provenance.recorded time stamp is registered. Note that the Provenance.occuredDateTime[x] is a human redable, where Provenance.recorded is a system readable. The visualisation of the example can be seen in Figure 4