Integration Notes

The goal has been to do as little modification to OpenMRS as possible – let Zcore do any heavy lifting necessary.

The OpenMRS code (formimportexport module?) that renders the .xsl files used for importing into zcore assigns Boolean values a “1” or “0” instead of a true of false, which does not de-serialise an accurate value into a java Boolean. I had to modify the code from the Apache Commons XLTSchema project (Schemabuilder class) to accommodate this condition. The code for this library is included in the Zcore source code (src/apace.ws.commons.schema) and is in the installer version. At some point I’ll track down the error in the OpenMRS module and notify the module’s maintainer.

Here's the changed code from SchemaBuilder:

        if (el.hasAttribute("nillable")) {
            String nillValue = el.getAttribute("nillable");
            if (nillValue.equals("0")) {
                element.isNillable = false;
            } else if (nillValue.equals("1")) {
                element.isNillable = true;
            } else {
                element.isNillable = Boolean.valueOf(el.getAttribute("nillable")).booleanValue();
            }
        }

 

My version of Tomcat, the latest version, has issue w/ the jsp code in Remote form entry module - remoteformentry-2.7.omod –file localHeader.jsp. I have created a local version of this module that works around this problem. Need to discuss w/ this module’s maintainer. It’s a surprising problem – didn’t happen w/ previous version.

More integration notes tbd…

  • most of the OpenMRS encounter processing happens in ORUR01Handler

  • Discussion of custom data converters used in Xstream, which de-serialises the Zcore records to OpenMRS-friendly xml.