待对接的数据雏形
眼科数据库字段对照.xlsx
待对接的数据分类

医院提供的数据列表明细
- 患者基本信息登记表
| 属性 |
数据类型 |
|
| 患者姓名 |
varchar(50) |
|
| 出生日期 |
datetime |
|
| 性别 |
varchar(50) |
|
| 民族 |
varchar(50) |
|
| 最高教育程度 |
|
|
| 职业类型 |
varchar(50) |
|
| 证件类型 |
varchar(50) |
|
| 证件号码 |
varchar(50) |
|
| 联系电话 |
varchar(50) |
|
| 居住地 |
varchar(200) |
|
| 籍贯 |
varchar(50) |
|
|
|
- 患者就诊信息登记表
| 就诊类型 |
该表就是住院类型 |
nvarchar(50) |
| 门/急诊号/住院号 |
VisitNumber |
nvarchar(50) |
| 就诊日期/入院日期 |
AdmissionDateTime |
datetime |
| 出院日期 |
DischargeDateTime |
datetime |
| 就诊时年龄 |
PatientAge |
numeric(18, 2) |
| 就诊科室/入院科室 |
AdmissionDeptName AdmissionDeptCode入院科室编码 |
nvarchar(50) |
| 出院科室 |
DeptName |
nvarchar(100) |
| 就诊医生/主管医生 |
DirectorDoctorName |
nvarchar(50) |
| 医保状况 |
MedicareCategoryCode |
nvarchar(50) |
- 诊断信息表
| 诊断名称 |
DiagCategoryName=入院诊断,DiagName是诊断内容 |
nvarchar(100) |
| 侧别 |
下周开始在电子病历系统里添加,老数据没有 |
|
| 诊断时间 |
DiagnoseDateTime |
datetime |
| AMD分型 |
下周开始在电子病历系统里添加,老数据没有 |
|
| nAMD亚型 |
下周开始在电子病历系统里添加,老数据没有 |
- 病史记录表
| 就诊时间 |
取ADT_IP_Encounter的AdmissionDateTime |
datetime |
| 现病史 |
SectionName=现病史章节 |
nvarchar(max) |
| 主诉 |
SectionName=主诉章节 |
nvarchar(max) |
| 侧别 |
|
nvarchar(max) |
| 发生时间距今 |
|
nvarchar(max) |
| 时间单位 |
|
nvarchar(max) |
| 住院号 |
FeedValue |
nvarchar(50) |
- 患者用药史
| 属性 |
字段名 |
类型 |
| 药物名称 |
DrugName |
varchar(100) |
| 侧别 |
无 |
|
| 剂量 |
Dosage |
decimal(18,2) |
| 剂量单位 |
DosageUnit |
varchar(50) |
| 处方时间 |
|
|
| 给药频率 |
FrequencyName |
varchar(50) |
| 给药途径 |
RouteName |
varchar(50) |
## 患者基本信息登记表CREATE TABLE `patient` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '患者姓名', `birthday` date DEFAULT NULL COMMENT '生日', `gender` tinyint unsigned DEFAULT NULL COMMENT '性别', `nationality` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名族', `edu_lv` tinyint DEFAULT NULL COMMENT '受教育程度', `career` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '职业类别', `id_card_no` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '身份证号码', `contact_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '联系电话', `residential_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '居住地址', `origin_place` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '籍贯', `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者基本信息登记表';## 患者就诊登记信息表CREATE TABLE `patient_visit_registration` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) NOT NULL COMMENT '患者 code', `visit_number` varchar(100) NOT NULL COMMENT '就诊登记流水号', `visit_type` tinyint unsigned NOT NULL COMMENT '就诊类型 1 - 门诊; 2 - 急诊', `visited_at` datetime(6) NOT NULL COMMENT '就诊日期', `current_age` tinyint unsigned NOT NULL COMMENT '就诊登记时年龄', `department_id` varchar(255) NOT NULL COMMENT '就诊科室', `depertment_name` varchar(255) NOT NULL COMMENT '科室名称', `doctor_id` varchar(255) NOT NULL COMMENT ' 医生 id', `doctor_name` varchar(255) NOT NULL COMMENT '医生姓名', `medicare_category` varchar(255) NOT NULL COMMENT '1:自费;2:本院公费5%退休;3:本院公费10%在职;4:干保在职;5:干保退休;6:干保大病;7:干保门诊;8:干保伤残;13:医保工伤;9:医保在职;10:医保退休;12:医保大病;12:医保门急诊;14:医保伤残;20:农合医保;16:小城镇医保大病;17:小城镇医保门诊;18:小城镇医保退休;19:小城镇医保在职;21:儿童医保;22:大学医保;23:帮困对象;24:保险记帐;25:本院全公费', `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者就诊登记信息表';## 患者登记证件列表CREATE TABLE `patient_cert` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) NOT NULL COMMENT '对应 patient 表 ID', `cert_no` varchar(100) DEFAULT NULL COMMENT '证件号码', `cert_type` tinyint DEFAULT NULL COMMENT '证件类型: 1:居民身份证 2:士兵证 3:军官证 4:警官证 5:港澳台居民通行证 6:护照 9:其他', `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, `deleted_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者登记证件列表';## 患者诊断信息CREATE TABLE `patient_diagnosis_record` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) unsigned NOT NULL, `visit_number` varchar(255) NOT NULL COMMENT '就诊登记 ID', `diagnosis_result` varchar(1000) NOT NULL COMMENT '诊断结果', `diagnosis_detail` text COMMENT '诊断明细', `doctor_id` bigint unsigned DEFAULT NULL, `doctor_name` varchar(255) DEFAULT NULL, `department_name` varchar(255) DEFAULT NULL, `diagnosed_at` datetime(6) NOT NULL COMMENT '诊断日期', `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者诊断信息';## 患者住院记录信息表CREATE TABLE `patient_hospitalization_record` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) NOT NULL COMMENT '患者 ID', `visit_number` varchar(255) NOT NULL COMMENT '就诊登记号', `hospitalized_at` datetime(6) NOT NULL COMMENT '入院登记办理系统时间', `leaved_at` datetime(6) NOT NULL COMMENT '出院登记办理系统时间', `in_department_id` bigint unsigned DEFAULT NULL COMMENT '入院登记办理登记的归属科室', `in_department_name` varchar(255) DEFAULT NULL COMMENT '入院登记办理登记的归属科室名称', `leave_department_id` bigint unsigned DEFAULT NULL COMMENT '出院登记办理登记的归属科室', `leave_department_name` varchar(255) DEFAULT NULL, `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者住院记录信息表';## 患者病史信息CREATE TABLE `patient_medical_history` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) NOT NULL COMMENT '患者 ID', `visit_number` varchar(255) NOT NULL, `section_name` varchar(1000) DEFAULT NULL COMMENT '病史章节名称', `field_name` varchar(255) DEFAULT NULL COMMENT '字段名称', `field_value` text COMMENT '字段内容', `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者病史信息';CREATE TABLE `patient_hosp_medical_history`( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) NOT NULL COMMENT '患者 ID', `visit_number` varchar(255) NOT NULL, `section_name` varchar(1000) DEFAULT NULL COMMENT '病史章节名称', `field_name` varchar(255) DEFAULT NULL COMMENT '字段名称', `field_value` text COMMENT '字段内容', `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者病史信息';## 患者用药史信息CREATE TABLE `patient_medication_history` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `patient_code` varchar(255) unsigned NOT NULL, `visit_number` varchar(100) NOT NULL, `drug_name` varchar(255) DEFAULT NULL COMMENT '药名', `dosage` decimal(18,2) DEFAULT NULL COMMENT '剂量', `dosage_unit` varchar(50) DEFAULT NULL COMMENT '剂量单位', `prescribed_at` datetime(6) DEFAULT NULL COMMENT '处方开具时间', `frequency` varchar(255) DEFAULT NULL COMMENT '给药频率', `route` varchar(255) DEFAULT NULL COMMENT '给药途径', `started_at` datetime(6) DEFAULT NULL '开始用药时间', `end_at` datetime(6) DEFAULT NULL '结束用药时间', `created_at` datetime(6) DEFAULT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者用药史信息';
- 患者信息对接上传 json
{ "patients": [ { "patient_name": "zhangsan", "birthday": "1933-01-01", "gender": "男", "nationality": "汉", "edu_lv": "", "career": 1, "id_card_no": "xxxxxxxxxxx", "passport_no": "xxxxxxxxx", "contact_phone": "5522114", "residential_address": "xxx", "origin_place": "aa" }, { "patient_name": "lisi", "birthday": "1933-01-01", "gender": "男", "nationality": "汉", "edu_lv": "", "career": 1, "id_card_no": "xxxxxxxxxxx", "passport_no": "xxxxxxxxx", "contact_phone": "5522114", "residential_address": "xxx", "origin_place": "aa" }, { "patient_name": "wangwu", "birthday": "1933-01-01", "gender": "男", "nationality": "汉", "edu_lv": "", "career": 1, "id_card_no": "xxxxxxxxxxx", "passport_no": "xxxxxxxxx", "contact_phone": "5522114", "residential_address": "xxx", "origin_place": "aa" } ]}
| patient_name |
患者姓名 |
|
| birthday |
生日 |
|
| gender |
性别 |
|
| nationality |
名族 |
|
| edu_lv |
教育程度 |
|
| career |
职业 |
|
| id_card_no |
身份证 |
|
| passport_no |
护照 |
|
| contact_phone |
联系电话 |
|
| residential_address |
居住地址 |
|
| origin_place |
籍贯 |
- 就诊登记信息
{ "visit_info":{ "visit_number":"xxx", "patient_name":"xxx", "visit_type":1, "visited_at":"2021-01-01 12:30:00.123465", "medicare_category":1, "doctor_name":"xx", "doctor_id":"xxx", "department_name":"xxx", "department_id":"xx", "birthday":"" }}
| visit_number |
就诊登记号 |
|
| patient_name |
患者姓名 |
|
| visit_type |
就诊类型 1 - 门诊 2 - 急诊 |
|
| visited_at |
就诊登记时间/就诊时间 |
|
| medicare_category |
医保类型 |
|
| doctor_name |
医生 |
|
| doctor_id |
医生id |
|
| department_name |
科室名称 |
|
| department_id |
科室id |
|
| birthday |
生日 |
- 住院信息
{ "hospital_record":{ "visit_number":"xxx", "patient_name":"xxx", "hospitalized_at":"2021-01-01 12:30:00.123465", "leaved_at":1, "doctor_name":"xx", "doctor_id":"xxx", "in_department_name":"xxx", "in_department_id":"xx", "leave_department_id":"xxx", "leave_department_name":"xxx" }}
| visit_number |
就诊登记号 |
|
| patient_name |
患者姓名 |
|
| hospitalized_at |
入院时间 |
|
| leaved_at |
出院时间 |
|
| doctor_name |
医生 |
|
| doctor_id |
|
|
| in_department_name |
入院科室 |
|
| in_department_id |
|
|
| leave_department_id |
出院科室 |
|
| leave_department_name |
|
- 诊断信息
{ "diagnosis_record":{ "visit_number":"xxx", "patient_name":"xxx", "diagnosed_at":"2021-01-01 12:30:00.123465", "diagnosis_result":"xxxxxxxxxxxxxxx", "doctor_name":"xx", "doctor_id":"xxx", "amd_typing":"xxx", "namd_subtype":"xx" }}
| visit_number |
就诊登记号 |
|
| patient_name |
患者姓名 |
|
| diagnosed_at |
诊断日期 |
|
| diagnosis_result |
诊断结果 |
|
| doctor_name |
医生 |
|
| doctor_id |
|
|
| amd_typing |
amd 亚型 |
|
| namd_subtype |
nAMD分型 |
- 病史信息
{ "medical_history":{ "visit_number":"xxx", "patient_name":"xxx", "section_name":"xxx", "field_name":"xxxxxxxxxxxxxxx", "field_value":"xx" }}
| visit_number |
就诊登记号 |
|
| patient_name |
患者姓名 |
|
| section_name |
章节名称 |
|
| field_name |
字段名 |
|
| field_value |
字段值 |
- 用药史信息
{ "medical_history":{ "visit_number":"xxx", "patient_name":"xxx", "drug_name":"xxx", "side":"xxxxxxxxxxxxxxx", "dosage":"xx", "dosage_unit":"xxx", "prescribed_at":"2021-01-01 09:02:30:447788", "frequency":"xxx", "route":"xxx" }}
| visit_number |
就诊登记号 |
|
| patient_name |
患者姓名 |
|
| drug_name |
药物名称 |
|
| side |
侧别 |
|
| dosage |
用量 |
|
| dosage_unit |
单位 |
|
| prescribed_at |
处方开具日期 |
|
| frequency |
给药频率 |
|
| route |
给药途径 |
参与者实体: 医生、患者
产生信息: 患者基本信息、就诊登记信息(就诊前的登记行为留存)、诊断信息(医生诊断)、用药信息(医生给出方案,患者适用方案)、病史信息(诊断的分支留存)、住院记录(患者住院期间的信息留存)
关系:
- 患者就诊登记产生就诊登记信息,同时产生患者基本信息
- 医生诊断患者病情,产生诊断信息,同时给出用药治疗方案也就是用药史,也同时生成患者病历,结合问询最终也就是病史信息
- 患者做辅助检查,产生辅助检查信息
- 患者住院/出院,产生住院记录,住院期间流转治疗,产生流转记录
疑问?
- 这些对接的信息作用是什么,仅仅只需要将 XML 节点读取并映射,然后写入数据即可。不需要关心业务逻辑?还是存在额外的业务逻辑,将这些信息用于后续的业务需求中去。如是,请说明涉及到这些数据的业务应用的每一个场景。如否,则忽略一下问题。
- 患者信息登记是否要求具有唯一性。何为唯一性?即A患者使用身份证已经在数据库中存在记录,A患者再次登记时,不需要插入 patient 表。多种证件登记时是否也要保证唯一性?
- 患者病史,病史的结构,没有任何有用信息,只有 field及 value。类似于一个 K V 数据库。如需更合理的结构,需要对应的业务场景。
- 数据是一家医院还是多家医院。如果是一家医院,是否支持多家医院的设计。是否仅仅在数据库加入类似 hospital_id 这类的字段区分就足以。
- 业务场景上的唯一数据,请特别标注说明。