Wiki Spaces
Documentation
Projects
Resources
Get Help from Others
Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack
This module will not be the preferred REST web service module.
For a more complete list of web service methods see this module's replacement: Webservices.rest Module
The OpenMRS REST Module provides a limited mechanism for communicating with an OpenMRS system externally as a client via Web Services. In this case, the REST Module is implemented using REST (1).
The methods or functions currently exposed via the OpenMRS REST Module are as follows:
Here's some caveats to usage of the REST Module:
All example URL paths are assumed to start with: http://myhost:myport/openmrs/moduleServlet/restmodule
Example #1: Search for patients matching a search criteria
This call would do a Patient Query based on the search string "John Smith". A list of patients matching that search criteria would be returned.
<patientList> <patient birthdate="1975-01-01" birthdateEstimated="false" gender="M"> <identifierList> <identifier preferred="1" type="OpenMRS Identification Number">100-8</identifier> <identifier type="Old Identification Number">asdf</identifier> <identifier type="Old Identification Number">100</identifier> </identifierList> <name> <prefix>pre</prefix> <givenName>test123</givenName> <middleName>middle</middleName> <familyName>test</familyName> <familyName2>test2</familyName2> <degree>deg</degree> </name> <addressList> <address preferred="1"> <address1>555 Johnson Rd.</address1> <address2>Apt. 555</address2> <cityVillage>Indianapolis</cityVillage> <stateProvince>IN</stateProvince> <country>USA</country> </address> <address preferred="1"> <address1>asdf</address1> <address2></address2> <cityVillage></cityVillage> <stateProvince></stateProvince> <country></country> </address> </addressList> </patient> </patientList>
[ { "birthdate": "1975-01-01", "birthdateEstimated": "false", "gender": "M", "identifierList": [ { "preferred": "1", "type": "OpenMRS Identification Number", "identifier": "100-8" }, { "type": "Old Identification Number", "identifier": "asdf" }, { "type": "Old Identification Number", "identifier": "100" }, \ ], "name": { "prefix": "pre", "givenName": "test123", "middleName": "middle", "familyName": "test", "familyName2": "test2", "degree": "deg", }, "addressList": [ { "preferred": "1", "address1": "555 Johnson Rd.", "address2": "Apt. 555", "cityVillage": "Indianapolis", "stateProvince": "IN", "country": "USA", }, { "preferred": "1", "address1": "asdf", }, ] } ]
Example #2:
This call does a Patient Lookup based on the OpenMRS Identifier "OpenMRS Identification Number". In this case, the Patient with the ID Number of "100-3" would be returned.
<patientList> <patient birthdate="1975-01-01" birthdateEstimated="false" gender="M"> <identifierList> <identifier preferred="1" type="OpenMRS Identification Number">100-8</identifier> <identifier type="Old Identification Number">asdf</identifier> <identifier type="Old Identification Number">100</identifier> </identifierList> <name> <prefix>pre</prefix> <givenName>test123</givenName> <middleName>middle</middleName> <familyName>test</familyName> <familyName2>test2</familyName2> <degree>deg</degree> </name> <addressList> <address preferred="1"> <address1>555 Johnson Rd.</address1> <address2>Apt. 555</address2> <cityVillage>Indianapolis</cityVillage> <stateProvince>IN</stateProvince> <country>USA</country> </address> <address preferred="1"> <address1>asdf</address1> <address2/> <cityVillage/> <stateProvince/> <country/> </address> </addressList> </patient> </patientList>
[ { "birthdate": "1975-01-01", "birthdateEstimated": "false", "gender": "M", "identifierList": [ { "preferred": "1", "type": "OpenMRS Identification Number", "identifier": "100-8" }, { "type": "Old Identification Number", "identifier": "asdf" }, { "type": "Old Identification Number", "identifier": "100" }, ], "name": { "prefix": "pre", "givenName": "test123", "middleName": "middle", "familyName": "test", "familyName2": "test2", "degree": "deg", }, "addressList": [ { "preferred": "1", "address1": "555 Johnson Rd.", "address2": "Apt. 555", "cityVillage": "Indianapolis", "stateProvince": "IN", "country": "USA", }, { "preferred": "1", "address1": "asdf", }, ] } ]
Example #3: Request for a list of observations for a given patient and concept
<?xml version="1.0" encoding="UTF-8"?> <obsList version="1.0"> <obs uuid="1b6898bf-bc11-4b79-9f30-8a3c0c4dd10a" patientId="3" obsDatetime="2010-02-15" isObsGrouping="false" isComplex="false"> <concept id="5090">HEIGHT (CM)</concept> <valueNumeric>183.0</valueNumeric> <encounter id="1" type="ADULTINITIAL"/> <comment>Too tall</comment> <location id="1"/> </obs> <obs uuid="1b6808bf-bc17-4b98-9f30-8a3c0c4dd10t" patientId="3" obsDatetime="2010-02-15" isObsGrouping="false" isComplex="false"> <concept id="5090">HEIGHT (CM)</concept> <valueNumeric>200.0</valueNumeric> <encounter id="1" type="ADULTINITIAL"/> <comment>Too obese</comment> <location id="1"/> </obs> </obsList>
[ { "isObsGrouping": false, "patientId": 3, "concept": { "id": 5090, "name": "HEIGHT (CM)" }, "location": { "id": 1 }, "obsDatetime": "2010-02-15", "valueNumeric": 183, "isComplex": false, "encounter": { "id": 1, "type": "ADULTINITIAL" }, "uuid": "1b6898bf-bc11-4b79-9f30-8a3c0c4dd10a", "comment": "Too tall" }, { "isObsGrouping": false, "patientId": 3, "concept": { "id": 5090, "name": "HEIGHT (CM)" }, "location": { "id": 1 }, "obsDatetime": "2010-02-15", "valueNumeric": 200, "isComplex": false, "encounter": { "id": 1, "type": "ADULTINITIAL" }, "uuid": "1b6808bf-bc17-4b98-9f30-8a3c0c4dd10t", "comment": "Too obese" } ]
Note: The parameters at the end of the request URL i.e pId and cId are patientId and conceptId respectively. If you wish to view the JSON output in your browser, you will need to install a json viewer plugin for your respective browser if it exists, otherwise you will be prompted to save the file.
Example #4: Sending an hl7 message using rest
Example #5: Getting a patient based on the user identifier
<?xml version="1.0" encoding="UTF-8"?> <userList version="1.0"> <user uuid="c6ef8bd8-fd7e-11df-8272-0800271bba91" userId="1" systemId="admin" username="" birthdateEstimated="false" gender=""> <addressList/> <name> <givenName>Super</givenName> <middleName/> <familyName>User</familyName> </name> <roleList> <role>System Developer</role> <role>Provider</role> </roleList> </user> </userList>
[ { "addressList": [], "userId": "4", "systemId": "4-2", "username": "ajanthan", "gender": "M", "uuid": "c6ef8bd8-fd7e-11df-8272-0800271bba91", "name": { "givenName": "aja", "familyName": "bala" }, "roleList": [ "System Developer", "Provider" ] } ]
1.4.4.2
1.4.4.1
1.4.4
1.4.3
1.4.2
1.4.1
1.4
1.3.3
1.3.1/1.3.2
1.3
1.2.3