OpenMRS Worldwide Summit is fast approaching!

#OMRS15, the 1st OpenMRS Worldwide Summit, is 8-14 December. Registration is open & session ideas are being accepted. More information:

Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS »
Discussion: OpenMRS Talk »
Real-Time: IRC Chat


Versions Compared


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

Table of Contents




At the heart of OpenMRS is a series of medically related domain objects. These domain objects often need to be converted into serialized data when developers are interested in creating functionalities which communicate between other applications. For example, a developer might want to create a web service to expose patient demographic or observational information, or create a standards-based messaging infrastructure (such as one that creates IXF, CCD messages, or normal XML). Currently, many serialization approaches are included within the core application, but we lack a rationalized, consistent approach to serialization. A serialization service is being built into the core of OpenMRS and designed abstractly using the strategy pattern so that different serialization strategies (whether serializing or deserializing of objects) could be used dynamically. Each different format (ixf, ccd, xml) would be a new class that implements OpenmrsSerializer to do the conversion from object to text and text to object.

In this module, we implemented one serialization/deserialization strategy using the XStream library.


  • Download the




Current Serialization XStream Module supports two strategies to serialize/deserialize objects.

Learn how to serialize/deserialize objects from the page Description about how to serialize/deserialize.

Depending on XStream the Module

Build the dependencies on the XStream Serialization Module as the page Module Dependencies says when you want to use serialization framework in your module.

Release Notes

  • 0.2.8
    • Updated to work with hibernate 4
  • 0.2.7
  • 0.2.5
    • Added ability to use custom XStream objects. Needed for Reporting 0.5.2+ if you are using OpenMRS version 1.6+.