Starting with version 3.5, OpenClinica will begin to support the OpenRosa API, which will let you run Enketo, ODK Collect, or any of a number of OpenRosa-compliant data capture clients. If you’re not familiar with Enketo, ODK, or OpenRosa, here’s a primer. You can also see this blog post on how OpenClinica LLC is using Enketo and the OpenRosa API in its products.
To try it yourself:
- Build/install the latest OpenClinica code from github or distros
- Install an OpenRosa client, such as enketo or ODK Collect
- Add the property ‘PortalURL’ to datainfo.properties with the URL of the OpenRosa Client
PortalURL = http://www.example.com
- Issue a /formList request from the client to the OpenClinica:
GET /OpenClinica-web/rest2/openrosa/{studyOID}/formList
- Currently supported methods include
GET /OpenClinica-web/rest2/openrosa/{studyOID}/formList
GET /OpenClinica-web/rest2/openrosa/{studyOID}/formXml
POST /OpenClinica-web/rest2/openrosa/{studyOID}/submission
Note: These APIs are still experimental, may not work at all, and are certainly not suitable for production use. OpenClinica Participate uses them but the hosted environment includes tools to ensure network security and robustness for production use that are not in the enketo package. We aim to eventually support OpenRosa API as part of the standard OpenClinica API and welcome feedback, testing, and code contriutions. In particular, this is still experimental because:
- Form submission will not really work because it does not create a study subject and study event where the data can go. This will be added in the near future.
- The API is not particularly secure. There is no production-quality authentication mechanism, other than to secure network access to known safe clients.