Integration Secrets:
OpenClinica, OpenXData, SOAP Web Services, and much more




                                        Tom Hickerson
                                 Senior Tier-2 Engineer
                                      OpenClinica LLC
                                           April 7, 2012
Hello.world();
About your presenter today:

 First studied in USSR, St.
  Petersburg’s Herzen Institute, 1991
 First came to Kharkov in 1995
 First worked with Java in 1998
 First worked with Java EE in 2002
 First worked for OpenClinica in 2003
 First worked with Spring in 2008
Problem.setLocale(“Africa”);
University of Bergen is running
clinical trials in rural Africa, to collect
vaccine information:

• No infrastructure
• No bandwidth
• Very little technology (i.e. no
  iPhones, iPads, etc)
Tools.setJavaME(true);
Open-source form creation for use
with JavaME and mobile phones
Ability to collect data:

• On a desktop computer
• On a basic java-enabled phone,
  (e.g. Nokia 1680 ~$35)
• Or capture geo-tagged &
  multimedia data (e.g. Nokia 2710
  ~$150)

http://www.openxdata.org/
Tools.setOpenClinica(true);
Open-source clinical data
management:

•   Data management
•   Discrepancy Management
•   Data Export
•   Regulated User Access
•   Study/Patient Management
•   Currently only through a
    desktop/laptop computer
    connected to the Internet

http://www.openclinica.com/
likeWebService(true,false);
OpenClinica already has several
web services out of the box, passing
data in XML using SOAP

OpenXData also uses XML to define
the forms and the data that is
captured

Project Manager: “Easy! All we have
to do is write a web service!”

Developer: …
Problem.difStandards(true);
OpenClinica uses CDISC ODM             OpenXData uses the Xforms
XML, a standard in the clinical data   standard, as set forth by W3C:
space:                                 http://www.w3.org/TR/2003/REC-
                                       xforms-
http://www.cdisc.org/odm               20031014/index.html#contents
Tools.addMappingTool(true);
U of Bergen and I have been
working on a mapping layer
between OpenClinica and
OpenXData, changing one form of
XML to another:

https://github.com/mapkon/oc-
conversion-tools/

The secret ingredient to mapping –
Groovy, a dynamic language based
on the JVM.
Problem.applyFix(Tools);

                         XML SOAP
                                     conver
          OpenClinica                 sion
                                              OpenXData




                While OpenClinica and
                OpenXData are very similar,
                the conversion tool is not
Tools.focusOnFix(true);
conver                 Servlet
 sion
                      Groovy code

                         Unit tests

         SoapClient
                      ServiceImpl      Transform   Xforms
            Impl
                              Transform.xsl
Problem.isFixSolved(?);
Working with open-source has its own set of challenges:

1.   Providing too much data (500 Mb!)
2.   XML standards with different purposes
3.   Not enough functionality in current web services
4.   In short, progress is being made, but it is slow.

Lessons learned: regular communication is key (daily stand-ups, staying
in touch via Skype, IM, etc) and issues need to be raised right away.
Any Questions?

Thanks to:
   GlobalLogic
   University of Bergen
   The OpenXData Team
   The OpenClinica Team

Integration stories with OpenClinica and OpenXData

  • 1.
    Integration Secrets: OpenClinica, OpenXData,SOAP Web Services, and much more Tom Hickerson Senior Tier-2 Engineer OpenClinica LLC April 7, 2012
  • 2.
    Hello.world(); About your presentertoday:  First studied in USSR, St. Petersburg’s Herzen Institute, 1991  First came to Kharkov in 1995  First worked with Java in 1998  First worked with Java EE in 2002  First worked for OpenClinica in 2003  First worked with Spring in 2008
  • 3.
    Problem.setLocale(“Africa”); University of Bergenis running clinical trials in rural Africa, to collect vaccine information: • No infrastructure • No bandwidth • Very little technology (i.e. no iPhones, iPads, etc)
  • 4.
    Tools.setJavaME(true); Open-source form creationfor use with JavaME and mobile phones Ability to collect data: • On a desktop computer • On a basic java-enabled phone, (e.g. Nokia 1680 ~$35) • Or capture geo-tagged & multimedia data (e.g. Nokia 2710 ~$150) http://www.openxdata.org/
  • 5.
    Tools.setOpenClinica(true); Open-source clinical data management: • Data management • Discrepancy Management • Data Export • Regulated User Access • Study/Patient Management • Currently only through a desktop/laptop computer connected to the Internet http://www.openclinica.com/
  • 6.
    likeWebService(true,false); OpenClinica already hasseveral web services out of the box, passing data in XML using SOAP OpenXData also uses XML to define the forms and the data that is captured Project Manager: “Easy! All we have to do is write a web service!” Developer: …
  • 7.
    Problem.difStandards(true); OpenClinica uses CDISCODM OpenXData uses the Xforms XML, a standard in the clinical data standard, as set forth by W3C: space: http://www.w3.org/TR/2003/REC- xforms- http://www.cdisc.org/odm 20031014/index.html#contents
  • 8.
    Tools.addMappingTool(true); U of Bergenand I have been working on a mapping layer between OpenClinica and OpenXData, changing one form of XML to another: https://github.com/mapkon/oc- conversion-tools/ The secret ingredient to mapping – Groovy, a dynamic language based on the JVM.
  • 9.
    Problem.applyFix(Tools); XML SOAP conver OpenClinica sion OpenXData While OpenClinica and OpenXData are very similar, the conversion tool is not
  • 10.
    Tools.focusOnFix(true); conver Servlet sion Groovy code Unit tests SoapClient ServiceImpl Transform Xforms Impl Transform.xsl
  • 11.
    Problem.isFixSolved(?); Working with open-sourcehas its own set of challenges: 1. Providing too much data (500 Mb!) 2. XML standards with different purposes 3. Not enough functionality in current web services 4. In short, progress is being made, but it is slow. Lessons learned: regular communication is key (daily stand-ups, staying in touch via Skype, IM, etc) and issues need to be raised right away.
  • 12.
    Any Questions? Thanks to:  GlobalLogic  University of Bergen  The OpenXData Team  The OpenClinica Team