Skip to content

An Interactive Tool for Natural Language Processing on Clinical Text

License

Notifications You must be signed in to change notification settings

codeaudit/emr-nlp-server

 
 

Repository files navigation

NLPReViz: emr-nlp-server

emr-nlp-server provides the backend service for the emr-vis-web project.

Getting Started

To get started, install the pre-requisites, get the emr-nlp-server application and then launch the service as described below:

Prerequisites

  1. You must have Java Development Kit (JDK) 1.7 to build or Java Runtime (JRE) 1.7 to run this project. To confirm that you have the right version of JRE installed, run $ java -version and verify that the output is similar to:

    java version "1.7.0_51"
    Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
    

    If you don't have the JDK installed or have an older one, you may get the latest version from the Oracle Technology Network.

  2. We use the Apache Tomcat server to deploy the app. On a Mac with homebrew you may use $ brew install tomcat to install the server on your machine.

Building the project

  1. Clone the emr-nlp-server repository using git:

    git clone https://github.com/NLPReViz/emr-nlp-server.git
    cd emr-nlp-server
    
  2. Our project depends on the following external dependencies which can be downloaded using Apache Ant:

    • Java Jersey which is dual licensed: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE and GPL 2.
    • Weka licensed under GPL 3.
    • Libsvm with a license compatible with GPL.
    • Stanford CoreNLP licensed under the GNU General Public License (v3 or later; Stanford NLP code is GPL v2+, but the composite with external libraries is v3+).

    To download and resolve these dependencies from their respective repositories use:

    ant resolve
    
  3. Specify the path to the webapps directory in CATALINA_HOME environment variable and use ant deploy to to build and deploy the backend app.

    For example if your Tomcat's webapps directory accessible as /usr/local/Cellar/tomcat/7.0.54/libexec/webapps/, then you may use:

    env CATALINA_HOME=/usr/local/Cellar/tomcat/8.0.9/libexec/ ant deploy
    

We recommend using the Eclipse IDE for Java EE Developers with the EGit plugin installed for development. The repository contains appropriate project files to be imported into Eclipse.

Running the server

We have included some "dummy" data with our release so that you can run the tool and play with the interface. These are not actual medical records and and your models will not be useful. Contact the devs if you need more information about real datasets.

  1. Download and copy the data directory inside $CATALINA_BASE. You should be able to figure this path from the print messages you see after launching the server. Example path: /usr/local/Cellar/tomcat/8.0.9/libexec/data.

  2. You need to build libsvm before you may run the server for the first time. To do that run make inside data/libsvm directory or follow the instructions in the README file present there.

  3. Start the Tomcat server (eg. using $ catalina run or # service tomcat start etc.).

Now follow the steps on emr-vis-web to setup the front-end application.

Defining custom variables

The tool is currently configured to make predictions for 14 colonoscopy quality variables. It also does specific format parsing for colonoscopy and pathology reports in the data provided with the release. We have a more generic version of the tool in the alaska branch of this repository. Refer to the top 3 three commits for the changes here. This project will be updated to make this configuration easier in the near future.

Remember to update emr-vis-web as described in its README as well.

Login

The the rest calls to the server are protected with a basic access http authentication. The default login credentials are "username" and "password". You are encouraged to change them in UserAuthentication.java when running the app on a publicly accessible server.

License

This project is released under the GPL 3 license. Take a look at the LICENSE file in the source for more information.

About

An Interactive Tool for Natural Language Processing on Clinical Text

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%