Developer tutorials

The following tutorials cover all of the topics to be discussed during day two of the training. We will compete each at the end of the training discussion.

Making a GET request, and processing the output

  • Write a controller to retreive responses from the SHR Adapter module. What parameters should you include, and what does your endpoint should look like ?
  • What will the output of your request look like, and how can you interpret this data ?



Making a POST request

  • Write a controller to POST to the SHR Adapter module



HL7 Message preperation

Lets prepare / discuss some sample hl7 messages that we may need to send to the SHR.

For ORUR01 messages:

What segments should each of the following messages contain ?  Write out the basic start / end tags for each

1) HL7 message for a single encounter with one grouped obs set

2) HL7 message for a single encounter with one ungrouped obs

3) HL7 message for a single encounter with both grouped and ungrouped obs

4) HL7 message with multiple obs groupings

How do we use hl7 message segments to link between OBR-ENC, OBR and OBS segments ?

Which HL7 segment maps with which OpenMRS demo object ?


For ADT_A05 messages

Write sample ADT_A05 message for each of above scenarios. Highlight which segments of the three messages you wrote contribute towards differntiating between the three message types.

Saving a patient
Retriving a patient



For ADT_A31 messages
Write sample ADT_A31 message for the following scenario. Highlight which segments of the three messages you wrote contribute towards differntiating between the three message types

  • Update an existing patient



Understanding HL7 message segments

For each of the HL7 messages segments we are using, discuss the following-

Why is each given message field importaint ? what would happen if fields 'x', 'y' or 'z' is missing from a given HL7 message ?

Testing (is this required ?)

Setting up and configuring SoapUI and curl for testing

This will include installing SoapUI and curl, and running through sample test scripts (provided)

How to edit a test script with your data ? What parameters to configure, results to expect, etc.

Differently parsed HL7 messages (is this required ?) 

How to interpret pipe delimited and xml delimited HL7 messages ? How would you convert from one to the other ? 

Tracking across the request life cycle

How would you keep track of a request made on the POC module ? where / what would you look at if you get an error at any stage of the process ?