├── .DS_Store
├── .idea
├── KnowledgeGraphBeginner.iml
├── encodings.xml
├── libraries
│ └── R_User_Library.xml
├── misc.xml
├── modules.xml
├── vcs.xml
└── workspace.xml
├── 1.simpleKnowledgeGraph
└── simpleKG.py
├── 2.medicalKnowledgeGraph
├── .DS_Store
├── __pycache__
│ └── max_cut.cpython-37.pyc
├── buildKG.py
├── data
│ ├── .DS_Store
│ ├── medical.json
│ └── simple_medical.json
└── dict
│ ├── .DS_Store
│ ├── check.txt
│ ├── department.txt
│ ├── disease.txt
│ ├── drug.txt
│ ├── food.txt
│ ├── producer.txt
│ └── symptoms.txt
├── 3.KGchatbot
├── .DS_Store
├── __pycache__
│ ├── answer_search.cpython-37.pyc
│ ├── question_classifier.cpython-37.pyc
│ └── question_parser.cpython-37.pyc
├── answer_search.py
├── chatbot_graph.py
├── dict
│ ├── check.txt
│ ├── deny.txt
│ ├── department.txt
│ ├── disease.txt
│ ├── drug.txt
│ ├── food.txt
│ ├── producer.txt
│ └── symptoms.txt
├── question_classifier.py
└── question_parser.py
└── README.md
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/.DS_Store
--------------------------------------------------------------------------------
/.idea/KnowledgeGraphBeginner.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/libraries/R_User_Library.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/workspace.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
83 |
84 |
85 |
86 | medi
87 | create_graphrels
88 | rels_symptom
89 | create_relationship
90 | create_diseases_nodes
91 | handler
92 | MedicalGraph
93 | create_graphnodes
94 | read_nodes
95 | diseases
96 | build_wdtype_dict
97 | classify
98 | 怎么办
99 | check_medical
100 | region_tree
101 | build_actree
102 | check_words
103 | entity_dict
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 | 1606865139619
298 |
299 |
300 | 1606865139619
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
--------------------------------------------------------------------------------
/1.simpleKnowledgeGraph/simpleKG.py:
--------------------------------------------------------------------------------
1 | from py2neo import Graph, Node, Relationship
2 |
3 | # 连接Neo4j
4 | g = Graph(
5 | host='127.0.0.1',
6 | http_port=7474,
7 | user='neo4j',
8 | password='neo4j')
9 |
10 | # 创建节点
11 | da_vinci = Node('person', name='DA VINCI')
12 | mona_lisa = Node('art', name='MONA LISA')
13 | louvre = Node('place', name='LOUVRE')
14 |
15 | g.create(da_vinci)
16 | g.create(mona_lisa)
17 | g.create(louvre)
18 |
19 | relation1 = Relationship(da_vinci, 'painted', mona_lisa)
20 | relation2 = Relationship(mona_lisa, 'is_in', louvre)
21 |
22 | g.create(relation1)
23 | g.create(relation2)
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/2.medicalKnowledgeGraph/.DS_Store
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/__pycache__/max_cut.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/2.medicalKnowledgeGraph/__pycache__/max_cut.cpython-37.pyc
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/buildKG.py:
--------------------------------------------------------------------------------
1 | import os
2 | import json
3 | from py2neo import Graph, Node
4 |
5 |
6 | class MedicalGraph:
7 | # 图数据库初始化设置
8 | def __init__(self):
9 | cur_dir = '/'.join(os.path.abspath('__file__').split('//')[:-1])
10 | self.data_path = os.path.join(cur_dir, './data/simple_medical.json')
11 | # 配置Neo4j
12 | self.g = Graph(
13 | host='127.0.0.1',
14 | http_port=7474,
15 | user='neo4j',
16 | password='yu1014880520')
17 |
18 | # 读取节点
19 | def read_nodes(self):
20 | # 共8类节点
21 | drugs = [] # 药品
22 | foods = [] # 食物
23 | checks = [] # 检查
24 | departments = [] # 科室
25 | producers = [] # 药品大类
26 | diseases = [] # 疾病
27 | symptoms = [] # 症状
28 | disease_infos = [] # 疾病信息
29 |
30 | # 构建节点实体关系
31 | rels_department = [] # 科室-科室关系
32 | rels_noteat = [] # 疾病-忌吃食物关系
33 | rels_doeat = [] # 疾病-宜吃食物关系
34 | rels_recommandeat = [] # 疾病-推荐吃食物关系
35 | rels_commonddrug = [] # 疾病-通用药品关系
36 | rels_recommanddrug = [] # 疾病-热门药品关系
37 | rels_check = [] # 疾病-检查关系
38 | rels_drug_producer = [] # 厂商-药物关系
39 |
40 | rels_symptom = [] # 疾病症状关系
41 | rels_acompany = [] # 疾病并发关系
42 | rels_category = [] # 疾病与科室之间的关系
43 |
44 | count = 0
45 | file = open(self.data_path, encoding='utf-8')
46 | data = file.readline()
47 | while data:
48 | disease_dict = {}
49 | count += 1
50 | print(count)
51 | # 根据json文件加载进来的数据
52 | data_json = json.loads(data)
53 | disease = data_json['name']
54 | disease_dict['name'] = disease
55 | diseases.append(disease)
56 |
57 | disease_dict['desc'] = ''
58 | disease_dict['prevent'] = ''
59 | disease_dict['cause'] = ''
60 | disease_dict['easy_get'] = ''
61 | disease_dict['cure_department'] = ''
62 | disease_dict['cure_way'] = ''
63 | disease_dict['cure_lasttime'] = ''
64 | disease_dict['symptom'] = ''
65 | disease_dict['cured_prob'] = ''
66 |
67 | # 构建疾病和症状的关系
68 | if 'symptom' in data_json:
69 | symptoms += data_json['symptom']
70 | disease_dict['symptom'] = data_json['symptom']
71 | for symptom in data_json['symptom']:
72 | rels_symptom.append([disease, symptom])
73 |
74 | # 构建疾病和并发症关系
75 | if 'acompany' in data_json:
76 | for acompany in data_json['acompany']:
77 | rels_acompany.append([disease, acompany])
78 |
79 | # 存储疾病描述
80 | if 'desc' in data_json:
81 | disease_dict['desc'] = data_json['desc']
82 |
83 | # 存储疾病预防
84 | if 'prevent' in data_json:
85 | disease_dict['prevent'] = data_json['prevent']
86 |
87 | # 存储疾病成因
88 | if 'cause' in data_json:
89 | disease_dict['cause'] = data_json['cause']
90 |
91 | # 存储患病比例
92 | if 'get_prob' in data_json:
93 | disease_dict['get_prob'] = data_json['get_prob']
94 |
95 | # 存储易感人群
96 | if 'easy_get' in data_json:
97 | disease_dict['easy_get'] = data_json['easy_get']
98 |
99 | # 存储就诊科室
100 | if 'cure_department' in data_json:
101 | cure_department = data_json['cure_department']
102 | # 只有一个就诊科室
103 | if len(cure_department) == 1:
104 | rels_category.append([disease, cure_department[0]])
105 | # 有两个就诊科室
106 | if len(cure_department) == 2:
107 | big = cure_department[0]
108 | small = cure_department[1]
109 | # 构建科室间的关系
110 | rels_department.append([small, big])
111 | # 构建疾病与科室之间的关系
112 | rels_category.append([disease, small])
113 | disease_dict['cure_department'] = cure_department
114 | departments += cure_department
115 |
116 | # 存储治疗方式
117 | if 'cure_way' in data_json:
118 | disease_dict['cure_way'] = data_json['cure_way']
119 |
120 | # 存储治疗周期
121 | if 'cure_lasttime' in data_json:
122 | disease_dict['cure_lasttime'] = data_json['cure_lasttime']
123 |
124 | # 存储治愈率
125 | if 'cured_prob' in data_json:
126 | disease_dict['cured_prob'] = data_json['cured_prob']
127 |
128 | # 存储常用药物
129 | if 'common_drug' in data_json:
130 | common_drug = data_json['common_drug']
131 | # 构建疾病和常用药物之间的关系
132 | for drug in common_drug:
133 | rels_commonddrug.append([disease, drug])
134 | # 加入药品类
135 | drugs += common_drug
136 |
137 | # 存储药品推荐
138 | if 'recommand_drug' in data_json:
139 | recommand_drug = data_json['recommand_drug']
140 | # 加入药品类
141 | drugs += recommand_drug
142 | for drug in recommand_drug:
143 | # 构建疾病和推荐药品之间的关系
144 | rels_recommanddrug.append([disease, drug])
145 |
146 | # 存储忌食食物
147 | if 'not_eat' in data_json:
148 | not_eat = data_json['not_eat']
149 | # 构建忌食食物和疾病间的关系
150 | for _not in not_eat:
151 | rels_noteat.append([disease, _not])
152 | # 食物中加入忌食食物
153 | foods += not_eat
154 |
155 | # 存储宜食食物
156 | if 'do_eat' in data_json:
157 | do_eat = data_json['do_eat']
158 | for _do in do_eat:
159 | # 构建宜食食物和疾病的关系
160 | rels_doeat.append([disease, _do])
161 | # 食物中加入宜食食物
162 | foods += do_eat
163 |
164 | # 存储推荐食物
165 | try:
166 | if 'recommand_eat' in data_json['recommand_eat']:
167 | recommand_eat = data_json['recommand_eat']
168 | for _recommand in recommand_eat:
169 | # 构建推荐食物和疾病间的关系
170 | rels_recommandeat.append([disease, _recommand])
171 | # 食物中加入推荐食物
172 | foods += recommand_eat
173 | except Exception as e:
174 | print(e)
175 |
176 | # 存储检查结果
177 | if 'check' in data_json:
178 | check = data_json['check']
179 | for _check in check:
180 | # 构建疾病和检查的关系
181 | rels_check.append([disease, _check])
182 | checks += check
183 |
184 | # 存储药品明细
185 | if 'drug_detail' in data_json:
186 | drug_detail = data_json['drug_detail']
187 | producer = [i.split('(')[0] for i in drug_detail]
188 | # 构建厂商-药物之间的关系
189 | rels_drug_producer += [[i.split('(')[0], i.split('(')[-1].replace(')', '')] for i in drug_detail]
190 | # 加入厂商名称
191 | producers += producer
192 | # 存入疾病信息
193 | disease_infos.append(disease_dict)
194 | data = file.readline()
195 | return set(drugs), set(foods), set(checks), set(departments), set(producers), set(symptoms), set(diseases), disease_infos, rels_check, rels_recommandeat, rels_noteat, rels_doeat, rels_department, rels_commonddrug, rels_drug_producer, rels_recommanddrug, rels_symptom, rels_acompany, rels_category
196 |
197 | # 建立节点
198 | def create_node(self, label, nodes):
199 | count = 0
200 | for node_name in nodes:
201 | node = Node(label, name=node_name)
202 | self.g.create(node)
203 | count += 1
204 | print(count, len(nodes))
205 | return
206 |
207 | # 创建知识图谱中心疾病的节点
208 | def create_diseases_nodes(self, disease_infos):
209 | count = 0
210 | for disease_dict in disease_infos:
211 | node = Node("Disease", name=disease_dict['name'], desc=disease_dict['desc'],
212 | prevent=disease_dict['prevent'], cause=disease_dict['cause'],
213 | easy_get=disease_dict['easy_get'], cure_lasttime=disease_dict['cure_lasttime'],
214 | cure_department=disease_dict['cure_department']
215 | , cure_way=disease_dict['cure_way'], cured_prob=disease_dict['cured_prob'])
216 | self.g.create(node)
217 | count += 1
218 | print(count)
219 |
220 | # 创建知识图谱实体节点类型schema
221 | def create_graphnodes(self):
222 | # 获取数据
223 | Drugs, Foods, Checks, Departments, Producers, Symptoms, Diseases, disease_infos, \
224 | rels_check, rels_recommandeat, rels_noteat, rels_doeat, rels_department, \
225 | rels_commonddrug, rels_drug_producer, rels_recommanddrug, rels_symptom, \
226 | rels_acompany, rels_category = self.read_nodes()
227 | # 创建疾病节点
228 | self.create_diseases_nodes(disease_infos)
229 | # 创建药品节点
230 | self.create_node('Drug', Drugs)
231 | # 创建食物节点
232 | self.create_node('Food', Foods)
233 | # 创建检查节点
234 | self.create_node('Check', Checks)
235 | # 创建科室节点
236 | self.create_node('Department', Departments)
237 | # 输出厂商节点
238 | self.create_node('Producer', Producers)
239 | # 创建症状节点
240 | self.create_node('Symptom', Symptoms)
241 | return
242 |
243 | # 创建实体关联边
244 | def create_relationship(self, start_node, end_node, edges, rel_type, rel_name):
245 | '''
246 | :param start_node: 开始节点
247 | :param end_node: 结束节点
248 | :param edges: 关系边
249 | :param rel_type: 关系类型
250 | :param rel_name: 关系名称
251 | :return:
252 | '''
253 | count = 0
254 | # 去重处理
255 | set_edges = []
256 | for edge in edges:
257 | set_edges.append('###'.join(edge))
258 | all = len(set(set_edges))
259 | for edge in set(set_edges):
260 | edge = edge.split('###')
261 | p = edge[0]
262 | q = edge[1]
263 | # neo4j语法
264 | query = "match(p:%s),(q:%s) where p.name='%s'and q.name='%s' create (p)-[rel:%s{name:'%s'}]->(q)" % (
265 | start_node, end_node, p, q, rel_type, rel_name)
266 | try:
267 | self.g.run(query)
268 | count += 1
269 | print(rel_type, count, all)
270 | except Exception as e:
271 | print(e)
272 | return
273 |
274 | # 创建实体关系边
275 | def create_graphrels(self):
276 | Drugs, Foods, Checks, Departments, Producers, Symptoms, Diseases, disease_infos, rels_check, \
277 | rels_recommandeat, rels_noteat, rels_doeat, rels_department, rels_commonddrug, \
278 | rels_drug_producer, rels_recommanddrug, rels_symptom, rels_acompany, \
279 | rels_category = self.read_nodes()
280 | self.create_relationship('Disease', 'Food', rels_recommandeat, 'recommand_eat', '推荐食谱')
281 | self.create_relationship('Disease', 'Food', rels_noteat, 'no_eat', '忌吃')
282 | self.create_relationship('Disease', 'Food', rels_doeat, 'do_eat', '宜吃')
283 | self.create_relationship('Department', 'Department', rels_department, 'belongs_to', '属于')
284 | self.create_relationship('Disease', 'Drug', rels_commonddrug, 'common_drug', '常用药品')
285 | self.create_relationship('Producer', 'Drug', rels_drug_producer, 'drugs_of', '生产药品')
286 | self.create_relationship('Disease', 'Drug', rels_recommanddrug, 'recommand_drug', '好评药品')
287 | self.create_relationship('Disease', 'Check', rels_check, 'need_check', '诊断检查')
288 | self.create_relationship('Disease', 'Symptom', rels_symptom, 'has_symptom', '症状')
289 | self.create_relationship('Disease', 'Disease', rels_acompany, 'acompany_with', '并发症')
290 | self.create_relationship('Disease', 'Department', rels_category, 'belongs_to', '所属科室')
291 |
292 | # 导出数据
293 | def export_data(self):
294 | Drugs, Foods, Checks, Departments, Producers, Symptoms, Diseases, disease_infos, \
295 | rels_check, rels_recommandeat, rels_noteat, rels_doeat, rels_department, rels_commonddrug, \
296 | rels_drug_producer, rels_recommanddrug, rels_symptom, rels_acompany, \
297 | rels_category = self.read_nodes()
298 | f_drug = open('./dict/drug.txt', 'w+')
299 | f_food = open('./dict/food.txt', 'w+')
300 | f_check = open('./dict/check.txt', 'w+')
301 | f_department = open('./dict/department.txt', 'w+')
302 | f_producer = open('./dict/producer.txt', 'w+')
303 | f_symptom = open('./dict/symptoms.txt', 'w+')
304 | f_disease = open('./dict/disease.txt', 'w+')
305 |
306 | f_drug.write('\n'.join(list(Drugs)))
307 | f_food.write('\n'.join(list(Foods)))
308 | f_check.write('\n'.join(list(Checks)))
309 | f_department.write('\n'.join(list(Departments)))
310 | f_producer.write('\n'.join(list(Producers)))
311 | f_symptom.write('\n'.join(list(Symptoms)))
312 | f_disease.write('\n'.join(list(Diseases)))
313 |
314 | f_drug.close()
315 | f_food.close()
316 | f_check.close()
317 | f_department.close()
318 | f_producer.close()
319 | f_symptom.close()
320 | f_disease.close()
321 |
322 | return
323 |
324 |
325 | if __name__ == '__main__':
326 | handler = MedicalGraph()
327 | handler.create_graphnodes()
328 | handler.create_graphrels()
329 | handler.export_data()
330 | print('Done')
331 |
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/data/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/2.medicalKnowledgeGraph/data/.DS_Store
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/data/simple_medical.json:
--------------------------------------------------------------------------------
1 | { "_id" : { "$oid" : "5bb578b6831b973a137e3ee6" }, "name" : "肺泡蛋白质沉积症", "desc" : "肺泡蛋白质沉积症(简称PAP),又称Rosen-Castle-man-Liebow综合征,是一种罕见疾病。该病以肺泡和细支气管腔内充满PAS染色阳性,来自肺的富磷脂蛋白质物质为其特征,好发于青中年,男性发病约3倍于女性。", "category" : [ "疾病百科", "内科", "呼吸内科" ], "prevent" : "1、避免感染分支杆菌病,卡氏肺囊肿肺炎,巨细胞病毒等。\n2、注意锻炼身体,提高免疫力。", "cause" : "病因未明,推测与几方面因素有关:如大量粉尘吸入(铝,二氧化硅等),机体免疫功能下降(尤其婴幼儿),遗传因素,酗酒,微生物感染等,而对于感染,有时很难确认是原发致病因素还是继发于肺泡蛋白沉着症,例如巨细胞病毒,卡氏肺孢子虫,组织胞浆菌感染等均发现有肺泡内高蛋白沉着。\n虽然启动因素尚不明确,但基本上同意发病过程为脂质代谢障碍所致,即由于机体内,外因素作用引起肺泡表面活性物质的代谢异常,到目前为止,研究较多的有肺泡巨噬细胞活力,动物实验证明巨噬细胞吞噬粉尘后其活力明显下降,而病员灌洗液中的巨噬细胞内颗粒可使正常细胞活力下降,经支气管肺泡灌洗治疗后,其肺泡巨噬细胞活力可上升,而研究未发现Ⅱ型细胞生成蛋白增加,全身脂代谢也无异常,因此目前一般认为本病与清除能力下降有关。", "symptom" : [ "紫绀", "胸痛", "呼吸困难", "乏力", "毓卓" ], "yibao_status" : "否", "get_prob" : "0.00002%", "get_way" : "无传染性", "acompany" : [ "多重肺部感染" ], "cure_department" : [ "内科", "呼吸内科" ], "cure_way" : [ "支气管肺泡灌洗" ], "cure_lasttime" : "约3个月", "cured_prob" : "约40%", "cost_money" : "根据不同医院,收费标准不一致,省市三甲医院约( 8000——15000 元)", "check" : [ "胸部CT检查", "肺活检", "支气管镜检查" ], "recommand_drug" : [], "drug_detail" : [] }
2 | { "_id" : { "$oid" : "5bb578b6831b973a137e3ee7" }, "name" : "百日咳", "desc" : "百日咳(pertussis,whoopingcough)是由百日咳杆菌所致的急性呼吸道传染病。其特征为阵发性痉挛性咳嗽,咳嗽末伴有特殊的鸡鸣样吸气吼声。病程较长,可达数周甚至3个月左右,故有百日咳之称。多见于5岁以下的小儿,幼婴患本病时易有窒息、肺炎,脑病等并发症,病死率高。百日咳患者,阴性感染者及带菌者为传染源。潜伏期末到病后2-3周传染性最强。百日咳经呼吸道飞沫传播。典型患者病程6-8周,临床病程可分3期:1.卡他期,从发病到开始出现咳嗽,一般1-2周。2,痉咳期,一般2-4周或更长,阵发性痉挛性咳嗽为本期特点。3,恢复期,一般1-2周,咳嗽发作的次数减少,程度减轻,不再出现阵发性痉咳。一般外周血白细胞计数明显增高,分类以淋巴细胞为主。在诊断本病时要注意与支气管异物及肺门淋巴结结核鉴别。近年来幼婴及成人发病有增多趋势。", "category" : [ "疾病百科", "儿科", "小儿内科" ], "prevent" : "1、控制传染源:在流行季节,若有前驱症状应及早抗生素治疗。\n2、切断传播途径:由于百日咳杆菌对外界抵抗力较弱,无需消毒处理,但应保持室内通风,衣物在阳光下曝晒,对痰液及口鼻分泌物则应进行消毒处理。", "cause" : "(一)发病原因\n病原菌是鲍特菌属(Bordetella)中的百日咳鲍特菌(B.pertussis),常称百日咳杆菌,已知鲍特菌属有四种杆菌,除百日咳鲍特菌外还有副百日咳鲍特菌(B.parapertussis),支气管败血鲍特菌(B.bronchiseptica)和鸟型鲍特菌(B.avium),鸟型鲍特菌一般不引起人类致病,仅引起鸟类感染,百日咳杆菌长约1.0~1.5μm,宽约0.3~0.5μm,有荚膜,不能运动,革兰染色阴性,需氧,无芽孢,无鞭毛,用甲苯胺蓝染色两端着色较深,细菌培养需要大量(15%~25%)鲜血才能繁殖良好,故常以鲍-金(Border-Gengous)培养基(即血液,甘油,马铃薯)分离菌落,百日咳杆菌生长缓慢,在35~37℃潮湿的环境中3~7天后,一种细小的,不透明的菌落生长,初次菌落隆起而光滑,为光滑(S)型,又称I相细菌,形态高低一致,有荚膜和较强的毒力及抗原性,致病力强,如将分离菌落在普通培养基中继续培养,菌落由光滑型变为粗糙(R)型,称Ⅳ相细菌,无荚膜,毒力及抗原性丢失,并失去致病力,Ⅱ相,Ⅲ相为中间过渡型,百日咳杆菌能产生许多毒性因子,已知有五种毒素:\n1、百日咳外毒素(PT):是存在百日咳杆菌细胞壁中一种蛋白质,过去称作为白细胞或淋巴细胞增多促进因子(leukocytosis or lymphocyte promoting factor,LPE),组胺致敏因子(histamin sensitizing factor,HSF),胰岛素分泌活性蛋白(insulin activating protein,IAP),百日咳外毒素由五种非共价链亚单位(S1~S5)所组成,亚单位(S2~S5)为无毒性单位,能与宿主细胞膜结合,通过具有酶活力的亚单位S1介导毒性作用,S1能通过腺苷二磷酸(ADP)-核糖转移酶的活力,催化部分ADP-核糖从烟酰胺腺嘌呤二核苷酸(NAD)中分离出来,转移至细胞膜抑制鸟苷三磷酸(CTP)结合即G蛋白合成,导致细胞变生,同时还能促使淋巴细胞增高,活化胰岛细胞及增强免疫应答。\n2、耐热的内毒素(endotoxin,ET),100℃60min只能部分破坏,180℃才能灭活,此毒素能引起机体发热及痉咳。\n3、不耐热毒素(HLT)这种毒素加热55℃30min后能破坏其毒性作用,此毒素抗体对百日咳杆菌感染无保护作用。\n4、气管细胞毒素(TCT):能损害宿主呼吸道纤毛上皮细胞,使之变性,坏死。\n5、腺苷环化酶毒素(ACT):存在百日咳杆菌细胞表面的一种酶,此酶进入吞噬细胞后被调钙蛋白所激活,催化cAMP的生成,干扰吞噬作用,并抑制中性粒细胞的趋化和吞噬细胞杀菌能力,使其能持续感染,ACT也是一种溶血素,能起溶血作用,百日咳的重要抗原是百日咳菌的两种血凝活性抗原,一种为丝状血凝素(filamentous hemagglutinin,FHA),因来自菌体表面菌毛故又称菌毛抗原,FHA在百日咳杆菌黏附于呼吸道上皮细胞的过程中起决定作用,为致病的主要原因。实验发现,FHA免疫小鼠能对抗百日咳杆菌致死性攻击,因此FHA为保护性抗原,另一种凝集原(aggluginogens,AGG)为百日咳杆菌外膜及菌毛中的一种蛋白质成分,主要含1,2,3三种血清型凝血因子,AGG-1具有种特异性;AGG-2,3具有型特异性,通过检测凝集原的型别来了解当地流行情况,目前认为这两种血凝素抗原相应抗体是保护性抗体,百日咳杆菌根据不耐热凝集原抗原性不同分为七型凝集原,1型凝集原为所有百日咳杆菌均具备,7型凝集原为鲍特菌属(包括副百日咳杆菌,支气管败血性杆菌)所共有,2~6型以不同的配合将百日咳杆菌分为不同血清型,测定血清型主要是研究流行时菌株的血清型和选择特殊血清型菌株生产菌苗,此外,副百日咳杆菌与百日咳杆菌无交叉免疫,亦可引起流行,百日咳杆菌对外界理化因素抵抗力弱,55℃经30min即被破坏,干燥数小时即可杀灭,对一般消毒剂敏感,对紫外线抵抗力弱,但在0~10℃存活较长。\n(二)发病机制\n1、发病机制:百日咳发病机制不甚清楚,很可能是百日咳毒素对机体综合作用的结果,当细菌随空气飞沫浸入易感者的呼吸道后,细菌的丝状血凝素黏附于咽喉至细支气管黏膜的纤毛上皮细胞表面;继之,细菌在局部繁殖并产生多种毒素如百日咳外毒素,腺苷环化酶等引起上皮细胞纤毛麻痹和细胞变性,使其蛋白合成降低,上皮细胞坏死脱落,以及全身反应,由于上皮细胞的病变发生和纤毛麻痹使小支气管中黏液及坏死上皮堆聚潴留,分泌物排出受阻,不断刺激呼吸道的周围神经,传入大脑皮质及延髓咳嗽中枢,反射性引起痉挛性咳嗽,由于长期刺激使咳嗽中枢形成兴奋灶,以致非特异性刺激,如进食,咽部检查,冷风,烟雾以及注射疼痛等,均可引起反射性的痉咳,恢复期间亦可因哭泣及其他感染,诱发百日咳样痉咳,近来研究表明百日咳发生机制与百日咳杆菌毒素类物质损害宿主细胞免疫功能有关,CD4+T细胞和Th1细胞分泌的细胞因子所介导的免疫反应,在百日咳杆菌感染中起重要作用。\n2、病理解剖:百日咳杆菌侵犯鼻咽,喉,气管,支气管黏膜,可见黏膜充血,上皮细胞的基底部有多核白细胞,单核细胞浸润及部分细胞坏死。支气管及肺泡周围间质除炎症浸润外,可见上皮细胞胞质空泡形成,甚至核膜破裂溶解,坏死,脱落,但极少波及肺泡。若分泌物阻塞可引起肺不张,支气管扩张,有继发感染者,易发生支气管肺炎,有时可有间质性肺炎;若发生百日咳脑病,镜检或肉眼可见脑组织充血水肿,点状出血,皮质萎缩,神经细胞变性,脑水肿等改变,此时常可见到肝脏脂肪浸润等变化。", "symptom" : [ "吸气时有蝉鸣音", "痉挛性咳嗽", "胸闷", "肺阴虚", "抽搐", "低热", "闫鹏辉", "惊厥" ], "yibao_status" : "否", "get_prob" : "0.5%", "easy_get" : "多见于小儿", "get_way" : "呼吸道传播", "acompany" : [ "肺不张" ], "cure_department" : [ "儿科", "小儿内科" ], "cure_way" : [ "药物治疗", "支持性治疗" ], "cure_lasttime" : "1-2个月", "cured_prob" : "98%", "common_drug" : [ "穿心莲内酯片", "百咳静糖浆" ], "cost_money" : "根据不同医院,收费标准不一致,市三甲医院约(1000-4000元)", "check" : [ "耳、鼻、咽拭子细菌培养", "周围血白细胞计数及分类检验", "血常规", "酶联免疫吸附试验", "白细胞分类计数" ], "do_eat" : [ "南瓜子仁", "圆白菜", "樱桃番茄", "小白菜" ], "not_eat" : [ "螃蟹", "海蟹", "海虾", "海螺" ], "recommand_eat" : [ "清蒸鸡蛋羹", "百合双耳鸡蛋羹", "排骨汤", "罗汉果雪耳鸡汤", "小黄瓜凉拌面", "黄瓜三丝汤", "黄瓜拌兔丝", "黄瓜拌皮丝" ], "recommand_drug" : [ "琥乙红霉素片", "琥乙红霉素颗粒", "百咳静糖浆", "穿心莲内酯片", "红霉素肠溶片", "环酯红霉素片" ], "drug_detail" : [ "惠普森穿心莲内酯片(穿心莲内酯片)", "北京同仁堂百咳静糖浆(百咳静糖浆)", "邦琪药业百咳静糖浆(百咳静糖浆)", "东新药业百咳静糖浆(百咳静糖浆)", "达发新(环酯红霉素片)", "康美药业红霉素肠溶片(红霉素肠溶片)", "旺龙药业琥乙红霉素颗粒(琥乙红霉素颗粒)", "白云山医药琥乙红霉素片(琥乙红霉素片)", "国瑞琥乙红霉素片(琥乙红霉素片)", "利君制药红霉素肠溶片(红霉素肠溶片)", "东信药业琥乙红霉素颗粒(琥乙红霉素颗粒)", "石药欧意红霉素肠溶片(红霉素肠溶片)", "平光制药红霉素肠溶片(红霉素肠溶片)", "北京曙光药业红霉素肠溶片(红霉素肠溶片)", "迪瑞制药琥乙红霉素颗粒(琥乙红霉素颗粒)", "永定制药百咳静糖浆(百咳静糖浆)", "东信药业琥乙红霉素片(琥乙红霉素片)", "利君制药琥乙红霉素片(琥乙红霉素片)", "北京中新制药琥乙红霉素片(琥乙红霉素片)", "华南药业红霉素肠溶片(红霉素肠溶片)", "佐今明百咳静糖浆(百咳静糖浆)", "恒益药业琥乙红霉素颗粒(琥乙红霉素颗粒)", "利君沙(琥乙红霉素颗粒)" ] }
3 | { "_id" : { "$oid" : "5bb578b6831b973a137e3ee8" }, "name" : "苯中毒", "desc" : "苯(benzene)是从煤焦油分馏及石油裂解所得的一种芳香烃化合物,系无色有芳香气味的油状液体。挥发甚速,易燃易爆。工业上用作溶剂、稀释剂和化工原料。苯属中等毒类,可引起急性或慢性中毒。\n急性苯中毒是指口服含苯的有机溶剂或吸入高浓度苯蒸气后,出现以中枢神经系统麻醉作用为主要表现的病理生理过程,主要症状轻者为醉酒状,步态不稳,哭笑失常,重者意识丧失,抽搐,可因呼吸中枢麻痹或循环衰竭死亡。慢性苯中毒是指苯及其代谢产物酚类影响了骨髓的造血功能,临床表现为白细胞计数和血小板立秋持续减少,最终发展为再生障碍性贫血或白血病。也可影响神经系统,表现为神经衰弱和自主神经功能紊乱。", "category" : [ "疾病百科", "急诊科" ], "prevent" : "对于急性中毒患者,可以立即脱离现场至空气新鲜处,脱去污染的衣着,并用肥皂水或清水冲洗污染的皮肤。口服中毒者,要给患者洗胃,中毒者应卧床静息,并接受对症、支持治疗,可给予葡萄糖醛酸。要注意防止患者出现脑水肿,切记勿给心搏未停者使用肾上腺素,对由于苯中毒引起的再生障碍性贫血症患者,可给予小量多次输血及糖皮质激素治疗。", "cause" : "吸入苯蒸气或皮肤接触苯而引起的中毒,有急性、慢性之分。急性苯中毒主要对中枢神经系统产生麻醉作用,出现昏迷和肌肉抽搐;高浓度的苯对皮肤有刺激作用。长期接角低浓度的苯可引起慢性苯中毒,出现造血障碍,早期常见血白细胞数减低,进而出现血小板数减少和贫血。患者可有鼻出血、牙龈出血、皮下出血、月经过多等临床表现。\n急性苯中毒多为误服或急性吸入含苯的有机溶剂所致。这些有机溶剂包括油漆、稀料、工业胶水等。慢性苯中毒是长期吸入低浓度苯及代谢产物酚类所致。", "symptom" : [ "恶心", "抽搐", "感觉障碍" ], "yibao_status" : "否", "get_prob" : "0.065%", "easy_get" : "多见于制鞋工人及接触化工染料的工人", "get_way" : "无传染性", "acompany" : [ "贫血" ], "cure_department" : [ "急诊科" ], "cure_way" : [ "药物治疗", "支持性治疗" ], "cure_lasttime" : "根据不同病情一般为2-4周", "cured_prob" : "75%", "common_drug" : [ "布美他尼片", "十一味金色丸" ], "cost_money" : "根据不同病情,不同医院,收费标准不一致,市三甲医院约(5000——8000元)", "check" : [ "血常规", "骨髓象分析", "先令氏指数" ], "do_eat" : [ "鸡蛋", "大豆", "猪肉(瘦)", "樱桃番茄" ], "not_eat" : [ "海蟹", "海虾", "海参(水浸)", "辣椒(青、尖)" ], "recommand_eat" : [ "豆腐干炒韭菜", "素炒小白菜", "白菜蛋花粥" ], "recommand_drug" : [ "布美他尼片", "十一味金色丸", "注射用布美他尼", "注射用呋塞米", "盐酸利多卡因注射液", "注射用硫代硫酸钠", "大月晶丸", "仁青芒觉", "注射用鼠神经生长因子", "地塞米松磷酸钠注射液" ], "drug_detail" : [ "桂林南药布美他尼片(布美他尼片)", "雄巴拉曲神水十一味金色丸(十一味金色丸)", "西藏甘露仁青芒觉(仁青芒觉)", "金诃藏药大月晶丸(大月晶丸)", "金诃藏药仁青芒觉(仁青芒觉)", "苏肽生(注射用鼠神经生长因子)", "新峰药业盐酸利多卡因注射液(盐酸利多卡因注射液)", "海斯制药盐酸利多卡因注射液(盐酸利多卡因注射液)", "西藏甘露十一味金色丸(十一味金色丸)", "卓峰地塞米松磷酸钠注射液(地塞米松磷酸钠注射液)", "白云山天心地塞米松磷酸钠注(地塞米松磷酸钠注射液)", "涟水制药地塞米松磷酸钠注射(地塞米松磷酸钠注射液)", "金耀药业地塞米松磷酸钠注射(地塞米松磷酸钠注射液)", "遂成药业地塞米松磷酸钠注射(地塞米松磷酸钠注射液)", "恩经复(注射用鼠神经生长因子)", "金路捷(注射用鼠神经生长因子)", "新亚注射用硫代硫酸钠(注射用硫代硫酸钠)", "北京永康药业盐酸利多卡因注(盐酸利多卡因注射液)", "北京益民药业盐酸利多卡因注(盐酸利多卡因注射液)", "中国大冢盐酸利多卡因注射液(盐酸利多卡因注射液)", "盐酸利多卡因注射液(盐酸利多卡因注射液)", "全星制药注射用布美他尼(注射用布美他尼)", "皇隆制药注射用呋塞米(注射用呋塞米)" ] }
4 | { "_id" : { "$oid" : "5bb578b6831b973a137e3ee9" }, "name" : "喘息样支气管炎", "desc" : "喘息样支气管炎(asthmatoidbronchitis)又称哮喘性支气管炎,泛指一组喘息表现的婴幼儿急性支气管炎,是一种过敏性质的、常与呼吸道感染有关的疾病。患者常有湿疹及其他过敏史,尤以肥胖者多发,病程较长有反复发作史。急性喘息样支气管炎的主要病理基础是支气管平滑肌痉挛、微血管渗漏、粘膜水肿、炎性细胞浸润、分泌物增多滞留所致的气道可逆性阻塞。婴幼儿的气管和支气管都比较狭小,其周围弹力纤维发育完善,故其粘膜易受感染或其他刺激而肿胀充血,引起管道狭窄,分泌物粘稠不易咳出,从而产生喘鸣音。喘息伴呼气性呼吸困难以夜间为重,可有刺激性咳嗽。喘息可自行缓解或经治疗后缓解,发作间隙可无任何症状和体征,部分可发展为支气管哮喘。", "category" : [ "疾病百科", "内科", "呼吸内科" ], "prevent" : "根据上节所述,对喘息样支气管炎病儿,要注意家族与患儿自身过敏史,嗜酸性粒细胞检查,血清IgE水平等进行分析。如有支气管哮喘可疑时,应及早给予哮喘的防治措施。", "cause" : "因为多种病毒和细菌感染均可引起,较常见的有合胞病毒、副流感病毒、流感病毒、腺病毒、鼻病毒及肺炎支原体等,大多数病例可在病毒感染基础上并发细菌感染。\n婴幼儿的气管和支气管都比较狭小,其周围弹力纤维发育完善,故其粘膜易受感染或其他刺激而肿胀充血,引起管道狭窄,分泌物粘稠不易咳出,从而产生喘鸣音。\n因为婴幼儿患病毒感染者甚多,仅一小部分患儿呈喘息样支气管炎表现,提示同一病毒在不同个别中所产生的不同病理生理改变和临床表现,与机体内在因素密切相关。如近年发现合胞病毒引起的喘息样支气管炎患儿出现特异性IgE抗体,其鼻咽分泌物中组织胺浓度明显高于同样感染而无喘息表现的患儿,其亲属往往有过敏性鼻炎、荨麻疹、哮喘等变态反应性疾病史。约30%左右的患儿曾患湿疹,测血清SIgE含量常见增高。", "symptom" : [ "耸肩喘息", "哮鸣音", "纤毛上皮细胞损伤脱落", "变应性咳嗽", "化学性支气管炎", "喘息", "冬春季的慢性咳...", "咳嗽伴哮鸣音" ], "yibao_status" : "否", "get_prob" : "3-5%", "easy_get" : "无特定的人群", "get_way" : "无传染性", "acompany" : [ "支气管哮喘" ], "cure_department" : [ "内科", "呼吸内科" ], "cure_way" : [ "药物治疗", "支持性治疗" ], "cure_lasttime" : "6-12个月", "cured_prob" : "95%", "common_drug" : [ "布地奈德气雾剂", "喷托维林氯化铵糖浆" ], "cost_money" : "根据不同医院,收费标准不一致,市三甲医院约(5000——8000元)", "check" : [ "肺部检查", "肺和胸膜听诊", "抗链球菌型M蛋白抗体", "抗链球菌壁多糖抗体", "酶联免疫吸附试验" ], "do_eat" : [ "鸡蛋", "海蚌", "赤贝", "圆白菜" ], "not_eat" : [ "海蟹", "海虾", "海螺", "猪肉(肥瘦)" ], "recommand_eat" : [ "紫苏粥", "菊花芦根茶", "生芦根粥", "鲜芦根粥", "薏仁党参粥", "党参粥", "黄芪粥", "鸡蛋木耳粥" ], "recommand_drug" : [ "枸橼酸喷托维林片", "氨茶碱片", "二羟丙茶碱片", "胸腺肽肠溶片", "硫酸沙丁胺醇气雾剂", "小青龙合剂", "硫酸沙丁胺醇片", "蛇胆川贝液", "小青龙颗粒", "布地奈德气雾剂", "喷托维林氯化铵糖浆" ], "drug_detail" : [ "信谊布地奈德气雾剂(布地奈德气雾剂)", "桑海制药喷托维林氯化铵糖浆(喷托维林氯化铵糖浆)", "赣南制药喷托维林氯化铵糖浆(喷托维林氯化铵糖浆)", "奇莫欣(胸腺肽肠溶片)", "振兴氨茶碱片(氨茶碱片)", "盛翔制药蛇胆川贝液(蛇胆川贝液)", "蛇胆川贝液(蛇胆川贝液)", "晶珠藏药蛇胆川贝液(蛇胆川贝液)", "天天乐药业蛇胆川贝液(蛇胆川贝液)", "东信药业蛇胆川贝液(蛇胆川贝液)", "广西灵峰药业蛇胆川贝液(蛇胆川贝液)", "吉林东方制药枸橼酸喷托维林(枸橼酸喷托维林片)", "万托林(硫酸沙丁胺醇气雾剂)", "天津太平洋二羟丙茶碱片(二羟丙茶碱片)", "海南制药厂蛇胆川贝液(蛇胆川贝液)", "首儿药厂小青龙颗粒(小青龙颗粒)", "石药欧意枸橼酸喷托维林片(枸橼酸喷托维林片)", "纽兰药业小青龙颗粒(小青龙颗粒)", "纽兰药业小青龙合剂(小青龙合剂)", "济安堂蛇胆川贝液(蛇胆川贝液)", "迪龙制药胸腺肽肠溶片(胸腺肽肠溶片)", "天津力生制药硫酸沙丁胺醇片(硫酸沙丁胺醇片)", "仁和堂硫酸沙丁胺醇片(硫酸沙丁胺醇片)" ] }
5 | { "_id" : { "$oid" : "5bb578b6831b973a137e3eea" }, "name" : "成人呼吸窘迫综合征", "desc" : "成人呼吸窘迫综合征简称ARDS,是一种继发的,以急性呼吸窘迫和低氧血症为特征的综合征。又称休克肺、创伤肺等。为成人急性呼吸衰竭的一种类型。病因包括:休克、严重感染、颅脑损伤、严重创伤、骨折时脂肪栓塞、输血输液过量、DIC、吸入刺激性气体、氧中毒、长期使用呼吸器、体外循环、昏迷或全身麻醉后误吸、烧伤等。尽管原发损害不同,但在肺脏所引起的病理生理改变却相似,其主要特点为:①肺微血管壁通透性增加,间质水肿;②肺表面活性物质缺失,肺泡群萎陷。", "category" : [ "疾病百科", "内科", "呼吸内科" ], "prevent" : "对高危的患者应严密观察,加强监护,当发现呼吸频速,PaO2降低等肺损伤表现,应早期给予呼吸支持和其它有效的预防及干预措施,防止ARDS进一步发展和重要脏器损伤。", "cause" : "化脓性感染可使细菌毒素或细胞破溃产物进入肺循环。在内毒素作用下,体内释放出血管活性物质,能使毛细血管通透性增加。感染还可以转移至肺部,从而并发肺功能衰竭。\n休克、创伤者由于大量失血造成的低血容量,可致心输出量降低,同时也造成肺血流量减少。由于肺血容量的减少和源源不断地接受体循环而来的微型栓子,可堵塞肺血管床,致阻碍气体交换的进行。\n这是因为脑创伤可以激发强烈的交感神经冲动,导致显著的末梢血管收缩,随即迅速发生急性心力衰竭和肺水肿。\nARDS是由许多原因引起的急性肺泡-毛细血管膜损伤,有些原因可直接损伤肺:如①吸入烟雾,毒气,胃内容物及溺水;②服用过量海洛因或水杨酸盐;③细菌,病毒及真菌等所致肺部感染;④脂肪,羊水及血栓等引起肺栓塞;以及⑤肺挫伤,放射线损伤与氧中毒等。有些全身性病理过程可引起肺损伤,如败血症、休克、弥散性血管内凝血、过敏反应、创伤及烧伤等,烧伤面积超过40%就可能导致Pao2明显降低,有些治疗措施也可能引起ARDS,如血液透析,体外循环,用尼龙丝去除白细胞等。\n根据病因的不同及病变特点,ARDS曾有20多个名称,如创伤后湿肺,败血症肺,休克肺,输血后肺,微血管漏出综合征,充血性肺不张,透明膜病,出现性肺综合征,僵肺综合症,进行性肺实变等。\n成人呼吸窘迫综合征的病理变化\n各种原因所致急性肺泡-毛细血管膜损害的病理变化均类似,可分为急性阶段与慢性阶段病变:\n(一)急性阶段病变\n主要为广泛肺泡血管内皮和肺泡上皮损伤所致肺水肿,首先是肺间质水肿,后出现肺泡水肿,肺重可达正常值之三倍,肺泡腔内液体蛋白质含量高,甚而是血性液体,并有血细胞,巨噬细胞,细胞碎片,无定形物质,纤维蛋白条和表面活性物质的残存物,偶而可见细胞碎片和蛋白等物质在纤维蛋白网眼中形成透明膜。\n(二)慢性阶段病变\n发病数天后进入慢性阶段,病变以细胞增生为主,两周后即可出现纤维化,Ⅱ型上皮细胞增生取代了变性坏死的Ⅰ型肺泡上皮细胞,加上各种细胞的浸润使肺泡间隔增厚,肺泡腔与肺泡管内富含蛋白质的液体机化而形成纤维化。\n成人呼吸窘迫综合征的发病机制\nARDS的病变主要是肺泡-毛细血管膜损伤引起肺水肿和继后的细胞增生和纤维化,细胞增生反应和纤维化的机制和炎症修复过程相同,故此处着重讨论急性肺损伤的机制。\nARDS病人均有肺动脉高压,故有人强调肺微血管内高压为肺水肿的原因,但病人肺动脉楔压往往并不高,说明毛细血管压并不一定高,水肿液蛋白质含量丰富,动物实验也证明,类似ARDS的动物模型肺淋巴液流量增大,肺淋巴液中蛋白质浓度与血浆蛋白质浓度之比值大于0.7;此时,静脉注入的高分子右旋糖酐(分子量500,000)可透入肺泡液,均说明ARDS时的肺水肿主要是渗透性肺水肿,由于肺泡-毛细血管膜损伤使其通透性增高所致。\nARDS中肺泡毛细血管膜通透性增高的机制并未完全阐明,有些原始病因能直接损伤肺泡毛细血管膜使其通透性增高,如吸入胃酸,毒气,烟熏,放射性损伤及细胞毒素作用等。大量实验表明,更主要的是继发性损伤,即通过白细胞和血小板在肺内聚集引起肺泡-血管膜损伤使其通透性增高。\n(一)中性粒细胞在ARDS发病中的作用\nARDS病人外周血液中中性粒细胞数减少,肺活检可见肺内有中性粒细胞聚集和浸润,支气管肺泡洗出液中中性粒细胞可增加20~100倍,现在一般认为中性粒细胞在肺中聚集,激活,释放氧自由基,蛋白酶和脂质代谢产物,从而导致肺微血管膜及肺泡上皮的损伤,是ARDS肺水肿的主要发病机制。\n1、中性粒细胞在肺血管中聚集:正常人在直立体位时约有10~20%的中性粒细胞聚集在肺毛细血管床中,这是一种物理性扣留,由于一个肺泡有近千节(segment)毛细血管,每节毛细血管长1~30μm(平均8μm),直径1~15μm(平均5μm),一个血细胞从肺动脉流入肺静脉要经过100个以上的毛细血管节,中性粒细胞直径大于毛细血管口径,其形状与红细胞相比更接近球形,故变形能力较差,变形速度较慢,所以中性粒细胞易被扣留在肺毛细血管床中。由于肺毛细血管床容量较大,白细胞的扣留对肺血管的阻力和肺动脉压的影响不大,物理性扣留的中性粒细胞一般不进入肺泡腔,故正常人支气管肺泡洗出液中的细胞90~95%是巨噬细胞。\nARDS时中性粒细胞在肺血管中的聚集是化学性粘附(adhesion),是由于趋化因子作用的结果,实验证明,中性粒细胞经趋化因子激活后与血管内皮细胞之间的亲和力显著增强,肺泡毛细血管总面积达60m2,可粘附大量中性粒细胞,以至使外周血液中白细胞数减少。\n趋化因子种类很多,主要有补体激活产物C5a,纤维蛋白降解产物(FDP),花生四烯酸代谢产物如白三烯B4(LTB4),羟花生四烯酸(HETE)和血栓素A2(AXA2),血小板活化因子(PAF),以及其他具趋化作用的蛋白质,多肽和脂质,其中研究较多的是补体的作用,在临床确诊ARDS前8小时血浆C5a往往已升高,激活的补体本身并不直接损伤肺血管内皮细胞,它是通过激活中性粒细胞起损伤作用,给出羊灌注激活的补体可导致肺水肿。如先用氮芥使粒细胞减少后再灌注激活之补体,则肺水肿的发生明显较经,激活的中性粒细胞可浸润入肺间质和进入肺泡腔,ARDS病人支气管肺泡洗出液中存在补体碎片及大量中性粒细胞,近年来发现中性粒细胞表面有一组糖蛋白,后者与粒细胞的粘附和吞噬功能有关,它们是巨噬细胞分子-1(macrophage-1,Mac-1)淋巴细胞功能相关抗原-1(lymphocyte function associated antegen-1,LFA-1),其中Mac-1与粘附功能关系最密切,正常中性粒细胞表面仅有少量Mac-1表达,在病理情况下,趋化因子的作用使中性粒细胞表面Mac-1表达量增加,促进中性粒细胞与血管内皮细胞间的粘附。\n2、中性粒细胞对肺泡-毛细血管膜的损伤:动物实验中静脉注入内毒素,空气等可复制急性肺微血管损伤的模型,用佛波豆蔻醚乙酸盐(phorbol myristate acetate,PMA)激活的中性粒细胞灌注离体肺也可使肺毛细血管通透性增高,如先用羟基脲,氮芥等使动物中性粒细胞数减少,则内毒素,空气栓子等对肺微血管的损伤明显减轻,细胞培养中发现,中性粒细胞秘须紧密粘附于内皮细胞才能使单层肺动脉内皮的通透性增高,以上说明减轻,细胞培养中发现,中性粒细胞必须紧密粘附于内皮细胞才能使单层肺动脉内皮的通透性增高,以上说明,中性粒细胞的粘附与激活在ARDS发病中具有重要作用,很可能是中性粒细胞激活时释放的氧自由基,蛋白酶,脂质代谢产物和肽类物质等造成肺泡-毛细血管膜的损伤。\n(1)氧自由基的作用:中性粒细胞被激活时,耗氧量急剧上升,比静息时增加数倍至数十倍,此时细胞膜上的NADPH氧化酶(NADPh oxidase)被激活,将还原型辅酶Ⅱ(NADPH)转变为氧化型(NADP),氧分子则获得电子形成超氧阴离子O2-,由O2-又可生成H2O2和OH,将正常中性粒细胞和其激活剂PMA一起灌注离体肺可引起肺水肿,水肿液蛋白质含量高;如将遗传性慢性肉芽肿病患者的中性粒细胞与PMA灌注则不引起肺水肿,因为慢性肉芽肿病患者的中性粒细胞缺乏NADPH氧化酶,氧自由基的生成少,另外,静脉内注射氧自由基清除剂,如超氧化物歧化酶(SOD),过氧化氢酶,过氧化物酶,二甲本硫脲等,可减轻实验动物的急性肺损伤,可见,中性粒细胞激活时通过释放氧自由基引起肺损伤。\n氧自由基损伤肺微血管内皮及肺泡上皮细胞的作用可能有以下几个方面:①作用于细胞膜和细胞器膜,使其脂质过氧化,从而损害细胞膜和细胞膜的结构和功能;②作用于酶,使之失活;③作用于α1—蛋白酶抑制物,使之失活,从而增强溶酶体释放的蛋白酶对组织的破坏作用;④作用于血浆成份,可形成一种很强的趋化物,引起更多的中性粒细胞在肺内聚集与激活,产生更多的氧自由基,由此形成阳性反馈,加重肺的损伤。\n(2)蛋白酶的作用:中性粒细胞中溶酶体含有多种中性蛋白酶和酸性蛋白酶,当中性粒细胞被激活或破坏时,释出的这些酶可引起周围蛋白质的分解和组织结构的破坏,使肺泡-毛细血管膜的通透性增高,其中研究较多的是中性粒细胞弹性蛋白酶,例如实验中发现,ARDS病人支气管肺泡洗出液中弹性蛋白酶活性很高,给动物注射内毒素或油酸复制ARDS模型时,其血浆及肺泡洗出液中弹性蛋白酶含量也增多;给动物注射中性粒细胞弹性蛋白酶可引起肺血管内皮及肺泡上皮的通透性增高;组织培养中加入弹性蛋白酶导致内皮细胞分散等,说明中性粒细胞弹性蛋白酶与ARDS中的肺损伤有关,弹性蛋白酶可降解弹性蛋白,胶原蛋白,纤维连接蛋白(fibronectin,FN)等,纤维连接蛋白在内皮细胞之间和内皮细胞与基底膜之间起“锚连”作用,纤维连接蛋白受损,则血管通透性增高。\n肝脏和肺泡巨噬细胞能合成α1-蛋白酶抑制物(α1-protease inhibitor,α1-PI),后者能抑制弹性蛋白酶,虽然ARDS病人血浆α1-PI可正常,支气管肺泡洗出液中α1-PI活性却降低,可能由于中性粒细胞产生的自由基使其氧化灭活所致,蛋白酶与蛋白酶抑制物间的失衡更加重了蛋白酶对组织的损伤,使肺泡-毛细血管膜通透性增高。\n3、脂类代谢产物的作用:内毒素等许多致病因素激活中性粒细胞,巨噬细胞,肥大细胞,内皮细胞等细胞膜上的磷脂酶A2,使膜磷脂裂解为花生四烯酸,后者通过环加氧酶途生成前列腺素,通过脂加氧酶途径生成白三烯,一般认为白三烯,TXA2,和PGF2α既可收缩肺小动脉引起肺动脉高压,也能增加肺微血管的通透性;而PGI2和PGE1则有扩张血管,降低血压,和使血管通透性降低的作用,急性肺损伤的动物及病人肺泡洗出液及血液中TXA2,PGF2α和LTs均增多,有实验证明PGI2和PGE1对急性肺损伤有一定的治疗作用,白细胞,巨噬细胞,肥大细胞和内皮细胞等激活后还可释放血小板活化因子(PAF),PAF可促使血小板聚集和TXA2合成,从而导致微血管通透性增高。\n4、蛋白类物质的作用巨噬细胞等激活后尚可释放蛋白类物质,其中较重要的有肿瘤坏死因子(TNF)及白细胞介素ⅠIL-1),人及动物在内毒素血症时血浆中TNF和IL-1增多,TNF能使肺血管通透性增高,并促使中性粒细胞在肺中聚集;IL-1剌激T淋巴细胞产生白细胞介素2(IL-2),后者也可使肺血管通透性增高。\n总之,现在一般认为,中性粒细胞巨噬细胞在肺内聚集,激活释出大量氧自由基和蛋白酶及脂类代谢产物和蛋白类,引起肺泡-毛细血管膜的损伤和通透性增高,导致肺水肿,这是ARDS的主要发病机制,虽然有报导白细胞减少的病人患败血症时也可发生急性肺损伤,用药物使动物中性粒细胞减少对注油酸引起肺损伤并无明显影响,但这些事实并不足以否定中性粒细胞的致病作用,因为外周血液中的中性粒细胞数不一定能反映肺循环中的粒细胞数,而且究竟需要多少中性粒细胞激活就足以引起急性肺损伤尚不了解,也可能正常聚集在肺血管中的中性粒细胞只有一部分被激活就足以损伤肺而导致ARDS。\n(二)凝血系统在ARDS发病中的作用\nARDS病人肺活检及死后尸解发现,肺小动脉血栓可发生于肺充血,水肿,出血及透明膜的形成之前,ARDS病人合并有弥散性血管内凝血者,其低氧血症和肺顺应性降工远较未合并DIC者为重,中性粒细胞激活和肺组织损伤所释放的促凝物质,肺血管内皮损伤和血液停滞,可导致血小板聚集和血管内凝血形成微血栓,肺内广泛微血栓形成可能引起:①肺循环阻力增加使肺动脉压升高,未堵塞的肺血管则血液量增大和毛细血管压升高,导致压力性肺水肿;②血栓损伤血管壁和血小板释放的血管活性物质以纤维蛋白降解产物,可使血管通透性增高致渗透性肺水肿;③血小板的消耗,纤维蛋白降解产物的抗凝作用,和血管壁的损伤可引起肺内出血;④血小板释放的5-HT等介质使支气管收缩,影响肺通气,近年特别引人注目的是纤维蛋白降解产物(FDP)的作用,发现严重创伤烧伤或感染病人中,已合并ARDS者血中FDP水平比未发生ARDS者高得多,而且ARDS病情与FDP浓度有一定平行关系,将纤维蛋白碎片D(FD)注入家兔血管,可引起进行性外周血液血小板减少,肺间质内白细胞浸润,肺血管通透性增高和肺功能不全;如注入血浆白蛋白,纤维蛋白及纤维蛋白碎片E,则不出现以上病变,很可能小板上有FD特异的膜受体,后者与FD结合可激活血小板,引起血小板聚集和释放反应,另外,FD也是趋化物,能促使中性粒细胞在肺内聚集,粘附和激活,由此加重肺的损害。\n正常肺毛细血管内皮的通透性比肺泡上皮高10倍,ARDS中肺毛细血管通透性的变化早于肺泡上皮,故先发生肺间质水肿,后出现肺泡水肿,肺泡上皮的损伤使Ⅱ型上皮细胞生成的表面活性物质减少,可导致肺不张,形成功能性分流。\n在全身性病理过程如败血症,休克等,中性粒细胞粘附于血管内皮以及血管内凝血引起的组织损伤,不仅发生于肺内,也可发生于肝,肾,肠,心,内分泌器官等处。故不能把ARDS看成仅仅是肺的损伤,但肺的血流量最大,毛细血管床面积也最大,故肺受累最重,使病人主要表现为急性呼吸衰竭。\n成人呼吸窘迫综合征时肺呼吸功能变化\nARDS所致外呼吸功能障碍以肺泡通气-血流比例失调为主,加上弥散功能障碍,表现为低氧血症性呼吸衰竭,极严重病例有总的肺泡通气量减少时可出现高碳酸血症性呼吸衰竭。\n(一)肺泡通气-血流比例失调\n由于Ⅱ型肺泡上皮细胞受损致表面活性物质的生成减少,肺泡水肿使表面活性物质被稀释和破坏,和肺泡过度通气引起的表面活性物质消耗,以致肺泡表面张力升高,肺顺应性降低,导致肺不张,由此形成功能性分流和真性分流,中性粒细胞等释出的白三烯等介质使支气管收缩,和水肿液堵塞小气道,气可造成肺通气障碍而形成功能性分流,ARDS病人分流量可达肺血流量的30%,肺血管内微血栓形成,血管活性物质引起不均匀的肺血管收缩,以及肺间质水肿对血管的压迫,不仅可增加肺血管阻力使肺动脉压升高,尚可增加死腔样通气,因此,肺泡通气-血流比例失调是病人发生呼吸衰竭最主要的原因。\n(二)弥散功能障碍\n肺间质和肺泡水肿,透明膜的形成和慢性阶段细胞的增生及肺纤维化,均可增加弥散膜的厚度,导致弥散功能障碍。\n(三)肺泡通气量减少\nARDS时肺部病变的分布是不均的,肺顺应性降低引起的限制性通气障碍和小气道阻塞引起的阻塞性通气障碍,造成部分肺泡通气量减少,未受累或病变较轻的肺泡反而代偿性通气增强,排出过多的二氧化碳,故病人Paco2反而降低,当肺泡-毛细血管膜损伤更广泛更严重时,全肺总的肺泡通气量将减少,CO2将潴留而发生高碳酸血症,此时Pao2将进一步下降。\n肺通气障碍,Pao2降低对血管化学感受器的剌激,肺充血和肺水肿对J感觉器的剌激,导致病人呼吸窘迫,感受器(juxtapulmonary capillary receptor)位于肺泡毛细血管旁,能感受毛细血管压力剌激,肺充血,肺水肿受剌激反射性地引起呼吸加快。", "symptom" : [ "呼吸困难", "紫绀", "心源性呼吸窘迫" ], "yibao_status" : "否", "get_prob" : "3%", "easy_get" : "无特定人群", "get_way" : "无传染性", "acompany" : [ "细菌性肺炎" ], "cure_department" : [ "内科", "呼吸内科" ], "cure_way" : [ "药物治疗", "支持性治疗" ], "cure_lasttime" : "2-4月", "cured_prob" : "85%", "common_drug" : [ "人血白蛋白", "注射用还原型谷胱甘肽钠" ], "cost_money" : "根据不同医院,收费标准不一致,市三甲医院约(5000——20000元)", "check" : [ "胸部CT检查", "呼吸肌功能测定", "血浆蛋白C抗原", "肺泡气-动脉血氧分压差", "肺毛细血管楔压" ], "do_eat" : [ "莲子", "生菜", "山药", "空心菜" ], "not_eat" : [ "啤酒", "白酒", "洋葱", "辣椒(红、尖、干)" ], "recommand_eat" : [ "百合糖粥", "百合粥", "百合花生汤", "首乌百合粥", "薏米莲子粥", "牛奶玉米汤", "萝卜豆腐汤", "瓜粒杂锦汤" ], "recommand_drug" : [ "注射用还原型谷胱甘肽钠", "注射用盐酸氨溴索", "人血白蛋白", "盐酸氨溴索葡萄糖注射液" ], "drug_detail" : [ "莱士人血白蛋白(人血白蛋白)", "卫光生物人血白蛋白(人血白蛋白)", "泰邦生物人血白蛋白(人血白蛋白)", "绿十字(中国)生物制品人血(人血白蛋白)", "人血白蛋白(人血白蛋白)", "松泰斯(注射用还原型谷胱甘肽钠)", "欣得生(盐酸氨溴索葡萄糖注射液)", "武汉生物人血白蛋白(人血白蛋白)", "诺健(注射用盐酸氨溴索)", "广春药业盐酸氨溴索葡萄糖注(盐酸氨溴索葡萄糖注射液)", "罗欣药业注射用盐酸氨溴索(注射用盐酸氨溴索)", "润阳药业盐酸氨溴索葡萄糖注(盐酸氨溴索葡萄糖注射液)", "博康健制药盐酸氨溴索葡萄糖(盐酸氨溴索葡萄糖注射液)", "德源生物人血白蛋白(人血白蛋白)", "六安华源制药盐酸氨溴索葡萄(盐酸氨溴索葡萄糖注射液)", "艾富西药业盐酸氨溴索葡萄糖(盐酸氨溴索葡萄糖注射液)", "山西康宝人血白蛋白(人血白蛋白)", "莎普爱思盐酸氨溴索葡萄糖注(盐酸氨溴索葡萄糖注射液)", "蜀阳药业人血白蛋白(人血白蛋白)", "双林生物人血白蛋白(人血白蛋白)", "蓉生药业人血白蛋白(人血白蛋白)", "金峰制药盐酸氨溴索葡萄糖注(盐酸氨溴索葡萄糖注射液)", "广东卫伦人血白蛋白(人血白蛋白)" ] }
6 | { "_id" : { "$oid" : "5bb578b6831b973a137e3eeb" }, "name" : "大量羊水吸入", "desc" : "胎儿在宫内或分娩过程中吸入较大量羊水称大量羊水吸入(massiveaminoticfluidaspiration),又称羊水吸入综合征(aminoticfluidaspirationsydrom)。一般指羊水未被污染,常有一过性的呼吸困难或青紫,症状轻,预后好。如肺部发生炎性反应,称为羊水吸入性肺炎。", "category" : [ "疾病百科", "儿科", "小儿内科" ], "prevent" : "预防的关键是预防胎儿宫内或产时缺氧,母亲定期做产前检查是非常必要的,发现胎儿有宫内窒息的征象时,应尽快结束分娩,缺氧时间越长,吸入羊水的可能和吸入羊水的量将越大,并且长时间宫内缺氧还可造成胎儿脑损伤,在孩子娩出时的瞬间应尽快插管吸出孩子口鼻,咽腔和大气管内的羊水,避免在孩子产生啼哭时将这些部位的羊水吸入更深的肺部,使病情进一步加重。产前产时妥善处理胎儿窘迫 尽量避免和减少发生吸入,胎头娩出在未出现第一次呼吸前即于挤除或用一次性吸管清除口咽,鼻粘液极为重要也是降低发病的关键,围生医,护人员通过窒息复苏处理训练合格再上岗是必要的羊水吸入性肺炎经过治疗,预后较好,绝大多数孩子都能痊愈,并且不留任何后遗症。", "cause" : "任何因素导致胎儿宫内或产时缺氧。由于低氧血症刺激胎儿呼吸中枢,出现喘息样呼吸,致羊水被吸入呼吸道,羊水吸入后很快被肺泡毛细血管吸收,羊水中的皮脂和脱落的角化上皮细胞在肺泡内可引起化学性和机械性的刺激而发生弥漫性肺炎,使气体弥散功能下降。\n异常分娩(abnormal labor)又称难产(dystocia)。其主要特征为产程进展缓慢而延长。引起异常分娩的因素包括产力、产道、胎儿及产妇精神心理因素。产程延长会增加分娩期母儿并发症,严重者可直接危及母儿生命。\n胎儿宫内窘迫是由于胎儿缺氧所引起,多数发生在临产后,但也可发生在妊娠期。胎儿宫内窘迫是胎儿围产期死亡及新生儿神经系统后遗症的常见原因,占围产儿死亡原因的首位。可分为急性胎儿窘迫和慢性胎儿窘迫。\n胎儿体重≥4000g称为巨大胎儿。通过正常产道常发生困难,发生肩性难产机会多,需手术助产,处理不当可发生软产道损伤或子宫破裂。", "symptom" : [ "面色青紫", "呼吸困难", "口唇青紫", "肺纹理增粗", "出生后即有持续青紫", "口唇和甲床略带青紫", "气急" ], "yibao_status" : "否", "get_prob" : "0.001%", "easy_get" : "好发于新生儿", "get_way" : "无传染性", "acompany" : [ "呼吸衰竭" ], "cure_department" : [ "儿科", "小儿内科" ], "cure_way" : [ "对症治疗", "药物治疗", "支持性治疗" ], "cure_lasttime" : "1-3周", "cured_prob" : "85%", "cost_money" : "根据不同医院,收费标准不一致,市三甲医院约(1000——5000元)", "check" : [ "肺部检查", "胸部透视", "胸部平片", "胸部CT检查" ], "recommand_drug" : [], "drug_detail" : [] }
7 | { "_id" : { "$oid" : "5bb578b6831b973a137e3eec" }, "name" : "单纯性肺嗜酸粒细胞浸润症", "desc" : "单纯性肺嗜酸粒细胞浸润症,又名吕弗琉综合征,是吕弗琉于1932年首先描述本病。单纯性肺嗜酸粒细胞浸润症特点为游走性肺部浸润伴外周血嗜酸粒细胞计数增高,肺部症状轻微,多数仅有轻咳,病程呈自限性,常于3~4周内自行痊愈。", "category" : [ "疾病百科", "内科", "呼吸内科" ], "prevent" : "注意饮食卫生,防止感染蛔虫、钩虫、丝虫、绦虫、姜片虫、旋毛虫和阿米巴原虫等。", "cause" : "实验证明,进食蛔虫卵后,幼虫移行至肺可发生本症典型的肺部表现和嗜酸性粒细胞升高。引起本病的其他寄生虫还有钩虫、丝虫、绦虫、姜片虫、旋毛虫和阿米巴原虫等。\n药物有对氨水杨酸、阿司匹林、青霉素、硝基呋喃妥因、保泰松、氯磺丙脲、肼苯达嗪、美卡拉明(美加明)、磺胺药和甲氨蝶呤等,引起的肺泡一过性变态反应。\n本病在某些地区呈季节性流行,故推测环境抗原因素在某些地区亦为可能的病因。有时吸入花粉也可发生本病。\n病理变化主要位于肺间质,肺泡壁及终末细支气管壁,有不规则的嗜酸粒细胞浸润灶,有时肺泡内可见成堆的嗜酸粒细胞,极少累及血管。", "symptom" : [ "嗜酸性粒细胞增多", "咽部异物感", "胸闷憋气", "咯血伴发热", "胸闷", "乏力" ], "yibao_status" : "否", "get_prob" : "0.005%-0.008%", "easy_get" : "无特定的人群", "get_way" : "无传染性", "acompany" : [ "胆道蛔虫病" ], "cure_department" : [ "内科", "呼吸内科" ], "cure_way" : [ "药物治疗" ], "cure_lasttime" : "3-6周", "cured_prob" : "100%", "common_drug" : [ "头孢泊肟酯胶囊", "头孢氨苄甲氧苄啶片" ], "cost_money" : "根据不同医院,收费标准不一致,市三甲医院约(3000 —— 8000元)", "check" : [ "痰液中细胞分类", "胸部平片", "痰液中寄生虫和虫卵" ], "recommand_drug" : [ "注射用盐酸头孢替安", "注射用磺苄西林钠", "托西酸舒他西林胶囊", "头孢泊肟酯胶囊", "头孢氨苄甲氧苄啶片" ], "drug_detail" : [ "亮博(头孢泊肟酯胶囊)", "白云山光华头孢氨苄甲氧苄啶(头孢氨苄甲氧苄啶片)", "头孢氨苄甲氧苄啶片(头孢氨苄甲氧苄啶片)", "锋替新(注射用盐酸头孢替安)", "西岳制药托西酸舒他西林胶囊(托西酸舒他西林胶囊)", "华瑞联合制药头孢氨苄甲氧苄(头孢氨苄甲氧苄啶片)", "明水药业头孢氨苄甲氧苄啶片(头孢氨苄甲氧苄啶片)", "注射用磺苄西林钠(注射用磺苄西林钠)", "圣大(张家口)头孢氨苄甲氧(头孢氨苄甲氧苄啶片)", "大连药业托西酸舒他西林胶囊(托西酸舒他西林胶囊)", "瑞阳制药注射用磺苄西林钠(注射用磺苄西林钠)", "注射用盐酸头孢替安(注射用盐酸头孢替安)", "赤峰维康托西酸舒他西林胶囊(托西酸舒他西林胶囊)", "彼迪药业托西酸舒他西林胶囊(托西酸舒他西林胶囊)", "复仙安(注射用盐酸头孢替安)", "哈药总厂头孢氨苄甲氧苄啶片(头孢氨苄甲氧苄啶片)", "云门药业头孢氨苄甲氧苄啶片(头孢氨苄甲氧苄啶片)", "哈药总厂注射用磺苄西林钠(注射用磺苄西林钠)", "萨兰欣(注射用盐酸头孢替安)", "搏沃欣(头孢泊肟酯胶囊)", "哈药总厂托西酸舒他西林胶囊(托西酸舒他西林胶囊)", "全星制药注射用盐酸头孢替安(注射用盐酸头孢替安)", "罗欣药业注射用盐酸头孢替安(注射用盐酸头孢替安)" ] }
8 | { "_id" : { "$oid" : "5bb578b6831b973a137e3eed" }, "name" : "大叶性肺炎", "desc" : "大叶性肺炎(lobarpneumonia),又名肺炎球菌肺炎,是由肺炎双球菌等细菌感染引起的呈大叶性分布的急性肺实质炎症。好发于青壮年男性和冬春季节,常见诱因有受凉、淋雨、醉酒或全身麻醉手术后、镇静剂过量等,当这些诱因使呼吸道防御功能被削弱时,细菌侵入肺泡通过变态反应使肺泡壁毛细血管通透性增强,浆液及纤维素渗出,富含蛋白的渗出物中细菌迅速繁殖,并向邻近肺组织蔓延,波及一个肺段或整个肺叶。近年来由于大量强有力抗生素的使用,典型的大叶性肺炎已较少见到。临床症状有突然寒战、高热、胸痛、咳嗽、咳铁锈色痰,部分患者有恶心、呕吐及烦躁不安、谵妄等消化系统和神经系统症状。体征有急性病容,呼吸急促,鼻翼扇动,早期肺部体征不明显或仅有呼吸音减低和胸膜摩擦音;实变期可有典型体征,如患侧呼吸运动减弱,语颤增强,叩诊浊音,听诊呼吸音减低,有湿罗音或病理性支气管呼吸音。血白细胞计数及中性粒细胞增高;典型的X线表现为肺段、叶实变。该病病程短,及时应用青霉素等抗生素治疗可痊愈。", "category" : [ "疾病百科", "内科", "呼吸内科" ], "prevent" : "1、注意预防上呼吸道感染,加强耐寒锻炼。\n2、避免淋雨受寒,醉酒,过劳等诱因。\n3、积极治疗原发病,如慢性心肺疾病,慢性肝炎,糖尿病和口腔疾病等,可以预防大叶性肺炎。", "cause" : "多种细菌均可引起大叶性肺炎,但绝大多数为肺炎链球菌。肺炎链球菌为革兰阳性球菌,有荚膜,其致病力是由于高分子多糖体的荚膜对组织的侵袭作用。少数为肺炎杆菌、金黄色葡萄球菌、溶血性链球菌、流感嗜血杆菌等。\n当机体受寒、过度疲劳、醉酒、感冒、糖尿病、免疫功能低下等使呼吸道防御功能被削弱,细菌侵入肺泡通过变态反应使肺泡壁毛细血管通透性增强,浆液及纤维素渗出,富含蛋白的渗出物中细菌迅速繁殖,并通过肺泡间孔或呼吸细支气管向邻近肺组织蔓延,波及一个肺段或整个肺叶。大叶间的蔓延系带菌的渗出液经叶支气管播散所致。\n大叶肺炎病变起始于局部肺泡,并迅速蔓延至一个肺段或整个大叶。临床上起病急骤,病程大约一周。常以高热、恶寒开始,继而出现胸痛、咳嗽、咳铁锈色痰、呼吸困难、并有肺实变体征及外周血白细胞计数增高等。", "symptom" : [ "湿啰音", "胸痛", "发烧", "咳铁锈色痰", "急性面容", "呼吸音减弱" ], "yibao_status" : "否", "get_prob" : "0.4%", "easy_get" : "多发生于青壮年男性", "get_way" : "无传染性", "acompany" : [ "脓胸" ], "cure_department" : [ "内科", "呼吸内科" ], "cure_way" : [ "青霉素等抗生素药物治疗", "对症支持性治疗", "并发症治疗" ], "cure_lasttime" : "7--10天", "cured_prob" : "90%以上", "common_drug" : [ "乳酸左氧氟沙星片", "阿奇霉素片" ], "cost_money" : "根据不同医院,收费标准不一致,省市三甲医院约(3000-8000元)", "check" : [ "Optochin敏感试验", "小白鼠毒力试验", "痰培养", "肺活量体重指数", "胸部平片", "免疫电泳", "血常规", "痰液细菌涂片检查" ], "do_eat" : [ "栗子(熟)", "鲫鱼", "猪肉(瘦)", "油菜" ], "not_eat" : [ "洋葱", "辣椒(青、尖)", "辣椒(红、尖、干)", "韭菜" ], "recommand_eat" : [ "奶汤锅子鱼", "酱豆腐汁烧猪肉", "百合汤", "山楂百合汤", "番茄鸡蛋煎饼", "凉拌番茄", "番茄猪肝瘦肉汤", "番茄牛肉" ], "recommand_drug" : [ "阿奇霉素胶囊", "阿奇霉素分散片", "诺氟沙星胶囊", "阿奇霉素片", "乳酸左氧氟沙星片" ], "drug_detail" : [ "宜昌长江乳酸左氧氟沙星片(乳酸左氧氟沙星片)", "希舒美(阿奇霉素片)", "维宏(阿奇霉素片)", "宜昌长江阿奇霉素分散片(阿奇霉素分散片)", "大连天宇制药阿奇霉素胶囊(阿奇霉素胶囊)", "兰花药业诺氟沙星胶囊(诺氟沙星胶囊)", "福邦药业阿奇霉素胶囊(阿奇霉素胶囊)", "葵花药业得菲尔公司阿奇霉素(阿奇霉素胶囊)", "利民制药阿奇霉素胶囊(阿奇霉素胶囊)", "东药阿奇霉素胶囊(阿奇霉素胶囊)", "浙江南洋药业阿奇霉素胶囊(阿奇霉素胶囊)", "江苏长江阿奇霉素胶囊(阿奇霉素胶囊)", "辅仁药业阿奇霉素片(阿奇霉素片)", "汇仁药业阿奇霉素片(阿奇霉素片)", "爱普森药业阿奇霉素片(阿奇霉素片)", "石药欧意诺氟沙星胶囊(诺氟沙星胶囊)", "白云山医药诺氟沙星胶囊(诺氟沙星胶囊)", "康美药业诺氟沙星胶囊(诺氟沙星胶囊)", "锦华药业诺氟沙星胶囊(诺氟沙星胶囊)", "北京京丰制药集团诺氟沙星胶(诺氟沙星胶囊)", "欣匹特(阿奇霉素分散片)", "海王阿奇霉素片(阿奇霉素片)", "安诺药业阿奇霉素分散片(阿奇霉素分散片)" ] }
9 | { "_id" : { "$oid" : "5bb578b6831b973a137e3eee" }, "name" : "大楼病综合征", "desc" : "大楼病综合征有多种表现,均因接触各种有害物质所致。好发于办公室内工作的人群,或人员密集的大楼内工作的人群。最常发生于新的密闭大楼内,这种大楼为了减少散热而不开窗,大楼内安装有加热及降温管道,这些管道由同一处发出。CO2升高是这些大楼最常见现象,是大楼病综合征的一个常见原因。患者变得焦虑,过度通气,进而发展成手足抽搐和严重的呼吸困难。", "category" : [ "疾病百科", "其他科室", "其他综合" ], "prevent" : "大楼病综合征日常预防\n新楼建成后不宜立即搬入办公或居住,平时应注意利用自然通风,排出楼内污浊有毒气体,保持室内空气清新干净。建议长期在室内工作的人员每两小时起身活动一次,既能活动身体,又能清脑提神,增强心肺功能,同时要多喝水,还可在室内放一些绿色植物,既美化环境,调节空气湿度,还能避免干燥刺激皮肤和呼吸系统。\n大楼病综合征健康教育\n健康的室内空气质量必须由建筑师,室内设计师,大楼经营者和使用者共同来创造。大楼拥有者和公司经营者的态度尤其重要,因为员工很难从个人层面做出具体改善,所以当老板发现员工接二连三出现身体不适的情形,可别以为他们夸张了感冒病情,当有一天他们不再抱怨时,可能都已经生病在家无法继续工作了。欧洲目前的建筑概念是让摩天大楼的每个窗子都能打开,每个房间都有独立空调,每个员工都能接近一个窗子,得到充分的阳光和空气。", "cause" : "高层建筑的大楼里,空气中含有危险的尘埃。这是因为吸烟或使用天然气、煤气、清洁剂、油漆、粘合剂等,不断地释放出许多种有机化学物。由于高楼人们在室内逗留时间较长,加上通风不好,就会使空气“稠化”。\n它们都在向空间发射不同能量、不同频率的电磁波,由于大楼混凝土板块的作用,电磁波便像幽灵一样,在大楼里荡来荡去,这些电磁波会影响人体固有的电流和磁波,导致心律不齐和神经衰弱。\n各种新型材料及室内塑料地板、壁纸、家具、涂料等装饰用品,常含有不同程度的有毒成分。这些物质可以通过人体呼吸道和皮肤的吸收,进入血液循环系统,影响机体的免疫力,从而导致病症发生。", "symptom" : [ "紧张性头晕", "紧张性头痛", "间歇性头晕", "鼻塞", "头晕", "恶心", "眼睛痒", "目赤", "间歇性头痛" ], "yibao_status" : "否", "get_prob" : "0.001%", "easy_get" : "无特定人群", "get_way" : "无传染性", "acompany" : [ "抑郁症" ], "cure_department" : [ "其他科室", "其他综合" ], "cure_way" : [ "支持性治疗", "康复治疗" ], "cure_lasttime" : "10天", "cured_prob" : "90%", "common_drug" : [ "云南花粉片", "注射用盐酸溴己新" ], "cost_money" : "根据不同医院,收费标准不一致,市三甲医院约(1000——5000元)", "check" : [ "钼靶X线检查", "CT检查", "血常规" ], "do_eat" : [ "圆白菜", "小白菜", "生菜", "空心菜" ], "not_eat" : [ "洋葱", "辣椒(青、尖)", "辣椒(红、尖、干)", "韭菜" ], "recommand_eat" : [ "生姜乌梅饮", "乌梅粥", "山楂乌梅饮", "山楂红糖粥", "山楂桑椹粥" ], "recommand_drug" : [ "注射用盐酸溴己新", "云南花粉片" ], "drug_detail" : [ "云南白药云南花粉片(云南花粉片)", "丰原制药注射用盐酸溴己新(注射用盐酸溴己新)", "普德药业注射用盐酸溴己新(注射用盐酸溴己新)", "海斯制药注射用盐酸溴己新(注射用盐酸溴己新)", "国药国瑞注射用盐酸溴己新(注射用盐酸溴己新)", "云南白药云南花粉片(云南花粉片)", "傲群(注射用盐酸溴己新)", "智同生物注射用盐酸溴己新(注射用盐酸溴己新)", "澳利达奈德注射用盐酸溴己新(注射用盐酸溴己新)", "一品红注射用盐酸溴己新(注射用盐酸溴己新)", "海鲸药业注射用盐酸溴己新(注射用盐酸溴己新)", "益佳清(注射用盐酸溴己新)", "伏枝(注射用盐酸溴己新)", "云南白药云南花粉片(云南花粉片)", "云南白药云南花粉片(云南花粉片)" ] }
10 | { "_id" : { "$oid" : "5bb578b6831b973a137e3eef" }, "name" : "二硫化碳中毒", "desc" : "二硫化碳(carbondisulfide,CS2)是工业上应用广泛的化学溶剂,也用于粘胶纤维、四氯化碳,农药生产等。为无色易挥发的液体,带有芳香味,工业品有烂萝卜气味。二硫化碳中毒是指因生产中发生事故而吸入二硫化碳高浓度蒸气所致中枢神经系统损害,急性中毒时轻者酒醉状态,步态不稳,感觉异常,重者可出现兴奋,谵妄,严重时发生昏迷、抽搐,甚至呼吸中枢麻痹导致死亡。", "category" : [ "疾病百科", "急诊科" ], "prevent" : "我国现用的车间空气中CS2最高容许浓度为10mg/m3,已有一些研究结果提示,这一卫生标准需要修订,以确保作业者的健康。对CS2作业者应给予就业体检和上岗后的定期查体,包括内科,神经科和眼科检查,必要时进行神经肌电图,血脂,心电图等检查。具有器质性神经系统疾病,各种精神病,视网膜病变,冠心病或糖尿病者,不宜从事CS2作业。", "cause" : "发病原因:\n二硫化碳的工业生产:常见用二硫化碳制粘胶纤维的化纤厂拉丝车间,以及制造玻璃纸、硫氰酸盐等化工生产中。由于二硫化碳对金属、木质及橡胶等都有较强的腐蚀作用,故生产设备、管道极易受腐蚀而发生跑、冒滴、漏或突然破裂等意外事故,导致急性中毒发生。\n无防护地使用二硫化碳:在用二硫化碳为羊毛去脂的羊毛加工业,用作衣服去渍剂的干洗业,以及用作熏蒸剂为粮食消毒、灭虫的种库、粮仓,也可因疏于防护,在通风不良环境中作业过久而吸入大量高浓度二硫化碳气体,引起急性中毒。\n制造二硫化碳的生产过程:在用硫蒸气通入燃烧的炭火以制造二硫化碳的生产过程中,如设备简陋或防护措施不周,可因吸入大量溢出的二硫化碳浓蒸气而发生急性中毒。\n二硫化碳经呼吸道进入人体,也可经皮肤和胃肠道吸收,进入体内后,10~30%仍经肺排出,70%~90%经代谢从尿排出,CS2中毒机理尚未阐明,主要有以下几种可能:\n1、CS2代谢物二硫代氨基甲酸酯与维生素B6结合,致使以吡哆醛为辅酶的一些酶,如转氨酶等受抑制。\n2、二硫代氨基甲酸酯与微量元素结合,如与一些脱氢酶中锌和细胞色素氧化酶,多巴胺β-羟化酶中铜结合,使酶失去活性,干扰能量及儿茶酚胺代谢,损害神经系统,特别是锥体外系。\n3、CS2抑制单胺氧化酶活性,使脑中5-羟色胺积蓄,与中毒性精神病可能有关。\n4、CS2抑制血浆中脂蛋白酶和脂质清除因子活性,致脂蛋白和脂类代谢紊乱,β-脂蛋白可渗入动脉壁内,导致玻璃样变,动脉硬化。", "symptom" : [ "昏迷", "腱反射消失", "呕吐", "谵妄", "多发性神经炎", "浅感觉减退或缺失", "恶心", "感觉障碍" ], "yibao_status" : "否", "get_prob" : "发病率约为0.0001%--0.0005%", "easy_get" : "接触化学染料及粘胶纤维的工人", "get_way" : "无传染性", "acompany" : [ "昏迷" ], "cure_department" : [ "急诊科" ], "cure_way" : [ "药物治疗", "支持性治疗" ], "cure_lasttime" : "1-2个月", "cured_prob" : "80-85%", "common_drug" : [ "布美他尼片", "十一味金色丸" ], "cost_money" : "根据不同病情,不同医院,收费标准不一致,市三甲医院约(1000——5000元)", "check" : [ "血常规", "尿常规", "肾功能检查", "神经系统检查", "眼底荧光血管造影", "肌电图", "脑电图检查", "心肺功能运动试验(CPET)" ], "do_eat" : [ "生菜", "南瓜", "苦瓜", "空心菜" ], "not_eat" : [ "啤酒", "白酒", "洋葱", "辣椒(红、尖、干)" ], "recommand_eat" : [ "小麦粥", "荞麦粥", "杂粮粥", "蔬菜杂烩粥", "花生杏仁粥", "豆薯小米粥", "羊腩萝卜丝粥", "绿豆南瓜汤" ], "recommand_drug" : [ "布美他尼片", "十一味金色丸", "注射用布美他尼", "注射用呋塞米", "盐酸利多卡因注射液", "注射用硫代硫酸钠", "大月晶丸", "仁青芒觉", "注射用鼠神经生长因子", "地塞米松磷酸钠注射液" ], "drug_detail" : [ "桂林南药布美他尼片(布美他尼片)", "雄巴拉曲神水十一味金色丸(十一味金色丸)", "西藏甘露仁青芒觉(仁青芒觉)", "金诃藏药大月晶丸(大月晶丸)", "金诃藏药仁青芒觉(仁青芒觉)", "苏肽生(注射用鼠神经生长因子)", "新峰药业盐酸利多卡因注射液(盐酸利多卡因注射液)", "海斯制药盐酸利多卡因注射液(盐酸利多卡因注射液)", "西藏甘露十一味金色丸(十一味金色丸)", "卓峰地塞米松磷酸钠注射液(地塞米松磷酸钠注射液)", "白云山天心地塞米松磷酸钠注(地塞米松磷酸钠注射液)", "涟水制药地塞米松磷酸钠注射(地塞米松磷酸钠注射液)", "金耀药业地塞米松磷酸钠注射(地塞米松磷酸钠注射液)", "遂成药业地塞米松磷酸钠注射(地塞米松磷酸钠注射液)", "恩经复(注射用鼠神经生长因子)", "金路捷(注射用鼠神经生长因子)", "新亚注射用硫代硫酸钠(注射用硫代硫酸钠)", "北京永康药业盐酸利多卡因注(盐酸利多卡因注射液)", "北京益民药业盐酸利多卡因注(盐酸利多卡因注射液)", "中国大冢盐酸利多卡因注射液(盐酸利多卡因注射液)", "盐酸利多卡因注射液(盐酸利多卡因注射液)", "全星制药注射用布美他尼(注射用布美他尼)", "皇隆制药注射用呋塞米(注射用呋塞米)" ] }
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/2.medicalKnowledgeGraph/dict/.DS_Store
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/check.txt:
--------------------------------------------------------------------------------
1 | 周围血白细胞计数及分类检验
2 | 尿常规
3 | 肺部检查
4 | 痰液细菌涂片检查
5 | 胸部CT检查
6 | 肺毛细血管楔压
7 | 神经系统检查
8 | 抗链球菌壁多糖抗体
9 | 肌电图
10 | 肺活量体重指数
11 | 免疫电泳
12 | Optochin敏感试验
13 | 钼靶X线检查
14 | 胸部平片
15 | 肺和胸膜听诊
16 | 血常规
17 | 脑电图检查
18 | 心肺功能运动试验(CPET)
19 | 酶联免疫吸附试验
20 | 肾功能检查
21 | 耳、鼻、咽拭子细菌培养
22 | 抗链球菌型M蛋白抗体
23 | 白细胞分类计数
24 | 痰培养
25 | 肺泡气-动脉血氧分压差
26 | CT检查
27 | 呼吸肌功能测定
28 | 支气管镜检查
29 | 骨髓象分析
30 | 先令氏指数
31 | 痰液中寄生虫和虫卵
32 | 痰液中细胞分类
33 | 血浆蛋白C抗原
34 | 眼底荧光血管造影
35 | 小白鼠毒力试验
36 | 肺活检
37 | 胸部透视
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/department.txt:
--------------------------------------------------------------------------------
1 | 小儿内科
2 | 其他综合
3 | 儿科
4 | 呼吸内科
5 | 其他科室
6 | 急诊科
7 | 内科
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/disease.txt:
--------------------------------------------------------------------------------
1 | 单纯性肺嗜酸粒细胞浸润症
2 | 百日咳
3 | 大量羊水吸入
4 | 成人呼吸窘迫综合征
5 | 肺泡蛋白质沉积症
6 | 喘息样支气管炎
7 | 大楼病综合征
8 | 二硫化碳中毒
9 | 苯中毒
10 | 大叶性肺炎
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/drug.txt:
--------------------------------------------------------------------------------
1 | 氨茶碱片
2 | 注射用磺苄西林钠
3 | 阿奇霉素分散片
4 | 喷托维林氯化铵糖浆
5 | 乳酸左氧氟沙星片
6 | 注射用盐酸头孢替安
7 | 注射用呋塞米
8 | 注射用鼠神经生长因子
9 | 二羟丙茶碱片
10 | 托西酸舒他西林胶囊
11 | 注射用硫代硫酸钠
12 | 大月晶丸
13 | 硫酸沙丁胺醇片
14 | 注射用盐酸溴己新
15 | 地塞米松磷酸钠注射液
16 | 琥乙红霉素颗粒
17 | 盐酸利多卡因注射液
18 | 环酯红霉素片
19 | 诺氟沙星胶囊
20 | 穿心莲内酯片
21 | 红霉素肠溶片
22 | 十一味金色丸
23 | 人血白蛋白
24 | 琥乙红霉素片
25 | 布地奈德气雾剂
26 | 胸腺肽肠溶片
27 | 盐酸氨溴索葡萄糖注射液
28 | 小青龙合剂
29 | 注射用还原型谷胱甘肽钠
30 | 注射用盐酸氨溴索
31 | 布美他尼片
32 | 阿奇霉素胶囊
33 | 云南花粉片
34 | 仁青芒觉
35 | 枸橼酸喷托维林片
36 | 头孢泊肟酯胶囊
37 | 硫酸沙丁胺醇气雾剂
38 | 头孢氨苄甲氧苄啶片
39 | 百咳静糖浆
40 | 蛇胆川贝液
41 | 注射用布美他尼
42 | 小青龙颗粒
43 | 阿奇霉素片
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/food.txt:
--------------------------------------------------------------------------------
1 | 生菜
2 | 螃蟹
3 | 栗子(熟)
4 | 海蟹
5 | 白酒
6 | 小白菜
7 | 海螺
8 | 猪肉(瘦)
9 | 海蚌
10 | 空心菜
11 | 洋葱
12 | 鲫鱼
13 | 辣椒(青、尖)
14 | 猪肉(肥瘦)
15 | 鸡蛋
16 | 赤贝
17 | 圆白菜
18 | 南瓜
19 | 油菜
20 | 韭菜
21 | 山药
22 | 苦瓜
23 | 辣椒(红、尖、干)
24 | 海参(水浸)
25 | 海虾
26 | 啤酒
27 | 樱桃番茄
28 | 南瓜子仁
29 | 莲子
30 | 大豆
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/producer.txt:
--------------------------------------------------------------------------------
1 | 锦华药业诺氟沙星胶囊
2 | 海王阿奇霉素片
3 | 石药欧意枸橼酸喷托维林片
4 | 旺龙药业琥乙红霉素颗粒
5 | 全星制药注射用布美他尼
6 | 赤峰维康托西酸舒他西林胶囊
7 | 广西灵峰药业蛇胆川贝液
8 | 利君沙
9 | 武汉生物人血白蛋白
10 | 金峰制药盐酸氨溴索葡萄糖注
11 | 宜昌长江乳酸左氧氟沙星片
12 | 辅仁药业阿奇霉素片
13 | 康美药业红霉素肠溶片
14 | 双林生物人血白蛋白
15 | 六安华源制药盐酸氨溴索葡萄
16 | 北京中新制药琥乙红霉素片
17 | 西岳制药托西酸舒他西林胶囊
18 | 平光制药红霉素肠溶片
19 | 益佳清
20 | 云南白药云南花粉片
21 | 恒益药业琥乙红霉素颗粒
22 | 北京曙光药业红霉素肠溶片
23 | 苏肽生
24 | 宜昌长江阿奇霉素分散片
25 | 葵花药业得菲尔公司阿奇霉素
26 | 人血白蛋白
27 | 信谊布地奈德气雾剂
28 | 北京京丰制药集团诺氟沙星胶
29 | 奇莫欣
30 | 桂林南药布美他尼片
31 | 利民制药阿奇霉素胶囊
32 | 东信药业琥乙红霉素颗粒
33 | 佐今明百咳静糖浆
34 | 康美药业诺氟沙星胶囊
35 | 彼迪药业托西酸舒他西林胶囊
36 | 迪瑞制药琥乙红霉素颗粒
37 | 西藏甘露十一味金色丸
38 | 头孢氨苄甲氧苄啶片
39 | 万托林
40 | 达发新
41 | 东新药业百咳静糖浆
42 | 普德药业注射用盐酸溴己新
43 | 松泰斯
44 | 北京同仁堂百咳静糖浆
45 | 吉林东方制药枸橼酸喷托维林
46 | 萨兰欣
47 | 伏枝
48 | 中国大冢盐酸利多卡因注射液
49 | 新峰药业盐酸利多卡因注射液
50 | 锋替新
51 | 国瑞琥乙红霉素片
52 | 海斯制药注射用盐酸溴己新
53 | 华南药业红霉素肠溶片
54 | 福邦药业阿奇霉素胶囊
55 | 哈药总厂托西酸舒他西林胶囊
56 | 邦琪药业百咳静糖浆
57 | 汇仁药业阿奇霉素片
58 | 欣得生
59 | 北京永康药业盐酸利多卡因注
60 | 迪龙制药胸腺肽肠溶片
61 | 惠普森穿心莲内酯片
62 | 石药欧意红霉素肠溶片
63 | 金耀药业地塞米松磷酸钠注射
64 | 白云山医药诺氟沙星胶囊
65 | 兰花药业诺氟沙星胶囊
66 | 金路捷
67 | 罗欣药业注射用盐酸氨溴索
68 | 海南制药厂蛇胆川贝液
69 | 华瑞联合制药头孢氨苄甲氧苄
70 | 罗欣药业注射用盐酸头孢替安
71 | 一品红注射用盐酸溴己新
72 | 江苏长江阿奇霉素胶囊
73 | 澳利达奈德注射用盐酸溴己新
74 | 利君制药琥乙红霉素片
75 | 白云山天心地塞米松磷酸钠注
76 | 天津力生制药硫酸沙丁胺醇片
77 | 海鲸药业注射用盐酸溴己新
78 | 安诺药业阿奇霉素分散片
79 | 蓉生药业人血白蛋白
80 | 北京益民药业盐酸利多卡因注
81 | 东信药业蛇胆川贝液
82 | 白云山光华头孢氨苄甲氧苄啶
83 | 盛翔制药蛇胆川贝液
84 | 山西康宝人血白蛋白
85 | 全星制药注射用盐酸头孢替安
86 | 赣南制药喷托维林氯化铵糖浆
87 | 卫光生物人血白蛋白
88 | 恩经复
89 | 蜀阳药业人血白蛋白
90 | 圣大(张家口)头孢氨苄甲氧
91 | 瑞阳制药注射用磺苄西林钠
92 | 振兴氨茶碱片
93 | 东药阿奇霉素胶囊
94 | 大连天宇制药阿奇霉素胶囊
95 | 莎普爱思盐酸氨溴索葡萄糖注
96 | 皇隆制药注射用呋塞米
97 | 海斯制药盐酸利多卡因注射液
98 | 东信药业琥乙红霉素片
99 | 博康健制药盐酸氨溴索葡萄糖
100 | 广东卫伦人血白蛋白
101 | 国药国瑞注射用盐酸溴己新
102 | 傲群
103 | 天天乐药业蛇胆川贝液
104 | 遂成药业地塞米松磷酸钠注射
105 | 绿十字
106 | 纽兰药业小青龙颗粒
107 | 雄巴拉曲神水十一味金色丸
108 | 金诃藏药仁青芒觉
109 | 晶珠藏药蛇胆川贝液
110 | 首儿药厂小青龙颗粒
111 | 纽兰药业小青龙合剂
112 | 广春药业盐酸氨溴索葡萄糖注
113 | 永定制药百咳静糖浆
114 | 复仙安
115 | 希舒美
116 | 莱士人血白蛋白
117 | 金诃藏药大月晶丸
118 | 哈药总厂注射用磺苄西林钠
119 | 桑海制药喷托维林氯化铵糖浆
120 | 哈药总厂头孢氨苄甲氧苄啶片
121 | 济安堂蛇胆川贝液
122 | 维宏
123 | 明水药业头孢氨苄甲氧苄啶片
124 | 德源生物人血白蛋白
125 | 泰邦生物人血白蛋白
126 | 润阳药业盐酸氨溴索葡萄糖注
127 | 亮博
128 | 新亚注射用硫代硫酸钠
129 | 大连药业托西酸舒他西林胶囊
130 | 搏沃欣
131 | 注射用磺苄西林钠
132 | 涟水制药地塞米松磷酸钠注射
133 | 利君制药红霉素肠溶片
134 | 天津太平洋二羟丙茶碱片
135 | 注射用盐酸头孢替安
136 | 艾富西药业盐酸氨溴索葡萄糖
137 | 智同生物注射用盐酸溴己新
138 | 盐酸利多卡因注射液
139 | 浙江南洋药业阿奇霉素胶囊
140 | 云门药业头孢氨苄甲氧苄啶片
141 | 爱普森药业阿奇霉素片
142 | 欣匹特
143 | 石药欧意诺氟沙星胶囊
144 | 诺健
145 | 白云山医药琥乙红霉素片
146 | 丰原制药注射用盐酸溴己新
147 | 蛇胆川贝液
148 | 西藏甘露仁青芒觉
149 | 仁和堂硫酸沙丁胺醇片
150 | 卓峰地塞米松磷酸钠注射液
--------------------------------------------------------------------------------
/2.medicalKnowledgeGraph/dict/symptoms.txt:
--------------------------------------------------------------------------------
1 | 紫绀
2 | 肺阴虚
3 | 呼吸音减弱
4 | 喘息
5 | 哮鸣音
6 | 纤毛上皮细胞损伤脱落
7 | 咳嗽伴哮鸣音
8 | 心源性呼吸窘迫
9 | 出生后即有持续青紫
10 | 胸痛
11 | 胸闷
12 | 谵妄
13 | 感觉障碍
14 | 紧张性头痛
15 | 眼睛痒
16 | 急性面容
17 | 面色青紫
18 | 腱反射消失
19 | 湿啰音
20 | 闫鹏辉
21 | 鼻塞
22 | 痉挛性咳嗽
23 | 耸肩喘息
24 | 化学性支气管炎
25 | 毓卓
26 | 浅感觉减退或缺失
27 | 间歇性头晕
28 | 多发性神经炎
29 | 口唇青紫
30 | 惊厥
31 | 嗜酸性粒细胞增多
32 | 呼吸困难
33 | 咳铁锈色痰
34 | 吸气时有蝉鸣音
35 | 抽搐
36 | 乏力
37 | 咽部异物感
38 | 冬春季的慢性咳...
39 | 变应性咳嗽
40 | 咯血伴发热
41 | 呕吐
42 | 紧张性头晕
43 | 肺纹理增粗
44 | 目赤
45 | 头晕
46 | 间歇性头痛
47 | 恶心
48 | 发烧
49 | 胸闷憋气
50 | 气急
51 | 昏迷
52 | 低热
53 | 口唇和甲床略带青紫
--------------------------------------------------------------------------------
/3.KGchatbot/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/3.KGchatbot/.DS_Store
--------------------------------------------------------------------------------
/3.KGchatbot/__pycache__/answer_search.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/3.KGchatbot/__pycache__/answer_search.cpython-37.pyc
--------------------------------------------------------------------------------
/3.KGchatbot/__pycache__/question_classifier.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/3.KGchatbot/__pycache__/question_classifier.cpython-37.pyc
--------------------------------------------------------------------------------
/3.KGchatbot/__pycache__/question_parser.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JesseYule/KnowledgeGraphBeginner/7557fb16b51b587469d311856868906adda68a19/3.KGchatbot/__pycache__/question_parser.cpython-37.pyc
--------------------------------------------------------------------------------
/3.KGchatbot/answer_search.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # coding: utf-8
3 | # File: answer_search.py
4 | # Author: lhy
5 | # Date: 18-10-5
6 |
7 | from py2neo import Graph
8 |
9 |
10 | class AnswerSearcher:
11 | def __init__(self):
12 | self.g = Graph(
13 | host="127.0.0.1",
14 | http_port=7474,
15 | user="neo4j",
16 | password="yu1014880520")
17 | self.num_limit = 20
18 |
19 | '''执行cypher查询,并返回相应结果'''
20 | def search_main(self, sqls):
21 | final_answers = []
22 | for sql_ in sqls:
23 | question_type = sql_['question_type']
24 | queries = sql_['sql']
25 | answers = []
26 | for query in queries:
27 | ress = self.g.run(query).data()
28 | answers += ress
29 | final_answer = self.answer_prettify(question_type, answers)
30 | if final_answer:
31 | final_answers.append(final_answer)
32 | return final_answers
33 |
34 | '''根据对应的qustion_type,调用相应的回复模板'''
35 | def answer_prettify(self, question_type, answers):
36 | final_answer = []
37 | if not answers:
38 | return ''
39 | if question_type == 'disease_symptom':
40 | desc = [i['n.name'] for i in answers]
41 | subject = answers[0]['m.name']
42 | final_answer = '{0}的症状包括:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
43 |
44 | elif question_type == 'symptom_disease':
45 | desc = [i['m.name'] for i in answers]
46 | subject = answers[0]['n.name']
47 | final_answer = '症状{0}可能染上的疾病有:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
48 |
49 | elif question_type == 'disease_cause':
50 | desc = [i['m.cause'] for i in answers]
51 | subject = answers[0]['m.name']
52 | final_answer = '{0}可能的成因有:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
53 |
54 | elif question_type == 'disease_prevent':
55 | desc = [i['m.prevent'] for i in answers]
56 | subject = answers[0]['m.name']
57 | final_answer = '{0}的预防措施包括:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
58 |
59 | elif question_type == 'disease_lasttime':
60 | desc = [i['m.cure_lasttime'] for i in answers]
61 | subject = answers[0]['m.name']
62 | final_answer = '{0}治疗可能持续的周期为:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
63 |
64 | elif question_type == 'disease_cureway':
65 | desc = [';'.join(i['m.cure_way']) for i in answers]
66 | subject = answers[0]['m.name']
67 | final_answer = '{0}可以尝试如下治疗:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
68 |
69 | elif question_type == 'disease_cureprob':
70 | desc = [i['m.cured_prob'] for i in answers]
71 | subject = answers[0]['m.name']
72 | final_answer = '{0}治愈的概率为(仅供参考):{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
73 |
74 | elif question_type == 'disease_easyget':
75 | desc = [i['m.easy_get'] for i in answers]
76 | subject = answers[0]['m.name']
77 |
78 | final_answer = '{0}的易感人群包括:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
79 |
80 | elif question_type == 'disease_desc':
81 | desc = [i['m.desc'] for i in answers]
82 | subject = answers[0]['m.name']
83 | final_answer = '{0},熟悉一下:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
84 |
85 | elif question_type == 'disease_acompany':
86 | desc1 = [i['n.name'] for i in answers]
87 | desc2 = [i['m.name'] for i in answers]
88 | subject = answers[0]['m.name']
89 | desc = [i for i in desc1 + desc2 if i != subject]
90 | final_answer = '{0}的症状包括:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
91 |
92 | elif question_type == 'disease_not_food':
93 | desc = [i['n.name'] for i in answers]
94 | subject = answers[0]['m.name']
95 | final_answer = '{0}忌食的食物包括有:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
96 |
97 | elif question_type == 'disease_do_food':
98 | do_desc = [i['n.name'] for i in answers if i['r.name'] == '宜吃']
99 | recommand_desc = [i['n.name'] for i in answers if i['r.name'] == '推荐食谱']
100 | subject = answers[0]['m.name']
101 | final_answer = '{0}宜食的食物包括有:{1}\n推荐食谱包括有:{2}'.format(subject, ';'.join(list(set(do_desc))[:self.num_limit]), ';'.join(list(set(recommand_desc))[:self.num_limit]))
102 |
103 | elif question_type == 'food_not_disease':
104 | desc = [i['m.name'] for i in answers]
105 | subject = answers[0]['n.name']
106 | final_answer = '患有{0}的人最好不要吃{1}'.format(';'.join(list(set(desc))[:self.num_limit]), subject)
107 |
108 | elif question_type == 'food_do_disease':
109 | desc = [i['m.name'] for i in answers]
110 | subject = answers[0]['n.name']
111 | final_answer = '患有{0}的人建议多试试{1}'.format(';'.join(list(set(desc))[:self.num_limit]), subject)
112 |
113 | elif question_type == 'disease_drug':
114 | desc = [i['n.name'] for i in answers]
115 | subject = answers[0]['m.name']
116 | final_answer = '{0}通常的使用的药品包括:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
117 |
118 | elif question_type == 'drug_disease':
119 | desc = [i['m.name'] for i in answers]
120 | subject = answers[0]['n.name']
121 | final_answer = '{0}主治的疾病有{1},可以试试'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
122 |
123 | elif question_type == 'disease_check':
124 | desc = [i['n.name'] for i in answers]
125 | subject = answers[0]['m.name']
126 | final_answer = '{0}通常可以通过以下方式检查出来:{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
127 |
128 | elif question_type == 'check_disease':
129 | desc = [i['m.name'] for i in answers]
130 | subject = answers[0]['n.name']
131 | final_answer = '通常可以通过{0}检查出来的疾病有{1}'.format(subject, ';'.join(list(set(desc))[:self.num_limit]))
132 |
133 | return final_answer
134 |
135 |
136 | if __name__ == '__main__':
137 | searcher = AnswerSearcher()
--------------------------------------------------------------------------------
/3.KGchatbot/chatbot_graph.py:
--------------------------------------------------------------------------------
1 | from question_classifier import *
2 | from question_parser import *
3 | from answer_search import *
4 |
5 |
6 | '''问答类'''
7 | class ChatBotGraph:
8 | def __init__(self):
9 | self.classifier = QuestionClassifier()
10 | self.parser = QuestionPaser()
11 | self.searcher = AnswerSearcher()
12 |
13 | def chat_main(self, sent):
14 | answer = '您好,我是医药智能助理Homunculus。'
15 | res_classify = self.classifier.classify(sent)
16 |
17 | # 对问题进行分类,不过问题不属于该领域,则直接回复默认回答
18 | # 分类的结果其实就是分析问题的实体以及问题的类型,比如{感冒,感冒的描述}、{咳嗽,咳嗽可能涉及到什么疾病}
19 | # 本质上就是分析出有没有涉及到Neo4j中的node、property、relationship
20 |
21 | print(res_classify)
22 |
23 | if not res_classify:
24 | return answer
25 |
26 | # 对问题的分类结果进行进一步的解析
27 | # 其实就是生成sql语句,根据node、property、relationship在数据库中查找相关信息
28 | res_sql = self.parser.parser_main(res_classify)
29 |
30 | print(res_sql)
31 |
32 | final_answers = self.searcher.search_main(res_sql)
33 |
34 | print(final_answers)
35 |
36 | if not final_answers:
37 | return answer
38 | else:
39 | return '\n'.join(final_answers)
40 |
41 |
42 | if __name__ == '__main__':
43 | handler = ChatBotGraph()
44 | while 1:
45 | question = input('用户:')
46 | answer = handler.chat_main(question)
47 | print('Homunculus:', answer)
48 |
49 |
--------------------------------------------------------------------------------
/3.KGchatbot/dict/check.txt:
--------------------------------------------------------------------------------
1 | 周围血白细胞计数及分类检验
2 | 尿常规
3 | 肺部检查
4 | 痰液细菌涂片检查
5 | 胸部CT检查
6 | 肺毛细血管楔压
7 | 神经系统检查
8 | 抗链球菌壁多糖抗体
9 | 肌电图
10 | 肺活量体重指数
11 | 免疫电泳
12 | Optochin敏感试验
13 | 钼靶X线检查
14 | 胸部平片
15 | 肺和胸膜听诊
16 | 血常规
17 | 脑电图检查
18 | 心肺功能运动试验(CPET)
19 | 酶联免疫吸附试验
20 | 肾功能检查
21 | 耳、鼻、咽拭子细菌培养
22 | 抗链球菌型M蛋白抗体
23 | 白细胞分类计数
24 | 痰培养
25 | 肺泡气-动脉血氧分压差
26 | CT检查
27 | 呼吸肌功能测定
28 | 支气管镜检查
29 | 骨髓象分析
30 | 先令氏指数
31 | 痰液中寄生虫和虫卵
32 | 痰液中细胞分类
33 | 血浆蛋白C抗原
34 | 眼底荧光血管造影
35 | 小白鼠毒力试验
36 | 肺活检
37 | 胸部透视
--------------------------------------------------------------------------------
/3.KGchatbot/dict/deny.txt:
--------------------------------------------------------------------------------
1 | 否
2 | 非
3 | 不
4 | 无
5 | 弗
6 | 勿
7 | 毋
8 | 未
9 | 没
10 | 莫
11 | 没有
12 | 防止
13 | 不再
14 | 不会
15 | 不能
16 | 忌
17 | 禁止
18 | 防止
19 | 难以
20 | 忘记
21 | 忽视
22 | 放弃
23 | 拒绝
24 | 杜绝
25 | 不是
26 | 并未
27 | 并无
28 | 仍未
29 | 难以出现
30 | 切勿
31 | 不要
32 | 不可
33 | 别
34 | 管住
35 | 注意
36 | 小心
37 | 少
38 |
39 |
--------------------------------------------------------------------------------
/3.KGchatbot/dict/department.txt:
--------------------------------------------------------------------------------
1 | 小儿内科
2 | 其他综合
3 | 儿科
4 | 呼吸内科
5 | 其他科室
6 | 急诊科
7 | 内科
--------------------------------------------------------------------------------
/3.KGchatbot/dict/disease.txt:
--------------------------------------------------------------------------------
1 | 单纯性肺嗜酸粒细胞浸润症
2 | 百日咳
3 | 大量羊水吸入
4 | 成人呼吸窘迫综合征
5 | 肺泡蛋白质沉积症
6 | 喘息样支气管炎
7 | 大楼病综合征
8 | 二硫化碳中毒
9 | 苯中毒
10 | 大叶性肺炎
--------------------------------------------------------------------------------
/3.KGchatbot/dict/drug.txt:
--------------------------------------------------------------------------------
1 | 氨茶碱片
2 | 注射用磺苄西林钠
3 | 阿奇霉素分散片
4 | 喷托维林氯化铵糖浆
5 | 乳酸左氧氟沙星片
6 | 注射用盐酸头孢替安
7 | 注射用呋塞米
8 | 注射用鼠神经生长因子
9 | 二羟丙茶碱片
10 | 托西酸舒他西林胶囊
11 | 注射用硫代硫酸钠
12 | 大月晶丸
13 | 硫酸沙丁胺醇片
14 | 注射用盐酸溴己新
15 | 地塞米松磷酸钠注射液
16 | 琥乙红霉素颗粒
17 | 盐酸利多卡因注射液
18 | 环酯红霉素片
19 | 诺氟沙星胶囊
20 | 穿心莲内酯片
21 | 红霉素肠溶片
22 | 十一味金色丸
23 | 人血白蛋白
24 | 琥乙红霉素片
25 | 布地奈德气雾剂
26 | 胸腺肽肠溶片
27 | 盐酸氨溴索葡萄糖注射液
28 | 小青龙合剂
29 | 注射用还原型谷胱甘肽钠
30 | 注射用盐酸氨溴索
31 | 布美他尼片
32 | 阿奇霉素胶囊
33 | 云南花粉片
34 | 仁青芒觉
35 | 枸橼酸喷托维林片
36 | 头孢泊肟酯胶囊
37 | 硫酸沙丁胺醇气雾剂
38 | 头孢氨苄甲氧苄啶片
39 | 百咳静糖浆
40 | 蛇胆川贝液
41 | 注射用布美他尼
42 | 小青龙颗粒
43 | 阿奇霉素片
--------------------------------------------------------------------------------
/3.KGchatbot/dict/food.txt:
--------------------------------------------------------------------------------
1 | 生菜
2 | 螃蟹
3 | 栗子(熟)
4 | 海蟹
5 | 白酒
6 | 小白菜
7 | 海螺
8 | 猪肉(瘦)
9 | 海蚌
10 | 空心菜
11 | 洋葱
12 | 鲫鱼
13 | 辣椒(青、尖)
14 | 猪肉(肥瘦)
15 | 鸡蛋
16 | 赤贝
17 | 圆白菜
18 | 南瓜
19 | 油菜
20 | 韭菜
21 | 山药
22 | 苦瓜
23 | 辣椒(红、尖、干)
24 | 海参(水浸)
25 | 海虾
26 | 啤酒
27 | 樱桃番茄
28 | 南瓜子仁
29 | 莲子
30 | 大豆
--------------------------------------------------------------------------------
/3.KGchatbot/dict/producer.txt:
--------------------------------------------------------------------------------
1 | 锦华药业诺氟沙星胶囊
2 | 海王阿奇霉素片
3 | 石药欧意枸橼酸喷托维林片
4 | 旺龙药业琥乙红霉素颗粒
5 | 全星制药注射用布美他尼
6 | 赤峰维康托西酸舒他西林胶囊
7 | 广西灵峰药业蛇胆川贝液
8 | 利君沙
9 | 武汉生物人血白蛋白
10 | 金峰制药盐酸氨溴索葡萄糖注
11 | 宜昌长江乳酸左氧氟沙星片
12 | 辅仁药业阿奇霉素片
13 | 康美药业红霉素肠溶片
14 | 双林生物人血白蛋白
15 | 六安华源制药盐酸氨溴索葡萄
16 | 北京中新制药琥乙红霉素片
17 | 西岳制药托西酸舒他西林胶囊
18 | 平光制药红霉素肠溶片
19 | 益佳清
20 | 云南白药云南花粉片
21 | 恒益药业琥乙红霉素颗粒
22 | 北京曙光药业红霉素肠溶片
23 | 苏肽生
24 | 宜昌长江阿奇霉素分散片
25 | 葵花药业得菲尔公司阿奇霉素
26 | 人血白蛋白
27 | 信谊布地奈德气雾剂
28 | 北京京丰制药集团诺氟沙星胶
29 | 奇莫欣
30 | 桂林南药布美他尼片
31 | 利民制药阿奇霉素胶囊
32 | 东信药业琥乙红霉素颗粒
33 | 佐今明百咳静糖浆
34 | 康美药业诺氟沙星胶囊
35 | 彼迪药业托西酸舒他西林胶囊
36 | 迪瑞制药琥乙红霉素颗粒
37 | 西藏甘露十一味金色丸
38 | 头孢氨苄甲氧苄啶片
39 | 万托林
40 | 达发新
41 | 东新药业百咳静糖浆
42 | 普德药业注射用盐酸溴己新
43 | 松泰斯
44 | 北京同仁堂百咳静糖浆
45 | 吉林东方制药枸橼酸喷托维林
46 | 萨兰欣
47 | 伏枝
48 | 中国大冢盐酸利多卡因注射液
49 | 新峰药业盐酸利多卡因注射液
50 | 锋替新
51 | 国瑞琥乙红霉素片
52 | 海斯制药注射用盐酸溴己新
53 | 华南药业红霉素肠溶片
54 | 福邦药业阿奇霉素胶囊
55 | 哈药总厂托西酸舒他西林胶囊
56 | 邦琪药业百咳静糖浆
57 | 汇仁药业阿奇霉素片
58 | 欣得生
59 | 北京永康药业盐酸利多卡因注
60 | 迪龙制药胸腺肽肠溶片
61 | 惠普森穿心莲内酯片
62 | 石药欧意红霉素肠溶片
63 | 金耀药业地塞米松磷酸钠注射
64 | 白云山医药诺氟沙星胶囊
65 | 兰花药业诺氟沙星胶囊
66 | 金路捷
67 | 罗欣药业注射用盐酸氨溴索
68 | 海南制药厂蛇胆川贝液
69 | 华瑞联合制药头孢氨苄甲氧苄
70 | 罗欣药业注射用盐酸头孢替安
71 | 一品红注射用盐酸溴己新
72 | 江苏长江阿奇霉素胶囊
73 | 澳利达奈德注射用盐酸溴己新
74 | 利君制药琥乙红霉素片
75 | 白云山天心地塞米松磷酸钠注
76 | 天津力生制药硫酸沙丁胺醇片
77 | 海鲸药业注射用盐酸溴己新
78 | 安诺药业阿奇霉素分散片
79 | 蓉生药业人血白蛋白
80 | 北京益民药业盐酸利多卡因注
81 | 东信药业蛇胆川贝液
82 | 白云山光华头孢氨苄甲氧苄啶
83 | 盛翔制药蛇胆川贝液
84 | 山西康宝人血白蛋白
85 | 全星制药注射用盐酸头孢替安
86 | 赣南制药喷托维林氯化铵糖浆
87 | 卫光生物人血白蛋白
88 | 恩经复
89 | 蜀阳药业人血白蛋白
90 | 圣大(张家口)头孢氨苄甲氧
91 | 瑞阳制药注射用磺苄西林钠
92 | 振兴氨茶碱片
93 | 东药阿奇霉素胶囊
94 | 大连天宇制药阿奇霉素胶囊
95 | 莎普爱思盐酸氨溴索葡萄糖注
96 | 皇隆制药注射用呋塞米
97 | 海斯制药盐酸利多卡因注射液
98 | 东信药业琥乙红霉素片
99 | 博康健制药盐酸氨溴索葡萄糖
100 | 广东卫伦人血白蛋白
101 | 国药国瑞注射用盐酸溴己新
102 | 傲群
103 | 天天乐药业蛇胆川贝液
104 | 遂成药业地塞米松磷酸钠注射
105 | 绿十字
106 | 纽兰药业小青龙颗粒
107 | 雄巴拉曲神水十一味金色丸
108 | 金诃藏药仁青芒觉
109 | 晶珠藏药蛇胆川贝液
110 | 首儿药厂小青龙颗粒
111 | 纽兰药业小青龙合剂
112 | 广春药业盐酸氨溴索葡萄糖注
113 | 永定制药百咳静糖浆
114 | 复仙安
115 | 希舒美
116 | 莱士人血白蛋白
117 | 金诃藏药大月晶丸
118 | 哈药总厂注射用磺苄西林钠
119 | 桑海制药喷托维林氯化铵糖浆
120 | 哈药总厂头孢氨苄甲氧苄啶片
121 | 济安堂蛇胆川贝液
122 | 维宏
123 | 明水药业头孢氨苄甲氧苄啶片
124 | 德源生物人血白蛋白
125 | 泰邦生物人血白蛋白
126 | 润阳药业盐酸氨溴索葡萄糖注
127 | 亮博
128 | 新亚注射用硫代硫酸钠
129 | 大连药业托西酸舒他西林胶囊
130 | 搏沃欣
131 | 注射用磺苄西林钠
132 | 涟水制药地塞米松磷酸钠注射
133 | 利君制药红霉素肠溶片
134 | 天津太平洋二羟丙茶碱片
135 | 注射用盐酸头孢替安
136 | 艾富西药业盐酸氨溴索葡萄糖
137 | 智同生物注射用盐酸溴己新
138 | 盐酸利多卡因注射液
139 | 浙江南洋药业阿奇霉素胶囊
140 | 云门药业头孢氨苄甲氧苄啶片
141 | 爱普森药业阿奇霉素片
142 | 欣匹特
143 | 石药欧意诺氟沙星胶囊
144 | 诺健
145 | 白云山医药琥乙红霉素片
146 | 丰原制药注射用盐酸溴己新
147 | 蛇胆川贝液
148 | 西藏甘露仁青芒觉
149 | 仁和堂硫酸沙丁胺醇片
150 | 卓峰地塞米松磷酸钠注射液
--------------------------------------------------------------------------------
/3.KGchatbot/dict/symptoms.txt:
--------------------------------------------------------------------------------
1 | 紫绀
2 | 肺阴虚
3 | 呼吸音减弱
4 | 喘息
5 | 哮鸣音
6 | 纤毛上皮细胞损伤脱落
7 | 咳嗽伴哮鸣音
8 | 心源性呼吸窘迫
9 | 出生后即有持续青紫
10 | 胸痛
11 | 胸闷
12 | 谵妄
13 | 感觉障碍
14 | 紧张性头痛
15 | 眼睛痒
16 | 急性面容
17 | 面色青紫
18 | 腱反射消失
19 | 湿啰音
20 | 闫鹏辉
21 | 鼻塞
22 | 痉挛性咳嗽
23 | 耸肩喘息
24 | 化学性支气管炎
25 | 毓卓
26 | 浅感觉减退或缺失
27 | 间歇性头晕
28 | 多发性神经炎
29 | 口唇青紫
30 | 惊厥
31 | 嗜酸性粒细胞增多
32 | 呼吸困难
33 | 咳铁锈色痰
34 | 吸气时有蝉鸣音
35 | 抽搐
36 | 乏力
37 | 咽部异物感
38 | 冬春季的慢性咳...
39 | 变应性咳嗽
40 | 咯血伴发热
41 | 呕吐
42 | 紧张性头晕
43 | 肺纹理增粗
44 | 目赤
45 | 头晕
46 | 间歇性头痛
47 | 恶心
48 | 发烧
49 | 胸闷憋气
50 | 气急
51 | 昏迷
52 | 低热
53 | 口唇和甲床略带青紫
--------------------------------------------------------------------------------
/3.KGchatbot/question_classifier.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # coding: utf-8
3 |
4 |
5 | import os
6 | import ahocorasick
7 |
8 |
9 | class QuestionClassifier:
10 | def __init__(self):
11 | cur_dir = '/'.join(os.path.abspath(__file__).split('/')[:-1])
12 |
13 | # 特征词路径
14 | self.disease_path = os.path.join(cur_dir, 'dict/disease.txt')
15 | self.department_path = os.path.join(cur_dir, 'dict/department.txt')
16 | self.check_path = os.path.join(cur_dir, 'dict/check.txt')
17 | self.drug_path = os.path.join(cur_dir, 'dict/drug.txt')
18 | self.food_path = os.path.join(cur_dir, 'dict/food.txt')
19 | self.producer_path = os.path.join(cur_dir, 'dict/producer.txt')
20 | self.symptom_path = os.path.join(cur_dir, 'dict/symptoms.txt')
21 | self.deny_path = os.path.join(cur_dir, 'dict/deny.txt')
22 |
23 | # 加载特征词
24 | self.disease_wds = [i.strip() for i in open(self.disease_path) if i.strip()]
25 | self.department_wds = [i.strip() for i in open(self.department_path) if i.strip()]
26 | self.check_wds = [i.strip() for i in open(self.check_path) if i.strip()]
27 | self.drug_wds = [i.strip() for i in open(self.drug_path) if i.strip()]
28 | self.food_wds = [i.strip() for i in open(self.food_path) if i.strip()]
29 | self.producer_wds = [i.strip() for i in open(self.producer_path) if i.strip()]
30 | self.symptom_wds = [i.strip() for i in open(self.symptom_path) if i.strip()]
31 |
32 | # 知识图谱中的实体,用来分析用户的问题中是否存在这些实体
33 | self.region_words = set(
34 | self.department_wds + self.disease_wds + self.check_wds
35 | + self.drug_wds + self.food_wds + self.producer_wds + self.symptom_wds)
36 |
37 | self.deny_words = [i.strip() for i in open(self.deny_path) if i.strip()]
38 |
39 | # 构造领域actree
40 | self.region_tree = self.build_actree(list(self.region_words))
41 |
42 | # 构建词典
43 | self.wdtype_dict = self.build_wdtype_dict()
44 |
45 | # 问句疑问词
46 | self.symptom_qwds = ['症状', '表征', '现象', '症候', '表现']
47 | self.cause_qwds = ['原因', '成因', '为什么', '怎么会', '怎样才', '咋样才', '怎样会', '如何会', '为啥', '为何', '如何才会', '怎么才会', '会导致',
48 | '会造成']
49 | self.acompany_qwds = ['并发症', '并发', '一起发生', '一并发生', '一起出现', '一并出现', '一同发生', '一同出现', '伴随发生', '伴随', '共现']
50 | self.food_qwds = ['饮食', '饮用', '吃', '食', '伙食', '膳食', '喝', '菜', '忌口', '补品', '保健品', '食谱', '菜谱', '食用', '食物', '补品']
51 | self.drug_qwds = ['药', '药品', '用药', '胶囊', '口服液', '炎片']
52 | self.prevent_qwds = ['预防', '防范', '抵制', '抵御', '防止', '躲避', '逃避', '避开', '免得', '逃开', '避开', '避掉', '躲开', '躲掉', '绕开',
53 | '怎样才能不', '怎么才能不', '咋样才能不', '咋才能不', '如何才能不',
54 | '怎样才不', '怎么才不', '咋样才不', '咋才不', '如何才不',
55 | '怎样才可以不', '怎么才可以不', '咋样才可以不', '咋才可以不', '如何可以不',
56 | '怎样才可不', '怎么才可不', '咋样才可不', '咋才可不', '如何可不']
57 | self.lasttime_qwds = ['周期', '多久', '多长时间', '多少时间', '几天', '几年', '多少天', '多少小时', '几个小时', '多少年']
58 | self.cureway_qwds = ['怎么治疗', '如何医治', '怎么医治', '怎么治', '怎么医', '如何治', '医治方式', '疗法', '咋治', '怎么办', '咋办', '咋治']
59 | self.cureprob_qwds = ['多大概率能治好', '多大几率能治好', '治好希望大么', '几率', '几成', '比例', '可能性', '能治', '可治', '可以治', '可以医']
60 | self.easyget_qwds = ['易感人群', '容易感染', '易发人群', '什么人', '哪些人', '感染', '染上', '得上']
61 | self.check_qwds = ['检查', '检查项目', '查出', '检查', '测出', '试出']
62 | self.belong_qwds = ['属于什么科', '属于', '什么科', '科室']
63 | self.cure_qwds = ['治疗什么', '治啥', '治疗啥', '医治啥', '治愈啥', '主治啥', '主治什么', '有什么用', '有何用', '用处', '用途',
64 | '有什么好处', '有什么益处', '有何益处', '用来', '用来做啥', '用来作甚', '需要', '要']
65 |
66 | print('model init finished ......')
67 |
68 | return
69 |
70 | '''分类主函数'''
71 |
72 | def classify(self, question):
73 | data = {}
74 | medical_dict = self.check_medical(question)
75 | if not medical_dict:
76 | return {}
77 | data['args'] = medical_dict
78 | # 收集问句当中所涉及到的实体类型
79 | types = []
80 | for type_ in medical_dict.values():
81 | types += type_
82 | question_type = 'others'
83 |
84 | question_types = []
85 |
86 | # 症状
87 | if self.check_words(self.symptom_qwds, question) and ('disease' in types):
88 | question_type = 'disease_symptom'
89 | question_types.append(question_type)
90 |
91 | if self.check_words(self.symptom_qwds, question) and ('symptom' in types):
92 | question_type = 'symptom_disease'
93 | question_types.append(question_type)
94 |
95 | # 原因
96 | if self.check_words(self.cause_qwds, question) and ('disease' in types):
97 | question_type = 'disease_cause'
98 | question_types.append(question_type)
99 | # 并发症
100 | if self.check_words(self.acompany_qwds, question) and ('disease' in types):
101 | question_type = 'disease_acompany'
102 | question_types.append(question_type)
103 |
104 | # 推荐食品
105 | if self.check_words(self.food_qwds, question) and 'disease' in types:
106 | deny_status = self.check_words(self.deny_words, question)
107 | if deny_status:
108 | question_type = 'disease_not_food'
109 | else:
110 | question_type = 'disease_do_food'
111 | question_types.append(question_type)
112 |
113 | # 已知食物找疾病
114 | if self.check_words(self.food_qwds + self.cure_qwds, question) and 'food' in types:
115 | deny_status = self.check_words(self.deny_words, question)
116 | if deny_status:
117 | question_type = 'food_not_disease'
118 | else:
119 | question_type = 'food_do_disease'
120 | question_types.append(question_type)
121 |
122 | # 推荐药品
123 | if self.check_words(self.drug_qwds, question) and 'disease' in types:
124 | question_type = 'disease_drug'
125 | question_types.append(question_type)
126 |
127 | # 药品治啥病
128 | if self.check_words(self.cure_qwds, question) and 'drug' in types:
129 | question_type = 'drug_disease'
130 | question_types.append(question_type)
131 |
132 | # 疾病接受检查项目
133 | if self.check_words(self.check_qwds, question) and 'disease' in types:
134 | question_type = 'disease_check'
135 | question_types.append(question_type)
136 |
137 | # 已知检查项目查相应疾病
138 | if self.check_words(self.check_qwds + self.cure_qwds, question) and 'check' in types:
139 | question_type = 'check_disease'
140 | question_types.append(question_type)
141 |
142 | # 症状防御
143 | if self.check_words(self.prevent_qwds, question) and 'disease' in types:
144 | question_type = 'disease_prevent'
145 | question_types.append(question_type)
146 |
147 | # 疾病医疗周期
148 | if self.check_words(self.lasttime_qwds, question) and 'disease' in types:
149 | question_type = 'disease_lasttime'
150 | question_types.append(question_type)
151 |
152 | # 疾病治疗方式
153 | if self.check_words(self.cureway_qwds, question) and 'disease' in types:
154 | question_type = 'disease_cureway'
155 | question_types.append(question_type)
156 |
157 | # 疾病治愈可能性
158 | if self.check_words(self.cureprob_qwds, question) and 'disease' in types:
159 | question_type = 'disease_cureprob'
160 | question_types.append(question_type)
161 |
162 | # 疾病易感染人群
163 | if self.check_words(self.easyget_qwds, question) and 'disease' in types:
164 | question_type = 'disease_easyget'
165 | question_types.append(question_type)
166 |
167 | # 若没有查到相关的外部查询信息,那么则将该疾病的描述信息返回
168 | if question_types == [] and 'disease' in types:
169 | question_types = ['disease_desc']
170 |
171 | # 若没有查到相关的外部查询信息,那么则将该疾病的描述信息返回
172 | if question_types == [] and 'symptom' in types:
173 | question_types = ['symptom_disease']
174 |
175 | # 将多个分类结果进行合并处理,组装成一个字典
176 | data['question_types'] = question_types
177 |
178 | return data
179 |
180 | '''构造词对应的类型'''
181 |
182 | def build_wdtype_dict(self):
183 | wd_dict = dict()
184 | for wd in self.region_words:
185 | wd_dict[wd] = []
186 | if wd in self.disease_wds:
187 | wd_dict[wd].append('disease')
188 | if wd in self.department_wds:
189 | wd_dict[wd].append('department')
190 | if wd in self.check_wds:
191 | wd_dict[wd].append('check')
192 | if wd in self.drug_wds:
193 | wd_dict[wd].append('drug')
194 | if wd in self.food_wds:
195 | wd_dict[wd].append('food')
196 | if wd in self.symptom_wds:
197 | wd_dict[wd].append('symptom')
198 | if wd in self.producer_wds:
199 | wd_dict[wd].append('producer')
200 | return wd_dict
201 |
202 | '''构造actree,加速过滤'''
203 |
204 | def build_actree(self, wordlist):
205 | actree = ahocorasick.Automaton()
206 | for index, word in enumerate(wordlist):
207 | actree.add_word(word, (index, word))
208 | actree.make_automaton()
209 | return actree
210 |
211 | '''问句过滤'''
212 |
213 | def check_medical(self, question):
214 | region_wds = []
215 | for i in self.region_tree.iter(question):
216 | wd = i[1][1]
217 | region_wds.append(wd)
218 | stop_wds = []
219 | for wd1 in region_wds:
220 | for wd2 in region_wds:
221 | if wd1 in wd2 and wd1 != wd2:
222 | stop_wds.append(wd1)
223 | final_wds = [i for i in region_wds if i not in stop_wds]
224 | final_dict = {i: self.wdtype_dict.get(i) for i in final_wds}
225 | print('final dict: ', final_dict)
226 | return final_dict
227 |
228 | '''基于特征词进行分类'''
229 |
230 | def check_words(self, wds, sent):
231 | for wd in wds:
232 | if wd in sent:
233 | return True
234 | return False
235 |
236 |
237 | if __name__ == '__main__':
238 | handler = QuestionClassifier()
239 | while 1:
240 | question = input('input an question:')
241 | data = handler.classify(question)
242 | print(data)
243 |
--------------------------------------------------------------------------------
/3.KGchatbot/question_parser.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # coding: utf-8
3 |
4 |
5 | class QuestionPaser:
6 |
7 | '''构建实体节点'''
8 | def build_entitydict(self, args):
9 | entity_dict = {}
10 | for arg, types in args.items():
11 | for type in types:
12 | if type not in entity_dict:
13 | entity_dict[type] = [arg]
14 | else:
15 | entity_dict[type].append(arg)
16 |
17 | return entity_dict
18 |
19 | '''解析主函数'''
20 | def parser_main(self, res_classify):
21 | args = res_classify['args']
22 | entity_dict = self.build_entitydict(args)
23 | question_types = res_classify['question_types']
24 | sqls = []
25 | for question_type in question_types:
26 | sql_ = {}
27 | sql_['question_type'] = question_type
28 | sql = []
29 | if question_type == 'disease_symptom':
30 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
31 |
32 | elif question_type == 'symptom_disease':
33 | sql = self.sql_transfer(question_type, entity_dict.get('symptom'))
34 |
35 | elif question_type == 'disease_cause':
36 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
37 |
38 | elif question_type == 'disease_acompany':
39 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
40 |
41 | elif question_type == 'disease_not_food':
42 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
43 |
44 | elif question_type == 'disease_do_food':
45 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
46 |
47 | elif question_type == 'food_not_disease':
48 | sql = self.sql_transfer(question_type, entity_dict.get('food'))
49 |
50 | elif question_type == 'food_do_disease':
51 | sql = self.sql_transfer(question_type, entity_dict.get('food'))
52 |
53 | elif question_type == 'disease_drug':
54 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
55 |
56 | elif question_type == 'drug_disease':
57 | sql = self.sql_transfer(question_type, entity_dict.get('drug'))
58 |
59 | elif question_type == 'disease_check':
60 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
61 |
62 | elif question_type == 'check_disease':
63 | sql = self.sql_transfer(question_type, entity_dict.get('check'))
64 |
65 | elif question_type == 'disease_prevent':
66 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
67 |
68 | elif question_type == 'disease_lasttime':
69 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
70 |
71 | elif question_type == 'disease_cureway':
72 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
73 |
74 | elif question_type == 'disease_cureprob':
75 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
76 |
77 | elif question_type == 'disease_easyget':
78 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
79 |
80 | elif question_type == 'disease_desc':
81 | sql = self.sql_transfer(question_type, entity_dict.get('disease'))
82 |
83 | if sql:
84 | sql_['sql'] = sql
85 |
86 | sqls.append(sql_)
87 |
88 | return sqls
89 |
90 | '''针对不同的问题,分开进行处理'''
91 | def sql_transfer(self, question_type, entities):
92 | if not entities:
93 | return []
94 |
95 | # 查询语句
96 | sql = []
97 | # 查询疾病的原因
98 | if question_type == 'disease_cause':
99 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.cause".format(i) for i in entities]
100 |
101 | # 查询疾病的防御措施
102 | elif question_type == 'disease_prevent':
103 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.prevent".format(i) for i in entities]
104 |
105 | # 查询疾病的持续时间
106 | elif question_type == 'disease_lasttime':
107 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.cure_lasttime".format(i) for i in entities]
108 |
109 | # 查询疾病的治愈概率
110 | elif question_type == 'disease_cureprob':
111 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.cured_prob".format(i) for i in entities]
112 |
113 | # 查询疾病的治疗方式
114 | elif question_type == 'disease_cureway':
115 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.cure_way".format(i) for i in entities]
116 |
117 | # 查询疾病的易发人群
118 | elif question_type == 'disease_easyget':
119 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.easy_get".format(i) for i in entities]
120 |
121 | # 查询疾病的相关介绍
122 | elif question_type == 'disease_desc':
123 | sql = ["MATCH (m:Disease) where m.name = '{0}' return m.name, m.desc".format(i) for i in entities]
124 |
125 | # 查询疾病有哪些症状
126 | elif question_type == 'disease_symptom':
127 | sql = ["MATCH (m:Disease)-[r:has_symptom]->(n:Symptom) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
128 |
129 | # 查询症状会导致哪些疾病
130 | elif question_type == 'symptom_disease':
131 | sql = ["MATCH (m:Disease)-[r:has_symptom]->(n:Symptom) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
132 |
133 | # 查询疾病的并发症
134 | elif question_type == 'disease_acompany':
135 | sql1 = ["MATCH (m:Disease)-[r:acompany_with]->(n:Disease) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
136 | sql2 = ["MATCH (m:Disease)-[r:acompany_with]->(n:Disease) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
137 | sql = sql1 + sql2
138 | # 查询疾病的忌口
139 | elif question_type == 'disease_not_food':
140 | sql = ["MATCH (m:Disease)-[r:no_eat]->(n:Food) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
141 |
142 | # 查询疾病建议吃的东西
143 | elif question_type == 'disease_do_food':
144 | sql1 = ["MATCH (m:Disease)-[r:do_eat]->(n:Food) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
145 | sql2 = ["MATCH (m:Disease)-[r:recommand_eat]->(n:Food) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
146 | sql = sql1 + sql2
147 |
148 | # 已知忌口查疾病
149 | elif question_type == 'food_not_disease':
150 | sql = ["MATCH (m:Disease)-[r:no_eat]->(n:Food) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
151 |
152 | # 已知推荐查疾病
153 | elif question_type == 'food_do_disease':
154 | sql1 = ["MATCH (m:Disease)-[r:do_eat]->(n:Food) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
155 | sql2 = ["MATCH (m:Disease)-[r:recommand_eat]->(n:Food) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
156 | sql = sql1 + sql2
157 |
158 | # 查询疾病常用药品-药品别名记得扩充
159 | elif question_type == 'disease_drug':
160 | sql1 = ["MATCH (m:Disease)-[r:common_drug]->(n:Drug) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
161 | sql2 = ["MATCH (m:Disease)-[r:recommand_drug]->(n:Drug) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
162 | sql = sql1 + sql2
163 |
164 | # 已知药品查询能够治疗的疾病
165 | elif question_type == 'drug_disease':
166 | sql1 = ["MATCH (m:Disease)-[r:common_drug]->(n:Drug) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
167 | sql2 = ["MATCH (m:Disease)-[r:recommand_drug]->(n:Drug) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
168 | sql = sql1 + sql2
169 | # 查询疾病应该进行的检查
170 | elif question_type == 'disease_check':
171 | sql = ["MATCH (m:Disease)-[r:need_check]->(n:Check) where m.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
172 |
173 | # 已知检查查询疾病
174 | elif question_type == 'check_disease':
175 | sql = ["MATCH (m:Disease)-[r:need_check]->(n:Check) where n.name = '{0}' return m.name, r.name, n.name".format(i) for i in entities]
176 |
177 | return sql
178 |
179 |
180 | if __name__ == '__main__':
181 | handler = QuestionPaser()
182 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### 基于知识图谱实现的知识问答系统
2 |
3 |
4 |
5 | 本项目主要目的是从零开始,一步步构建基于知识图谱的知识问答系统。
6 |
7 |
8 |
9 | #### 文章列表:
10 |
11 | * [知识图谱系列(一):如何构建一个简单的知识图谱](https://blog.csdn.net/jesseyule/article/details/110453709)
12 | * [知识图谱系列(二):构建一个医疗知识图谱](https://blog.csdn.net/jesseyule/article/details/110477728)
13 | * [知识图谱系列(三):基于医疗知识图谱实现简单的对话系统](https://blog.csdn.net/jesseyule/article/details/110493732)
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------