Bläddra i källkod

Merge branch 'dev/20210326_2.0.3' into debug

chengyao 4 år sedan
förälder
incheckning
4cc2b10513

+ 183 - 67
doc/031.20210326v2.0.3/qc_initv2.0.3.sql

@@ -17,76 +17,192 @@ CREATE TABLE `qc_cases_relevance_entry` (
 -- ----------------------------
 -- Records of qc_cases_relevance_entry
 -- ----------------------------
-INSERT INTO `qc_cases_relevance_entry` VALUES ('1', '4', '4', '入院记录24小时内完成率', '2658', '入院记录未在患者入院24小时内完成', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('2', '5', '4', '手术记录24小时内完成率', '2170', '手术记录未在术后24h内完成', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('3', '6', '4', '出院记录24小时完成率', '2635', '出院记录未在患者入院24小时内完成', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('4', '7', '4', '病案首页24小时完成率', '3110', '病案首页未在患者出院24小时内完成', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('5', '8', '4', 'CT检查记录24小时内完成率', '3114', '医嘱存在CT,报告单未记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('6', '9', '4', 'MR检查记录24小时完成率', '3112', '医嘱存在MR,报告单未记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('7', '8', '4', 'CT检查记录24小时内完成率', '3115', '医嘱存在CT,病程记录未记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('8', '9', '4', 'MR检查记录24小时完成率', '3113', '医嘱存在MR,病程记录未记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('9', '10', '4', '病理检查完成率', '3116', '病理检查缺少病理检查报告单', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('10', '10', '4', '病理检查完成率', '3111', '手术病理检查存在手术记录中无病理相关记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('11', '10', '4', '病理检查完成率', '3117', '病理检查存在病程记录中无病理报告结果', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('12', '11', '4', '测试', '2528', '测试1111', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('13', '11', '4', '测试2', '2370', '测试2222', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('14', '11', '4', '测试3', '2522', '测试3333', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('15', '11', '4', '测试4', '2555', '测试4444', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('16', '11', '4', '测试5', '2560', '测试5555', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('17', '11', '4', '测试6', '2604', '测试6666', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('18', '17', '4', '医师查房记录完成率', '2655', '每周无2次副主任医师/主任医师查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('19', '17', '4', '医师查房记录完成率', '2654', '每周无3次主治医师查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('20', '17', '4', '医师查房记录完成率', '2468', '缺少术后首次病程记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('21', '14', '4', '手术相关记录完整率', '3107', '手术记录次数与手术次数不一致', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('22', '14', '4', '手术相关记录完整率', '2439', '手术记录中术前诊断未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('23', '14', '4', '手术相关记录完整率', '2438', '手术记录中术(中)后诊断未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('24', '14', '4', '手术相关记录完整率', '2437', '手术记录中手术经过未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('25', '14', '4', '手术相关记录完整率', '2429', '手术患者缺麻醉记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('26', '14', '4', '手术相关记录完整率', '2480', '缺手术安全核查表', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('27', '14', '4', '手术相关记录完整率', '2478', '手术安全核查表填写时间不正确', 'Y');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('28', '14', '4', '手术相关记录完整率', '2479', '手术安全核查表内容不完整', 'Y');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('29', '14', '4', '手术相关记录完整率', '2467', '手术患者缺术前讨论或术前小结', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('30', '14', '4', '手术相关记录完整率', '2463', '术前讨论记录无术前准备内容', 'Y');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('31', '14', '4', '手术相关记录完整率', '2461', '术前讨论术中、术后注意事项未填写', 'Y');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('32', '14', '4', '手术相关记录完整率', '2466', '术前讨论记录无手术指征', 'Y');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('33', '16', '4', '临床用血相关记录符合率', '2247', '输血记录血型未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('34', '16', '4', '临床用血相关记录符合率', '2245', '输血记录Rh血型未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('35', '16', '4', '临床用血相关记录符合率', '2243', '输血记录输注前评估未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('36', '16', '4', '临床用血相关记录符合率', '2248', '输血记录输血记录时间未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('37', '16', '4', '临床用血相关记录符合率', '2249', '输血记录输血记录者未签名', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('38', '16', '4', '临床用血相关记录符合率', '2250', '输血记录输血结束时间填写不规范', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('39', '16', '4', '临床用血相关记录符合率', '2251', '输血记录输血结束时间未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('40', '16', '4', '临床用血相关记录符合率', '2252', '输血记录开始输血时间填写不规范', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('41', '16', '4', '临床用血相关记录符合率', '2253', '输血记录开始输血时间未填写', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('42', '16', '4', '临床用血相关记录符合率', '2483', '输血记录中未记录有无不良反应', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('43', '16', '4', '临床用血相关记录符合率', '2484', '输血记录中无血液制品种类及量', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('44', '16', '4', '临床用血相关记录符合率', '2485', '输血记录中无输血指征', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('45', '16', '4', '临床用血相关记录符合率', '2486', '输血记录未在输注结束后24小时内完成', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('46', '16', '4', '临床用血相关记录符合率', '2491', '输血指征不严格', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('47', '16', '4', '临床用血相关记录符合率', '2492', '无输血/血制品病程记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('48', '16', '4', '临床用血相关记录符合率', '2482', '无输血或使用血液制品后效果评价', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('49', '16', '4', '临床用血相关记录符合率', '2490', '无输血或使用血液制品知情同意书', 'N未开发');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('50', '17', '4', '医师查房记录完成率', '2215', '整份病历无主治医师查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('51', '17', '4', '医师查房记录完成率', '2639', '患者出院前无上级医师(主治及以上)同意出院的病程记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('52', '17', '4', '医师查房记录完成率', '2214', '主刀医师在术后48小时内无查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('53', '17', '4', '医师查房记录完成率', '2378', '危重患者无上级医师(副高及以上)查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('54', '17', '4', '医师查房记录完成率', '2377', '疑难患者无上级医师(副高及以上)查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('55', '17', '4', '医师查房记录完成率', '2376', '抢救患者无上级医师(副高及以上)查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('56', '17', '4', '医师查房记录完成率', '2900', '术后24小时内无主刀或一助查房记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('57', '17', '4', '医师查房记录完成率', '2229', '术后查房没有连续记录3天', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('58', '17', '4', '医师查房记录完成率', '2468', '缺少术后首次病程记', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('59', '18', '4', '患者抢救记录及时完成率', '2852', '抢救记录未在抢救结束后6小时内完成', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('4', '4', '入院记录24小时内完成率', '2658', '入院记录未在患者入院24小时内完成', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('5', '4', '手术记录24小时内完成率', '2170', '手术记录未在术后24h内完成', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('6', '4', '出院记录24小时完成率', '2635', '出院记录未在患者入院24小时内完成', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('7', '4', '病案首页24小时完成率', '3110', '病案首页未在患者出院24小时内完成', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('8', '4', 'CT检查记录24小时内完成率', '3114', '医嘱存在CT,报告单未记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('9', '4', 'MR检查记录24小时完成率', '3112', '医嘱存在MR,报告单未记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('8', '4', 'CT检查记录24小时内完成率', '3115', '医嘱存在CT,病程记录未记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('9', '4', 'MR检查记录24小时完成率', '3113', '医嘱存在MR,病程记录未记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('10', '4', '病理检查完成率', '3116', '病理检查缺少病理检查报告单', 'N');
+
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('10', '4', '病理检查完成率', '3111', '手术病理检查存在手术记录中无病理相关记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('10', '4', '病理检查完成率', '3117', '病理检查存在病程记录中无病理报告结果', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '3107', '手术记录次数与手术次数不一致', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2439', '手术记录中术前诊断未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2438', '手术记录中术(中)后诊断未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2437', '手术记录中手术经过未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2429', '手术患者缺麻醉记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2480', '缺手术安全核查表', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2467', '手术患者缺术前讨论或术前小结', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('15', '4', '指标十五:手术相关记录完整率', '2471', '手术患者无手术记录', 'N');
+
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2247', '输血记录血型未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2245', '输血记录Rh血型未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2243', '输血记录输注前评估未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2248', '输血记录输血记录时间未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2249', '输血记录输血记录者未签名', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`)  VALUES('17', '4', '指标十七:临床用血相关记录符合率', '2250', '输血记录输血结束时间填写不规范', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2251', '输血记录输血结束时间未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2252', '输血记录开始输血时间填写不规范', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2253', '输血记录开始输血时间未填写', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2483', '输血记录中未记录有无不良反应', 'N');
+
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2484', '输血记录中无血液制品种类及量', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2485', '输血记录中无输血指征', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2486', '输血记录未在输注结束后24小时内完成', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2491', '输血指征不严格', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2492', '无输血/血制品病程记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2482', '无输血或使用血液制品后效果评价', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('17', '4', '指标十七:临床用血相关记录符合率', '2490', '无输血或使用血液制品知情同意书', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2655', '每周无2次副主任医师/主任医师查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`)  VALUES ('18', '4', '指标十八:医师查房记录完成率', '2654', '每周无3次主治医师查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2468', '缺少术后首次病程记录', 'N');
+
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2215', '整份病历无主治医师查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2639', '患者出院前无上级医师(主治及以上)同意出院的病程记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2214', '主刀医师在术后48小时内无查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2378', '危重患者无上级医师(副高及以上)查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2377', '疑难患者无上级医师(副高及以上)查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2376', '抢救患者无上级医师(副高及以上)查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES('18', '4', '指标十八:医师查房记录完成率', '2900', '术后24小时内无主刀或一助查房记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2229', '术后查房没有连续记录3天', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('18', '4', '指标十八:医师查房记录完成率', '2468', '缺少术后首次病程记', 'N');
+INSERT INTO `qc_cases_relevance_entry` (`type`, `hospital_id`, `cases_name`, `relevance_id`, `name`, `is_deleted`) VALUES ('19', '4', '指标十九:患者抢救记录及时完成率', '2852', '抢救记录未在抢救结束后6小时内完成', 'N');
+
 
 
 /**
 编码添加
  */
 
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3117', '241', '三级查房制度', '4', 'THR03117', '病理检查存在病程记录中无病理报告结果', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:04:42', '2021-04-16 11:04:42', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3116', '283', '病历书写规范', '8', 'MEDI03116', '病理检查缺少病理检查报告单', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:07:28', '2021-04-16 11:07:28', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3115', '241', '三级查房制度', '4', 'THR03115', '医嘱存在CT,病程记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:24', '2021-04-16 11:17:24', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3114', '283', '病历书写规范', '8', 'MEDI03114', '医嘱存在CT,报告单未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:16:51', '2021-04-16 11:16:51', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3113', '241', '三级查房制度', '4', 'THR3113', '医嘱存在MR,病程记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:46', '2021-04-16 11:17:46', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3112', '283', '病历书写规范', '8', 'MEDI03112', '医嘱存在MR,报告单未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 10:58:38', '2021-04-16 10:58:38', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3111', '248', '围手术期病历讨论', '17', 'OPE03111', '手术病理检查存在手术记录中无病理相关记录', '1', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:03:55', '2021-04-16 11:03:55', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3110', '243', '病案首页', '6', 'FIRP03110', '病案首页未在患者出院院24小时内完成', '1', '1', '0', '0', '1', '', NULL, '', 'N', '2021-04-07 17:13:57', '2021-04-07 17:13:57', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3117', '241', '三级查房制度', '4', 'THR03117', '病理检查存在病程记录中无病理报告结果', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:04:42', '2021-04-16 11:04:42', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3116', '283', '病历书写规范', '8', 'MEDI03116', '病理检查缺少病理检查报告单', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:07:28', '2021-04-16 11:07:28', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3115', '241', '三级查房制度', '4', 'THR03115', '医嘱存在CT,病程记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:24', '2021-04-16 11:17:24', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3114', '283', '病历书写规范', '8', 'MEDI03114', '医嘱存在CT,报告单未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:16:51', '2021-04-16 11:16:51', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3113', '241', '三级查房制度', '4', 'THR3113', '医嘱存在MR,病程记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:46', '2021-04-16 11:17:46', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3112', '283', '病历书写规范', '8', 'MEDI03112', '医嘱存在MR,报告单未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 10:58:38', '2021-04-16 10:58:38', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3111', '248', '围手术期病历讨论', '17', 'OPE03111', '手术病理检查存在手术记录中无病理相关记录', '1', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:03:55', '2021-04-16 11:03:55', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3110', '243', '病案首页', '6', 'FIRP03110', '病案首页未在患者出院院24小时内完成', '1', '1', '0', '0', '1', '', NULL, '', 'N', '2021-04-07 17:13:57', '2021-04-07 17:13:57', '0', '医学人员');
+INSERT INTO `qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3107', '248', '围手术期病历讨论', '17', 'OPE03107', '手术记录次数与手术次数不一致', '2', '1', '0', '1', '2', '', NULL, '', 'N', '2021-04-15 14:18:44', '2021-04-15 14:18:44', '0', '医学人员');
+
+/**
+qc_cases_entry_hospital、qc_type_cases_entry 分值确定添加
+ */
+
+
+DROP TABLE IF EXISTS `med_management_info`;
+CREATE TABLE `med_management_info` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `position_id` tinyint(7) NOT NULL DEFAULT '0' COMMENT '0:门诊病案管理人员 1:住院病案管理人员 2:病案编码人员 ',
+  `start_date` datetime NOT NULL COMMENT '开始时间',
+  `end_date` datetime DEFAULT NULL COMMENT '结束时间',
+  `work_person` varchar(10) DEFAULT NULL COMMENT '单位时间内管理人员总人数',
+  `is_deleted` char(3) DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='病案管理人员统计表';
+
+-- ----------------------------
+-- Records of med_management_info
+-- ----------------------------
+INSERT INTO `med_management_info` VALUES ('1', '4', '1', '2020-06-01 00:00:00', '2020-06-30 00:00:00', '15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_management_info` VALUES ('2', '4', '3', '2021-05-01 00:00:00', '2021-05-31 00:00:00', '12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_management_info` VALUES ('3', '4', '2', '2021-05-01 00:00:00', '2021-05-31 00:00:00', '10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_management_info` VALUES ('4', '4', '2', '2020-06-01 00:00:00', '2020-06-30 00:00:00', '4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_management_info` VALUES ('5', '4', '1', '2020-04-01 00:00:00', '2020-04-30 00:00:00', '17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_management_info` VALUES ('6', '4', '2', '2020-12-01 00:00:00', '2020-12-31 00:00:00', '19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_management_info` VALUES ('7', '4', '1', '2020-07-17 00:00:00', '2020-07-31 00:00:00', '15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0');
+
+
+-- Table structure for med_outpatient_info
+-- ----------------------------
+DROP TABLE IF EXISTS `med_outpatient_info`;
+CREATE TABLE `med_outpatient_info` (
+  `behospital_code` varchar(16) NOT NULL COMMENT '病人住院ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `name` varchar(32) NOT NULL COMMENT '姓名',
+  `sex` varchar(2) DEFAULT NULL COMMENT '性别(男,女)',
+  `birthday` datetime DEFAULT NULL COMMENT '出生日期',
+  `file_code` varchar(16) DEFAULT NULL COMMENT '档案号',
+  `qc_type_id` bigint(20) DEFAULT '0' COMMENT '质控类型',
+  `ward_code` varchar(16) DEFAULT NULL COMMENT '病区编码',
+  `ward_name` varchar(32) DEFAULT NULL COMMENT '病区名称',
+  `beh_dept_id` varchar(16) NOT NULL COMMENT '住院科室ID',
+  `beh_dept_name` varchar(64) DEFAULT NULL COMMENT '住院科室名称',
+  `bed_code` varchar(12) DEFAULT NULL COMMENT '床位号',
+  `bed_name` varchar(12) DEFAULT NULL COMMENT '床位名称',
+  `insurance_name` varchar(50) DEFAULT NULL COMMENT '医保类别',
+  `job_type` varchar(30) DEFAULT NULL COMMENT '职业',
+  `behospital_date` datetime DEFAULT NULL COMMENT '入院时间',
+  `leave_hospital_date` datetime DEFAULT NULL COMMENT '出院时间',
+  `visit_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '就诊时间',
+  `item_type` varchar(255) DEFAULT '' COMMENT '就诊类型 1-体检',
+  `diagnose_icd` varchar(50) DEFAULT NULL COMMENT '疾病ICD编码',
+  `diagnose` text COMMENT '疾病名称',
+  `doctor_id` varchar(16) DEFAULT '' COMMENT '主管医生ID',
+  `doctor_name` varchar(50) DEFAULT '' COMMENT '主管医生姓名',
+  `beh_doctor_id` varchar(16) DEFAULT '' COMMENT '住院医生ID',
+  `beh_doctor_name` varchar(50) DEFAULT '' COMMENT '住院医生姓名',
+  `director_doctor_id` varchar(16) DEFAULT '' COMMENT '主任医生ID',
+  `director_doctor_name` varchar(50) DEFAULT '' COMMENT '主任医生姓名',
+  `is_placefile` varchar(2) NOT NULL DEFAULT '0' COMMENT '是否归档(0:未归档,1:已归档)',
+  `placefile_date` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '归档时间',
+  `in_state` varchar(20) DEFAULT NULL COMMENT 'R-住院登记I-病房接诊B-出院登记O-出院结算P-预约出院N-无费退院',
+  `is_deleted` char(3) DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  PRIMARY KEY (`behospital_code`,`hospital_id`),
+  KEY `idx_hospital_id_behospital_code` (`hospital_id`,`behospital_code`) USING BTREE,
+  KEY `idx_leave_hospital_date` (`leave_hospital_date`) USING BTREE,
+  KEY `idx_beh_dept_id` (`beh_dept_id`) USING BTREE,
+  KEY `med_behospital_info_hospital_id` (`hospital_id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='门诊病历信息表';
+
+-- ----------------------------
+-- Records of med_outpatient_info
+-- ----------------------------
+INSERT INTO `med_outpatient_info` VALUES ('200630106000153', '4', '项洪桥', '女', '1993-08-05 11:00:00', '', '0', '12', '九西病区', '180', '胃肠疝血管科', '', '', '', '', '2020-06-30 11:21:36', '2020-07-05 00:57:04', '2021-04-18 12:17:08', '1', '', '', '', '', '1592', '', '1592', '', '1', '2020-07-05 00:57:04', null, 'N', '2020-10-15 02:55:51', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000001', '4', '杨茜', '女', '1999-02-16 10:00:00', '', '0', '3', '产后病区', '48', '产科住院', '', '', '', '', '2020-06-30 15:00:00', '2020-07-05 21:04:12', '2020-07-02 00:57:04', '', '', '', '', '', '1947', '', '392', '', '1', '2020-07-05 21:04:12', null, 'N', '2020-10-15 02:55:55', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000003', '4', '王水芝', '男', '1948-02-21 10:00:00', '', '0', '19', '十二东病区', '94', '肛肠科', '', '', '', '', '2020-06-30 19:17:30', '2020-07-04 20:44:04', '2020-07-02 00:57:04', '', '', '', '', '', '357', '', '357', '', '1', '2020-07-04 20:44:04', null, 'N', '2020-10-15 02:53:48', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000004', '4', '王乐乐', '女', '2016-12-24 10:00:00', '', '0', '5', '儿科病区', '49', '儿科', '', '', '', '', '2020-06-30 19:39:09', '2020-07-08 20:25:28', '2020-07-06 00:57:04', '', '', '', '', '', '309', '', '48', '', '1', '2020-07-08 20:25:28', null, 'N', '2020-10-15 02:53:52', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000005', '4', '史龙英', '女', '1952-12-31 10:00:00', '', '0', '19', '十二东病区', '94', '肛肠科', '', '', '', '', '2020-06-01 19:16:53', '2020-07-01 21:32:20', '2020-06-02 00:57:04', '', '', '', '', '', '357', '', '357', '', '1', '2020-07-01 21:32:20', null, 'N', '2020-10-15 02:53:55', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000006', '4', '李益平', '男', '1982-09-04 11:00:00', '', '0', '19', '十二东病区', '94', '肛肠科', '', '', '', '', '2020-06-30 19:23:07', '2020-07-11 20:20:31', '2020-07-06 00:57:04', '', '', '', '', '', '357', '', '357', '', '1', '2020-07-11 20:20:31', null, 'N', '2020-10-15 02:53:57', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000008', '4', '朱志宝', '男', '1933-05-07 11:00:00', '', '0', '11', '九东病区', '66', '神经内科', '', '', '', '', '2020-06-30 20:02:53', '2020-07-17 20:52:33', '2020-07-06 00:57:04', '', '', '', '', '', '1552', '', '510', '', '1', '2020-07-17 20:52:33', null, 'N', '2020-10-15 02:56:35', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000009', '4', '査小琴', '女', '1972-02-19 10:00:00', '', '0', '2', '四西病区', '46', '妇科住院', '', '', '', '', '2020-06-30 21:17:37', '2020-07-04 19:57:55', '2020-07-02 00:57:04', '', '', '', '', '', '1274', '', '', '', '1', '2020-07-04 19:57:55', null, 'N', '2020-10-15 02:54:36', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000010', '4', '王清梅', '女', '1985-03-24 10:00:00', '', '0', '2', '四西病区', '46', '妇科住院', '', '', '', '', '2020-06-30 19:31:55', '2020-07-04 20:13:36', '2021-04-18 12:17:09', '1', '', '', '', '', '1274', '', '', '', '1', '2020-07-04 20:13:36', null, 'N', '2020-10-15 02:56:43', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000011', '4', '严明光', '男', '1953-12-28 10:00:00', '', '0', '10', '八西病区', '180', '胃肠疝血管科', '', '', '', '', '2020-06-30 19:41:20', '2020-07-15 20:50:09', '2020-07-06 00:57:04', '', '', '', '', '', '1592', '', '', '', '1', '2020-07-15 20:50:09', null, 'N', '2020-10-15 02:54:41', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000012', '4', '周建蓉', '女', '1977-05-19 11:00:00', '', '0', '12', '九西病区', '97', '耳鼻喉科', '', '', '', '', '2020-06-30 19:39:32', '2020-07-05 20:30:29', '2020-07-02 00:57:04', '', '', '', '', '', '1591', '', '', '', '1', '2020-07-05 20:30:29', null, 'N', '2020-10-15 02:56:49', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000013', '4', '张春芝', '女', '1960-08-26 11:00:00', '', '0', '15', '十一西病区', '75', '血液肿瘤科', '', '', '', '', '2020-06-30 19:59:03', '2020-07-25 21:43:03', '2020-07-06 00:57:04', '', '', '', '', '', '1013', '', '270', '', '1', '2020-07-25 21:43:03', null, 'N', '2020-10-15 02:54:47', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000014', '4', '郭爱明', '女', '1971-02-01 10:00:00', '', '0', '20', '十一东病区', '91', '泌尿外科', '', '', '', '', '2020-06-30 19:40:05', '2020-07-11 20:44:02', '2020-07-02 00:57:04', '', '', '', '', '', '13', '', '', '', '1', '2020-07-11 20:44:02', null, 'N', '2020-10-15 02:55:02', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000015', '4', '邱赛良', '男', '1964-11-15 10:00:00', '', '0', '1', '三西病区', '59', '肾内科', '', '', '', '', '2020-06-30 19:41:11', '2020-07-06 19:38:01', '2021-04-18 12:17:10', '1', '', '', '', '', '2214', '', '', '', '1', '2020-07-06 19:38:01', null, 'N', '2020-10-15 02:55:08', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000017', '4', '杨苗', '女', '1983-10-17 11:00:00', '', '0', '2', '四西病区', '46', '妇科住院', '', '', '', '', '2020-06-30 20:05:15', '2020-07-06 20:13:52', '2020-07-04 00:57:04', '', '', '', '', '', '1408', '', '', '', '1', '2020-07-06 20:13:52', null, 'N', '2020-10-15 02:55:19', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000018', '4', '蔡旭波', '男', '1982-10-08 11:00:00', '', '0', '16', '感染二病区', '53', '肝病-感染科', '', '', '', '', '2020-06-30 20:08:56', '2020-07-05 20:05:47', '2020-07-02 00:57:04', '', '', '', '', '', '672', '', '672', '', '1', '2020-07-05 20:05:47', null, 'N', '2020-10-15 02:55:24', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000019', '4', '黄立群', '男', '1964-11-01 10:00:00', '', '0', '14', '十西病区', '72', '心血管科', '', '', '', '', '2020-06-30 20:18:45', '2020-07-04 19:24:17', '2020-07-02 00:57:04', '', '', '', '', '', '1648', '', '15', '', '1', '2020-07-04 19:24:17', null, 'N', '2020-10-15 02:55:34', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000020', '4', '王元菊', '女', '1967-05-22 11:00:00', '', '0', '12', '九西病区', '97', '耳鼻喉科', '', '', '', '', '2020-06-30 20:01:27', '2020-07-06 19:59:34', '2020-07-04 00:57:04', '', '', '', '', '', '2207', '', '', '', '1', '2020-07-06 19:59:34', null, 'N', '2020-10-15 02:55:38', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000023', '4', '夏才国', '男', '1954-07-13 11:00:00', '', '0', '1', '三西病区', '59', '肾内科', '', '', '', '', '2020-06-30 20:20:00', '2020-07-08 20:56:25', '2020-07-02 00:57:04', '', '', '', '', '', '2056', '', '', '', '1', '2020-07-08 20:56:25', null, 'N', '2020-10-15 02:56:56', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000024', '4', '章兆品', '男', '1934-11-14 10:00:00', '', '0', '14', '十西病区', '72', '心血管科', '', '', '', '', '2020-06-30 20:26:27', '2020-07-07 20:45:37', '2021-04-18 12:17:10', '1', '', '', '', '', '1648', '', '15', '', '1', '2020-07-07 20:45:37', null, 'N', '2020-10-15 02:47:56', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000025', '4', '杜利别', '男', '1947-09-14 10:00:00', '', '0', '15', '十一西病区', '91', '泌尿外科', '', '', '', '', '2020-06-30 20:24:53', '2020-07-11 21:56:28', '2020-07-04 00:57:04', '', '', '', '', '', '517', '', '13', '', '1', '2020-07-11 21:56:28', null, 'N', '2020-10-15 02:57:32', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000026', '4', '叶爱勋', '男', '1970-06-20 11:00:00', '', '0', '14', '十西病区', '72', '心血管科', '', '', '', '', '2020-06-30 20:19:53', '2020-07-04 19:57:49', '2020-07-02 00:57:04', '', '', '', '', '', '1179', '', '30', '', '1', '2020-07-04 19:57:49', null, 'N', '2020-10-15 02:48:05', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000027', '4', '胡美云', '女', '1954-02-03 10:00:00', '', '0', '11', '九东病区', '66', '神经内科', '', '', '', '', '2020-06-30 20:24:38', '2020-07-15 20:00:07', '2020-07-02 00:57:04', '', '', '', '', '', '641', '', '', '', '1', '2020-07-15 20:00:07', null, 'N', '2020-10-15 02:57:38', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000028', '4', '李银娟', '女', '1966-01-13 10:00:00', '', '0', '12', '九西病区', '97', '耳鼻喉科', '', '', '', '', '2020-06-30 20:29:25', '2020-07-05 20:51:39', '2021-04-18 12:17:13', '1', '', '', '', '', '2207', '', '', '', '1', '2020-07-05 20:51:39', null, 'N', '2020-10-15 02:57:44', '1970-01-01 12:00:00', '0', '0');
+INSERT INTO `med_outpatient_info` VALUES ('200701106000029', '4', '马立站', '男', '1972-05-21 11:00:00', '', '0', '9', '八东病区', '63', '消化内科', '', '', '', '', '2020-06-30 20:24:55', '2020-07-05 21:41:48', '2020-07-04 00:57:04', '', '', '', '', '', '524', '', '', '', '1', '2020-07-05 21:41:48', null, 'N', '2020-10-15 02:48:09', '1970-01-01 12:00:00', '0', '0');
+
+
+--  菜单添加
+INSERT INTO `sys_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医疗质量控制', '-1', 'YH-ZKK-YLZLKZ', '1', '1', '-4', '用户-医疗质量');
+INSERT INTO `sys_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医疗质量控制指标', '50', 'YH-ZKK-YLZLKZZB_XQ', '1', '1', '0', '用户-科室主任-医疗质量控制指标_详情');
+
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '50', NULL);
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '50', NULL);
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '51', NULL);
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '51', NULL);
+
+

+ 3 - 0
src/main/java/com/diagbot/dto/MedManageParamsDTO.java

@@ -36,6 +36,9 @@ public class MedManageParamsDTO implements Serializable {
     //化验报告名称
     private String repName;
 
+    //医嘱状态判别
+    private String da_status;
+
     /**
      * 住院科室名称
      */

+ 6 - 0
src/main/java/com/diagbot/dto/MedicalRecordDTO.java

@@ -31,4 +31,10 @@ public class MedicalRecordDTO implements Serializable {
      * 病历日期
      */
     private String recDate;
+
+    /**
+     *是否从结构化表中取数据(0-从文文书取 1-从结构化取)
+     */
+    private int isParsed = 0;
+
 }

+ 51 - 0
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -612,6 +612,16 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 .eq("behospital_code", analyzeVO.getBehospitalCode()), false
         );
 
+        //知情同意书
+        List<MedicalRecord> recordList = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("behospital_code", analyzeVO.getBehospitalCode())
+                .eq("hospital_id", hospitalId)
+                .in("mode_id", Arrays.asList(53))
+                .orderByAsc("rec_date")
+        );
+        List<MedicalRecordDTO> medicalRecordDTOList = BeanUtil.listCopyTo(recordList, MedicalRecordDTO.class);
+
         List<HomeDiagnoseInfo> homePageList = new ArrayList<>();
         List<HomeOperationInfo> homeOperationInfoList = new ArrayList<>();
         if (homePage != null) {
@@ -922,6 +932,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
 
         addData("日常病程录", recMap, medrecVoList);
 
+        DataWithKey("知情同意书", medicalRecordDTOList, medrecVoList);
         addDataWithInnerKey("知情同意书", recMap, medrecVoList);
         addDataWithInnerKey("谈话告知书", recMap, medrecVoList);
 
@@ -1228,6 +1239,38 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
     }
 
+    /**
+     * 知情同意书 单独传
+     *
+     * @param key
+     * @param recordList
+     * @param medrecVoList
+     */
+    public void DataWithKey(String key, List<MedicalRecordDTO> recordList, List<MedrecVo> medrecVoList) {
+        MedrecVo medrecVo = new MedrecVo();
+        medrecVo.setTitle(key);
+        Map<String, Object> listMap = new HashMap<>();
+        if (ListUtil.isNotEmpty(recordList)) {
+            Map<String, List<MedicalRecordDTO>> keyMap =
+                    EntityUtil.makeEntityListMap(recordList, "recTitle");
+            Set<String> keyList = keyMap.keySet();
+            for (String k : keyList) {
+                List<MedicalRecordDTO> recordContentDTOS = keyMap.get(k);
+                if(ListUtil.isNotEmpty(recordContentDTOS)){
+                    for (MedicalRecordDTO recordContentDTO : recordContentDTOS) {
+                        recordContentDTO.setIsParsed(0);
+                    }
+                }
+
+                if (ListUtil.isNotEmpty(recordContentDTOS)) {
+                    listMap.put(k,recordContentDTOS);
+                }
+            }
+            medrecVo.setContent(listMap);
+            medrecVoList.add(medrecVo);
+        }
+    }
+
     /**
      * 1.5.0拼接数据
      *
@@ -2304,4 +2347,12 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     public List<Map<String,String>> getMedicalRecords(@Param("filterVO") FilterVO filterVO){
         return baseMapper.getMedicalRecords(filterVO);
     }
+    /**
+     * 首页恶性肿瘤人数
+     * @param filterVO
+     * @return
+     */
+    public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO){
+        return  baseMapper.malignancy(filterVO);
+    }
 }

+ 161 - 110
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -392,7 +392,9 @@ public class ConsoleFacade {
         filterFacade.filterVOSet(filterVO);
         MedQualityControlDTO medQualityControlDTO = new MedQualityControlDTO();
         Map<String, Long> selectOperationNumMap = behospitalInfoFacade.selectOperationNum(filterVO);
+        //出院人数
         Long startCount = selectOperationNumMap.get(QualityContent.DISCHARGED_PATIENTS);
+        //入院人数
         Long endCount = selectOperationNumMap.get(QualityContent.NUMBER_OF_HOSPITAL);
         Map<String, Integer> operationPathologyNumMap = getOperationPathologyNum(filterVO);
         //手术人数
@@ -407,12 +409,25 @@ public class ConsoleFacade {
         Long operationPathologyFeeNum = selectOperationNumMap.get("operationPathologyFee");
         Integer operationPathologyNum = operationPathologyNumMap.get(QualityContent.NO_RECORD_OPERATION_PATHOLOGY);
         operationPathologyFeeNum = operationPathologyFeeNum + operationPathologyNum;
-        Map<String, Long> recordIndicatorMap = behospitalInfoFacade.triggeringRules(filterVO);
+        Map<String, Long> longMap = getCTNum(filterVO);
+        //CT人数
+        Long CTNum = longMap.get("CT");
+        //MR人数
+        Long MRNum = longMap.get("MR");
         //各指标未完成人数情况
-        Long operationCount = recordIndicatorMap.get(QualityContent.SSJLWCC_24H);
-        Long InHospitalRecords = recordIndicatorMap.get(QualityContent.RYJLWWC_24H);
-        Long OutHospitalRecords = recordIndicatorMap.get(QualityContent.CYJLWWC_24H);
-        Long recordHomePage = recordIndicatorMap.get(QualityContent.BASYWWC_24H);
+        Map<String, Long> triggeringRulesMap = behospitalInfoFacade.triggeringRules(filterVO);
+        Long operationCount = triggeringRulesMap.get(QualityContent.SSJLWCC_24H);
+        Long InHospitalRecords = triggeringRulesMap.get(QualityContent.RYJLWWC_24H);
+        Long OutHospitalRecords = triggeringRulesMap.get(QualityContent.CYJLWWC_24H);
+        Long recordHomePage = triggeringRulesMap.get(QualityContent.BASYWWC_24H);
+        //病理手术
+        Long antibiosisNum = triggeringRulesMap.get("antibiosisNum");
+        //细菌培养
+        Long bacterialCulture = triggeringRulesMap.get("bacterialCulture");
+        //CT
+        Long ct = triggeringRulesMap.get("CT");
+        //MR
+        Long mr = triggeringRulesMap.get("MR");
         List<Map<String, String>> hashMapArrayList = new ArrayList<>();
         //入院记录24小时完成率
         //入院记录完成人数为
@@ -444,7 +459,7 @@ public class ConsoleFacade {
       //      medQualityControlDTO.setLeaveHospitalNum(Double.valueOf(startCount - OutHospitalRecords));
             //出院记录完成率
       //      medQualityControlDTO.setLeaveHospitalStr(getResult(startCount - OutHospitalRecords, startCount));
-            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            Map<String, String> stringStringHashMap = new LinkedHashMap<>();
             stringStringHashMap.put("name","出院记录24小时内完成率");
             stringStringHashMap.put("notCopiedStr",getResult(startCount - OutHospitalRecords, startCount));
             stringStringHashMap.put("num",Double.valueOf(startCount - OutHospitalRecords).toString());
@@ -456,33 +471,16 @@ public class ConsoleFacade {
        //     medQualityControlDTO.setMedHomePageNum(Double.valueOf(startCount - recordHomePage));
             //病案首页完成率
         //    medQualityControlDTO.setMedHomePageStr(getResult(startCount - recordHomePage, startCount));
-            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            Map<String, String> stringStringHashMap = new LinkedHashMap<>();
             stringStringHashMap.put("name","病案首页24小时完成率");
             stringStringHashMap.put("notCopiedStr",getResult(startCount - recordHomePage, startCount));
             stringStringHashMap.put("num",Double.valueOf(startCount - recordHomePage).toString());
             hashMapArrayList.add(stringStringHashMap);
         }
-
-        Map<String, Long> longMap = getCTNum(filterVO);
-        //CT人数
-        Long CTNum = longMap.get("CT");
-        //MR人数
-        Long MRNum = longMap.get("MR");
-
-        //触发规则
-        //病理手术
-        Map<String, Long> triggeringRulesMap = behospitalInfoFacade.triggeringRules(filterVO);
-        Long antibiosisNum = triggeringRulesMap.get("antibiosisNum");
-        //细菌培养
-        Long bacterialCulture = triggeringRulesMap.get("bacterialCulture");
-        //CT
-        Long ct = triggeringRulesMap.get("CT");
-        //MR
-        Long mr = triggeringRulesMap.get("MR");
         //CT完成率
         if(CTNum!=null && ct!=null) {
         //    medQualityControlDTO.setCTExaminationConform(getResult(CTNum - ct, CTNum));
-            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            Map<String, String> stringStringHashMap = new LinkedHashMap<>();
             stringStringHashMap.put("name","CT检查记录符合率");
             stringStringHashMap.put("notCopiedStr",getResult(CTNum - ct, CTNum));
             stringStringHashMap.put("num",Double.valueOf(CTNum - ct).toString());
@@ -491,7 +489,7 @@ public class ConsoleFacade {
         //MR完成率
         if(MRNum!=null && mr!=null) {
         //    medQualityControlDTO.setMRIExaminationConform(getResult(MRNum - mr, MRNum));
-            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            Map<String, String> stringStringHashMap = new LinkedHashMap<>();
             stringStringHashMap.put("name","MRI检查记录符合率");
             stringStringHashMap.put("notCopiedStr",getResult(MRNum - mr, MRNum));
             stringStringHashMap.put("num",Double.valueOf(MRNum - mr).toString());
@@ -499,8 +497,8 @@ public class ConsoleFacade {
         }
         if(operationPathologyFeeNum!=null && antibiosisNum!=null) {
             //病理完成率为
-       //     medQualityControlDTO.setPathologicalExamination(getResult(operationPathologyFeeNum - antibiosisNum, operationPathologyFeeNum));
-            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+        //    medQualityControlDTO.setPathologicalExamination(getResult(operationPathologyFeeNum - antibiosisNum, operationPathologyFeeNum));
+            Map<String, String> stringStringHashMap = new LinkedHashMap<>();
             stringStringHashMap.put("name","病理检查记录符合率");
             stringStringHashMap.put("notCopiedStr",getResult(operationPathologyFeeNum - antibiosisNum, operationPathologyFeeNum));
             stringStringHashMap.put("num",Double.valueOf(operationPathologyFeeNum - antibiosisNum).toString());
@@ -566,7 +564,7 @@ public class ConsoleFacade {
      */
     public List<String>  adviceVerify(FilterVO filterVO){
         List<Map<String, String>> medicalRecords = behospitalInfoFacade.getMedicalRecords(filterVO);
-        ArrayList<String> behospitalCodeList = new ArrayList<>();
+        List<String> behospitalCodeList = new ArrayList<>();
         for (Map<String, String> medicalRecord : medicalRecords) {
             String b_code = medicalRecord.get("b_code");
             String behospitalCode = medicalRecord.get("behospital_code");
@@ -577,7 +575,7 @@ public class ConsoleFacade {
         return behospitalCodeList;
     }
     /**
-     * 医嘱表判断无病案首页是否为病理手术患者的人数
+     * 医嘱表判断无病案首页是否为病理手术患者和手术患者的人数
      */
     public Map<String,Integer> getOperationPathologyNum(FilterVO filterVO){
         List<String> behospitalCodeList = adviceVerify(filterVO);
@@ -594,6 +592,7 @@ public class ConsoleFacade {
             List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
             //手术病理
             if(ListUtil.isNotEmpty(doctorAdvices)&&doctorAdvices.size()>0) {
+                dd:
             for (DoctorAdvice doctorAdvice : doctorAdvices) {
                 String name = doctorAdvice.getDaItemName();
                 if (StringUtil.isNotEmpty(name)) {
@@ -606,7 +605,7 @@ public class ConsoleFacade {
                             String daItemName = advice.getDaItemName();
                             if (daItemName.contains(QualityContent.PATHOLOGY)) {
                                 operationPathologyNum++;
-                                break;
+                                break dd;
                             }
                         }
                     }
@@ -676,13 +675,11 @@ public class ConsoleFacade {
      * 获取CT/MRI人数
      */
     public Map<String,Long> getCTNum(FilterVO filterVO){
+        filterVO.setFlagStr("1");
         List<Map<String, String>> getDoctorAdviceNum = doctorAdviceFacade.getDoctorAdviceNum(filterVO);
-        HashMap<String, Long> map = new HashMap<>();
-        ArrayList<String> codeList = new ArrayList<>();
+        Map<String, Long> map = new HashMap<>();
+        List<String> codeList = new ArrayList<>();
         for (Map<String, String> ctNumMap : getDoctorAdviceNum) {
-            String doctorAdviceType = ctNumMap.get("doctor_advice_type");
-            if(StringUtil.isNotEmpty(doctorAdviceType)) {
-                if (doctorAdviceType.contains(QualityContent.STAT_ORDER)) {
                     String behospitalCode = ctNumMap.get("behospital_code");
                     if (!codeList.contains(behospitalCode)) {
                         String daItemName = ctNumMap.get("da_item_name");
@@ -696,16 +693,12 @@ public class ConsoleFacade {
                                     continue;
                                 }
                             }
-                        }
-                    }
                 }
             }
         }
         ArrayList<String> codeMri = new ArrayList<>();
         for (Map<String, String> MRINumMap : getDoctorAdviceNum) {
             String behospitalCodeMri = MRINumMap.get("behospital_code");
-            if(StringUtil.isNotEmpty(MRINumMap.get("doctor_advice_type"))) {
-                if (contains(QualityContent.STAT_ORDER)) {
                     if (!codeList.contains(behospitalCodeMri)) {
                         String daItemName = MRINumMap.get("da_item_name");
                         if (StringUtil.isNotEmpty(daItemName)) {
@@ -714,8 +707,6 @@ public class ConsoleFacade {
                                     codeMri.add(behospitalCodeMri);
                                     continue;
                                 }
-                            }
-                        }
                     }
                 }
             }
@@ -746,7 +737,6 @@ public class ConsoleFacade {
                 QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
                 dtoQueryWrapper.eq("behospital_code", behospitalCode)
                         .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .eq("doctor_advice_type", QualityContent.STAT_ORDER)
                         .eq("da_status", QualityContent.EXECUTE_ORDER);
                 //查医嘱表
                 List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
@@ -758,9 +748,13 @@ public class ConsoleFacade {
                             List<String> antimicrobialDrugList = QualityContent.Antimicrobial_Drug_List;
                             for (String antimicrobialDrug : antimicrobialDrugList) {
                                 if (daItemName.contains(antimicrobialDrug)) {
-                                    //医嘱包含抗菌药物名称
-                                    operationNum++;
-                                    break doc;
+                                    //医嘱包含抗菌药物名称        若非抗菌药物使用患者可能有取消字眼
+                                    if(daItemName.contains(QualityContent.COUNTERMAND)){
+                                        continue ;
+                                    }else {
+                                        operationNum++;
+                                        break doc;
+                                    }
                                 }
                             }
                         }
@@ -770,6 +764,48 @@ public class ConsoleFacade {
         }
         return operationNum;
     }
+
+    /**
+     * 恶性肿瘤化学治疗患者
+     * @param filterVO
+     * @return
+     */
+    public Integer chemotherapyMalignantTumors(FilterVO filterVO){
+        filterVO.setFlagStr("2");
+        int chemotherapyMalignantTumorsNum=0;
+        //得到首页判断为恶性肿瘤病历
+        List<Map<String, String>> malignancy = behospitalInfoFacade.malignancy(filterVO);
+        if(ListUtil.isNotEmpty(malignancy)&&malignancy.size()>0) {
+            for (Map<String, String> malignancyMap : malignancy) {
+                String behospitalCode = malignancyMap.get("behospital_code");
+                QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
+                dtoQueryWrapper.eq("behospital_code", behospitalCode)
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("da_status", QualityContent.EXECUTE_ORDER);
+                List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
+                if(ListUtil.isNotEmpty(doctorAdvices)&&doctorAdvices.size()>0){
+                    doc:
+                    for (DoctorAdvice doctorAdvice : doctorAdvices) {
+                        String daItemName = doctorAdvice.getDaItemName();
+                        if(StringUtil.isNotEmpty(daItemName)){
+                            List<String> chemotherapyDrugList = QualityContent.Chemotherapy_Drug_List;
+                            for (String chemotherapyDrug : chemotherapyDrugList) {
+                                if (daItemName.contains(chemotherapyDrug)) {
+                                    //医嘱包含化疗药物
+                                    if (daItemName.contains(QualityContent.COUNTERMAND)) {
+                                        //病人为化疗
+                                        chemotherapyMalignantTumorsNum++;
+                                        break doc;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return chemotherapyMalignantTumorsNum;
+    }
     /**
      * 质控病历统计
      *
@@ -2601,9 +2637,11 @@ public class ConsoleFacade {
         List<MedManageParamsDTO> manageList= new ArrayList<>();
         for (int i = 0; i < medManageParams.size(); i++) {
             List<String> rescueDrugList = QualityContent.getRescue_Drug_List();
+            String doctorAdviceType = medManageParams.get(i).getDoctorAdviceType();
+            String da_status = medManageParams.get(i).getDa_status();
             for (String str : rescueDrugList) {
                 String daItemName = medManageParams.get(i).getDaItemName();
-                if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str)){
+                if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str) && StringUtils.isNotEmpty(doctorAdviceType) && doctorAdviceType.equals(QualityContent.STAT_ORDER) && StringUtils.isNotEmpty(da_status) && ! doctorAdviceType.equals(QualityContent.CANCELLATION_ORDER)){
                     manageList.add(medManageParams.get(i));
                 }
             }
@@ -2611,44 +2649,46 @@ public class ConsoleFacade {
 
         //接受抢救的质控病历总数
         double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
+        String num = null;
         if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
             double rescueDo = currencyCal(count, triggeringRulesMap.get("rescueNum"));
-            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-            String num = String.valueOf(rescueDo);
-            firMap.put("name","患者抢救记录及时完成率");
-            firMap.put("notCopiedStr",num+"%");
-            firMap.put("num",num);
-            retList.add(firMap);
+             num = String.valueOf(rescueDo);
         };
+        LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+        firMap.put("name","患者抢救记录及时完成率");
+        firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
+        firMap.put("num",num);
+        retList.add(firMap);
         return retList;
     };
 
     //指标十七 医师查房记录
     private List<Map<String, String>> WardRoundMethod( List<Map<String, String>> retList, Map<String, Object> baseIndex, Map<String, Long> triggeringRulesMap){
+        String num = null;
         if( triggeringRulesMap.containsKey("WardRoundNum") && baseIndex.containsKey("forWorkNum") && !baseIndex.get("forWorkNum").toString().equals("0")){
             double wardRoundDo = currencyCal(baseIndex.get("forWorkNum"), triggeringRulesMap.get("WardRoundNum"));
-            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-            String num = String.valueOf(wardRoundDo);
-            firMap.put("name","医师查房记录完成率");
-            firMap.put("notCopiedStr",num+"%");
-            firMap.put("num",num);
-            retList.add(firMap);
+             num = String.valueOf(wardRoundDo);
         };
+        LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+        firMap.put("name","医师查房记录完成率");
+        firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
+        firMap.put("num",num);
+        retList.add(firMap);
         return retList;
     }
 
     //指标十四 手术记录
     private  List<Map<String, String>> operationMethod( List<Map<String, String>>retList, String operationFeeNum, Map<String, Long> triggeringRulesMap){
+        String num = null;
         if( triggeringRulesMap.containsKey("operationRecordNum") && StringUtils.isNotEmpty(operationFeeNum) && ! operationFeeNum.equals("0")){
             double operationRecordDo = currencyCal(operationFeeNum, triggeringRulesMap.get("operationRecordNum"));
-            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-            String num = String.valueOf(operationRecordDo);
-            firMap.put("name","手术相关记录完成率");
-            firMap.put("notCopiedStr",num+"%");
-            firMap.put("num",num);
-            retList.add(firMap);
-
+             num = String.valueOf(operationRecordDo);
         };
+        LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+        firMap.put("name","手术相关记录完成率");
+        firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
+        firMap.put("num",num);
+        retList.add(firMap);
         return retList;
     }
 
@@ -2657,26 +2697,29 @@ public class ConsoleFacade {
         List<MedManageParamsDTO> manageList= new ArrayList<>();
         for (MedManageParamsDTO medManageParam : medManageParams) {
             List<String> blood_list = QualityContent.getBlood_List();
+            String doctorAdviceType = medManageParam.getDoctorAdviceType();
+            String da_status = medManageParam.getDa_status();
+            String daItemName = medManageParam.getDaItemName();
+            String repName = medManageParam.getRepName();
             for (String str : blood_list) {
-                String daItemName = medManageParam.getDaItemName();
-                String repName = medManageParam.getRepName();
-                if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str) && StringUtils.isNotEmpty(repName) && repName.contains(str)){
+                if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str) && StringUtils.isNotEmpty(repName) && repName.contains(str) && StringUtils.isNotEmpty(doctorAdviceType) && doctorAdviceType.equals(QualityContent.STAT_ORDER) && StringUtils.isNotEmpty(da_status) && ! da_status.equals(QualityContent.CANCELLATION_ORDER)){
                     manageList.add(medManageParam);
                 }
             }
+        }
             //临床用血的质控病历总数
             double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
+            String num = null;
             if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
                 //指标十七
                 double rescueDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
-                LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-                String num = String.valueOf(rescueDo);
-                firMap.put("name","临床用血相关记录符合率");
-                firMap.put("notCopiedStr",num+"%");
-                firMap.put("num",num);
-                retList.add(firMap);
+                  num = String.valueOf(rescueDo);
             }
-        }
+            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+            firMap.put("name","临床用血相关记录符合率");
+            firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
+            firMap.put("num",num);
+            retList.add(firMap);
         return retList;
     }
 
@@ -2694,6 +2737,8 @@ public class ConsoleFacade {
         DecimalFormat df = new DecimalFormat("#0.00");
         query.eq("hospital_id", filterVO.getHospitalId())
                 .eq("is_deleted", IsDeleteEnum.N)
+                .ne("qc_type_id", 0)
+                .eq("is_placefile", 1)
                 // .eq("is_placefile", filterVO.getIsPlacefile())
                 .isNotNull("leave_hospital_date")
                 .ge("leave_hospital_date",filterVO.getStartDate())
@@ -2702,35 +2747,36 @@ public class ConsoleFacade {
         Iterator<BehospitalInfo> iterator = list.iterator();
         while (iterator.hasNext()){
             BehospitalInfo beh = iterator.next();
-            Boolean flag = getTrueSecFile(beh.getBehospitalDate(), beh.getLeaveHospitalDate(), TimeContent.getHolidaysTimeList());
+            Boolean flag = getTrueSecFile(beh.getLeaveHospitalDate(), beh.getPlacefileDate(), TimeContent.getHolidaysTimeList());
             //时间截止则删除元素
             if(!flag){
                 iterator.remove();
             }
         }
         double count = list.stream().distinct().map(BehospitalInfo::getBedCode).count();
+        String num = null;
         if(StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString()) && ! baseIndex.get("firWorkNum").toString().equals("0") ){
             double retNum =count* 100/Double.parseDouble(baseIndex.get("firWorkNum").toString());
             double firGradeStr = Double.parseDouble(df.format(retNum));
-            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-            String num = String.valueOf(firGradeStr);
-            firMap.put("name","出院患者病历2日归档率");
-            firMap.put("notCopiedStr",num+"%");
-            firMap.put("num",num);
-            retList.add(firMap);
+             num = String.valueOf(firGradeStr);
         }
+        LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+        firMap.put("name","出院患者病历2日归档率");
+        firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
+        firMap.put("num",num);
+        retList.add(firMap);
         return retList;
     };
 
     private Boolean getTrueSecFile(Date date1,Date date2, List<String> holidaysTimeList){
         Date date = date1;
+        Date dateSec = date2;
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat simpleDateFormatRe = new SimpleDateFormat("yyyy-MM-dd");
         Calendar cal = null;
         int count = 0;
         try {
-            String format = simpleDateFormatRe.format(date1);
             date1 = simpleDateFormatRe.parse(simpleDateFormatRe.format(date1));
             date2 = simpleDateFormatRe.parse(simpleDateFormatRe.format(date2));
             cal = Calendar.getInstance();
@@ -2751,7 +2797,7 @@ public class ConsoleFacade {
         ZoneId zone = ZoneId.systemDefault();
         Instant instant = ldt.atZone(zone).toInstant();
         Date endDate = Date.from(instant);
-        if(endDate.after(date2)){
+        if(endDate.after(dateSec)){
             return true;
         }
         return false;
@@ -2795,45 +2841,50 @@ public class ConsoleFacade {
          Double firRecord = 0d;
 
          //指标一
+         String num1 = null;
          if(secMouth != 0d && secMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
-             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-             String num = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString()) / secMouth));
-             firMap.put("name","住院病案管理人员月均负担出院患者病历数");
-             firMap.put("num",num);
-             retList.add(firMap);
+              num1 = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString()) / secMouth));
          }
+         LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+         firMap.put("name","住院病案管理人员月均负担出院患者病历数");
+         firMap.put("num",num1);
+         retList.add(firMap);
          //指标三
+         String num2 = null;
          if(thrMouth != 0d && thrMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
-             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-             String num = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString())/thrMouth));
-             firMap.put("name","病案编码人员月均负担出院患者病历数");
-             firMap.put("num",num);
-             retList.add(firMap);
+              num2 = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString())/thrMouth));
+
          }
+         LinkedHashMap<String, String> secMap = new LinkedHashMap<>();
+         secMap.put("name","病案编码人员月均负担出院患者病历数");
+         secMap.put("num",num2);
+         retList.add(secMap);
 
+         String num3= null;
          if(firMouth != 0d && firMouth != null  && StringUtils.isNotEmpty( baseIndex.get("secWorkNum").toString())){
          //指标二
-             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-             String num = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("secWorkNum").toString())/firMouth));
-             firMap.put("name","门诊病案管理人员月均负担门诊患者病历数");
-             firMap.put("num",num);
-             retList.add(firMap);
+                num3 = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("secWorkNum").toString())/firMouth));
          }
+         LinkedHashMap<String, String> thrMap = new LinkedHashMap<>();
+         thrMap.put("name","门诊病案管理人员月均负担门诊患者病历数");
+         thrMap.put("num",num3);
+         retList.add(thrMap);
 
          //指标二十七 -甲级病历率
+         String num4= null;
          if(StringUtils.isNotEmpty( baseIndex.get("forWorkNum").toString())){
              firRecord =Double.parseDouble(baseIndex.get("forWorkNum").toString());
          }
          if( firRecord != 0d && StringUtils.isNotEmpty( baseIndex.get("sixWorkNum").toString()) ){
              double retNum = Double.parseDouble(baseIndex.get("sixWorkNum").toString()) * 100 / firRecord;
              double firGradeStr = Double.parseDouble(df.format(retNum));
-             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
-             String num = String.valueOf(Math.ceil(firGradeStr));
-             firMap.put("name","甲级病历率");
-             firMap.put("notCopiedStr",num+"%");
-             firMap.put("num",num);
-             retList.add(firMap);
+             num4 = String.valueOf(Math.ceil(firGradeStr));
          }
+         LinkedHashMap<String, String> fouMap = new LinkedHashMap<>();
+         fouMap.put("name","甲级病历率");
+         fouMap.put("notCopiedStr",StringUtils.isEmpty(num4)? null:(num4+"%"));
+         fouMap.put("num",num4);
+         retList.add(fouMap);
          return retList;
      };
    private void timeTrans(FilterVO filterVO){
@@ -2847,12 +2898,12 @@ public class ConsoleFacade {
            e.printStackTrace();
        }
 
-       cal1.set(Calendar.DAY_OF_MONTH, 1);
+       cal1.set(Calendar.DAY_OF_MONTH, 1);//当月的第一天
        cal2.set(Calendar.DAY_OF_MONTH, 1);
-       cal2.set(Calendar.DATE, 1);
+       cal2.set(Calendar.DATE, 1);//设为当前月的1号
        cal2.roll(Calendar.DATE, -1);
-       String startTime = myFormatter.format(cal1.getTime());
-       String endTime = myFormatter.format(cal2.getTime());
+       String startTime = myFormatter.format(cal1.getTime())+" 00:00:00";
+       String endTime = myFormatter.format(cal2.getTime())+" 23:59:59";
        filterVO.setStartDate(startTime);
        filterVO.setEndDate(endTime);
    };

+ 6 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -723,4 +723,10 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<Map<String,String>> getMedicalRecords(@Param("filterVO") FilterVO filterVO);
 
+    /**
+     * 首页恶性肿瘤人数
+     * @param filterVO
+     * @return
+     */
+    public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO);
 }

+ 8 - 0
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -677,4 +677,12 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public List<Map<String,String>> getMedicalRecords(@Param("filterVO") FilterVO filterVO);
+
+    /**
+     * 首页恶性肿瘤人数
+     * @param filterVO
+     * @return
+     */
+    public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO);
+
 }

+ 9 - 0
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -1123,4 +1123,13 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<Map<String,String>> getMedicalRecords(@Param("filterVO") FilterVO filterVO){
         return  baseMapper.getMedicalRecords(filterVO);
     }
+
+    /**
+     * 首页恶性肿瘤人数
+     * @param filterVO
+     * @return
+     */
+    public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO){
+        return  baseMapper.malignancy(filterVO);
+    }
 }

+ 1 - 1
src/main/java/com/diagbot/web/ConsoleController.java

@@ -173,7 +173,7 @@ public class ConsoleController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/medicalRecordIndicator")
     @SysLogger("medicalRecordIndicator")
-    public RespDTO<MedQualityControlDTO> medicalRecordIndicator(@RequestBody @Valid FilterVO filterVO) {
+    public RespDTO<List<Map<String,String>>> medicalRecordIndicator(@RequestBody @Valid FilterVO filterVO) {
         return RespDTO.onSuc(consoleFacade.medicalRecordIndicator(filterVO));
     }
     /**

+ 50 - 7
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -714,7 +714,7 @@
         order by b.order_no, a.order_no;
     </select>
 
-    <!--获取同期管理人员实际工作月数明细-->
+    <!--病案管理指标基础sql明细-->
     <select id="getBaseIndex"  parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
         select
         f1.firWorkNum,
@@ -757,8 +757,7 @@
         count(case when  <![CDATA[m.behospital_date >= #{startDate}]]>  and  <![CDATA[m.behospital_date <= #{endDate}]]>
         and m.is_placefile = 0 then m.behospital_code else null end) as thrWorkNum,
         count(case when  <![CDATA[m.leave_hospital_date >= #{startDate}]]>  and  <![CDATA[m.leave_hospital_date <= #{endDate}]]>  and m.is_placefile = 1 then m.behospital_code else null end) as forWorkNum,
-        count(case when  <![CDATA[m.behospital_date >= #{startDate}]]> and <![CDATA[m.leave_hospital_date <= #{endDate}]]>
-        and m.is_placefile = 1 and m.level = '甲' then m.behospital_code else null end) as sixWorkNum
+        count(case when  <![CDATA[m.leave_hospital_date >= #{startDate}]]> and <![CDATA[m.leave_hospital_date <= #{endDate}]]> and m.is_placefile = 1 and m.level = '甲' then m.behospital_code else null end) as sixWorkNum
            from(
            SELECT DISTINCT a.*,b.level
             FROM
@@ -17731,7 +17730,7 @@
         count(
         DISTINCT
         CASE
-        WHEN q.type = 14 THEN
+        WHEN q.type = 15 THEN
         a.behospital_code
         ELSE
         NULL
@@ -17740,7 +17739,7 @@
         count(
         DISTINCT
         CASE
-        WHEN q.type = 16 THEN
+        WHEN q.type = 17 THEN
         a.behospital_code
         ELSE
         NULL
@@ -17749,7 +17748,7 @@
         count(
         DISTINCT
         CASE
-        WHEN q.type = 17 THEN
+        WHEN q.type = 18 THEN
         a.behospital_code
         ELSE
         NULL
@@ -17758,7 +17757,7 @@
         count(
         DISTINCT
         CASE
-        WHEN q.type = 18 THEN
+        WHEN q.type = 19 THEN
         a.behospital_code
         ELSE
         NULL
@@ -17845,4 +17844,48 @@
     AND b.is_deleted = 'N'
 
     </select>
+
+<!--    首页恶性肿瘤-->
+    <select id="malignancy" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
+        SELECT
+        d.behospital_code,
+        b.outpatient_emr_diagnose,
+        b.outpatient_emr_diagnose_code
+        FROM
+        (
+        SELECT
+        a.behospital_code,
+        a.hospital_id,
+        a.behospital_date,
+        a.leave_hospital_date
+        FROM
+        med_behospital_info a,
+        med_qcresult_info c
+        WHERE
+        a.behospital_code = c.behospital_code
+        AND a.hospital_id =  #{filterVO.hospitalId}
+        AND a.is_placefile =  #{filterVO.isPlacefile}
+        AND a.hospital_id = c.hospital_id
+        AND a.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        <![CDATA[ and  a.qc_type_id <>'0' ]]>
+        <if test="filterVO.startDate != null and  filterVO.endDate != null ">
+            <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
+        </if>
+        ) d
+        JOIN med_home_page b ON b.behospital_code = d.behospital_code
+        AND d.hospital_id = b.hospital_id
+        AND b.is_deleted = 'N'
+        AND (
+        (
+        b.outpatient_emr_diagnose LIKE '%恶性肿瘤%'
+        AND b.outpatient_emr_diagnose_code LIKE 'C%'
+        )
+        OR (
+        b.outpatient_emr_diagnose LIKE 'C%'
+        AND b.outpatient_emr_diagnose_code LIKE '%恶性肿瘤%'
+        )
+        )
+    </select>
 </mapper>

+ 6 - 0
src/main/resources/mapper/DoctorAdviceMapper.xml

@@ -247,5 +247,11 @@
         <![CDATA[ and  b.da_status <> '作废' ]]>
         AND a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
+        <if test="filterVO.flagStr == 1">
+            AND b.doctor_advice_type='临时医嘱'
+        </if>
+        <if test="filterVO.flagStr == 2">
+            AND (b.doctor_advice_type='临时医嘱' or b.doctor_advice_type='长期医嘱')
+        </if>
     </select>
 </mapper>