Skip to content

Commit

Permalink
Started implementation for new extraction method that will support
Browse files Browse the repository at this point in the history
knowledge of where to look for data and CUI annotations
  • Loading branch information
nikolamilosevic86 committed Nov 9, 2016
1 parent 51eba4f commit 58024d5
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 8 deletions.
1 change: 1 addition & 0 deletions .settings/org.eclipse.core.resources.prefs
Expand Up @@ -3,6 +3,7 @@ encoding//DefaultSintacticRules/StatisticalValues=UTF-8
encoding//DrugDrugInteraction/AnalyzePattern.py=utf-8
encoding//DrugDrugInteraction/Categories.txt=UTF-8
encoding//Wizard/Process_Data.py=UTF-8
encoding/AnalyzePattern.py=utf-8
encoding/CreateMLDatasetPatientNum.py=utf-8
encoding/GetAdverseEvents.py=utf-8
encoding/GetNumPatients.py=utf-8
Expand Down
2 changes: 1 addition & 1 deletion QueryDBClass.py
Expand Up @@ -602,7 +602,7 @@ def SaveAttribute(self,documentID,Option,tableId,TableName,PMC,AttributeName,Att
intValue = float(AttributeValue)
except:
intValue = None
sql = "INSERT into IEAttribute (documentId, PMC,idTable,TableName,Class,SubClass,VOption,Target, StringValue,IntValue, Unit) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
sql = "INSERT into IEAttribute (documentId, PMC,idTable,TableName,Class,SubClass,VOption,Source, StringValue,IntValue, Unit) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
cursor.execute(sql,(documentID,PMC,tableId,TableName,AttributeName,AttributeSubClass,Option,Target,AttributeValue,intValue,Unit))
self.db.commit()
return cursor.lastrowid
Expand Down
Binary file modified QueryDBClass.pyc
Binary file not shown.
46 changes: 40 additions & 6 deletions Wizard/EditRule.py
Expand Up @@ -56,10 +56,19 @@ def AddEditRule(project_name,vRuleName,vRuleType,RuleNameView,RulesListBox):
PosUnitLabel = Label(itemsFrame,text="Select rule creation mechanism").grid(row=11,column=0,sticky='w')
Radiobutton(itemsFrame, text="Lexical (White List+Black list)", variable=vLexSemRule, value="Lexical").grid(row=12,sticky='w')
Radiobutton(itemsFrame, text="Semantic (UMLS Sem. type+Black list)", variable=vLexSemRule, value="Semantic").grid(row=13,sticky='w')
save = Button(itemsFrame, text="Save", fg="black",command=lambda:SaveRule(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,RulesListBox,vRuleType,vLexSemRule)).grid(row=14,column=1,sticky='w')
where_to_look = Label(itemsFrame,text="Where to look for data?").grid(row=2,column=1,sticky='w')
wl_look_head = IntVar()
WLHeaderCB = Checkbutton(itemsFrame,text="Header",variable = wl_look_head).grid(row=3,column=1,sticky='w')
wl_look_stub = IntVar()
WLStubCB = Checkbutton(itemsFrame,text="Stub",variable = wl_look_stub).grid(row=4,column=1,sticky='w')
wl_look_super = IntVar()
WLSuperRowCB = Checkbutton(itemsFrame,text="Super-row",variable = wl_look_super).grid(row=5,column=1,sticky='w')
wl_look_data = IntVar()
WLDataCB = Checkbutton(itemsFrame,text="Data",variable = wl_look_data).grid(row=6,column=1,sticky='w')
save = Button(itemsFrame, text="Save", fg="black",command=lambda:SaveRule(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,RulesListBox,vRuleType,vLexSemRule,wl_look_head,wl_look_stub,wl_look_super,wl_look_data)).grid(row=14,column=1,sticky='w')


def SaveRuleEdit(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,ruleType,ruleMech):
def SaveRuleEdit(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,ruleType,ruleMech,wl_look_head,wl_look_stub,wl_look_super,wl_look_data):
global currentWhiteList
global currentBlackList
rule_path = "Projects/"+project_name+"/"+rule_name
Expand All @@ -68,17 +77,17 @@ def SaveRuleEdit(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,rul
vLexSemRule = StringVar()
vRuleType.set(ruleType)
vLexSemRule.set(ruleMech)
FileManipulationHelper.MakeRuleCFGFile(rule_path, vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSemRule)
FileManipulationHelper.MakeRuleCFGFile(rule_path, vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSemRule,wl_look_head,wl_look_stub,wl_look_super,wl_look_data)
add.withdraw()

def SaveRule(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,RulesListBox,vRuleType,vLexSemRule):
def SaveRule(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,RulesListBox,vRuleType,vLexSemRule,wl_look_head,wl_look_stub,wl_look_super,wl_look_data):
global currentWhiteList
global currentBlackList
rule_path = "Projects/"+project_name+"/"+rule_name
FileManipulationHelper.CreateFoderIfNotExist(rule_path)
#FileManipulationHelper.SaveWhiteList(rule_path, currentWhiteList)
#FileManipulationHelper.SaveBlackList(rule_path, currentBlackList)
FileManipulationHelper.MakeRuleCFGFile(rule_path,vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSemRule)
FileManipulationHelper.MakeRuleCFGFile(rule_path,vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSemRule,wl_look_head,wl_look_stub,wl_look_super,wl_look_data)
RulesListBox.insert(RulesListBox.size(),rule_name)
add.withdraw()
if(vLexSemRule.get()=="Lexical"):
Expand Down Expand Up @@ -128,6 +137,31 @@ def EditRule(project_name,Lb1):
vPosUnit = StringVar()
PosUnInput = Entry(itemsFrame,textvariable=vPosUnit).grid(row=8,sticky='w')
ruleMech = cfg['RuleCreationMech'].replace('\n','')
where_to_look = Label(itemsFrame,text="Where to look for data?").grid(row=2,column=1,sticky='w')
wl_look_head = IntVar()
if('DataInHeader' in cfg.keys() and cfg['DataInHeader']!=None and cfg['DataInHeader']=='1'):
wl_look_head.set(1)
else:
wl_look_head.set(0)
WLHeaderCB = Checkbutton(itemsFrame,text="Header",variable = wl_look_head).grid(row=3,column=1,sticky='w')
wl_look_stub = IntVar()
if('DataInStub' in cfg.keys() and cfg['DataInStub']!=None and cfg['DataInStub']=='1'):
wl_look_stub.set(1)
else:
wl_look_stub.set(0)
WLStubCB = Checkbutton(itemsFrame,text="Stub",variable = wl_look_stub).grid(row=4,column=1,sticky='w')
wl_look_super = IntVar()
if('DataInSuperRow' in cfg.keys() and cfg['DataInSuperRow']!=None and cfg['DataInSuperRow']=='1'):
wl_look_super.set(1)
else:
wl_look_super.set(0)
WLSuperRowCB = Checkbutton(itemsFrame,text="Super-row",variable = wl_look_super).grid(row=5,column=1,sticky='w')
wl_look_data = IntVar()
if('DataInData' in cfg.keys() and cfg['DataInData']!=None and cfg['DataInData']=='1'):
wl_look_data.set(1)
else:
wl_look_data.set(0)
WLDataCB = Checkbutton(itemsFrame,text="Data",variable = wl_look_data).grid(row=6,column=1,sticky='w')
if ruleMech == 'Lexical':
editWhiteList = Button(itemsFrame,text="Edit Lexical Cue List",command=lambda:WhiteListWindowEdit(project_name,rule_name)).grid(row=1,column=0,sticky='w')
else:
Expand All @@ -152,4 +186,4 @@ def EditRule(project_name,Lb1):
PragLabel = Label(itemsFrame,text="Pragmatic class").grid(row=7,column=1,sticky='w')
drop = OptionMenu(itemsFrame,pragVar,*prags)
drop.grid(row=8,column=1,sticky='w')
save = Button(itemsFrame, text="Save", fg="black",command=lambda:SaveRuleEdit(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,ruleType,ruleMech)).grid(row=9,column=1,sticky='w')
save = Button(itemsFrame, text="Save", fg="black",command=lambda:SaveRuleEdit(project_name,rule_name,add,vClsIn,vDefUnit,vPosUnit,pragVar,ruleType,ruleMech,wl_look_head,wl_look_stub,wl_look_super,wl_look_data)).grid(row=9,column=1,sticky='w')
Binary file modified Wizard/EditRule.pyc
Binary file not shown.
14 changes: 13 additions & 1 deletion Wizard/FileManipulationHelper.py
Expand Up @@ -112,7 +112,7 @@ def SaveBlackList(rule_path,blakclist):
for item in blakclist:
f.write(item+'\n')
f.close
def MakeRuleCFGFile(rule_path,vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSemRule):
def MakeRuleCFGFile(rule_path,vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSemRule,wl_look_head,wl_look_stub,wl_look_super,wl_look_data):
f = open(rule_path+'/Rule.cfg','w')
f.write("Class:"+str(vClsIn.get().replace('\n',''))+'\n')
f.write("RuleType:"+str(vRuleType.get().replace('\n',''))+'\n')
Expand All @@ -123,6 +123,10 @@ def MakeRuleCFGFile(rule_path,vClsIn,vDefUnit,vPosUnit,pragVar,vRuleType,vLexSem
f.write("PosCategories:"+str(vPosUnit.get().replace('\n',''))+'\n')
f.write("PragClass:"+str(pragVar.get().replace('\n',''))+'\n')
f.write("RuleCreationMech:"+str(vLexSemRule.get().replace('\n',''))+'\n')
f.write("DataInHeader:"+str(wl_look_head.get())+'\n')
f.write("DataInStub:"+str(wl_look_stub.get())+'\n')
f.write("DataInSuperRow:"+str(wl_look_super.get())+'\n')
f.write("DataInData:"+str(wl_look_data.get())+'\n')
f.close()

def loadRules(project_name):
Expand Down Expand Up @@ -161,6 +165,14 @@ def loadRuleConfig(project_name,rule_name):
conf['RuleCreationMech']=sp[1]
if sp[0]=='PosCategories':
conf['Categories']=sp[1]
if sp[0]=='DataInHeader':
conf['DataInHeader']=sp[1].replace('\n','')
if sp[0]=='DataInStub':
conf['DataInStub']=sp[1].replace('\n','')
if sp[0]=='DataInSuperRow':
conf['DataInSuperRow']=sp[1].replace('\n','')
if sp[0]=='DataInData':
conf['DataInData']=sp[1].replace('\n','')
return conf

def LoadRules(path):
Expand Down
Binary file modified Wizard/FileManipulationHelper.pyc
Binary file not shown.
4 changes: 4 additions & 0 deletions Wizard/RuleClasses_Rule.py
Expand Up @@ -21,6 +21,10 @@ class Rule:
bl_look_superrow = False
bl_look_data = False
bl_look_anywhere = False
data_in_header = False
data_in_stub = False
data_in_super = False
data_in_data = False
PragmaticClass = ''
PatternList = []
DefaultUnit = ''
Expand Down

0 comments on commit 58024d5

Please sign in to comment.