待对接的数据雏形
眼科数据库字段对照.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 这类的字段区分就足以。
- 业务场景上的唯一数据,请特别标注说明。