Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package gov.nih.nlm.nls.metamap;
- import com.sun.deploy.util.StringUtils;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import static java.lang.System.out;
- /**
- * Created by Christine on 10/7/2017.
- */
- public class ClinicalTrialsPreprocessor {
- // JDBC driver name and database URL
- static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
- static final String DB_URL = "jdbc:mysql://trec2017.ckdnt5fqmiqn.ap-northeast-2.rds.amazonaws.com:3306/trec2017";
- // Database credentials
- static final String USER = "trec2017";
- static final String PASS = "kaistknowtrec2017";
- static String serverhost = MetaMapApi.DEFAULT_SERVER_HOST;
- static int serverport = MetaMapApi.DEFAULT_SERVER_PORT; // default port
- static int timeout = -1; // use default timeout
- //static MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- static Connection conn = null;
- static Statement stmt = null;
- static List<String> semanticFilter = Arrays.asList("aapp","acab","amas","antb","bacs","bdsu",
- "bdsy","biof","blor","bpoc","celf","celc","cell","chem","chvf","chvs","clna",
- "clnd","comd","diap","drdd","dsyn","enzy","genf","gngm","hops","horm","imft",
- "lbpr","irda","lbtr","inch","lipd","mbrt","medd","menp","mobd","moft","mosq",
- "neop","nnon","nsba","orch","ortf","patf","phsu","phsf","sbst","sosy","topp",
- "virs","strd","tisu","vita","fndg"
- );
- public static void main(String args[]) throws Exception { //Receives file directory as argument
- //STEP 2: Register JDBC driver
- Class.forName("com.mysql.jdbc.Driver");
- //STEP 3: Open a connection
- out.println("Connecting to a selected database...");
- conn = DriverManager.getConnection(DB_URL, USER, PASS);
- out.println("Connected database successfully...");
- //TODO: Changed the years listed here
- ArrayList<String> years = new ArrayList<String>(
- Arrays.asList("2006", "2007", "2008","2009","2010"));
- for(int i=0;i<years.size();i++){
- out.println("YEAR :"+years.get(i));
- dbOperations(conn,years.get(i));
- //break;
- }
- try
- {
- if(stmt!=null)
- conn.close();
- }catch(SQLException se){
- }// do nothing
- try{
- if(conn!=null)
- conn.close();
- }catch(SQLException se){
- se.printStackTrace();
- }//end finally try
- }
- public static void updateTables(Connection conn,ArrayList<String> params1, ArrayList<String> params2) throws Exception{ //params1 is for clinical_trials_mapped, params2 is for clinical_trials
- // create the java mysql update preparedstatement
- String query1 = "update trec2017.clinical_trials_mapped set title_concepts = ?,title_cuis = ?," +
- "concepts = ?, matched_words = ?, preferred_words = ?, cuis = ?, gene_cuis = ?, condition_cui = ?, intervention_cui = ?, " +
- "inclusion_concepts = ?, inclusion_cuis = ?, " +
- "exclusion_concepts = ?, exclusion_cuis = ?, mesh_terms_cuis =? where nct_id = ?;";//updating entries for clinical_trials_mapped
- PreparedStatement preparedStmt1 = conn.prepareStatement(query1);
- for(int i=0;i<params1.size();i++){
- preparedStmt1.setString(i+1, params1.get(i));
- }
- // execute the java preparedstatement
- preparedStmt1.executeUpdate();
- String query2 = "update trec2017.clinical_trials set inclusion_raw = ?, exclusion_raw = ? where nct_id = ?;";//updating entries for clinical_trials
- PreparedStatement preparedStmt2 = conn.prepareStatement(query2);
- for(int i=0;i<params2.size();i++){
- preparedStmt2.setString(i+1, params2.get(i));
- }
- }
- public static void dbOperations(Connection con,String year)
- throws SQLException {
- Statement stmt = null;
- String query1 =
- "select nct_id, title, brief_summary, detailed_description, criteria, inclusion_raw, intervention, patient_condition,mesh_terms " +
- "from trec2017.clinical_trials where year="+year; //retrieving rows
- try {
- stmt = con.createStatement();
- ResultSet rs = stmt.executeQuery(query1);
- while (rs.next()) {
- ArrayList<String> params1 = new ArrayList<String>();
- ArrayList<String> params2 = new ArrayList<String>();
- String nct_id = rs.getString("nct_id");
- String title = rs.getString("title");
- String brief_summary = rs.getString("brief_summary");
- String detailed_description = rs.getString("detailed_description");
- String criteria = rs.getString("criteria");
- String intervention = rs.getString("intervention");
- String condition = rs.getString("patient_condition");
- String mesh_terms = rs.getString("mesh_terms");
- String inclusion = rs.getString("inclusion_raw");
- out.println("NCT ID : " + nct_id);
- if(criteria!=null&&inclusion==null){
- /*
- System.out.println("Title : "+title);
- System.out.println("Brief Summary :" + brief_summary);
- System.out.println("Detailed Description :"+ detailed_description);
- System.out.println("Criteria :"+ criteria);
- */
- JSONObject titleConcepts = getTitleConcepts(title);
- String title_cuis = titleConcepts.getString("title_cuis");
- String title_concepts = titleConcepts.getString("title_concepts");
- JSONObject detailConcepts = getConceptsFromDetails(brief_summary, "");
- String concepts = detailConcepts.getString("conceptList");
- String matched_words = detailConcepts.getString("matchedWordList");
- String preferred_words = detailConcepts.getString("preferredNameList");
- String cuis = detailConcepts.getString("cuis");
- String genes = detailConcepts.getString("genes");
- String intervention_cui = getInterventionCui(intervention);
- String condition_cui = getConditionCui(condition);
- /*
- System.out.println("Title CUIS :"+title_cuis);
- System.out.println("Title Concepts :" +title_concepts);
- System.out.println("Concepts :" + concepts);
- System.out.println("Matched Words :"+matched_words);
- System.out.println("Preferred Words :"+preferred_words);
- System.out.println("CUIS:"+cuis);
- System.out.println("Genes :"+genes);
- System.out.println("Intervention CUI :"+intervention_cui);
- System.out.println("Condition CUI :"+condition_cui);
- */
- criteria = criteria.trim().replaceAll(" +", " ");
- JSONObject parsedCriteria = parseCriteria(criteria); //returns the inclusion/exclusion concepts and cuis
- String inclusion_raw = parsedCriteria.getString("inclusion_raw");
- String inclusion_concepts = parsedCriteria.getString("inclusion_concepts");
- String inclusion_cuis = parsedCriteria.getString("inclusion_cuis");
- String exclusion_raw = parsedCriteria.getString("exclusion_raw");
- String exclusion_concepts = parsedCriteria.getString("exclusion_concepts");
- String exclusion_cuis = parsedCriteria.getString("exclusion_cuis");
- String mesh_terms_cuis = getMeshCuis(mesh_terms);
- /*
- out.println("Inclusion Raw:"+parsedCriteria.getString("inclusion_raw"));
- out.println("Inclusion Concepts :"+parsedCriteria.getString("inclusion_concepts"));
- out.println("Inclusion Cuis :"+parsedCriteria.getString("inclusion_cuis"));
- out.println("Exclusion raw:"+parsedCriteria.getString("exclusion_raw"));
- out.println("Exclusion concepts:"+parsedCriteria.getString("exclusion_concepts"));
- out.println("Exclusion Cuis :"+parsedCriteria.getString("exclusion_cuis"));
- */
- //parameters for clinical_trials_mapped
- params1.add(title_concepts);
- params1.add(title_cuis);
- params1.add(concepts);
- params1.add(matched_words);
- params1.add(preferred_words);
- params1.add(cuis);
- params1.add(genes);
- params1.add(condition_cui);
- params1.add(intervention_cui);
- params1.add(inclusion_concepts);
- params1.add(inclusion_cuis);
- params1.add(exclusion_concepts);
- params1.add(exclusion_cuis);
- params1.add(mesh_terms_cuis);
- params1.add(nct_id);
- //parameters for clinical_trials_table
- params2.add(inclusion_raw);
- params2.add(exclusion_raw);
- params2.add(nct_id);
- try {
- //System.out.println(params.size());
- updateTables(conn, params1, params2);
- } catch (Exception e) {
- e.printStackTrace();
- continue;
- }
- }
- }
- } catch (SQLException e ) {
- e.printStackTrace();
- } catch (Exception e){
- e.printStackTrace();
- }
- finally {
- if (stmt != null) { stmt.close(); }
- }
- }
- public static String getMeshCuis(String mesh_terms) throws Exception{
- ArrayList<String> cuis = new ArrayList<String>();
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- //System.out.println(title);
- List<Result> resultList = api.processCitationsFromString(mesh_terms);
- //System.out.println("Length :"+resultList.size());
- //Result result = resultList.get(0);
- for(Result result: resultList){
- for (Utterance utterance: result.getUtteranceList()) {
- for (PCM pcm: utterance.getPCMList()) {
- for (Mapping map : pcm.getMappingList()) {
- for (Ev mapEv : map.getEvList()) {
- String cui = mapEv.getConceptId();
- String conceptName = mapEv.getConceptName();
- List<String> semanticTypes = mapEv.getSemanticTypes();
- for(int sem=0; sem<semanticTypes.size();sem++){
- if(semanticFilter.contains(semanticTypes.get(sem))&&!cuis.contains(cui)){
- cuis.add(cui);
- }
- }
- }
- }
- }
- }
- }
- //System.out.println(cuis.size());
- api.disconnect();
- return StringUtils.join(cuis,",");
- }
- public static JSONObject getTitleConcepts(String title) throws Exception{
- ArrayList<String> cuis = new ArrayList<String>();
- ArrayList<String> concepts = new ArrayList<String>();
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- //System.out.println(title);
- List<Result> resultList = api.processCitationsFromString(title);
- //System.out.println("Length :"+resultList.size());
- //Result result = resultList.get(0);
- for(Result result: resultList){
- for (Utterance utterance: result.getUtteranceList()) {
- for (PCM pcm: utterance.getPCMList()) {
- for (Mapping map : pcm.getMappingList()) {
- for (Ev mapEv : map.getEvList()) {
- String cui = mapEv.getConceptId();
- String conceptName = mapEv.getConceptName();
- List<String> semanticTypes = mapEv.getSemanticTypes();
- for(int sem=0; sem<semanticTypes.size();sem++){
- if(semanticFilter.contains(semanticTypes.get(sem))&&!cuis.contains(cui)){
- cuis.add(cui);
- concepts.add(conceptName);
- }
- }
- }
- }
- }
- }
- }
- //System.out.println(cuis.size());
- JSONObject umlsExtracts = new JSONObject();
- umlsExtracts.put("title_cuis",StringUtils.join(cuis,","));
- umlsExtracts.put("title_concepts",StringUtils.join(concepts,","));
- api.disconnect();
- return umlsExtracts;
- }
- public static JSONObject getConceptsFromDetails(String brief, String detailed) throws Exception{ //returns relevant UMLS concepts from brief and detailed description
- ArrayList<String> cuis = new ArrayList<String>();
- ArrayList<String> genes = new ArrayList<String>();
- ArrayList<String> conceptList = new ArrayList<String>();
- ArrayList<String> preferredNameList = new ArrayList<String>();
- ArrayList<String> matchedWordList = new ArrayList<String>();
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- List<Result> resultList = api.processCitationsFromString(brief+detailed);
- //Result result = resultList.get(0);
- for(Result result:resultList){
- for (Utterance utterance: result.getUtteranceList()) {
- for (PCM pcm : utterance.getPCMList()) {
- //System.out.println("Mappings:");
- for (Mapping map : pcm.getMappingList()) {
- //System.out.println(" Map Score: " + map.getScore());
- for (Ev mapEv : map.getEvList()) {
- String cui = mapEv.getConceptId();
- //System.out.println(" Concept Id: " + mapEv.getConceptId());
- String conceptName = mapEv.getConceptName();
- //System.out.println(" Concept Name: " + mapEv.getConceptName());
- String preferredName = mapEv.getPreferredName();
- //System.out.println(" Preferred Name: " + mapEv.getPreferredName());
- List<String> matchedWords = mapEv.getMatchedWords();
- //System.out.println(" Matched Words: " + mapEv.getMatchedWords());
- List<String> semanticTypes = mapEv.getSemanticTypes();
- for(int sem=0; sem<semanticTypes.size();sem++){
- String semanticType = semanticTypes.get(sem);
- if(semanticFilter.contains(semanticType)&&!cuis.contains(cui)){
- cuis.add(cui);
- conceptList.add(conceptName);
- preferredNameList.add(preferredName);
- matchedWordList.addAll(matchedWords);
- }
- //add to list of genes/proteins/amino acids mentioned in this article
- if(semanticType.equals("aapp")||semanticType.equals("amas")||semanticType.equals("genf")||semanticType.equals("gngm")){
- genes.add(cui);
- }
- }
- }
- }
- }
- }
- }
- JSONObject umlsExtracts = new JSONObject();
- umlsExtracts.put("cuis",StringUtils.join(cuis,","));
- umlsExtracts.put("genes",StringUtils.join(genes,","));
- umlsExtracts.put("conceptList",StringUtils.join(conceptList,","));
- umlsExtracts.put("preferredNameList",StringUtils.join(preferredNameList,","));
- umlsExtracts.put("matchedWordList",StringUtils.join(preferredNameList,","));
- api.disconnect();
- //System.out.println(umlsExtracts);
- return umlsExtracts;
- }
- public static String getNegations(String someText) throws Exception{
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- List<Result> resultList = api.processCitationsFromString(someText);
- for(Result result:resultList){
- List<Negation> negList = result.getNegationList();
- if (negList.size() > 0) {
- out.println("Negations:");
- for (Negation e : negList) {
- out.println("type: " + e.getType());
- out.print("Trigger: " + e.getTrigger() + ": [");
- for (Position pos : e.getTriggerPositionList()) {
- out.print(pos + ",");
- }
- out.println("]");
- out.print("ConceptPairs: [");
- for (ConceptPair pair : e.getConceptPairList()) {
- out.print(pair + ",");
- }
- out.println("]");
- out.print("ConceptPositionList: [");
- for (Position pos : e.getConceptPositionList()) {
- out.print(pos + ",");
- }
- out.println("]");
- }
- }
- }
- api.disconnect();
- return "";
- }
- public static JSONObject getConceptsFromCriteria(String criteria) throws Exception{ //returns relevant UMLS concepts from brief and detailed description
- //System.out.println("Here: "+criteria);
- ArrayList<String> cuis = new ArrayList<String>();
- ArrayList<String> genes = new ArrayList<String>();
- ArrayList<String> conceptList = new ArrayList<String>();
- ArrayList<String> preferredNameList = new ArrayList<String>();
- ArrayList<String> matchedWordList = new ArrayList<String>();
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- List<Result> resultList = api.processCitationsFromString(criteria);
- //Result result = resultList.get(0);
- for(Result result:resultList){
- for (Utterance utterance: result.getUtteranceList()) {
- for (PCM pcm : utterance.getPCMList()) {
- //System.out.println("Mappings:");
- for (Mapping map : pcm.getMappingList()) {
- //System.out.println(" Map Score: " + map.getScore());
- for (Ev mapEv : map.getEvList()) {
- String cui = mapEv.getConceptId();
- //System.out.println(" Concept Id: " + mapEv.getConceptId());
- String conceptName = mapEv.getConceptName();
- //System.out.println(" Concept Name: " + mapEv.getConceptName());
- String preferredName = mapEv.getPreferredName();
- //System.out.println(" Preferred Name: " + mapEv.getPreferredName());
- List<String> matchedWords = mapEv.getMatchedWords();
- //System.out.println(" Matched Words: " + mapEv.getMatchedWords());
- List<String> semanticTypes = mapEv.getSemanticTypes();
- for(int sem=0; sem<semanticTypes.size();sem++){
- String semanticType = semanticTypes.get(sem);
- if(semanticFilter.contains(semanticType)&&!cuis.contains(cui)){
- cuis.add(cui);
- conceptList.add(conceptName);
- preferredNameList.add(preferredName);
- matchedWordList.addAll(matchedWords);
- }
- //add to list of genes/proteins/amino acids mentioned in this article
- if(semanticType.equals("aapp")||semanticType.equals("amas")||semanticType.equals("genf")||semanticType.equals("gngm")){
- genes.add(cui);
- }
- }
- }
- }
- }
- }
- }
- JSONObject umlsExtracts = new JSONObject();
- umlsExtracts.put("cuis", new JSONArray(cuis));
- umlsExtracts.put("conceptList",new JSONArray(conceptList));
- //System.out.println(umlsExtracts);
- api.disconnect();
- return umlsExtracts;
- }
- public static JSONObject parseCriteria(String criteria) throws Exception{
- JSONObject reqs = new JSONObject();
- reqs.put("inclusion_raw","");
- reqs.put("exclusion_raw","");
- reqs.put("inclusion_concepts",",");
- reqs.put("inclusion_cuis",",");
- reqs.put("exclusion_concepts",",");
- reqs.put("exclusion_cuis",",");
- ArrayList<String> inclusionCons = new ArrayList<String>();
- ArrayList<String> inclusionCuis = new ArrayList<String>();
- ArrayList<String> exclusionCons = new ArrayList<String>();
- ArrayList<String> exclusionCuis = new ArrayList<String>();
- if(!criteria.contains("Inclusion")){ //handling weird formats -- by default they are in the inclusion criteria
- JSONObject criteriaConcepts = getConceptsFromCriteria(criteria);
- JSONArray conArr = (JSONArray)criteriaConcepts.getJSONArray("conceptList");
- JSONArray cuiArr = (JSONArray)criteriaConcepts.getJSONArray("cuis");
- for(int ind=0; ind<conArr.length();ind++){
- String conc = conArr.getString(ind);
- if(conc.toLowerCase().contains("not ")||conc.toLowerCase().contains("negative ")||conc.toLowerCase().contains("no ")){
- exclusionCons.add(conc);
- exclusionCuis.add(cuiArr.getString(ind));
- }
- else
- {
- inclusionCons.add(conc);
- inclusionCuis.add(cuiArr.getString(ind));
- }
- }
- reqs.put("inclusion_raw",criteria);
- reqs.put("exclusion_raw","");
- reqs.put("inclusion_concepts",StringUtils.join(inclusionCons,","));
- reqs.put("inclusion_cuis",StringUtils.join(inclusionCuis,","));
- reqs.put("exclusion_concepts",StringUtils.join(exclusionCons,","));
- reqs.put("exclusion_cuis",StringUtils.join(exclusionCuis,","));
- //out.println("Inclusion :"+StringUtils.join(inclusionCons,","));
- //out.println("Exclusion :"+StringUtils.join(exclusionCons,","));
- }
- else{
- String[] criteriaTokens = criteria.split("Exclusion ");
- //System.out.println(criteriaTokens.length);
- if(criteriaTokens.length>=1){ //There is an inclusion criteria
- JSONObject criteriaConcepts = getConceptsFromCriteria(criteriaTokens[0]);
- JSONArray conArr = (JSONArray)criteriaConcepts.getJSONArray("conceptList");
- JSONArray cuiArr = (JSONArray)criteriaConcepts.getJSONArray("cuis");
- for(int ind=0; ind<conArr.length();ind++){
- String conc = conArr.getString(ind);
- inclusionCons.add(conc);
- inclusionCuis.add(cuiArr.getString(ind));
- }
- reqs.put("inclusion_raw",criteriaTokens[0]);
- reqs.put("inclusion_concepts",StringUtils.join(inclusionCons,","));
- reqs.put("inclusion_cuis",StringUtils.join(inclusionCuis,","));
- }
- if(criteriaTokens.length>=2){ //There is an exclusion criteria
- JSONObject criteriaConcepts = getConceptsFromCriteria(criteriaTokens[1]);
- JSONArray conArr = (JSONArray)criteriaConcepts.getJSONArray("conceptList");
- JSONArray cuiArr = (JSONArray)criteriaConcepts.getJSONArray("cuis");
- for(int ind=0; ind<conArr.length();ind++) {
- //out.println("This was true.");
- String conc = conArr.getString(ind);
- exclusionCons.add(conc);
- exclusionCuis.add(cuiArr.getString(ind));
- }
- reqs.put("exclusion_raw","Exclusion "+criteriaTokens[1]);
- reqs.put("exclusion_concepts",StringUtils.join(exclusionCons,","));
- reqs.put("exclusion_cuis",StringUtils.join(exclusionCuis,","));
- }
- }
- return reqs;
- }
- public static String getInterventionCui(String intervention) throws Exception{
- ArrayList<String> cuis = new ArrayList<String>();
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- List<Result> resultList = api.processCitationsFromString(intervention);
- //Result result = resultList.get(0);
- for(Result result: resultList){
- for (Utterance utterance: result.getUtteranceList()) {
- for (PCM pcm : utterance.getPCMList()) {
- //System.out.println("Mappings:");
- for (Mapping map : pcm.getMappingList()) {
- //System.out.println(" Map Score: " + map.getScore());
- for (Ev mapEv : map.getEvList()) {
- String cui = mapEv.getConceptId();
- //System.out.println(" Concept Id: " + mapEv.getConceptId());
- String conceptName = mapEv.getConceptName();
- //System.out.println(" Concept Name: " + mapEv.getConceptName());
- List<String> semanticTypes = mapEv.getSemanticTypes();
- for (int sem = 0; sem < semanticTypes.size(); sem++) {
- String semanticType = semanticTypes.get(sem);
- if (semanticFilter.contains(semanticType) && !cuis.contains(cui)) {
- cuis.add(cui);
- }
- }
- }
- }
- }
- }
- }
- api.disconnect();
- return StringUtils.join(cuis,",");
- }
- public static String getConditionCui(String condition) throws Exception{
- ArrayList<String> cuis = new ArrayList<String>();
- MetaMapApi api = new MetaMapApiImpl("127.0.0.1",8066);
- List<Result> resultList = api.processCitationsFromString(condition);
- //Result result = resultList.get(0);
- for(Result result: resultList){
- for (Utterance utterance: result.getUtteranceList()) {
- for (PCM pcm : utterance.getPCMList()) {
- //System.out.println("Mappings:");
- for (Mapping map : pcm.getMappingList()) {
- //System.out.println(" Map Score: " + map.getScore());
- for (Ev mapEv : map.getEvList()) {
- String cui = mapEv.getConceptId();
- //System.out.println(" Concept Id: " + mapEv.getConceptId());
- String conceptName = mapEv.getConceptName();
- //System.out.println(" Concept Name: " + mapEv.getConceptName());
- List<String> semanticTypes = mapEv.getSemanticTypes();
- for (int sem = 0; sem < semanticTypes.size(); sem++) {
- String semanticType = semanticTypes.get(sem);
- if (semanticFilter.contains(semanticType) && !cuis.contains(cui)) {
- cuis.add(cui);
- }
- }
- }
- }
- }
- }
- }
- api.disconnect();
- return StringUtils.join(cuis,",");
- }
- /*
- public static String getConceptsFromCriteria(String criteria){
- }
- public static void updateDBEntry(JSONObject article){
- String pmid = article.getString("pmid");
- System.out.println("****PMID :"+pmid);
- String year = article.getString("year");
- String journal = article.getString("journal");
- journal = journal.replace("\"", "");
- journal = journal.replace("\'","");
- String title = article.getString("title");
- title = title.replace("\"","");
- title = title.replace("\'","");
- String articleAbstract = article.getString("abstract"); //raw abstract
- articleAbstract = articleAbstract.replace("\"", "");
- articleAbstract = articleAbstract.replace("\'","");
- String title_cuis = "";
- String abstract_cuis = "";
- String diseases = "";
- String genes = "";
- String demographic = "";
- String abstract_concepts = "";
- String abstract_preferred_words = "";
- String abstract_matched_words = "";
- String mesh_main_topic = "";
- String main_topic_cuis = "";
- String other_topic = "";
- String other_topic_cuis = "";
- String keywords = "";
- String keyword_cuis = "";
- String chemicals = "";
- String chemical_cuis = "";
- Boolean isTreatment = article.getBoolean("treatment");
- mesh_main_topic = article.getString("main_topic");
- main_topic_cuis = article.getString("main_topic_dui"); //todo: this is actually dui so translate to cui
- other_topic = article.getString("other_topic");
- other_topic_cuis = article.getString("other_topic_dui"); //todo: this is actually dui so translate to cui
- keywords = article.getString("keywords"); //todo: extract cui for keywords
- chemicals = article.getString("chemical");
- chemical_cuis = article.getString("chemical_dui"); //todo: convert dui to cui
- if(mesh_main_topic.split(",").length == 0){ //if mesh is non-existent for the given article
- try
- {
- title_cuis = getTitleCuis(title); //TODO: Pass title to Metamap to extract CUIs
- title = title.replace("\"", "");
- if(!articleAbstract.equals("")) {
- //System.out.println("Abstract Extracts: ");
- JSONObject umlsExtracts = getUmlsFromAbstract(articleAbstract);
- abstract_cuis = umlsExtracts.getString("cuis");
- diseases = umlsExtracts.getString("diseases");
- genes = umlsExtracts.getString("genes");
- demographic = umlsExtracts.getString("subject");
- abstract_concepts = umlsExtracts.getString("conceptList");
- abstract_preferred_words = umlsExtracts.getString("preferredNameList");
- abstract_matched_words = umlsExtracts.getString("matchedWordList");
- genes = umlsExtracts.getString("genes");
- }
- }
- catch (Exception e){
- System.out.println(e.toString());
- }
- }
- /*
- System.out.println(pmid);
- System.out.println(year);
- System.out.println(journal);
- System.out.println(title);
- System.out.println(articleAbstract);
- System.out.println(title_cuis);
- System.out.println(abstract_cuis);
- System.out.println(diseases);
- System.out.println(genes);
- System.out.println(demographic);
- System.out.println(abstract_concepts);
- System.out.println(abstract_preferred_words);
- System.out.println(abstract_matched_words);
- System.out.println(mesh_main_topic);
- System.out.println(main_topic_cuis);
- System.out.println(other_topic);
- System.out.println(other_topic_cuis);
- System.out.println(keywords);
- System.out.println(keyword_cuis);
- System.out.println(chemicals);
- System.out.println(chemical_cuis);
- System.out.println(isTreatment);
- */
- /*
- try{
- //STEP 4: Execute a query
- System.out.println("Inserting records into the table...");
- stmt = conn.createStatement();
- String table_name = "pubmed";
- String sql = "INSERT INTO "+table_name +" "+
- "VALUES ( " +
- "\""+pmid+"\","+year+",\""+journal+"\",\""+title+"\",\""+articleAbstract+"\",\""+title_cuis+"\",\""+
- abstract_cuis+"\",\""+diseases+"\",\""+genes+"\",\""+demographic+"\",\""+abstract_concepts+"\",\""+
- abstract_preferred_words+"\",\""+abstract_matched_words+"\",\""+mesh_main_topic+"\",\""+
- main_topic_cuis+"\",\""+other_topic+"\",\""+other_topic_cuis+"\",\""+keywords+"\",\""+
- keyword_cuis+"\",\""+chemicals+"\",\""+chemical_cuis+"\",\""+isTreatment+"\""+
- ")";
- System.out.println(sql);
- stmt.executeUpdate(sql);
- System.out.println("Inserted records into the table...");
- }catch(SQLException se){
- //Handle errors for JDBC
- se.printStackTrace();
- }catch(Exception e){
- //Handle errors for Class.forName
- e.printStackTrace();
- }finally{
- //finally block used to close resources
- }//end try
- System.out.println("Goodbye!");
- }
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement