...
title | Work in progress |
---|
...
Overview
The simple SHR REST interface module will mimic that mimics the API expected by the content handler module in a RESTful way. This will allow allows for an easy way to test the system without building a complex interface module.
This module will implement a REST controller that extends the BaseRestController of the Webservices REST Module.
The module is available at: https://github.com/jembi/openmrs-module-shr-rest.
Requests
It supports It will support POST and GET requests on the following endpointendpoints:
POST: ws/rest/v1/v2shr/document?patientId=123
Option for passing a documentId?
GET: ws/rest/v2/documents?patientId=123&idType=ECID
Option for passing dateStart and dateEnd parameters or a documentId?
...
Parameters:
patientId | The patient identifer |
patientIdType | The type of identifier |
providerId | The provider identifier |
providerIdType | The type of identifier |
encounterType | A name describing the type of encounter |
formatCode | The format code of the submission |
isURL | (optional) isURL=true indicates that the submitted payload is a URL reference |
Submit a document for a particular patient.
Examples:
Code Block | ||||
---|---|---|---|---|
| ||||
curl --user user:password "host:8080/openmrs/ws/rest/v1/shr/document?patientId=1&patientIdType=ECID&providerId=1&providerIdType=EPID&encounterType=Test&formatCode=ANC_Summary" -H "Content-Type: text/xml" -X POST -d "<data>...</data>" |
Code Block | ||||
---|---|---|---|---|
| ||||
curl --user user:password "host:8080/openmrs/ws/rest/v1/shr/document?patientId=1&patientIdType=ECID&providerId=1&providerIdType=EPID&encounterType=TestImage&formatCode=Image" -H "Content-Type: image/jpg" -X POST --data-binary @image.jpg |
Code Block | ||||
---|---|---|---|---|
| ||||
curl --user user:password "host:8080/openmrs/ws/rest/v1/shr/document?patientId=1&patientIdType=ECID&providerId=1&providerIdType=EPID&encounterType=TestImage&formatCode=Image&isURL=true" -H "Content-Type: image/jpg" -X POST -d "http://imageserver/image.jpg" |
GET: ws/rest/v1/shr/document
Parameters:
contentType | The type of content to retrieve |
encounterUUID | The UUID for the specific encounter that needs to be retrieved |
uniqueID | (NOT YET IMPLEMENTED) The unique document ID of the encounter that needs to be retrieved |
Retrieve a specific encounter. Either encounterUUID must be specified or uniqueID, but not both or none.
GET: ws/rest/v1/shr/documents
contentType | The type of contents to retrieve |
patientId | The patient identifier |
patientIdType | The type of identifier |
dateStart | (optional) Format yyyy-MM-dd'T'HH:mm:ss |
dateEnd | (optional) Format yyyy-MM-dd'T'HH:mm:ss |
Query for patient documents of a particular content type. Note that the response content type (determined by the Accept header) is not the same as the contentType of the document and response can either be in XML or JSON.
Examples:
Code Block | ||||
---|---|---|---|---|
| ||||
curl --user user:password "host:8080/openmrs/ws/rest/v1/shr/documents?contentType=text%2Fxml&patientId=1&patientIdType=ECID" -H "Accept: text/xml"
Response:
<linked-list>
<org.openmrs.module.shr.contenthandler.api.Content>
<formatCode>ANC_Summary</formatCode>
<contentType>text/xml</contentType>
<encoding>UTF-8</encoding>
<representation>TXT</representation>
<payloadIsUrl>false</payloadIsUrl>
<payload><data>...</data></payload>
</org.openmrs.module.shr.contenthandler.api.Content>
</linked-list> |
Code Block | ||||
---|---|---|---|---|
| ||||
curl --user user:password "host:8080/openmrs/ws/rest/v1/shr/documents?contentType=image%2Fjpg&patientId=1&patientIdType=ECID" -H "Accept: text/xml"
Response:
<linked-list>
<org.openmrs.module.shr.contenthandler.api.Content>
<formatCode>Image</formatCode>
<contentType>image/jpg</contentType>
<encoding>Binary</encoding>
<representation>B64</representation>
<payloadIsUrl>false</payloadIsUrl>
<payload>BASE64 Content...</payload>
</org.openmrs.module.shr.contenthandler.api.Content>
<org.openmrs.module.shr.contenthandler.api.Content>
<formatCode>Image</formatCode>
<contentType>image/jpg</contentType>
<encoding>Binary</encoding>
<representation>BINARY</representation>
<payloadIsUrl>true</payloadIsUrl>
<payload>http://imageserver/image.jpg</payload>
</org.openmrs.module.shr.contenthandler.api.Content>
</linked-list> |