Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What this module does

The module exposes the OpenMRS API as REST web services.  if If an OpenMRS instance is running the Webservices.REST module, other programs (and languages) can connect to retrieve and post certain information through OpenMRS.

User Documentation

The module exposes the OpenMRS API through light-weight resource objects of the core OpenMRS objects.

See REST Web Services User Guide for more information.Enhanced Web Services (Design Page)

Technical Documentation

This module uses Spring 3 annotations to expose URLs.  Primary transport language is currently JSON.

See REST Web Services API for documentation, API, conventions, and descriptions.

Full example of adding new web services to the core/trunk openmrs.

Full example of adding new web service methods into your module.

Downloads

View Source: http://source.openmrs.org/browse/Modules/webservices.rest/trunk/
Checkout Source: http://svn.openmrs.org/openmrs-modules/webservices.rest/trunk/
Download: http://modules.openmrs.org/modules/view.jsp?module= (To be updated once module is formally released)

Required OpenMRS Versions

For all features in the REST module to work you must use a nightly build of at least version 20404. This is due to TRUNK-2323 and TRUNK-2324

to an OpenMRS database.

Downloads

Source at: https://github.com/openmrs/openmrs-module-webservices.rest
Download at: https://addons.openmrs.org/#/show/org.openmrs.module.webservices-rest

User Documentation

Visit https://rest.openmrs.org/#openmrs-rest-api for an overview of our Rest Documentation.

Required OpenMRS Version

The REST Web Services module requires at least OpenMRS 1.9.0 , or 1.8.1, 1.7.2, or 1 .6.3 to run.

Development Plans

Development sprint: 2011-05-16 Development Sprint

Alpha release of module coming soon.

Release Notes

( To be filled in once a formal release is made to the Module Repository )

...

Basic Configuration Options


Configuration keyDescription
webservices.rest.

...

maxResultsDefaultThis setting determines the maximum number of resources that can be accessed on any webservice call.  The default is 50.

...

webservices.rest.

...

maxResultsAbsoluteThis setting determines the absolute maximum number of resources that can be accessed on any

...

web service call. If the client requests more than this limit, then receives an error. The default

...

is 1000.
webservices.rest.uriPrefix

...

This should point at the root of your exposed web application.  This is typically

...

...

during testing, but after being deployed will be something like

...

...

or

...

...

.

...

If this is empty or not filled in, the user will see NEEDSTOBECONFIGURED/ws/rest/ as the "self" urls on all objects.

...

webservices.rest.allowedips

...

By default this is an empty string: "",

...

which means anyone can access the rest URLs. If you put any IP addresses into this list, only calls from those are allowed. IPs should be separated by a whitespace or a comma.

IPs can be

...

declared with bit masks to denote whole subdomains e.g. 10.0.0.0/30

...

matches 10.0.0.0 - 10.0.0.3 and 10.0.0.0/24 matches 10.0.0.0 - 10.0.0.255.

...

Non matching IP addresses will receive a 403 HTTP error. Both IPv4 and IPv6 addresses are supported.


Technical Documentation

The module exposes the OpenMRS API through light-weight resource objects off of the core OpenMRS objects. The structure is very similar, but not guaranteed to match up exactly.

This module uses Spring 3 annotations to expose URLs. Primary transport language is currently JSON and XML (beta in 2.1).

For Creators of Web Service Core/Module Methods

Adding a Web Service Step by Step Guide for Core Developers
Adding a Web Service Step by Step Guide for Module Developers

For Web Service Client Developers

See REST Web Services API For Clients

Development History

Initial project page: Enhanced Web Services (Design Page)
Development sprint 1: 2011-05-16 Development Sprint
Followup sprint: 2011-05-30 Development Sprint
Development sprint 2: 2011-07-05 Development Sprint
Development sprint 3: 2013-02-07 Integration of RESTWS

Example Client code

Release Notes



  • 2.14+
    • See JIRA for details
  • 2.13 Released January 7th 2016
    • Add support for OpenMRS Platform 2.0.0 (beta)
    • And:
      Jira Legacy
      serverOpenMRS JIRA
      columnskey,summary,type,assignee,reporter,priority
      maximumIssues1000
      jqlQueryproject = RESTWS AND fixVersion = 2.9 ORDER BY updated DESC, priority DESC, created ASC
      serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
  • 2.12
    Jira Legacy
    serverOpenMRS JIRA
    columnskey,summary,type,assignee,reporter,priority
    maximumIssues1000
    jqlQueryproject = RESTWS AND fixVersion = 2.9 ORDER BY updated DESC, priority DESC, created ASC
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
  • 2.11
    Jira Legacy
    serverOpenMRS JIRA
    columnskey,summary,type,assignee,reporter,priority
    maximumIssues1000
    jqlQueryproject = RESTWS AND fixVersion = 2.9 ORDER BY updated DESC, priority DESC, created ASC
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
  • 2.10
    Jira Legacy
    serverOpenMRS JIRA
    columnskey,summary,type,assignee,reporter,priority
    maximumIssues1000
    jqlQueryproject = RESTWS AND fixVersion = 2.9 ORDER BY updated DESC, priority DESC, created ASC
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95
  • 2.9 Released January 15th 2015

    Jira Legacy
    serverOpenMRS JIRA
    columnskey,summary,type,assignee,reporter,priority
    maximumIssues1000
    jqlQueryproject = RESTWS AND fixVersion = 2.9 ORDER BY updated DESC, priority DESC, created ASC
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95

     
  • 2.8
  • 2.7

    Release Date: Wednesday November 26th 2014

    2.7 represents version: 20afb1bcdbc46a75859e2c736a8651fa38614720
     

    A huge thank you goes out to the following contributors: Daniel Kayiwa, Darius Jazayeri, Jon Skeet, Pawe? Muchowski, Rafal Korytkowski, Willa Ahmed, Wyclif Luyima

    New Features

    • [RESTWS-453] - Expose login locations via REST
    • [RESTWS-455] - Add ConceptSearchResource
    • [RESTWS-457] - orderfrequency resource should have a representation that includes the full concept representation
    • [RESTWS-461] - Should automatically convert to Double
    • [RESTWS-463] - encounter resource should let you create real-time encounters without explicitly specifying encounterDatetime
    • [RESTWS-465] - Get inactive orders

    Bug Fixes

    • [RESTWS-451] - Nested custom type will fail with conversion exception
    • [RESTWS-454] - deathDate property should be editable on the person resource
    • [RESTWS-458] - orderfrequency resource should have display property
    • [RESTWS-464] - encounter resource has a typo that prevents creating an encounter with orders easily
    • [RESTWS-467] - Going to catalog API using JSON causes stack overflow due to subtypes
    • [RESTWS-469] - NPE generating catalog
    • [RESTWS-470] - Catalog incorrectly shows sub-resources
    • [RESTWS-471] - A resource implementing Listable without Searchable fails in MainResourceController
  • 2.6

New Features

    • [RESTWS-281] - REST does not expose relationships or relationship_types
    • [RESTWS-444] - Add brandName and dispenseAsWritten to DrugOrderSubclassHandler1_10

Bugs

    • [RESTWS-426] - REST can return a Patient representation when we want a Person rep
    • [RESTWS-441] - User and concept search handlers do not work for OpenMRS 1.10
    • [RESTWS-442] - ProviderSearchHandler should handle OpenMRS 1.10


  • 2.5
    Jira Legacy
    serverOpenMRS JIRA
    columnskey,summary,type,assignee,reporter,priority
    maximumIssues1000
    jqlQueryproject = RESTWS AND fixVersion = 2.5 ORDER BY updated DESC, priority DESC, created ASC
    serverId45c5771b-fa4b-3e43-b34a-c19dc45ccc95

Download standalone with webservices module for an out of the box openmrs with rest web services ready to go.