Shreyas45 commited on
Commit
83e31a3
·
verified ·
1 Parent(s): 22c5e17

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +174 -0
app.py ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import medspacy
3
+ from medspacy.ner import TargetRule
4
+
5
+ # Load the MedSpaCy model
6
+ nlp = medspacy.load()
7
+
8
+ target_symptoms=[
9
+ TargetRule('Abdominal pain', 'SYMPTOM'),
10
+ TargetRule('Abdominal swelling', 'SYMPTOM'),
11
+ TargetRule('Loss of appetite', 'SYMPTOM'),
12
+ TargetRule('Weight loss', 'SYMPTOM'),
13
+ TargetRule('Nausea', 'SYMPTOM'),
14
+ TargetRule('Vomiting', 'SYMPTOM'),
15
+ TargetRule('Fatigue', 'SYMPTOM'),
16
+ TargetRule('Jaundice', 'SYMPTOM'),
17
+ TargetRule('Dark urine', 'SYMPTOM'),
18
+ TargetRule('Easy bleeding', 'SYMPTOM'),
19
+ TargetRule('Easy bruising', 'SYMPTOM'),
20
+ TargetRule('Right upper abdominal mass', 'SYMPTOM'),
21
+ TargetRule('Pale stools', 'SYMPTOM'),
22
+ TargetRule('Itchy skin', 'SYMPTOM'),
23
+ TargetRule('Chronic indigestion', 'SYMPTOM'),
24
+ TargetRule('Feeling of fullness in upper abdomen', 'SYMPTOM'),
25
+ TargetRule('New-onset diabetes', 'SYMPTOM'),
26
+ TargetRule('Confusion', 'SYMPTOM'),
27
+ TargetRule('Hinching', 'SYMPTOM'),
28
+ TargetRule('Bilirubin', 'SYMPTOM')
29
+ ]
30
+
31
+ target_condition=[
32
+ TargetRule('Hepatic Cancer','CONDITION'),
33
+ TargetRule('Hepatocellular Carcinoma','CONDITION'),
34
+ TargetRule('HCC','CONDITION'),
35
+ TargetRule('Cholangiocarcinoma','CONDITION'),
36
+ TargetRule('Metastatic Liver Cancer','CONDITION'),
37
+ TargetRule('Liver Metastases','CONDITION'),
38
+ TargetRule('Cirrhosis','CONDITION'),
39
+ TargetRule('Hepatitis','CONDITION'),
40
+ TargetRule('Fibrolamellar Hepatocellular Carcinoma','CONDITION'),
41
+ TargetRule('Liver Resection','CONDITION'),
42
+ TargetRule('Liver cancer','CONDITION'),
43
+ TargetRule('Primary liver cancer','CONDITION'),
44
+ TargetRule('Hepatoma','CONDITION'),
45
+ TargetRule('Hepatic carcinoma','CONDITION')
46
+ ]
47
+
48
+ target_diagnosis=[
49
+ TargetRule('Computed Tomography scan','DIAGNOSIS'),
50
+ TargetRule('CT scan','DIAGNOSIS'),
51
+ TargetRule('Magnetic Resonance Imaging','DIAGNOSIS'),
52
+ TargetRule('MRI','DIAGNOSIS'),
53
+ TargetRule('Positron Emission Tomography','DIAGNOSIS'),
54
+ TargetRule('PET scan','DIAGNOSIS'),
55
+ TargetRule('Ultrasound','DIAGNOSIS'),
56
+ TargetRule('Sonography','DIAGNOSIS'),
57
+ TargetRule('Biopsy','DIAGNOSIS'),
58
+ TargetRule('Blood tests','DIAGNOSIS'),
59
+ TargetRule('Laboratory tests','DIAGNOSIS'),
60
+ TargetRule('Endoscopy','DIAGNOSIS'),
61
+ TargetRule('Colonoscopy','DIAGNOSIS'),
62
+ TargetRule('Sigmoidoscopy','DIAGNOSIS'),
63
+ TargetRule('Liver Function Tests','DIAGNOSIS'),
64
+ TargetRule('LFTs','DIAGNOSIS'),
65
+ TargetRule('Tumor Marker Tests','DIAGNOSIS'),
66
+ TargetRule('Alpha-fetoprotein test','DIAGNOSIS'),
67
+ TargetRule('AFP test','DIAGNOSIS'),
68
+ TargetRule('Des-gamma-carboxy prothrombin test','DIAGNOSIS'),
69
+ TargetRule('DCP test','DIAGNOSIS'),
70
+ TargetRule('Liver biopsy blood test markers','DIAGNOSIS'),
71
+ TargetRule('Computerized Axial Tomography scan','DIAGNOSIS'),
72
+ TargetRule('CAT scan','DIAGNOSIS'),
73
+ TargetRule('Magnetic Resonance Imaging','DIAGNOSIS'),
74
+ TargetRule('MRI','DIAGNOSIS'),
75
+ TargetRule('Electrocardiogram','DIAGNOSIS'),
76
+ TargetRule('ECG','DIAGNOSIS'),
77
+ TargetRule('EKG','DIAGNOSIS'),
78
+ TargetRule('Electroencephalogram','DIAGNOSIS'),
79
+ TargetRule('EEG','DIAGNOSIS'),
80
+ TargetRule('Complete Blood Count','DIAGNOSIS'),
81
+ TargetRule('CBC','DIAGNOSIS'),
82
+ TargetRule('Blood Urea Nitrogen','DIAGNOSIS'),
83
+ TargetRule('BUN','DIAGNOSIS'),
84
+ TargetRule('Creatinine Clearance Test','DIAGNOSIS'),
85
+ TargetRule('CCT','DIAGNOSIS'),
86
+ TargetRule('Human Chorionic Gonadotropin','DIAGNOSIS'),
87
+ TargetRule('','DIAGNOSIS'),
88
+ TargetRule('HCG','DIAGNOSIS'),
89
+ TargetRule('Prostate-Specific Antigen','DIAGNOSIS'),
90
+ TargetRule('PSA','DIAGNOSIS'),
91
+ TargetRule('Thyroid Stimulating Hormone','DIAGNOSIS'),
92
+ TargetRule('TSH','DIAGNOSIS'),
93
+ TargetRule('Serum Glucose Test','DIAGNOSIS'),
94
+ TargetRule('SGT','DIAGNOSIS'),
95
+ TargetRule('Hemoglobin A1c','DIAGNOSIS'),
96
+ TargetRule('HbA1c','DIAGNOSIS'),
97
+ TargetRule('International Normalized Ratio','DIAGNOSIS'),
98
+ TargetRule('INR','DIAGNOSIS'),
99
+ TargetRule('Alanine Aminotransferase','DIAGNOSIS'),
100
+ TargetRule('ALT','DIAGNOSIS'),
101
+ TargetRule('Aspartate Aminotransferase','DIAGNOSIS'),
102
+ TargetRule('AST','DIAGNOSIS'),
103
+ TargetRule('C-reactive Protein','DIAGNOSIS'),
104
+ TargetRule('CRP','DIAGNOSIS')
105
+
106
+ ]
107
+
108
+ target_drugs=[
109
+ TargetRule('Sorafenib','DRUGS'),
110
+ TargetRule('Lenvatinib','DRUGS'),
111
+ TargetRule('Regorafenib','DRUGS'),
112
+ TargetRule('Cabozantinib','DRUGS'),
113
+ TargetRule('Sunitinib','DRUGS'),
114
+ TargetRule('Ramucirumab','DRUGS'),
115
+ TargetRule('Pembrolizumab','DRUGS'),
116
+ TargetRule('Atezolizumab','DRUGS'),
117
+ TargetRule('Bevacizumab','DRUGS'),
118
+ TargetRule('Nivolumab','DRUGS'),
119
+ TargetRule('Ipilimumab','DRUGS'),
120
+ TargetRule('Tremelimumab','DRUGS'),
121
+ TargetRule('Cisplatin','DRUGS'),
122
+ TargetRule('Oxaliplatin','DRUGS'),
123
+ TargetRule('Gemcitabine','DRUGS'),
124
+ TargetRule('5-Fluorouracil','DRUGS'),
125
+ TargetRule('Cetuximab','DRUGS'),
126
+ TargetRule('Panitumumab','DRUGS'),
127
+ TargetRule('Erlotinib','DRUGS'),
128
+ TargetRule('Trametinib','DRUGS'),
129
+ TargetRule('Aflibercept','DRUGS'),
130
+ TargetRule('Doxorubicin','DRUGS'),
131
+ TargetRule('Mitomycin C','DRUGS'),
132
+ TargetRule('Tegafur','DRUGS'),
133
+ TargetRule('Carboplatin','DRUGS'),
134
+ TargetRule('Docetaxel','DRUGS'),
135
+ TargetRule('Mitoxantrone','DRUGS'),
136
+ TargetRule('Topotecan','DRUGS'),
137
+ TargetRule('Irinotecan','DRUGS'),
138
+ TargetRule('Everolimus','DRUGS'),
139
+ TargetRule('Tas-102','DRUGS'),
140
+ TargetRule('Pazopanib','DRUGS'),
141
+ TargetRule('Liposomal irinotecan','DRUGS'),
142
+ TargetRule('Trifluridine','DRUGS'),
143
+ TargetRule('Raltitrexed','DRUGS'),
144
+ TargetRule('Olaparib','DRUGS'),
145
+ TargetRule('Durvalumab','DRUGS'),
146
+ TargetRule('Avelumab','DRUGS')
147
+
148
+ ]
149
+
150
+
151
+ # Add custom target rules to the medspacy_target_matcher component
152
+ nlp.get_pipe('medspacy_target_matcher').add(target_symptoms)
153
+ nlp.get_pipe('medspacy_target_matcher').add(target_condition)
154
+ nlp.get_pipe('medspacy_target_matcher').add(target_diagnosis)
155
+ nlp.get_pipe('medspacy_target_matcher').add(target_drugs)
156
+
157
+ def extract_entities(text):
158
+ doc = nlp(text)
159
+ entities = {}
160
+ for ent in doc.ents:
161
+ label = ent.label_
162
+ if label not in entities:
163
+ entities[label] = []
164
+ entities[label].append(ent.text)
165
+ return entities
166
+
167
+ # Streamlit UI
168
+ st.title("Medical Entity Extraction")
169
+ text_input = st.text_area("Enter medical text here:")
170
+ if st.button("Extract Entities"):
171
+ entities = extract_entities(text_input)
172
+ st.write("Extracted Entities:")
173
+ for label, texts in entities.items():
174
+ st.write(f"{label}: {', '.join(texts)}")