Start with FHIR messaging

If you would like to configure your SAP Health Data Services Instance for FHIR messaging, please follow the steps below.

The picture below gives an overview of the different resources to be created and how they relate to each other: FHIR_Messaging_Example

1. Define the message events

Here is a sample CodeSystem for message events that you can use.

You can create this CodeSystem via Post with the CodeSystem as body via

  • POST [base]/CodeSystem where [base] is the core service endpoint.

2. Configure inbound messaging

Let's assume you would like to send a patient instance via FHIR messaging to SAP Health Data Services Instance and get it processed.

You essentially need three resources below to configure inbound messaging for patient-created messages:

  • the Patient profile for inbound messaging
  • the MessageDefinition for patient-created messages
  • the corresponding Business configuration.

See details and examples below. Those three resources have to be imported using FHIR packaging (see more details in the SAP Help portal documentation).

2.1 Patient profile for inbound messaging

  • the patient profile to be used for inbound messaging.
  • This profile essentially contains the Must-support flags (see here) to indicate which elements will be persisted in your instance.
  • See an example here

2.2 MessageDefinition for patient-created messages

  • Now you have to define how Patient-created messages look like. This is done via an instance of MessageDefinition for the catient-created message.
  • This instance contains essentially
    • the event "patient-created" in the event.code
    • the profile the created patient instance has to comply with.
  • See an example here

2.3 Business configuration for patient-created messages

  • Now you must define a BusinessConfiguration that maps the MessageDefinition URL to the event code "patient-created" register this link in the configuration (see also the SAP Help portal documentationfor more details).
  • See an example here

3. Send your message and get it processed

As a last step you have to create the message itself as a Bundle of type message. This bundle contains two entries:

  • the first one is the MessageHeader instance with the event code "patient-created"
  • the second one is the instance of the Patient you would like to create (complying to the inbound messaging profile you defined above)
  • See an example here.

Now you can send this message via a

POST [base]/$process-message with the message as payload ([base] is the messaging endpoint)