Here at the VU Medical Center Amsterdam, we’re implementing OpenClinica (OC) for CTMM TRACER. TRACER aims at improving diagnosis, prognosis and therapy selection for rheumatoid arthritis. A series of eCRFs are being developed, ranging from questionnaires to joint scoring and DAS-score calculations.
One of our most recent CRFs is concerned with a patient’s medication. In this CRF one of the items of interest is the medication the patient is currently on. The code system employed for medication is the Anatomical Therapeutic Chemical (ATC) Classification System, which contains over 500 entries. Initially, we intended to create a single-select field containing the ATC codes and their description. Unfortunately, the number of characters involved is way more than the maximum of 4000 allowed by OC. The easy alternative would have been to define a free text field, but it is generally best to avoid those, as the data in these fields tends to pollute easily.
The solution we created employs JavaScript and JQuery. Without getting into the technical details (you can get them here), the approach is to create a (read-only) text field in OC and let a non-OC single-select item write data to this field. This ensures that the values written to OC are limited to those specified in the list, without having to store the complete list in OC. The list entries themselves are stored in an external XML file, which is stored on the OC server. If at some point the ATC-codes need to be updated, we can simply update the XML file and the updates will be available for the users.
Whereas our problem was concerned with a long list of ATC-codes, the solution can be applied to any list which is longer than OC’s maximum number of characters. All you have to do is create an XML file, which describes the list, make some minor changes to the example code provided on the wiki page and upload two files to your OC server.
Sander de Ridder (MSc Computer Science, MSc Bioinformatics)