Fast search of standardized lexicons like ICD10 and Radlex, using node.js + express.js, Twitter typeahead.js and ElasticSearch
Inspired by ClinDesk icd10 search, but doing the searching server side to avoid needing to download a multi-MB file to the client. This also theoretically allows many more lexicons to be added without affecting performance on the client.
Clone the repository, then in the repo directory:
npm install
npm install -g webpack
npm run build
npm start
Go to localhost:3000
For development, use
npm run watch
This will use the development version of React, and watch for changes.
For prodution, use
npm run build
which just adds the NODE_ENV=production flag to the build, which builds the production version of React, which is smaller and with fewer warnings.
Two lexicons are currently included, ICD-10 and Radlex, the radiology lexicon.
The original source documents are parsed using the included scripts into JSON with the following format:
[
{
"i": String, // Unique string identifier, i.e. id of element in lexicon
"d": String, // Description of the element, i.e. the common name
"n": Array, // ["extra notes", "or alternative phrases", "will also be indexed for search"]
},
{...}
]
The elasticsearch index is pre-built with node build-elasticsearch-index.js