Overview

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.