Skip to content
This repository has been archived by the owner on Jun 17, 2019. It is now read-only.

trivedigaurav/emr-nlp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository is no longer active and has been moved to: http://github.com/nlpreviz/emr-nlp-server


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.

  3. 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
    

Building the project

To build the project, we recommend using the Eclipse IDE for Java EE Developers with the EGit plugin installed (Option B). Otherwise, the project also contains a build.xml to be used with Apache Ant (Option A).

Option A: Use ant to build the project

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

    git clone https://github.com/trivedigaurav/emr-nlp-server.git
    cd emr-nlp-server
    
  2. 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
    

Option B: Build the project in Eclipse

  1. Clone the emr-nlp-server repository using EGit: File > Import > Git ...

  2. Export the project into a .war file: File > Export > Web > WAR File to the Tomcat's webapps/ directory.

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.

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.