Skip to content

Raxa/RaxaMachineLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Raxa Machine Learning

This project includes set of tools to develop Machine Learning System for Electronic Medical Records (EMR). It can be configured to work across different types of databases & schema designs based on mapping provided during the configuration.

At current stage the project consists of drug suggestion system which uses UMLS Metathesaurus Knowledge Source and OpenMRS Database to find drugs that can be prescribed for a disease/syndrom/symptom with some other search attributes like age, location etc. of patient. The algorithm uses UMLS and datamining techniques on medical records to find the confidence between diseases, search attribute and drugs prescribed and suggest prescriptions.

Dependancies

Setup Procedure

  1. Import the project as Web application.

  2. Change file RaxaMachineLearning/src/config/database.properties with following format. File should contain credentials for medical record database.

    databaseURL="database URL"
    dbUser="database username"
    dbPassword="database password"
    
  3. Install UMLS database on MySQL. UMLS Installation guide, guide for using UMLS Rich Release Format MySQL load script

  4. Change file RaxaMachineLearning/src/config/umlsdatabase.properties with same as above format. File shoud contains credentials for umls database.

Machine Learning Modules

###1. Learning Modules Pool

Java Class: LearningModulesPool

Discription: The class contain static list of learning modules each implementing interface: LearningModuleInterface. The class provide method to get results for a search query and attributes. It get results from all individual modules and return a combined list fo results. The module all include method to initiat learning procedure for all modules.

Socket Interface: SearchSocket (ws://{host}/RaxaMachineLearing/ml/search), Sample Json Input String for Socket

  `
  {
     searchRequest: { 
        query: 'asthma', 
        features:[{
           name: 'age', 
           value: '24'
        }, {
           name: 'state',
           value: 'CA'
        }]
     }
  }
  `

HTML Inteface: Webcontent/search.html, (http://{host}/ RaxaMachineLearing/search.html)

###2. Disease-Drug Relations Learning Module:

Java Class : ConceptDrugLearningMultiFeatureModule

Discription : An instance of this class will provide the method to get list of drugs for a disease as search query and search attributes from the medical records. Constructor for this class requires instance of class implementing interface ConceptDrugDatabaseInterface. The interface is reqired to provide learning module methods to get relevant medical records, concepts dictonary from database

Drug Recommendation System:

Java Class: DiseaseToDrugPrediction

Discription: The class implements the methods to get list of drugs for disease as search query and attributes. It uses UMLS to get list of concepts that are disease and their related drugs from database. The class uses machine learning modules to decide the relative ordering in the drugs and return back the list of drugs.

WebSocket Interface: UmlsSocket (ws://{host}/RaxaMachineLearing/ml/umls) Sample Json Input String for Socket: Same as that of SearchSocket `

Html Interface: WebContent/umlsSenchaApp.html (http://{host}/RaxaMachineLearning/umlsSenchaApp.html)

###HOW TO:

Add Disease-Drug Relation Learning Module for any database
  1. Create a class implementing ConceptDrugDatabaseInterface for the medical record database. Sample: PaceMakeConceptDrugDatabaseInput

  2. Add following lines in class ContextListner

    ` @Override public void contextInitialized(ServletContextEvent arg0) {

    // add the ConceptDrugLearningMultiFeatureModule with your database interface LearningModulesPool.addLearningModule(new ConceptDrugLearningMultiFeatureModule(new YourDatabaseInterface()));

    LearningSchedular.startSchedular(); log.debug("modules added"); } `

About

Machine Learning System for Electronic Medical Records (EMR)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages