【项目】分诊知识库系统设计

分诊知识库的系统设计

设计方案:

数据库设计

针对疾病、药品、急救和异常分诊案例,分别设计对应的数据表以及关联的数据表。

img

img

Elasticsearch索引设计

Elasticsearch中,为疾病、药品和急救建立一个统一的索引,方便进行搜索。

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
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
{
"index_patterns": [
"local-knowledge-*",
"dev-knowledge-*",
"sit-knowledge-*",
"uat-knowledge-*",
"prod-knowledge-*"
],
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1,
"analysis": {
"filter": {
"len": {
"type": "length",
"min": 2
}
},
"analyzer": {
"custom_ik_max": {
"tokenizer": "ik_max_word",
"filter": [
"len"
]
}
}
}
},
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"commonName": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"infoType": {
"type": "integer"
},
"introduction": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"typeId": {
"type": "long"
},
"typeName": {
"type": "keyword"
},
"relatedDepartments": {
"type": "nested",
"properties": {
"departmentId": {
"type": "long"
},
"departmentName": {
"type": "keyword"
}
}
},
"relatedPositions": {
"type": "nested",
"properties": {
"positionId": {
"type": "long"
},
"positionName": {
"type": "keyword"
}
}
},
"fdaId": {
"type": "long"
},
"fdaName": {
"type": "keyword"
},
"morbidityId": {
"type": "long"
},
"morbidityName": {
"type": "keyword"
},
"symptomDescription": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"checkDescription": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"treatment": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"prevention": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"concurrent": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"diagnosis": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"adverseReaction": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"component": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"contraindication": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"dosage": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"indication": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"content": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"note": {
"type": "text",
"analyzer": "custom_ik_max",
"search_analyzer": "ik_smart"
},
"crtId": {
"type": "long"
},
"crtName": {
"type": "text"
},
"crtTime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
},
"updId": {
"type": "long"
},
"updName": {
"type": "text"
},
"updTime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}

应用程序设计

为疾病、药品、急救和异常分诊案例提供基础数据管理能力,API如下

  1. 疾病模块API接口
API名称 请求方式 接口路径 请求参数 返回结果 备注
获取疾病列表 GET /diseases - 疾病列表 分页获取所有疾病信息
获取疾病详情 GET /diseases/{id} id (疾病ID) 疾病详情 根据疾病ID获取疾病详细信息
创建疾病 POST /diseases 疾病信息 创建成功的疾病 创建新的疾病
更新疾病 PUT /diseases/{id} id (疾病ID) 更新成功的疾病 根据疾病ID更新疾病信息
删除疾病 DELETE /diseases/{id} id (疾病ID) 删除成功的疾病 根据疾病ID删除疾病
  1. 药品模块API接口
API名称 请求方式 接口路径 请求参数 返回结果 备注
获取药品列表 GET /drugs - 药品列表 分页获取所有药品信息
获取药品详情 GET /drugs/{id} id (药品ID) 药品详情 根据药品ID获取药品详细信息
创建药品 POST /drugs 药品信息 创建成功的药品 创建新的药品
更新药品 PUT /drugs/{id} id (药品ID) 更新成功的药品 根据药品ID更新药品信息
删除药品 DELETE /drugs/{id} id (药品ID) 删除成功的药品 根据药品ID删除药品
  1. 急救模块API接口
API名称 请求方式 接口路径 请求参数 返回结果 备注
获取急救信息列表 GET /emergencies - 急救信息列表 分页获取所有急救信息
获取急救信息详情 GET /emergencies/{id} id (急救信息ID) 急救信息详情 根据急救信息ID获取急救信息详细信息
创建急救信息 POST /emergencies 急救信息 创建成功的急救信息 创建新的急救信息
更新急救信息 PUT /emergencies/{id} id (急救信息ID) 更新成功的急救信息 根据急救信息ID更新急救信息
删除急救信息 DELETE /emergencies/{id} id (急救信息ID) 删除成功的急救信息 根据急救信息ID删除急救信息
  1. 异常分诊案例模块API接口
API名称 请求方式 接口路径 请求参数 返回结果 备注
获取异常分诊案例列表 GET /case - 异常分诊案例列表 分页获取所有异常分诊案例信息
获取异常分诊案例详情 GET /case/{id} id (案例ID) 异常分诊案例详情 根据案例ID获取异常分诊案例详细信息
创建异常分诊案例 POST /case 异常分诊案例信息 创建成功的异常分诊案例 创建新的异常分诊案例
更新异常分诊案例 PUT /case/{id} id (案例ID) 更新成功的异常分诊案例 根据案例ID更新异常分诊案例信息
删除异常分诊案例 DELETE /case/{id} id (案例ID) 删除成功的异常分诊案例 根据案例ID删除异常分诊案例
获取案例关联疾病列表 GET /case/{id}/diseases id (案例ID) 关联疾病列表 根据案例ID获取关联的疾病列表
获取案例关联科室列表 GET /case/{id}/departments id (案例ID) 关联科室列表

安全性设计

针对敏感数据,例如药品名称、疾病名称和病人隐私信息等,需要实现访问控制和安全保护措施。基于角色和权限的访问控制,以及对数据的加密和解密保护。