待对接的数据雏形

眼科数据库字段对照.xlsx

待对接的数据分类

画板

医院提供的数据列表明细

  1. 患者基本信息登记表
属性 数据类型
患者姓名 varchar(50)
出生日期 datetime
性别 varchar(50)
民族 varchar(50)
最高教育程度
职业类型 varchar(50)
证件类型 varchar(50)
证件号码 varchar(50)
联系电话 varchar(50)
居住地 varchar(200)
籍贯 varchar(50)
  1. 患者就诊信息登记表
就诊类型 该表就是住院类型 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)
  1. 诊断信息表
诊断名称 DiagCategoryName=入院诊断,DiagName是诊断内容 nvarchar(100)
侧别 下周开始在电子病历系统里添加,老数据没有
诊断时间 DiagnoseDateTime datetime
AMD分型 下周开始在电子病历系统里添加,老数据没有
nAMD亚型 下周开始在电子病历系统里添加,老数据没有
  1. 病史记录表
就诊时间 取ADT_IP_Encounter的AdmissionDateTime datetime
现病史 SectionName=现病史章节 nvarchar(max)
主诉 SectionName=主诉章节 nvarchar(max)
侧别 nvarchar(max)
发生时间距今 nvarchar(max)
时间单位 nvarchar(max)
住院号 FeedValue nvarchar(50)
  1. 患者用药史
属性 字段名 类型
药物名称 DrugName varchar(100)
侧别
剂量 Dosage decimal(18,2)
剂量单位 DosageUnit varchar(50)
处方时间
给药频率 FrequencyName varchar(50)
给药途径 RouteName varchar(50)
  1. ## 患者基本信息登记表
  2. CREATE TABLE `patient` (
  3. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  4. `patient_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '患者姓名',
  5. `birthday` date DEFAULT NULL COMMENT '生日',
  6. `gender` tinyint unsigned DEFAULT NULL COMMENT '性别',
  7. `nationality` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名族',
  8. `edu_lv` tinyint DEFAULT NULL COMMENT '受教育程度',
  9. `career` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '职业类别',
  10. `id_card_no` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '身份证号码',
  11. `contact_phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '联系电话',
  12. `residential_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '居住地址',
  13. `origin_place` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '籍贯',
  14. `created_at` datetime DEFAULT NULL,
  15. `updated_at` datetime DEFAULT NULL,
  16. PRIMARY KEY (`id`)
  17. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者基本信息登记表';
  18. ## 患者就诊登记信息表
  19. CREATE TABLE `patient_visit_registration` (
  20. `id` int unsigned NOT NULL AUTO_INCREMENT,
  21. `patient_code` varchar(255) NOT NULL COMMENT '患者 code',
  22. `visit_number` varchar(100) NOT NULL COMMENT '就诊登记流水号',
  23. `visit_type` tinyint unsigned NOT NULL COMMENT '就诊类型 1 - 门诊; 2 - 急诊',
  24. `visited_at` datetime(6) NOT NULL COMMENT '就诊日期',
  25. `current_age` tinyint unsigned NOT NULL COMMENT '就诊登记时年龄',
  26. `department_id` varchar(255) NOT NULL COMMENT '就诊科室',
  27. `depertment_name` varchar(255) NOT NULL COMMENT '科室名称',
  28. `doctor_id` varchar(255) NOT NULL COMMENT ' 医生 id',
  29. `doctor_name` varchar(255) NOT NULL COMMENT '医生姓名',
  30. `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:本院全公费',
  31. `created_at` datetime(6) DEFAULT NULL,
  32. `updated_at` datetime(6) DEFAULT NULL,
  33. PRIMARY KEY (`id`)
  34. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者就诊登记信息表';
  35. ## 患者登记证件列表
  36. CREATE TABLE `patient_cert` (
  37. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  38. `patient_code` varchar(255) NOT NULL COMMENT '对应 patient 表 ID',
  39. `cert_no` varchar(100) DEFAULT NULL COMMENT '证件号码',
  40. `cert_type` tinyint DEFAULT NULL COMMENT '证件类型: 1:居民身份证 2:士兵证 3:军官证 4:警官证 5:港澳台居民通行证 6:护照 9:其他',
  41. `created_at` datetime(6) DEFAULT NULL,
  42. `updated_at` datetime(6) DEFAULT NULL,
  43. `deleted_at` datetime(6) DEFAULT NULL,
  44. PRIMARY KEY (`id`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者登记证件列表';
  46. ## 患者诊断信息
  47. CREATE TABLE `patient_diagnosis_record` (
  48. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  49. `patient_code` varchar(255) unsigned NOT NULL,
  50. `visit_number` varchar(255) NOT NULL COMMENT '就诊登记 ID',
  51. `diagnosis_result` varchar(1000) NOT NULL COMMENT '诊断结果',
  52. `diagnosis_detail` text COMMENT '诊断明细',
  53. `doctor_id` bigint unsigned DEFAULT NULL,
  54. `doctor_name` varchar(255) DEFAULT NULL,
  55. `department_name` varchar(255) DEFAULT NULL,
  56. `diagnosed_at` datetime(6) NOT NULL COMMENT '诊断日期',
  57. `created_at` datetime(6) DEFAULT NULL,
  58. `updated_at` datetime(6) DEFAULT NULL,
  59. PRIMARY KEY (`id`)
  60. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者诊断信息';
  61. ## 患者住院记录信息表
  62. CREATE TABLE `patient_hospitalization_record` (
  63. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  64. `patient_code` varchar(255) NOT NULL COMMENT '患者 ID',
  65. `visit_number` varchar(255) NOT NULL COMMENT '就诊登记号',
  66. `hospitalized_at` datetime(6) NOT NULL COMMENT '入院登记办理系统时间',
  67. `leaved_at` datetime(6) NOT NULL COMMENT '出院登记办理系统时间',
  68. `in_department_id` bigint unsigned DEFAULT NULL COMMENT '入院登记办理登记的归属科室',
  69. `in_department_name` varchar(255) DEFAULT NULL COMMENT '入院登记办理登记的归属科室名称',
  70. `leave_department_id` bigint unsigned DEFAULT NULL COMMENT '出院登记办理登记的归属科室',
  71. `leave_department_name` varchar(255) DEFAULT NULL,
  72. `created_at` datetime(6) DEFAULT NULL,
  73. `updated_at` datetime(6) DEFAULT NULL,
  74. PRIMARY KEY (`id`)
  75. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者住院记录信息表';
  76. ## 患者病史信息
  77. CREATE TABLE `patient_medical_history` (
  78. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  79. `patient_code` varchar(255) NOT NULL COMMENT '患者 ID',
  80. `visit_number` varchar(255) NOT NULL,
  81. `section_name` varchar(1000) DEFAULT NULL COMMENT '病史章节名称',
  82. `field_name` varchar(255) DEFAULT NULL COMMENT '字段名称',
  83. `field_value` text COMMENT '字段内容',
  84. `created_at` datetime(6) DEFAULT NULL,
  85. `updated_at` datetime(6) DEFAULT NULL,
  86. PRIMARY KEY (`id`)
  87. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者病史信息';
  88. CREATE TABLE `patient_hosp_medical_history`(
  89. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  90. `patient_code` varchar(255) NOT NULL COMMENT '患者 ID',
  91. `visit_number` varchar(255) NOT NULL,
  92. `section_name` varchar(1000) DEFAULT NULL COMMENT '病史章节名称',
  93. `field_name` varchar(255) DEFAULT NULL COMMENT '字段名称',
  94. `field_value` text COMMENT '字段内容',
  95. `created_at` datetime(6) DEFAULT NULL,
  96. `updated_at` datetime(6) DEFAULT NULL,
  97. PRIMARY KEY (`id`)
  98. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者病史信息';
  99. ## 患者用药史信息
  100. CREATE TABLE `patient_medication_history` (
  101. `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  102. `patient_code` varchar(255) unsigned NOT NULL,
  103. `visit_number` varchar(100) NOT NULL,
  104. `drug_name` varchar(255) DEFAULT NULL COMMENT '药名',
  105. `dosage` decimal(18,2) DEFAULT NULL COMMENT '剂量',
  106. `dosage_unit` varchar(50) DEFAULT NULL COMMENT '剂量单位',
  107. `prescribed_at` datetime(6) DEFAULT NULL COMMENT '处方开具时间',
  108. `frequency` varchar(255) DEFAULT NULL COMMENT '给药频率',
  109. `route` varchar(255) DEFAULT NULL COMMENT '给药途径',
  110. `started_at` datetime(6) DEFAULT NULL '开始用药时间',
  111. `end_at` datetime(6) DEFAULT NULL '结束用药时间',
  112. `created_at` datetime(6) DEFAULT NULL,
  113. `updated_at` datetime(6) DEFAULT NULL,
  114. PRIMARY KEY (`id`)
  115. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='患者用药史信息';
  1. 患者信息对接上传 json
  1. {
  2. "patients": [
  3. {
  4. "patient_name": "zhangsan",
  5. "birthday": "1933-01-01",
  6. "gender": "男",
  7. "nationality": "汉",
  8. "edu_lv": "",
  9. "career": 1,
  10. "id_card_no": "xxxxxxxxxxx",
  11. "passport_no": "xxxxxxxxx",
  12. "contact_phone": "5522114",
  13. "residential_address": "xxx",
  14. "origin_place": "aa"
  15. },
  16. {
  17. "patient_name": "lisi",
  18. "birthday": "1933-01-01",
  19. "gender": "男",
  20. "nationality": "汉",
  21. "edu_lv": "",
  22. "career": 1,
  23. "id_card_no": "xxxxxxxxxxx",
  24. "passport_no": "xxxxxxxxx",
  25. "contact_phone": "5522114",
  26. "residential_address": "xxx",
  27. "origin_place": "aa"
  28. },
  29. {
  30. "patient_name": "wangwu",
  31. "birthday": "1933-01-01",
  32. "gender": "男",
  33. "nationality": "汉",
  34. "edu_lv": "",
  35. "career": 1,
  36. "id_card_no": "xxxxxxxxxxx",
  37. "passport_no": "xxxxxxxxx",
  38. "contact_phone": "5522114",
  39. "residential_address": "xxx",
  40. "origin_place": "aa"
  41. }
  42. ]
  43. }
patient_name 患者姓名
birthday 生日
gender 性别
nationality 名族
edu_lv 教育程度
career 职业
id_card_no 身份证
passport_no 护照
contact_phone 联系电话
residential_address 居住地址
origin_place 籍贯
  1. 就诊登记信息
  1. {
  2. "visit_info":{
  3. "visit_number":"xxx",
  4. "patient_name":"xxx",
  5. "visit_type":1,
  6. "visited_at":"2021-01-01 12:30:00.123465",
  7. "medicare_category":1,
  8. "doctor_name":"xx",
  9. "doctor_id":"xxx",
  10. "department_name":"xxx",
  11. "department_id":"xx",
  12. "birthday":""
  13. }
  14. }
visit_number 就诊登记号
patient_name 患者姓名
visit_type 就诊类型 1 - 门诊 2 - 急诊
visited_at 就诊登记时间/就诊时间
medicare_category 医保类型
doctor_name 医生
doctor_id 医生id
department_name 科室名称
department_id 科室id
birthday 生日
  1. 住院信息
  1. {
  2. "hospital_record":{
  3. "visit_number":"xxx",
  4. "patient_name":"xxx",
  5. "hospitalized_at":"2021-01-01 12:30:00.123465",
  6. "leaved_at":1,
  7. "doctor_name":"xx",
  8. "doctor_id":"xxx",
  9. "in_department_name":"xxx",
  10. "in_department_id":"xx",
  11. "leave_department_id":"xxx",
  12. "leave_department_name":"xxx"
  13. }
  14. }
visit_number 就诊登记号
patient_name 患者姓名
hospitalized_at 入院时间
leaved_at 出院时间
doctor_name 医生
doctor_id
in_department_name 入院科室
in_department_id
leave_department_id 出院科室
leave_department_name
  1. 诊断信息
  1. {
  2. "diagnosis_record":{
  3. "visit_number":"xxx",
  4. "patient_name":"xxx",
  5. "diagnosed_at":"2021-01-01 12:30:00.123465",
  6. "diagnosis_result":"xxxxxxxxxxxxxxx",
  7. "doctor_name":"xx",
  8. "doctor_id":"xxx",
  9. "amd_typing":"xxx",
  10. "namd_subtype":"xx"
  11. }
  12. }
visit_number 就诊登记号
patient_name 患者姓名
diagnosed_at 诊断日期
diagnosis_result 诊断结果
doctor_name 医生
doctor_id
amd_typing amd 亚型
namd_subtype nAMD分型
  1. 病史信息
  1. {
  2. "medical_history":{
  3. "visit_number":"xxx",
  4. "patient_name":"xxx",
  5. "section_name":"xxx",
  6. "field_name":"xxxxxxxxxxxxxxx",
  7. "field_value":"xx"
  8. }
  9. }
visit_number 就诊登记号
patient_name 患者姓名
section_name 章节名称
field_name 字段名
field_value 字段值
  1. 用药史信息
  1. {
  2. "medical_history":{
  3. "visit_number":"xxx",
  4. "patient_name":"xxx",
  5. "drug_name":"xxx",
  6. "side":"xxxxxxxxxxxxxxx",
  7. "dosage":"xx",
  8. "dosage_unit":"xxx",
  9. "prescribed_at":"2021-01-01 09:02:30:447788",
  10. "frequency":"xxx",
  11. "route":"xxx"
  12. }
  13. }
visit_number 就诊登记号
patient_name 患者姓名
drug_name 药物名称
side 侧别
dosage 用量
dosage_unit 单位
prescribed_at 处方开具日期
frequency 给药频率
route 给药途径

参与者实体: 医生、患者

产生信息: 患者基本信息、就诊登记信息(就诊前的登记行为留存)、诊断信息(医生诊断)、用药信息(医生给出方案,患者适用方案)、病史信息(诊断的分支留存)、住院记录(患者住院期间的信息留存)

关系:

  • 患者就诊登记产生就诊登记信息,同时产生患者基本信息
  • 医生诊断患者病情,产生诊断信息,同时给出用药治疗方案也就是用药史,也同时生成患者病历,结合问询最终也就是病史信息
  • 患者做辅助检查,产生辅助检查信息
  • 患者住院/出院,产生住院记录,住院期间流转治疗,产生流转记录

疑问?

  1. 这些对接的信息作用是什么,仅仅只需要将 XML 节点读取并映射,然后写入数据即可。不需要关心业务逻辑?还是存在额外的业务逻辑,将这些信息用于后续的业务需求中去。如是,请说明涉及到这些数据的业务应用的每一个场景。如否,则忽略一下问题。
  2. 患者信息登记是否要求具有唯一性。何为唯一性?即A患者使用身份证已经在数据库中存在记录,A患者再次登记时,不需要插入 patient 表。多种证件登记时是否也要保证唯一性?
  3. 患者病史,病史的结构,没有任何有用信息,只有 field及 value。类似于一个 K V 数据库。如需更合理的结构,需要对应的业务场景。
  4. 数据是一家医院还是多家医院。如果是一家医院,是否支持多家医院的设计。是否仅仅在数据库加入类似 hospital_id 这类的字段区分就足以。
  5. 业务场景上的唯一数据,请特别标注说明。