Offering an Open Source Terminology Tool


I have been working with Robin Williams, RN, and Zabrina Gonzaga, RN, two of our clinical analysts, to update the value sets used by Camara, our clinical document editor. Our main goal is incorporating more realistic terms, so clinicians can create clinical documents using familiar terminology.


Months ago, when Lantana created the Camara user interface, I pulled down the most readily-available list of codes for value sets like Problems, Medications, Reactions, and Allergies. The most readily-available lists were not clinician-friendly. Standards developers work with the display terms provided by the terminology system, while clinicians require different labels.


We needed to find a way to quickly download the codes based on various criteria, because we’re dealing with value sets comprised of thousands of potential codes. I looked into publicly available APIs for the SNOMED-CT and RxNorm code systems. I wrote a small set of scripts to query various REST APIs, based on criteria from Robin and Zabrina.


Camara is written entirely in Node.JS, so I am familiar with how easy it is to make a request to a REST API and manipulate the data.


Shortly thereafter, I had a small Node.JS script to make requests to REST APIs and dump the query results in an Excel file. Robin, Zabrina, and I reviewed the resulting file for accuracy and completeness; ensuring no common codes were missing and the number of not-so-useful codes was limited.


We refined the queries to the SNOMED-CT and RxNorm REST APIs to produce the right set of codes. I presented the results in Excel, then Robin and Zabrina provided feedback, like “we don’t want the medications to include the packaging information.” I used the publicly available documentation for the REST APIs to explore our options. Then, I produced a new Excel file for review.


After preparing these queries, I realized we needed to maintain these value sets in the future, along with the SNOMED-CT and RxNorm code systems. I re-factored the new scripts into a tool to retrieve an updated set of terms for each value set.


I posted it online as an open-source command-line tool that only requires users to install Node.JS and run “npm install term-query -g”. Within one week, NPM reported 130+ downloads!


The total number of downloads has reached 226. Looking back, we assume that we uncovered a gap in the querying tools available for those working with Public APIs.


If you are a terminology user, let us know how you manage your extracts and if you have identified additional gaps.