Selaa lähdekoodia

增加操作类

lantone 5 vuotta sitten
vanhempi
commit
4e75b59fb6
53 muutettua tiedostoa jossa 2038 lisäystä ja 435 poistoa
  1. 904 0
      doc/001.20200417第一版本/qc_init.sql
  2. 7 0
      src/main/java/com/diagbot/client/AuthServiceClient.java
  3. 9 0
      src/main/java/com/diagbot/client/hystrix/AuthServiceHystrix.java
  4. 1 1
      src/main/java/com/diagbot/config/OAuth2Configurer.java
  5. 5 6
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  6. 4 3
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  7. 43 0
      src/main/java/com/diagbot/dto/FHomeDiagnoseDTO.java
  8. 105 0
      src/main/java/com/diagbot/dto/FHomeOperationDTO.java
  9. 5 0
      src/main/java/com/diagbot/dto/FHomePageDTO.java
  10. 6 0
      src/main/java/com/diagbot/dto/MsgDTO.java
  11. 9 6
      src/main/java/com/diagbot/dto/QcCasesEntryFindDTO.java
  12. 8 2
      src/main/java/com/diagbot/dto/QcResultDTO.java
  13. 1 1
      src/main/java/com/diagbot/entity/BehospitalInfo.java
  14. 5 0
      src/main/java/com/diagbot/entity/QcresultInfo.java
  15. 5 3
      src/main/java/com/diagbot/facade/AlgorithmFacade.java
  16. 85 25
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  17. 138 0
      src/main/java/com/diagbot/facade/DataFacade.java
  18. 2 0
      src/main/java/com/diagbot/facade/HomeDiagnoseInfoFacade.java
  19. 2 173
      src/main/java/com/diagbot/facade/HomePageFacade.java
  20. 10 0
      src/main/java/com/diagbot/facade/MedicalRecordContentFacade.java
  21. 10 0
      src/main/java/com/diagbot/facade/MedicalRecordTypeFacade.java
  22. 2 4
      src/main/java/com/diagbot/facade/QcCasesEntryHospitalFacade.java
  23. 12 2
      src/main/java/com/diagbot/facade/QcModeFacade.java
  24. 11 3
      src/main/java/com/diagbot/facade/QcresultInfoFacade.java
  25. 3 0
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  26. 3 0
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  27. 5 0
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  28. 10 5
      src/main/java/com/diagbot/task/BehospitalInfoAnalyzeTask.java
  29. 302 69
      src/main/java/com/diagbot/util/DBConn.java
  30. 2 0
      src/main/java/com/diagbot/vo/AnalyzeVO.java
  31. 4 9
      src/main/java/com/diagbot/util/bean/BehospitalInfoVO.java
  32. 4 9
      src/main/java/com/diagbot/util/bean/DoctorAdviceVO.java
  33. 41 0
      src/main/java/com/diagbot/vo/FHomeDiagnoseVO.java
  34. 78 0
      src/main/java/com/diagbot/vo/FHomeOperationVO.java
  35. 4 9
      src/main/java/com/diagbot/util/bean/HomePageVO.java
  36. 28 0
      src/main/java/com/diagbot/vo/FMedicalRecordContentVO.java
  37. 36 0
      src/main/java/com/diagbot/vo/FMedicalRecordTypeVO.java
  38. 38 0
      src/main/java/com/diagbot/vo/FMedicalRecordVO.java
  39. 4 0
      src/main/java/com/diagbot/vo/GetDetailVO.java
  40. 20 1
      src/main/java/com/diagbot/web/BehospitalInfoController.java
  41. 13 7
      src/main/java/com/diagbot/web/HomePageController.java
  42. 0 20
      src/main/java/com/diagbot/web/QcCasesEntryController.java
  43. 11 20
      src/main/java/com/diagbot/web/QcModeController.java
  44. 0 20
      src/main/java/com/diagbot/web/QcresultDetailController.java
  45. 0 20
      src/main/java/com/diagbot/web/QcresultInfoController.java
  46. 1 0
      src/main/java/com/diagbot/web/SysDictionaryInfoController.java
  47. 1 1
      src/main/resources/application-dev.yml
  48. 1 1
      src/main/resources/application-local.yml
  49. 1 1
      src/main/resources/application-pre.yml
  50. 1 1
      src/main/resources/application-pro.yml
  51. 1 1
      src/main/resources/application-test.yml
  52. 22 3
      src/main/resources/mapper/BehospitalInfoMapper.xml
  53. 15 9
      src/main/resources/mapper/QcCasesEntryHospitalMapper.xml

+ 904 - 0
doc/001.20200417第一版本/qc_init.sql

@@ -0,0 +1,904 @@
+CREATE DATABASE  `qc` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
+use `qc`;
+
+/*
+Navicat MySQL Data Transfer
+
+Source Server         : 朗通mysql 236联调服务器
+Source Server Version : 50725
+Source Host           : 192.168.2.236:3306
+Source Database       : qc
+
+Target Server Type    : MYSQL
+Target Server Version : 50725
+File Encoding         : 65001
+
+Date: 2020-04-17 09:14:26
+*/
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for bas_dept_info
+-- ----------------------------
+DROP TABLE IF EXISTS `bas_dept_info`;
+CREATE TABLE `bas_dept_info` (
+  `dept_id` varchar(20) NOT NULL COMMENT '科室编码(HIS导入)',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `dept_name` varchar(100) NOT NULL COMMENT '科室名称',
+  `dept_type` varchar(20) DEFAULT NULL COMMENT '科室类别',
+  `spell` varchar(10) DEFAULT NULL COMMENT '首字母拼音',
+  `station` varchar(64) 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 (`dept_id`,`hospital_id`),
+  UNIQUE KEY `hospital_dept_unique` (`dept_id`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='医院科室信息';
+
+-- ----------------------------
+-- Table structure for bas_doctor_info
+-- ----------------------------
+DROP TABLE IF EXISTS `bas_doctor_info`;
+CREATE TABLE `bas_doctor_info` (
+  `doctor_id` varchar(16) NOT NULL COMMENT 'HIS导入的医生ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `dept_id` varchar(16) NOT NULL COMMENT '医院导入科室ID',
+  `name` varchar(32) DEFAULT NULL COMMENT '姓名',
+  `professor` varchar(32) 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 (`doctor_id`,`hospital_id`),
+  UNIQUE KEY `bas_hospital_dept_unique` (`hospital_id`,`dept_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for bas_hospital_info
+-- ----------------------------
+DROP TABLE IF EXISTS `bas_hospital_info`;
+CREATE TABLE `bas_hospital_info` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `name` varchar(32) NOT NULL COMMENT '医院名称',
+  `code` varchar(16) NOT NULL COMMENT '组织机构代码',
+  `spell` varchar(32) DEFAULT NULL COMMENT '医院名称拼音',
+  `address` varchar(128) DEFAULT NULL COMMENT '医院地址',
+  `status` int(1) NOT NULL DEFAULT '1' COMMENT '状态:0.禁用1.启用',
+  `order_no` int(5) DEFAULT NULL COMMENT '排序号',
+  `connect` int(1) DEFAULT '0' COMMENT '是否对接(0-不对接,1-对接)',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `remark` varchar(128) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='医院信息表';
+
+-- ----------------------------
+-- Table structure for hz_column
+-- ----------------------------
+DROP TABLE IF EXISTS `hz_column`;
+CREATE TABLE `hz_column` (
+  `hz_mc` varchar(128) DEFAULT NULL,
+  `hz_zj` varchar(128) DEFAULT NULL,
+  `hz_type` int(11) DEFAULT '0' COMMENT '1-病案首页',
+  UNIQUE KEY `HZ_MC_ZJ_INDEX` (`hz_mc`,`hz_zj`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for kl_clinic
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_clinic`;
+CREATE TABLE `kl_clinic` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL COMMENT '术语概念id',
+  `has_bodypart` bigint(20) DEFAULT NULL COMMENT '科室概念id',
+  `has_label` varchar(2) DEFAULT NULL,
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=38446 DEFAULT CHARSET=utf8 COMMENT='疾病表';
+
+-- ----------------------------
+-- Table structure for kl_disease
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_disease`;
+CREATE TABLE `kl_disease` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL COMMENT '术语概念id',
+  `icd10` varchar(255) DEFAULT NULL,
+  `dept_id` bigint(20) DEFAULT NULL COMMENT '科室概念id',
+  `classify` varchar(8) DEFAULT NULL COMMENT '疾病的分类,现在分为I、II类',
+  `is_chronic` varchar(2) DEFAULT '0' COMMENT '慢病标识',
+  `is_infections` varchar(2) DEFAULT '0' COMMENT '传染病标识',
+  `has_label` varchar(2) DEFAULT NULL,
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=87719 DEFAULT CHARSET=utf8 COMMENT='疾病表';
+
+-- ----------------------------
+-- Table structure for kl_relevant_feature
+-- ----------------------------
+DROP TABLE IF EXISTS `kl_relevant_feature`;
+CREATE TABLE `kl_relevant_feature` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `diagnose` varchar(100) DEFAULT NULL,
+  `feature` varchar(100) DEFAULT NULL,
+  `feature_type` int(2) DEFAULT NULL COMMENT '1:直接相关特征 2.程度词等非直接相关词 3.部位',
+  `value_type` int(2) DEFAULT NULL COMMENT '1:字符类型(二值属性:阳性/阴性)\r\n2:数值类型',
+  `find_suspect_diagnose` int(2) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `doc_rec_diagnose` (`diagnose`)
+) ENGINE=InnoDB AUTO_INCREMENT=47161 DEFAULT CHARSET=utf8 COMMENT='此表保存每种诊断所需的特征字段,用于后续学习分析';
+
+-- ----------------------------
+-- Table structure for lt_column
+-- ----------------------------
+DROP TABLE IF EXISTS `lt_column`;
+CREATE TABLE `lt_column` (
+  `lt_mc` varchar(128) DEFAULT NULL,
+  `lt_zj` varchar(128) DEFAULT NULL,
+  `lt_type` int(11) DEFAULT '0' COMMENT '1-病案首页',
+  UNIQUE KEY `LT_MC_ZJ_INDEX` (`lt_mc`,`lt_zj`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for lt_hz_columnmap
+-- ----------------------------
+DROP TABLE IF EXISTS `lt_hz_columnmap`;
+CREATE TABLE `lt_hz_columnmap` (
+  `lt_mc` varchar(128) DEFAULT NULL,
+  `lt_zj` varchar(128) DEFAULT NULL,
+  `hz_mc` varchar(128) DEFAULT NULL,
+  `hz_zj` varchar(128) DEFAULT NULL,
+  `type` int(1) DEFAULT '0' COMMENT '1-病案首页',
+  UNIQUE KEY `LT_HZ_MC_ZJ_TYPE_INDEX` (`lt_mc`,`lt_zj`,`hz_mc`,`hz_zj`,`type`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for med_behospital_info
+-- ----------------------------
+DROP TABLE IF EXISTS `med_behospital_info`;
+CREATE TABLE `med_behospital_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 '档案号',
+  `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) NOT 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 '出院时间',
+  `diagnose_icd` varchar(50) DEFAULT NULL COMMENT '疾病ICD编码',
+  `diagnose` text COMMENT '疾病名称',
+  `doctor_id` varchar(6) DEFAULT NULL COMMENT '医生ID',
+  `doctor_name` varchar(50) 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 (`behospital_code`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='住院病历信息';
+
+-- ----------------------------
+-- Table structure for med_doctor_advice
+-- ----------------------------
+DROP TABLE IF EXISTS `med_doctor_advice`;
+CREATE TABLE `med_doctor_advice` (
+  `doctor_advice_id` varchar(20) NOT NULL COMMENT '病人医嘱ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院id',
+  `behospital_code` varchar(20) NOT NULL COMMENT '病人ID',
+  `order_doctor_name` varchar(20) DEFAULT NULL COMMENT '医生开单判别',
+  `frequency` varchar(20) DEFAULT NULL COMMENT '医嘱频率判别',
+  `parent_type_id` varchar(20) DEFAULT NULL COMMENT '父类医嘱ID',
+  `doctor_advice_type` varchar(20) DEFAULT NULL COMMENT '医嘱类型判别(嘱托长嘱、长期医嘱等)',
+  `usage_num` varchar(20) DEFAULT NULL COMMENT '一次使用数量',
+  `usage_unit` varchar(30) DEFAULT NULL COMMENT '一次用量单位',
+  `dose` varchar(20) DEFAULT NULL COMMENT '医嘱单次剂量',
+  `dose_unit` varchar(30) DEFAULT NULL COMMENT '单次剂量单位',
+  `med_mode_type` varchar(20) DEFAULT NULL COMMENT '给药方式',
+  `da_frequency` varchar(10) DEFAULT NULL COMMENT '医嘱频率',
+  `da_deal_type` varchar(20) DEFAULT NULL COMMENT '医嘱处理类型',
+  `da_start_date` datetime DEFAULT NULL COMMENT '医嘱开始时间',
+  `da_item_name` varchar(200) DEFAULT NULL COMMENT '医嘱项目名称',
+  `da_status` varchar(20) DEFAULT NULL COMMENT '医嘱状态判别',
+  `da_stop_date` datetime DEFAULT NULL COMMENT '医嘱结束时间',
+  `da_group_no` varchar(20) DEFAULT NULL COMMENT '医嘱同组序号',
+  `da_prescription_type` varchar(20) DEFAULT NULL COMMENT '医嘱处方类型(检验、描述医嘱、膳食、西药、护理等)',
+  `da_med_type` varchar(20) DEFAULT NULL COMMENT '医嘱领药类型',
+  `doctor_notice` varchar(100) DEFAULT NULL COMMENT '医生嘱托',
+  `doctor_id` varchar(20) DEFAULT NULL COMMENT '开单医生ID',
+  `doctor_name` varchar(60) 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则表示纪录未修改',
+  UNIQUE KEY `advice_behospital_code_unique` (`doctor_advice_id`,`behospital_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='病人医嘱';
+
+-- ----------------------------
+-- Table structure for med_home_diagnose_info
+-- ----------------------------
+DROP TABLE IF EXISTS `med_home_diagnose_info`;
+CREATE TABLE `med_home_diagnose_info` (
+  `home_page_id` varchar(20) NOT NULL COMMENT '病案首页ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `diagnose_order_no` varchar(20) NOT NULL COMMENT '诊断序号',
+  `diagnose_type` varchar(20) DEFAULT NULL COMMENT '诊断类别',
+  `diagnose_type_short` varchar(20) DEFAULT NULL COMMENT '诊断判别',
+  `diagnose_name` varchar(200) DEFAULT NULL COMMENT '诊断名称',
+  `behospital_type` varchar(20) DEFAULT NULL COMMENT '入院情况',
+  `leave_hospital_type` varchar(20) DEFAULT NULL COMMENT '出院情况',
+  `pathology_diagnose` varchar(20) DEFAULT NULL COMMENT '病理号',
+  `icd_code` varchar(20) 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则表示纪录未修改'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for med_home_operation_info
+-- ----------------------------
+DROP TABLE IF EXISTS `med_home_operation_info`;
+CREATE TABLE `med_home_operation_info` (
+  `home_page_id` varchar(20) NOT NULL COMMENT '病案首页ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `operation_order_no` varchar(20) NOT NULL COMMENT '手术序号',
+  `operation_date` datetime(6) DEFAULT NULL COMMENT '手术日期',
+  `operation_code` varchar(20) DEFAULT NULL COMMENT '手术编码',
+  `operation_doctor_id` varchar(20) DEFAULT NULL COMMENT '手术医生',
+  `first_assistant_id` varchar(20) DEFAULT NULL COMMENT '一助医生',
+  `second_assistant_id` varchar(20) DEFAULT NULL COMMENT '二助医生',
+  `cut_level` varchar(20) DEFAULT NULL COMMENT '切口等级',
+  `healing_level` varchar(20) DEFAULT NULL COMMENT '愈合等级',
+  `operation_name` varchar(200) DEFAULT NULL COMMENT '手术名称',
+  `operation_level` varchar(20) DEFAULT NULL COMMENT '手术级别',
+  `anaesthesia_name` varchar(100) DEFAULT NULL COMMENT '麻醉方式',
+  `sham_operation_name` varchar(200) 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则表示纪录未修改'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for med_home_page
+-- ----------------------------
+DROP TABLE IF EXISTS `med_home_page`;
+CREATE TABLE `med_home_page` (
+  `home_page_id` varchar(20) NOT NULL COMMENT '病案首页编号',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `behospital_code` varchar(20) NOT NULL COMMENT '病人住院序号',
+  `hospital_code` varchar(20) DEFAULT NULL COMMENT '组织机构id',
+  `hospital_name` varchar(20) DEFAULT NULL COMMENT '医疗机构名称',
+  `org_code` varchar(20) DEFAULT NULL COMMENT '医疗机构代码',
+  `pay_type` varchar(20) DEFAULT NULL COMMENT '医疗付费方式',
+  `health_card` varchar(20) DEFAULT NULL COMMENT '健康卡号',
+  `behospital_num` varchar(10) DEFAULT NULL COMMENT '住院次数',
+  `file_code` varchar(20) DEFAULT NULL COMMENT '病案号',
+  `name` varchar(40) DEFAULT NULL COMMENT '姓名',
+  `sex` varchar(10) DEFAULT NULL COMMENT '性别',
+  `birthday` datetime DEFAULT NULL COMMENT '出生日期',
+  `age` varchar(10) DEFAULT NULL COMMENT '年龄',
+  `age_unit` varchar(20) DEFAULT NULL COMMENT '年龄单位',
+  `nationality` varchar(20) DEFAULT NULL COMMENT '国籍',
+  `newborn_month` varchar(10) DEFAULT NULL COMMENT '新生儿出生月数',
+  `newborn_day` varchar(10) DEFAULT NULL COMMENT '新生儿出生天数',
+  `newborn_weight` varchar(10) DEFAULT NULL COMMENT '新生儿出生体重',
+  `newborn_behospital_weight` varchar(10) DEFAULT NULL COMMENT '新生儿入院体重',
+  `born_address` varchar(100) DEFAULT NULL COMMENT '出生地',
+  `born_place` varchar(100) DEFAULT NULL COMMENT '籍贯',
+  `nation` varchar(10) DEFAULT NULL COMMENT '民族',
+  `identity_card_no` varchar(20) DEFAULT NULL COMMENT '身份证号',
+  `job_type` varchar(20) DEFAULT NULL COMMENT '职业',
+  `marriage` varchar(20) DEFAULT NULL COMMENT '婚姻',
+  `cur_address` varchar(100) DEFAULT NULL COMMENT '现住址',
+  `cur_phone` varchar(20) DEFAULT NULL COMMENT '现住址电话',
+  `cur_post_code` varchar(6) DEFAULT NULL COMMENT '现住址邮编',
+  `residence_address` varchar(100) DEFAULT NULL COMMENT '户口地址',
+  `residence_post_code` varchar(6) DEFAULT NULL COMMENT '户口地址邮编',
+  `work_address` varchar(60) DEFAULT NULL COMMENT '工作单位',
+  `work_phone` varchar(20) DEFAULT NULL COMMENT '工作单位电话',
+  `work_post_code` varchar(6) DEFAULT NULL COMMENT '工作单位邮编',
+  `contact_name` varchar(20) DEFAULT NULL COMMENT '联系人姓名',
+  `contact_relation` varchar(60) DEFAULT NULL COMMENT '联系人关系',
+  `contact_address` varchar(100) DEFAULT NULL COMMENT '联系人地址',
+  `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系人电话',
+  `behospital_way` varchar(20) DEFAULT NULL COMMENT '入院途径',
+  `behospital_date` datetime DEFAULT NULL COMMENT '入院时间',
+  `behospital_dept` varchar(20) DEFAULT NULL COMMENT '入院科别',
+  `behospital_ward` varchar(20) DEFAULT NULL COMMENT '入院病房',
+  `behospital_bed_id` varchar(20) DEFAULT NULL COMMENT '入院床位序号',
+  `behospital_bed_code` varchar(20) DEFAULT NULL COMMENT '入院床位号码',
+  `change_dept` varchar(50) DEFAULT NULL COMMENT '转科科别',
+  `leave_hospital_date` datetime DEFAULT NULL COMMENT '出院时间',
+  `leave_hospital_dept` varchar(20) DEFAULT NULL COMMENT '出院科别',
+  `leave_hospital_ward` varchar(20) DEFAULT NULL COMMENT '出院病房',
+  `leave_hospital_bed_id` varchar(20) DEFAULT NULL COMMENT '出院床位序号',
+  `leave_hospital_bed_code` varchar(20) DEFAULT NULL COMMENT '出院床位号码',
+  `behospital_day_num` varchar(10) DEFAULT NULL COMMENT '实际住院天数',
+  `outpatient_emr_diagnose` varchar(100) DEFAULT NULL COMMENT '门急诊诊断',
+  `outpatient_emr_diagnose_code` varchar(20) DEFAULT NULL COMMENT '门急诊诊断编码',
+  `poison_factor` varchar(100) DEFAULT NULL COMMENT '损伤中毒因素',
+  `poison_factor_code` varchar(50) DEFAULT NULL COMMENT '损伤中毒因素编码',
+  `pathology_diagnose` varchar(100) DEFAULT NULL COMMENT '病理诊断',
+  `pathology_diagnose_code` varchar(50) DEFAULT NULL COMMENT '病理诊断编码',
+  `pathology_diagnose_id` varchar(50) DEFAULT NULL COMMENT '病理诊断编号',
+  `is_med_allergy` varchar(10) DEFAULT NULL COMMENT '药物过敏',
+  `med_allergy_name` varchar(20) DEFAULT NULL COMMENT '过敏药物',
+  `autopsy` varchar(10) DEFAULT NULL COMMENT '死亡患者尸检',
+  `blood_type` varchar(20) DEFAULT NULL COMMENT '血型',
+  `rh` varchar(20) DEFAULT NULL COMMENT 'Rh',
+  `dept_director` varchar(20) DEFAULT NULL COMMENT '科主任',
+  `director_doctor` varchar(20) DEFAULT NULL COMMENT '主任医师',
+  `attending_doctor` varchar(20) DEFAULT NULL COMMENT '主治医师',
+  `behospital_doctor` varchar(20) DEFAULT NULL COMMENT '住院医师',
+  `response_nurse` varchar(20) DEFAULT NULL COMMENT '责任护士',
+  `study_doctor` varchar(20) DEFAULT NULL COMMENT '进修医师',
+  `practice_doctor` varchar(20) DEFAULT NULL COMMENT '实习医师',
+  `encode_man` varchar(20) DEFAULT NULL COMMENT '编码员',
+  `home_page_quality` varchar(20) DEFAULT NULL COMMENT '病案质量',
+  `qc_doctor` varchar(20) DEFAULT NULL COMMENT '质控医师',
+  `qc_nurse` varchar(20) DEFAULT NULL COMMENT '质控护士',
+  `qc_date` datetime DEFAULT NULL COMMENT '质控日期',
+  `leave_hospital_type` varchar(10) DEFAULT NULL COMMENT '离院方式',
+  `accept_org_code` varchar(100) DEFAULT NULL COMMENT '接收机构名称',
+  `again_behospital_plan` varchar(10) DEFAULT NULL COMMENT '31天内再住院计划',
+  `again_behospital_goal` varchar(100) DEFAULT NULL COMMENT '再住院目的',
+  `tbi_before_day` varchar(10) DEFAULT NULL COMMENT '颅脑损伤患者昏迷前天数',
+  `tbi_before_hour` varchar(10) DEFAULT NULL COMMENT '颅脑损伤患者昏迷前小时',
+  `tbi_before_minute` varchar(10) DEFAULT NULL COMMENT '颅脑损伤患者昏迷前分钟',
+  `tbi_after_day` varchar(10) DEFAULT NULL COMMENT '颅脑损伤患者昏迷后天数',
+  `tbi_after_hour` varchar(10) DEFAULT NULL COMMENT '颅脑损伤患者昏迷后小时',
+  `tbi_after_minute` varchar(10) DEFAULT NULL COMMENT '颅脑损伤患者昏迷后分钟',
+  `total_fee` varchar(20) DEFAULT NULL COMMENT '总费用',
+  `own_fee` varchar(20) DEFAULT NULL COMMENT '自付金额',
+  `general_fee` varchar(20) DEFAULT NULL COMMENT '一般医疗服务费',
+  `service_fee` varchar(20) DEFAULT NULL COMMENT '一般治疗服务费',
+  `nurse_fee` varchar(20) DEFAULT NULL COMMENT '护理费',
+  `other_fee` varchar(20) DEFAULT NULL COMMENT '其他费用',
+  `pathology_fee` varchar(20) DEFAULT NULL COMMENT '病理诊断费',
+  `lab_fee` varchar(20) DEFAULT NULL COMMENT '实验室诊断费',
+  `pacs_fee` varchar(20) DEFAULT NULL COMMENT '影像学诊断费',
+  `clinic_diagnose_fee` varchar(20) DEFAULT NULL COMMENT '临床诊断项目费',
+  `not_operation_fee` varchar(20) DEFAULT NULL COMMENT '非手术治疗项目费',
+  `clinic_physic_fee` varchar(20) DEFAULT NULL COMMENT '临床物理治疗费',
+  `operation_treat_fee` varchar(20) DEFAULT NULL COMMENT '手术治疗费',
+  `anaesthesia_fee` varchar(20) DEFAULT NULL COMMENT '麻醉费',
+  `operation_fee` varchar(20) DEFAULT NULL COMMENT '手术费',
+  `health_type_fee` varchar(20) DEFAULT NULL COMMENT '康复类',
+  `chn_treat_fee` varchar(20) DEFAULT NULL COMMENT '中医治疗费',
+  `western_med_fee` varchar(20) DEFAULT NULL COMMENT '西药费',
+  `antibiosis_fee` varchar(20) DEFAULT NULL COMMENT '抗菌药物费用',
+  `chn_med_fee` varchar(20) DEFAULT NULL COMMENT '中成药费',
+  `chn_herb_fee` varchar(20) DEFAULT NULL COMMENT '中草药费',
+  `blood_fee` varchar(20) DEFAULT NULL COMMENT '血费',
+  `albumen_fee` varchar(20) DEFAULT NULL COMMENT '白蛋白类制品费',
+  `globulin_fee` varchar(20) DEFAULT NULL COMMENT '球蛋白类制品费',
+  `blood_factor_fee` varchar(20) DEFAULT NULL COMMENT '凝血因子类制品费',
+  `cell_factor_fee` varchar(20) DEFAULT NULL COMMENT '细胞因子类制品费',
+  `check_material_fee` varchar(20) DEFAULT NULL COMMENT '检查用一次性医用材料费',
+  `treat_material_fee` varchar(20) DEFAULT NULL COMMENT '治疗用一次性医用材料费',
+  `operation_material_fee` varchar(20) DEFAULT NULL COMMENT '手术用一次性医用材料费',
+  `other_type_fee` varchar(20) DEFAULT NULL COMMENT '其他类其他费',
+  `single_diag_manage` varchar(10) DEFAULT NULL COMMENT '单病种管理',
+  `clinic_pathway_manage` varchar(10) DEFAULT NULL COMMENT '临床路径管理',
+  `is_outpatient_behospital` varchar(10) DEFAULT NULL COMMENT '门诊与住院',
+  `is_leave_behospital` varchar(10) DEFAULT NULL COMMENT '入院与出院',
+  `is_operation_before_after` varchar(10) DEFAULT NULL COMMENT '术前与术后',
+  `is_clinic_pathology` varchar(10) DEFAULT NULL COMMENT '临床与病理',
+  `is_radiate_pathology` varchar(10) DEFAULT NULL COMMENT '放射与病理',
+  `rescue_num` varchar(10) DEFAULT NULL COMMENT '病人抢救次数',
+  `rescue_success_num` varchar(10) DEFAULT NULL COMMENT '病人抢救成功次数',
+  `is_auto_leavehospital` varchar(10) DEFAULT NULL COMMENT '是否为自动出院',
+  `return_to_type` 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 (`home_page_id`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for med_medical_record
+-- ----------------------------
+DROP TABLE IF EXISTS `med_medical_record`;
+CREATE TABLE `med_medical_record` (
+  `rec_id` varchar(20) NOT NULL,
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `behospital_code` varchar(50) DEFAULT NULL COMMENT '病人住院ID',
+  `org_code` varchar(20) DEFAULT NULL COMMENT '组织机构代码',
+  `rec_type_id` varchar(100) DEFAULT NULL COMMENT '病历类别编号',
+  `rec_date` varchar(50) DEFAULT NULL COMMENT '病历日期',
+  `rec_title` varchar(128) 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 (`rec_id`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for med_medical_record_content
+-- ----------------------------
+DROP TABLE IF EXISTS `med_medical_record_content`;
+CREATE TABLE `med_medical_record_content` (
+  `rec_id` varchar(11) NOT NULL COMMENT '病历ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `content_blob` longblob COMMENT '文书内容(blob)',
+  `content_text` longtext 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 (`rec_id`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for med_qcresult_detail
+-- ----------------------------
+DROP TABLE IF EXISTS `med_qcresult_detail`;
+CREATE TABLE `med_qcresult_detail` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `behospital_code` varchar(255) NOT NULL DEFAULT '' COMMENT '病人住院ID',
+  `cases_id` bigint(20) DEFAULT NULL COMMENT '模块id',
+  `cases_score` decimal(5,1) DEFAULT NULL COMMENT '模块总分',
+  `cases_entry_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '条目ID',
+  `score` decimal(5,1) DEFAULT NULL COMMENT '人工修改分值',
+  `msg` varchar(255) DEFAULT NULL COMMENT '提示信息',
+  `is_reject` int(3) DEFAULT '0' COMMENT '单项否决(1-单项否决 0-非)',
+  `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则表示纪录未修改',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=29445 DEFAULT CHARSET=utf8 COMMENT='质控评分明细信息\r\n每次评分增加一条信息,前面所有评分is_deleted全部设置为Y';
+
+-- ----------------------------
+-- Table structure for med_qcresult_info
+-- ----------------------------
+DROP TABLE IF EXISTS `med_qcresult_info`;
+CREATE TABLE `med_qcresult_info` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `hospital_id` bigint(20) DEFAULT '0' COMMENT '医院ID',
+  `behospital_code` varchar(255) NOT NULL DEFAULT '' COMMENT '病人住院ID',
+  `level` varchar(20) NOT NULL DEFAULT '' COMMENT '等级',
+  `page_data` longtext COMMENT '页面数据',
+  `menu_data` longtext COMMENT '菜单数据',
+  `grade_type` tinyint(4) DEFAULT '1' COMMENT '评分类型(1:机器,2:人工)',
+  `score_res` decimal(5,1) NOT NULL DEFAULT '0.0' 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则表示纪录未修改',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=234 DEFAULT CHARSET=utf8 COMMENT='质控评分主表信息\r\n每次评分增加一条信息,前面所有评分is_deleted全部设置为Y';
+
+-- ----------------------------
+-- Table structure for med_record_type
+-- ----------------------------
+DROP TABLE IF EXISTS `med_record_type`;
+CREATE TABLE `med_record_type` (
+  `type_id` varchar(16) NOT NULL COMMENT '类别ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `type_name` varchar(128) DEFAULT NULL COMMENT '类别名称',
+  `parent_type_id` varchar(16) DEFAULT NULL COMMENT '上级类别',
+  `obj_name` varchar(4) DEFAULT NULL COMMENT '服务对象(全院、科室、个人)',
+  `spell` varchar(32) DEFAULT NULL COMMENT '拼音',
+  `remark` varchar(256) DEFAULT NULL,
+  PRIMARY KEY (`type_id`,`hospital_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for qc_cases
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_cases`;
+CREATE TABLE `qc_cases` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `name` varchar(255) DEFAULT NULL COMMENT '模块名称',
+  `prefix` varchar(255) DEFAULT NULL COMMENT '模块编码前缀',
+  `order_no` int(6) DEFAULT NULL COMMENT '顺序号',
+  `remark` varchar(255) 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=285 DEFAULT CHARSET=utf8 COMMENT='模块数据标准';
+
+-- ----------------------------
+-- Table structure for qc_cases_entry
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_cases_entry`;
+CREATE TABLE `qc_cases_entry` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `cases_id` bigint(20) DEFAULT NULL COMMENT '病历id',
+  `cases_name` varchar(255) DEFAULT NULL,
+  `mode_id` bigint(20) DEFAULT NULL COMMENT '数据模块ID-对应qc_mode.id',
+  `code` varchar(255) DEFAULT NULL,
+  `name` varchar(255) DEFAULT NULL COMMENT '条目',
+  `precond` varchar(255) DEFAULT NULL,
+  `order_no` int(6) DEFAULT NULL COMMENT '顺序号',
+  `remark` varchar(255) 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=2774 DEFAULT CHARSET=utf8 COMMENT='病历条目';
+
+-- ----------------------------
+-- Table structure for qc_cases_entry_hospital
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_cases_entry_hospital`;
+CREATE TABLE `qc_cases_entry_hospital` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT 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则表示纪录未修改',
+  `cases_entry_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '病历id',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `score` decimal(5,1) NOT NULL DEFAULT '0.0' COMMENT '扣分值',
+  `msg` varchar(1024) DEFAULT NULL COMMENT '条目提示信息',
+  `is_used` int(3) NOT NULL DEFAULT '0' COMMENT '0-未启用 1-启用',
+  `is_reject` int(3) DEFAULT '0' COMMENT '单项否决(1-单项否决 0-非)',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6944 DEFAULT CHARSET=utf8 COMMENT='病历条目';
+
+-- ----------------------------
+-- Table structure for qc_cases_hospital
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_cases_hospital`;
+CREATE TABLE `qc_cases_hospital` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `cases_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '模块ID',
+  `score` decimal(5,1) NOT NULL DEFAULT '0.0' 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=41 DEFAULT CHARSET=utf8 COMMENT='医院模块数据';
+
+-- ----------------------------
+-- Table structure for qc_mode
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_mode`;
+CREATE TABLE `qc_mode` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `name` varchar(128) DEFAULT NULL COMMENT '模块名称',
+  `order_no` int(11) DEFAULT '1' COMMENT '排序号',
+  `parent_id` bigint(20) 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则表示纪录未修改',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8 COMMENT='病历';
+
+-- ----------------------------
+-- Table structure for qc_model_hospital
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_model_hospital`;
+CREATE TABLE `qc_model_hospital` (
+  `hospital_model_name` varchar(255) DEFAULT NULL,
+  `stand_model_name` varchar(255) DEFAULT NULL,
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `hospital_id` int(11) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=957 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for qc_model_mapping
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_model_mapping`;
+CREATE TABLE `qc_model_mapping` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT 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则表示纪录未修改',
+  `case_number_id` bigint(20) DEFAULT NULL COMMENT '病历号',
+  `case_number` varchar(255) DEFAULT NULL,
+  `mode_id` bigint(20) DEFAULT NULL COMMENT '数据类型id',
+  `origin_mode` varchar(255) DEFAULT NULL,
+  `text` longtext COMMENT '内容',
+  `origin_text` longtext,
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=257952 DEFAULT CHARSET=utf8 COMMENT='病历内容';
+
+-- ----------------------------
+-- Table structure for qc_type
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_type`;
+CREATE TABLE `qc_type` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `name` varchar(255) DEFAULT NULL COMMENT '质控类型名称',
+  `remark` varchar(255) 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=2 DEFAULT CHARSET=utf8 COMMENT='质控类型标准';
+
+-- ----------------------------
+-- Table structure for qc_type_cases_entry
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_type_cases_entry`;
+CREATE TABLE `qc_type_cases_entry` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `type_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '质控类型ID',
+  `case_entry_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '条目数据ID',
+  `remark` varchar(255) 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=649 DEFAULT CHARSET=utf8 COMMENT='质控类型和质控条目关联表';
+
+-- ----------------------------
+-- Table structure for qc_type_doc
+-- ----------------------------
+DROP TABLE IF EXISTS `qc_type_doc`;
+CREATE TABLE `qc_type_doc` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `type_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '质控类型ID(qc_type.id)',
+  `hospital_type_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院文书类型的类型id(med_record_type.type_id)',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院文书类型的医院ID(med_record_type.hospital_id)',
+  `remark` varchar(255) 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=3 DEFAULT CHARSET=utf8 COMMENT='质控类型和医院文书类型关联表';
+
+-- ----------------------------
+-- Table structure for sys_dictionary_info
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dictionary_info`;
+CREATE TABLE `sys_dictionary_info` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `group_type` bigint(20) NOT NULL DEFAULT '0' COMMENT '分组(值自定义)',
+  `name` varchar(100) NOT NULL DEFAULT '' COMMENT '内容',
+  `val` varchar(255) NOT NULL DEFAULT '' COMMENT '值',
+  `return_type` int(11) NOT NULL DEFAULT '1' COMMENT '返回类型(0: 都返回,1:后台维护返回 2:界面返回)',
+  `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
+  `remark` varchar(300) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=224 DEFAULT CHARSET=utf8 COMMENT='系统字典表';
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单名称',
+  `parent_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '-1:表示顶级,其他值表示上级菜单的id',
+  `code` varchar(255) NOT NULL DEFAULT '' COMMENT '编码,与前端对应',
+  `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序,从小到大',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='系统菜单';
+
+-- ----------------------------
+-- Table structure for sys_menu_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu_permission`;
+CREATE TABLE `sys_menu_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `menu_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '菜单id',
+  `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '系统资源id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单和系统资源的映射表';
+
+-- ----------------------------
+-- Table structure for sys_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_permission`;
+CREATE TABLE `sys_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '资源ID',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '资源名称',
+  `permissionUrl` varchar(255) NOT NULL DEFAULT '' COMMENT '资源Url',
+  `method` varchar(255) NOT NULL DEFAULT 'ALL' COMMENT '资源允许的请求方式',
+  `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '资源描述',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '角色名称',
+  `roleLevel` int(11) NOT NULL DEFAULT '0' COMMENT '角色等级',
+  `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '角色描述',
+  `menuItems` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单ID:对应角色ID(暂无用处)',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='系统角色表';
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `role_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '角色id',
+  `menu_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '菜单id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='角色和菜单的映射表';
+
+-- ----------------------------
+-- Table structure for sys_role_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_permission`;
+CREATE TABLE `sys_role_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `role_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '角色id',
+  `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '资源id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='角色和资源的映射表';
+
+-- ----------------------------
+-- Table structure for sys_task_cron
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_task_cron`;
+CREATE TABLE `sys_task_cron` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `cron_code` varchar(30) NOT NULL DEFAULT '' COMMENT '任务编号',
+  `cron` varchar(30) NOT NULL DEFAULT '' COMMENT '任务执行周期',
+  `is_used` int(3) NOT NULL DEFAULT '0' COMMENT '0-未启用 1-启用',
+  `remark` varchar(100) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='定时任务';
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `username` varchar(255) NOT NULL DEFAULT '' COMMENT '用户名',
+  `password` varchar(255) NOT NULL DEFAULT '' COMMENT '用户密码',
+  `linkman` varchar(255) NOT NULL DEFAULT '' COMMENT '联系人',
+  `type` int(11) NOT NULL DEFAULT '0' COMMENT '1内部用户,0外部用户(默认0)',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`),
+  KEY `uk_username` (`username`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='系统用户表';
+
+-- ----------------------------
+-- Table structure for sys_user_hospital
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_hospital`;
+CREATE TABLE `sys_user_hospital` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `user_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '用户主键',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COMMENT='用户-机构表映射表';
+
+-- ----------------------------
+-- Table structure for sys_user_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_role`;
+CREATE TABLE `sys_user_role` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户和角色关联ID',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `user_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '系统用户表.用户ID',
+  `role_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '系统角色表.角色ID',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='系统用户角色关联表';

+ 7 - 0
src/main/java/com/diagbot/client/AuthServiceClient.java

@@ -1,10 +1,14 @@
 package com.diagbot.client;
 
 import com.diagbot.client.hystrix.AuthServiceHystrix;
+import com.diagbot.dto.AnalyzeDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.JWT;
+import com.diagbot.vo.AnalyzeVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -25,6 +29,9 @@ public interface AuthServiceClient {
 
     @PostMapping(value = "/oauth/check_token")
     OAuth2AccessToken checkToken(@RequestHeader(value = "Authorization") String authorization, @RequestParam("token") String token);
+
+    @PostMapping(value = "/qc/behospitalInfo/analyze_rpc")
+    RespDTO<AnalyzeDTO> analyze_rpc(@RequestBody AnalyzeVO analyzeVO);
 }
 
 

+ 9 - 0
src/main/java/com/diagbot/client/hystrix/AuthServiceHystrix.java

@@ -2,7 +2,10 @@ package com.diagbot.client.hystrix;
 
 
 import com.diagbot.client.AuthServiceClient;
+import com.diagbot.dto.AnalyzeDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.JWT;
+import com.diagbot.vo.AnalyzeVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.stereotype.Component;
@@ -32,4 +35,10 @@ public class AuthServiceHystrix implements AuthServiceClient {
         log.error("【hystrix】调用{}异常", "checkToken");
         return null;
     }
+
+    @Override
+    public RespDTO<AnalyzeDTO> analyze_rpc(AnalyzeVO analyzeVO) {
+        log.error("【hystrix】调用{}异常", "analyze_rpc");
+        return null;
+    }
 }

+ 1 - 1
src/main/java/com/diagbot/config/OAuth2Configurer.java

@@ -84,7 +84,7 @@ public class OAuth2Configurer extends AuthorizationServerConfigurerAdapter {
         KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource("diagbot-jwt.jks"), "diagbot123456".toCharArray());
         JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
         converter.setKeyPair(keyStoreKeyFactory.getKeyPair("diagbot-jwt"));
-        log.info("Created JwtTokenEnhancerServer");
+        log.info("Created jwtTokenEnhancerServer success");
         return converter;
     }
 }

+ 5 - 6
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -3,7 +3,6 @@ package com.diagbot.config;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -14,7 +13,6 @@ import org.springframework.security.jwt.crypto.sign.RsaVerifier;
 import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
 import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
 import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
-import org.springframework.security.oauth2.provider.token.TokenStore;
 import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
 import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;
 import org.springframework.util.FileCopyUtils;
@@ -45,11 +43,12 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/sys/dictionaryInfo/getDictionary").permitAll()
                 .antMatchers("/oauth/token").permitAll()
                 .antMatchers("/oauth/check_token").permitAll()
-                .antMatchers("/qc/behospitalInfo/analyze").permitAll()
                 .antMatchers("/cache/clear").permitAll()
                 .antMatchers("/qc/mode/getMenu").permitAll()
-                .antMatchers("/qc/homePageInfo/getHomePage").permitAll()
-                .antMatchers("/qc/homePageInfo/getDoctorAdvice").permitAll()
+                .antMatchers("/qc/data/initData").permitAll()
+                .antMatchers("/qc/behospitalInfo/execule").permitAll()
+                .antMatchers("/qc/behospitalInfo/analyze_rpc").permitAll()
+                .antMatchers("/qc/behospitalInfo/analyze").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }
@@ -78,7 +77,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
         //不设置这个会出现 Cannot convert access token to JSON
         converter.setVerifier(new RsaVerifier(publicKey));
         converter.setAccessTokenConverter(customAccessTokenConverter);
-        log.info("Created jwtTokenEnhancerClient");
+        log.info("Created jwtTokenEnhancerClient success");
         return converter;
     }
 }

+ 4 - 3
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -86,11 +86,12 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/sys/user/checkToken", request)
                 || matchers("/oauth/token", request)
                 || matchers("/oauth/check_token", request)
-                || matchers("/qc/behospitalInfo/analyze", request)
                 || matchers("/cache/clear", request)
                 || matchers("/qc/mode/getMenu", request)
-                || matchers("/qc/homePageInfo/getHomePage", request)
-                || matchers("/qc/homePageInfo/getDoctorAdvice", request)
+                || matchers("/qc/data/initData", request)
+                || matchers("/qc/behospitalInfo/execule", request)
+                || matchers("/qc/behospitalInfo/analyze_rpc", request)
+                || matchers("/qc/behospitalInfo/analyze", request)
                 || matchers("/", request)) {
             return true;
         }

+ 43 - 0
src/main/java/com/diagbot/dto/FHomeDiagnoseDTO.java

@@ -0,0 +1,43 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class FHomeDiagnoseDTO {
+	/**
+     * 病案首页ID
+     */
+    private String homePageId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 诊断序号
+     */
+    private String diagnoseOrderNo;
+
+    /**
+     * 诊断类别(主要诊断、其他诊断)
+     */
+    private String diagnoseType;
+
+    /**
+     * 诊断判别(主、次)
+     */
+    private String diagnoseTypeShort;
+
+    private String diagnoseName;
+
+    private String behospitalType;
+
+    private String leaveHospitalType;
+
+    private String pathologyDiagnose;
+
+    private String icdCode;
+}

+ 105 - 0
src/main/java/com/diagbot/dto/FHomeOperationDTO.java

@@ -0,0 +1,105 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class FHomeOperationDTO {
+	/**
+     * 病案首页ID
+     */
+    private String homePageId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 手术序号
+     */
+    private String operationOrderNo;
+
+    /**
+     * 手术日期
+     */
+    private Date operationDate;
+
+    /**
+     * 手术编码
+     */
+    private String operationCode;
+
+    /**
+     * 手术医生ID
+     */
+    private String operationDoctorId;
+
+    /**
+     * 一助医生ID
+     */
+    private String firstAssistantId;
+
+    /**
+     * 二助医生ID
+     */
+    private String secondAssistantId;
+
+    /**
+     * 切口等级
+     */
+    private String cutLevel;
+
+    /**
+     * 愈合等级
+     */
+    private String healingLevel;
+
+    /**
+     * 手术名称
+     */
+    private String operationName;
+
+    /**
+     * 手术级别
+     */
+    private String operationLevel;
+
+    /**
+     * 麻醉方式(全麻、局麻、静脉麻醉)
+     */
+    private String anaesthesiaName;
+
+    /**
+     * 拟手术名称
+     */
+    private String shamOperationName;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+}

+ 5 - 0
src/main/java/com/diagbot/dto/FHomePageDTO.java

@@ -0,0 +1,5 @@
+package com.diagbot.dto;
+
+public class FHomePageDTO {
+
+}

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

@@ -23,6 +23,12 @@ public class MsgDTO {
     private String isReject;
     //模块名称
     private String modelName;
+    //模块id
+    private String modelId;
+    //模块ID
+    private Long casesId;
+    //模块分数
+    private BigDecimal casesScore;
     // 条目ID
     private Long casesEntryId;
 }

+ 9 - 6
src/main/java/com/diagbot/dto/QcCasesEntryFindDTO.java

@@ -1,9 +1,10 @@
 package com.diagbot.dto;
 
-import io.swagger.models.auth.In;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * @author wangfeng
  * @Description:
@@ -12,22 +13,24 @@ import lombok.Setter;
 @Setter
 @Getter
 public class QcCasesEntryFindDTO {
+    //医院id
+    private Long hospitalId;
     //模块id
     private Long casesId;
     //模块名
     private String casesName;
+    //模块分值
+    private BigDecimal CaseScore;
     //医院模块id
     private Long modeId;
     //条目id
     private Long casesEntryId;
-    //医院id
-    private Long hospitalId;
     //条目名
     private String entryName;
     //提示信息
-    private String msg ;
-    //分值
-    private Double score;
+    private String msg;
+    //条目分值
+    private BigDecimal score;
     //是否单项否决
     private Integer isReject;
 }

+ 8 - 2
src/main/java/com/diagbot/dto/QcResultDTO.java

@@ -3,6 +3,7 @@ package com.diagbot.dto;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 /**
  * <p>
@@ -27,14 +28,19 @@ public class QcResultDTO implements Serializable {
      */
     private String pageData;
 
+    /**
+     * 菜单数据
+     */
+    private String menuData;
+
     /**
      * 评分类型(1:机器,2:人工)
      */
-    private String gradeType;
+    private Integer gradeType;
 
     /**
      * 最后得分
      */
-    private String scoreRes;
+    private BigDecimal scoreRes;
 
 }

+ 1 - 1
src/main/java/com/diagbot/entity/BehospitalInfo.java

@@ -28,7 +28,7 @@ public class BehospitalInfo implements Serializable {
     /**
      * 医院ID
      */
-    private String hospitalId;
+    private Long hospitalId;
 
     /**
      * 姓名

+ 5 - 0
src/main/java/com/diagbot/entity/QcresultInfo.java

@@ -52,6 +52,11 @@ public class QcresultInfo implements Serializable {
      */
     private String pageData;
 
+    /**
+     * 菜单数据
+     */
+    private String menuData;
+
     /**
      * 最后得分
      */

+ 5 - 3
src/main/java/com/diagbot/facade/AlgorithmFacade.java

@@ -40,6 +40,7 @@ public class AlgorithmFacade {
         }
         //处理数据
         dataDeal(algorithmVO);
+        //计算得分
         BigDecimal res = cal(algorithmVO);
         return res;
     }
@@ -89,15 +90,16 @@ public class AlgorithmFacade {
 
         }
         //删除
-        if (algorithmVO.getType().equals(2)) {
+        else if (algorithmVO.getType().equals(2)) {
             if (null == algorithmVO.getOptResultAlgVO()) {
                 throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "删除操作条目不能为空!");
             }
             //操作数据
             if (ListUtil.isNotEmpty(qcResultAlgVOList)) {
                 Boolean hasData = false;
+                Long optId = algorithmVO.getOptResultAlgVO().getId(); // 操作id
                 for (QcResultAlgVO qcResultAlgVO : qcResultAlgVOList) {
-                    if (qcResultAlgVO.getId().equals(algorithmVO.getOptResultAlgVO().getId())) {
+                    if (qcResultAlgVO.getId().equals(optId)) {
                         qcResultAlgVOList.remove(qcResultAlgVO);
                         hasData = true;
                         break;
@@ -109,7 +111,7 @@ public class AlgorithmFacade {
             }
         }
         //修改
-        if (algorithmVO.getType().equals(3)) {
+        else if (algorithmVO.getType().equals(3)) {
             if (null == algorithmVO.getOptResultAlgVO()) {
                 throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "修改操作条目不能为空!");
             }

+ 85 - 25
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.AuthServiceClient;
 import com.diagbot.client.QcServiceClient;
 import com.diagbot.dto.AlgorithmDTO;
 import com.diagbot.dto.AnalyzeDTO;
@@ -11,6 +12,7 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.OutputInfo;
 import com.diagbot.dto.QcCasesEntryDTO;
+import com.diagbot.dto.QcModeDTO;
 import com.diagbot.dto.QcResultDTO;
 import com.diagbot.dto.RecordContentDTO;
 import com.diagbot.dto.Response;
@@ -80,6 +82,10 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     SysDictionaryFacade sysDictionaryFacade;
     @Autowired
     private QcresultInfoFacade qcresultInfoFacade;
+    @Autowired
+    QcModeFacade qcModeFacade;
+    @Autowired
+    AuthServiceClient authServiceClient;
 
     public IPage<BehospitalInfoDTO> pageFac(BehospitalPageVO behospitalPageVO) {
 
@@ -104,32 +110,47 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 .eq("hospital_id", getDetailVO.getHospitalId())
                 .eq("behospital_code", getDetailVO.getBehospitalCode()), false
         );
-        BehosDTO behosDTO = new BehosDTO();
-        if (behospitalInfo == null) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历已删除!");
+
+        List<String> paramList = getDetailVO.getParamStr();// 参数列表
+
+        if (ListUtil.isEmpty(paramList) || paramList.contains("beHospital")) {
+            BehosDTO behosDTO = new BehosDTO();
+            if (behospitalInfo == null) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历已删除!");
+            }
+            BeanUtil.copyProperties(behospitalInfo, behosDTO);
+            res.put("beHospital", behosDTO);
         }
-        BeanUtil.copyProperties(behospitalInfo, behosDTO);
-        res.put("beHospital", behosDTO);
 
-        // 获取主表信息
-        QcResultDTO qcResultDTO = qcresultInfoFacade.getByBehospitalCode(getDetailVO);
-        if (qcResultDTO == null) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历未评分!");
+        if (ListUtil.isEmpty(paramList) || paramList.contains("result") || paramList.contains("resultSimple")) {
+            // 获取结果主表信息
+            QcResultDTO qcResultDTO = qcresultInfoFacade.getByBehospitalCode(getDetailVO);
+            if (qcResultDTO == null) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历未评分!");
+            }
+            if (paramList.contains("resultSimple")) {
+                qcResultDTO.setPageData("");
+                qcResultDTO.setMenuData("");
+            }
+            res.put("result", qcResultDTO);
         }
-        res.put("result", qcResultDTO);
 
         // 获取提示信息
-        AnalyzeVO analyzeVO = new AnalyzeVO();
-        BeanUtil.copyProperties(getDetailVO, analyzeVO);
-        List<MsgDTO> msgDTOList = getMsg(analyzeVO);
-        Map<String, List<MsgDTO>> msgMap = EntityUtil.makeEntityListMap(msgDTOList, "modelName");
-        res.put("msg", msgMap);
+        if (ListUtil.isEmpty(paramList) || paramList.contains("msg")) {
+            AnalyzeVO analyzeVO = new AnalyzeVO();
+            BeanUtil.copyProperties(getDetailVO, analyzeVO);
+            List<MsgDTO> msgDTOList = getMsg(analyzeVO);
+            Map<String, List<MsgDTO>> msgMap = EntityUtil.makeEntityListMap(msgDTOList, "modelName");
+            res.put("msg", msgMap);
+        }
         return res;
     }
 
     public AnalyzeDTO analyze(AnalyzeVO analyzeVO) {
-        Map<String, Object> res = new HashMap<>(); // 返回结果
-        Long hospitalId = Long.parseLong(SysUserUtils.getCurrentHospitalID());
+        Long hospitalId = analyzeVO.getHospitalId();
+        if (!analyzeVO.getIsTask()) {
+            hospitalId = Long.parseLong(SysUserUtils.getCurrentHospitalID());
+        }
 //        Long hospitalId = 1L; // 写死
         analyzeVO.setHospitalId(hospitalId);
         // 获取质控条目
@@ -211,10 +232,9 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
 
         // 病案首页
-        if (homePage != null ) {
-            addDataWithFirstPage("病案首页",  homePage, medrecVoList, dicMap,
-                    homePageList, homeOperationInfoList);
-        }
+        addDataWithFirstPage("病案首页",  homePage, medrecVoList, dicMap,
+                homePageList, homeOperationInfoList);
+
         queryVo.setMedrec(medrecVoList);
 
         //  调用质控接口
@@ -238,14 +258,19 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         algorithmVO.setQcResultAlgVOList(qcResultAlgVOList);
         AlgorithmDTO algorithmDTO = algorithmFacade.getAlgorithmRes(algorithmVO);
         //保存
-        String pageData = JSON.toJSONString(outputInfo.getPageData());
-        Date date = qcresultInfoFacade.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, pageData);
-        res.put("pageData", pageData);
+        Map<String, Object> pageMap = outputInfo.getPageData();
+        String pageData = JSON.toJSONString(pageMap);
+        // 获取菜单信息
+        List<QcModeDTO> qcModeDTOList = qcModeFacade.getMenu(pageMap);
+        String menuData = JSON.toJSONString(qcModeDTOList);
+
+        Date date = qcresultInfoFacade.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, pageData, menuData, analyzeVO.getIsTask());
 
         // 返回提示信息
         List<MsgDTO> msgDTOList = getMsg(analyzeVO);
         Map<String, List<MsgDTO>> msgMap = EntityUtil.makeEntityListMap(msgDTOList, "modelName");
-        res.put("msg", msgMap);
+
+
         //返回参数组装
         AnalyzeDTO analyzeDTO = new AnalyzeDTO();
         analyzeDTO.setBehospitalCode(analyzeVO.getBehospitalCode());
@@ -301,6 +326,11 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             }
         }
         if (flag) {
+            // 会诊记录特殊处理,有会诊申请单,没有会诊结果单,复制一份到会诊结果单
+            if ("会诊记录".equals(key) && ListUtil.isNotEmpty(listMap.get("会诊申请单"))
+                    && ListUtil.isEmpty(listMap.get("会诊结果单"))) {
+                listMap.put("会诊结果单", listMap.get("会诊申请单"));
+            }
             content.put("content", listMap);
             medrecVo.setContent(content);
             medrecVoList.add(medrecVo);
@@ -496,4 +526,34 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
         return age;
     }
+
+    /**
+     * 执行未评分的病历
+     */
+    public void execute() {
+        List<BehospitalInfo> behospitalInfoList = getNoGrade();
+        for (BehospitalInfo bean : behospitalInfoList) {
+            AnalyzeVO analyzeVO = new AnalyzeVO();
+            analyzeVO.setIsTask(true);
+            analyzeVO.setHospitalId(bean.getHospitalId());
+            analyzeVO.setBehospitalCode(bean.getBehospitalCode());
+            authServiceClient.analyze_rpc(analyzeVO);
+        }
+
+//        List<BehospitalInfo> behospitalInfoList = this.list(new QueryWrapper<BehospitalInfo>()
+//                .eq("is_deleted", IsDeleteEnum.N.getKey())
+//        );
+//
+//        int i = 1;
+//        while(i < 100) {
+//            for (BehospitalInfo bean : behospitalInfoList) {
+//                AnalyzeVO analyzeVO = new AnalyzeVO();
+//                analyzeVO.setIsTask(true);
+//                analyzeVO.setHospitalId(bean.getHospitalId());
+//                analyzeVO.setBehospitalCode(bean.getBehospitalCode());
+//                authServiceClient.analyze_rpc(analyzeVO);
+//                System.out.println(i++);
+//            }
+//        }
+    }
 }

+ 138 - 0
src/main/java/com/diagbot/facade/DataFacade.java

@@ -0,0 +1,138 @@
+package com.diagbot.facade;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.entity.HomePage;
+import com.diagbot.entity.MedRecordType;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.MedicalRecordContent;
+import com.diagbot.util.DBConn;
+
+@Component
+public class DataFacade{
+
+	@Autowired
+	private HomePageFacade homePageFacade;
+	
+	@Autowired
+	private BehospitalInfoFacade behospitalInfoFacade;
+	
+	@Autowired
+	private DoctorAdviceFacade doctorAdviceFacade;
+	
+	@Autowired
+	private MedicalRecordFacade MedicalRecordFacade;
+	
+	@Autowired
+	private MedicalRecordContentFacade MedicalRecordContentFacade;
+	
+	@Autowired
+	private MedicalRecordTypeFacade MedicalRecordTypeFacade;
+	
+	@Autowired
+	private HomeDiagnoseInfoFacade homeDiagnoseInfoFacade;
+	
+	@Autowired
+	private HomeOperationInfoFacade homeOperationInfoFacade;
+	
+	public Boolean initData() {
+		//初始化病案首页
+		//addHomePage();
+		//病案诊断
+		addHomeDiagnose();
+		//病案手术
+		//addHomeOperation();
+		//初始化病历信息
+		//addBehospitalInfo();
+		//初始化医嘱信息
+		//addDoctorAdvice();
+		//初始化文书类型
+		//addMedicalRecordType();
+		//初始化文书基本信息
+		//addMedicalRecord();
+		//初始化文书内容
+		//addMedicalRecordContent();
+		
+		return true;
+	}
+	
+	/**
+	 * 病案手术
+	 * @return
+	 */
+	public Boolean addHomeOperation() {
+		List<HomeOperationInfo> homeOperationList=DBConn.getHomeOperation();
+		return homeOperationInfoFacade.saveBatch(homeOperationList);
+	}
+	
+	/**
+	 * 病案诊断
+	 * @return
+	 */
+	public Boolean addHomeDiagnose() {
+		List<HomeDiagnoseInfo> homeDiagnoseList=DBConn.getHomeDiagnose();
+		return homeDiagnoseInfoFacade.saveBatch(homeDiagnoseList);
+	}
+	
+	/**
+	 * 从视图中获取文书类型
+	 * @return
+	 */
+	public Boolean addMedicalRecordType() {
+		List<MedRecordType> medicalRecordTypeList=DBConn.getMedicalRecordType();
+		return MedicalRecordTypeFacade.saveBatch(medicalRecordTypeList);
+	}
+	
+	/**
+	 * 从视图中获取文书内容
+	 * @return
+	 */
+	public Boolean addMedicalRecordContent(){
+		List<MedicalRecordContent> medicalRecordContentList=DBConn.getMedicalRecordContent();
+		return MedicalRecordContentFacade.saveBatch(medicalRecordContentList);
+	}
+	
+	/**
+	 * 从视图中获取文书类型
+	 * @return
+	 */
+	public Boolean addMedicalRecord(){
+		List<MedicalRecord> medicalRecordList=DBConn.getMedicalRecord();
+		return MedicalRecordFacade.saveBatch(medicalRecordList);
+	}
+	
+	
+	/**
+	 * 从视图获取病案首页信息
+	 */
+	public Boolean addHomePage() {
+		List<HomePage> homePage=DBConn.getHomePage();
+		return homePageFacade.saveBatch(homePage);
+	}
+	
+	/**
+	 * 从视图中获取医嘱信息
+	 * @return
+	 */
+	public Boolean addDoctorAdvice() {
+		List<DoctorAdvice> doctorAdviceList=DBConn.getDoctorAdvice();
+		return doctorAdviceFacade.saveBatch(doctorAdviceList);
+	}
+	
+	/**
+	 * 获取病历信息
+	 * @return
+	 */
+	public Boolean addBehospitalInfo() {
+		List<BehospitalInfo> behospitalInfoList=DBConn.getBehospitalInfo();
+		return behospitalInfoFacade.saveBatch(behospitalInfoList);
+	}
+	
+}

+ 2 - 0
src/main/java/com/diagbot/facade/HomeDiagnoseInfoFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.diagbot.service.impl.HomeDiagnoseInfoServiceImpl;
+
 import org.springframework.stereotype.Component;
 
 /**
@@ -10,4 +11,5 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class HomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl {
+
 }

+ 2 - 173
src/main/java/com/diagbot/facade/HomePageFacade.java

@@ -1,25 +1,9 @@
 package com.diagbot.facade;
 
-import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.DoctorAdvice;
-import com.diagbot.entity.HomePage;
-import com.diagbot.service.BehospitalInfoService;
-import com.diagbot.service.DoctorAdviceService;
-import com.diagbot.service.HomePageService;
-import com.diagbot.service.impl.HomePageServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DBConn;
-import com.diagbot.util.bean.BehospitalInfoVO;
-import com.diagbot.util.bean.DoctorAdviceVO;
-import com.diagbot.util.bean.HomePageVO;
-import com.google.common.collect.Lists;
-
-import java.sql.ResultSet;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.diagbot.service.impl.HomePageServiceImpl;
+
 /**
  * @Description:
  * @author: zhoutg
@@ -28,159 +12,4 @@ import org.springframework.stereotype.Component;
 @Component
 public class HomePageFacade extends HomePageServiceImpl {
 	
-	@Autowired
-	private HomePageService homePageService;
-	
-	@Autowired
-	private BehospitalInfoService behospitalInfoService;
-	
-	@Autowired
-	private DoctorAdviceService doctorAdviceService;
-	
-	/**
-	 * 从视图获取病案首页信息
-	 */
-	public Boolean addHomePage() {
-		List<HomePage> homePage=getHomePage();
-		return homePageService.saveBatch(homePage);
-	}
-	
-	private List<HomePage> getHomePage() {
-		List<HomePage> homePageList=Lists.newLinkedList();
-		try {
-			DBConn dbconn=new DBConn();
-			String sql="select * from BR_RECHOME_CX where BAZKRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
-			ResultSet rs =dbconn.Query(sql, null);
-			while(rs.next()){
-				HomePageVO homePageVO=new HomePageVO();
-				homePageVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
-				homePageVO.setHospitalId(Long.getLong(rs.getString("BASYID").toString()));//医院ID
-				homePageVO.setBehospitalCode(rs.getString("BRZYID"));//病人住院序号
-				homePageVO.setHospitalCode(rs.getString("ZZJGID"));//组织机构id
-				homePageVO.setHospitalName(rs.getString("ZZJGMC"));//医疗机构名称
-				homePageVO.setOrgCode(rs.getString("ZZJGBH"));//医疗机构代码
-				homePageVO.setPayType(rs.getString("YLFKLB"));//医疗付费方式
-				homePageVO.setHealthCard(rs.getString("BRJKKH"));//健康卡号
-				homePageVO.setBehospitalNum(rs.getString("BRZYCS"));//住院次数
-				homePageVO.setFileCode(rs.getString("BRBABH"));//病案号
-				homePageVO.setName(rs.getString("BRBAXM"));//姓名
-				homePageVO.setSex(rs.getString("BRBAXB"));//性别
-				homePageVO.setBirthday(rs.getDate("BRCSRQ"));//出生日期
-				
-				HomePage homePage=new HomePage();
-				BeanUtil.copyProperties(homePageVO, homePage);
-				homePageList.add(homePage);
-				
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return homePageList;
-	}
-	
-	/**
-	 * 从视图中获取医嘱信息
-	 * @return
-	 */
-	public Boolean addDoctorAdvice() {
-		List<DoctorAdvice> doctorAdviceList=getDoctorAdvice();
-		return doctorAdviceService.saveBatch(doctorAdviceList);
-	}
-	
-	private List<DoctorAdvice> getDoctorAdvice(){
-		List<DoctorAdvice> doctorAdviceList=Lists.newLinkedList();
-		
-		try {
-			DBConn dbconn=new DBConn();
-			String sql="select * from BR_DOCTADVICE_CX where CJCXRQ BETWEEN TO_DATE('2020-03-01', 'yyyy-MM-dd') and TO_DATE('2020-03-30', 'yyyy-MM-dd')";
-			ResultSet rs =dbconn.Query(sql, null);
-			while(rs.next()){
-				DoctorAdviceVO doctorAdviceVO=new DoctorAdviceVO();
-				doctorAdviceVO.setDoctorAdviceId(rs.getString("BRYZID"));//病人医嘱ID
-				doctorAdviceVO.setHospitalId(Long.getLong("1"));//医院ID
-				doctorAdviceVO.setBehospitalCode(rs.getString("BRYZID"));//病人ID
-				doctorAdviceVO.setOrderDoctorName(rs.getString("YSKDPB"));//医生开单判别
-				doctorAdviceVO.setFrequency(rs.getString("YZPLPB"));//医嘱频率判别
-				doctorAdviceVO.setParentTypeId(rs.getString("FLYZID"));//父类医嘱ID
-				doctorAdviceVO.setDoctorAdviceType(rs.getString("YZLXPB"));//医嘱类型判别
-				doctorAdviceVO.setUsageNum(rs.getString("YCSYSL"));//一次使用数量
-				doctorAdviceVO.setUsageUnit(rs.getString("YCYLDW"));//一次用量单位
-				doctorAdviceVO.setDose(rs.getString("YZDCJL"));//医嘱单次剂量
-				doctorAdviceVO.setDoseUnit(rs.getString("DCJLDW"));//单次剂量单位
-				doctorAdviceVO.setMedModeType(rs.getString("GYFSID"));//给药方式
-				doctorAdviceVO.setDaFrequency(rs.getString("YZPLID"));//医嘱频率
-				doctorAdviceVO.setDaDealType(rs.getString("YZCLLX"));//医嘱处理类型
-				doctorAdviceVO.setDaStartDate(rs.getDate("YZKSSJ"));//医嘱开始时间
-				doctorAdviceVO.setDaItemName(rs.getString("YZXMMC"));//医嘱项目名称
-				doctorAdviceVO.setDaStatus(rs.getString("YZZTPB"));//医嘱状态判别
-				doctorAdviceVO.setDaStopDate(rs.getDate("YZJSSJ"));//医嘱结束时间
-				doctorAdviceVO.setDaGroupNo(rs.getString("YZTZXH"));//医嘱同组序号
-				doctorAdviceVO.setDaPrescriptionType(rs.getString("YZCFLX"));//医嘱处方类型
-				doctorAdviceVO.setDaMedType(rs.getString("YZLYLX"));//医嘱领药类型
-				doctorAdviceVO.setDoctorNotice(rs.getString("YSZTSM"));//医生嘱托
-				doctorAdviceVO.setDoctorId(rs.getString("KDYSID"));//开单医生ID
-				doctorAdviceVO.setDoctorName(rs.getString("KDYSXM"));//开单医生姓名
-				
-				DoctorAdvice doctorAdvice=new DoctorAdvice();
-				BeanUtil.copyProperties(doctorAdviceVO, doctorAdvice);
-				
-				doctorAdviceList.add(doctorAdvice);
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return doctorAdviceList;
-	}
-	
-	/**
-	 * 获取病历信息
-	 * @return
-	 */
-	public Boolean addBehospitalInfo() {
-		List<BehospitalInfo> behospitalInfoList=getBehospitalInfo();
-		return behospitalInfoService.saveBatch(behospitalInfoList);
-	}
-	
-	private List<BehospitalInfo> getBehospitalInfo() {
-		List<BehospitalInfo> behospitalInfoList=Lists.newLinkedList();
-		try {
-			DBConn dbconn=new DBConn();
-			String sql="select * from BR_RECHOME_CX where BAZKRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
-			ResultSet rs =dbconn.Query(sql, null);
-			while(rs.next()){
-				BehospitalInfoVO behospitalInfoVO=new BehospitalInfoVO();
-				/*
-				behospitalInfoVO.setBehospitalCode(rs.getString("BASYID"));//病人住院ID
-				behospitalInfoVO.setHospitalId(hospitalId);//医院ID
-				behospitalInfoVO.setName(name);//姓名
-				behospitalInfoVO.setSex(sex);//性别
-				behospitalInfoVO.setBirthday(birthday);//出生日期
-				behospitalInfoVO.setFileCode(fileCode);//档案号
-				behospitalInfoVO.setWardCode(wardCode);//病区编码
-				behospitalInfoVO.setWardName(wardName);//病区名称
-				behospitalInfoVO.setBehDeptId(behDeptId);//住院科室ID
-				behospitalInfoVO.setBehDeptName(behDeptName);//住院科室名称
-				behospitalInfoVO.setBedCode(bedCode);//床位号
-				behospitalInfoVO.setBedName(bedName);//床位名称
-				behospitalInfoVO.setInsuranceName(insuranceName);//医保类别
-				behospitalInfoVO.setJobType(jobType);//职业
-				behospitalInfoVO.setBehospitalDate(behospitalDate);//入院时间
-				behospitalInfoVO.setLeaveHospitalDate(leaveHospitalDate);//出院时间
-				behospitalInfoVO.setDiagnoseIcd(diagnoseIcd);//疾病ICD编码
-				behospitalInfoVO.setDiagnose(diagnose);//疾病名称
-				behospitalInfoVO.setDoctorId(doctorId);//医生ID
-				behospitalInfoVO.setDoctorName(doctorName);//医生姓名
-				*/
-				BehospitalInfo behospitalInfo=new BehospitalInfo();
-				BeanUtil.copyProperties(behospitalInfoVO, behospitalInfo);
-				behospitalInfoList.add(behospitalInfo);
-				
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		
-		return behospitalInfoList;
-	}
-	
 }

+ 10 - 0
src/main/java/com/diagbot/facade/MedicalRecordContentFacade.java

@@ -0,0 +1,10 @@
+package com.diagbot.facade;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.service.impl.MedicalRecordContentServiceImpl;
+
+@Component
+public class MedicalRecordContentFacade extends MedicalRecordContentServiceImpl {
+
+}

+ 10 - 0
src/main/java/com/diagbot/facade/MedicalRecordTypeFacade.java

@@ -0,0 +1,10 @@
+package com.diagbot.facade;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.service.impl.MedRecordTypeServiceImpl;
+
+@Component
+public class MedicalRecordTypeFacade extends MedRecordTypeServiceImpl{
+
+}

+ 2 - 4
src/main/java/com/diagbot/facade/QcCasesEntryHospitalFacade.java

@@ -31,8 +31,6 @@ import java.util.List;
  */
 @Component
 public class QcCasesEntryHospitalFacade extends QcCasesEntryHospitalServiceImpl {
-    @Autowired
-    QcCasesEntryHospitalService qcCasesEntryHospitalService;
     @Autowired
     private QcCasesFacade qcCasesFacade;
 
@@ -42,7 +40,7 @@ public class QcCasesEntryHospitalFacade extends QcCasesEntryHospitalServiceImpl
      * @return
      */
     public IPage<List<QcCasesEntryHospitalDTO>> QcCasesEntryHospitals(QcCasesEntryHospitalVO qcCasesEntryHospitalVO) {
-        IPage<List<QcCasesEntryHospitalDTO>> data = qcCasesEntryHospitalService.getQcCasesEntryAlls(qcCasesEntryHospitalVO);
+        IPage<List<QcCasesEntryHospitalDTO>> data = this.getQcCasesEntryAlls(qcCasesEntryHospitalVO);
         return data;
     }
 
@@ -92,7 +90,7 @@ public class QcCasesEntryHospitalFacade extends QcCasesEntryHospitalServiceImpl
      * @return
      */
     public List<QcCasesEntryFindDTO> findQcCasesEntryAlls(QcCasesEntryFindVO qcCasesEntryFindVO) {
-        List<QcCasesEntryFindDTO> data = qcCasesEntryHospitalService.findQcCasesEntryAll(qcCasesEntryFindVO);
+        List<QcCasesEntryFindDTO> data = this.findQcCasesEntryAll(qcCasesEntryFindVO);
         return data;
     }
 }

+ 12 - 2
src/main/java/com/diagbot/facade/QcModeFacade.java

@@ -9,6 +9,7 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -20,17 +21,26 @@ import java.util.Map;
 @Component
 public class QcModeFacade extends QcModeServiceImpl {
 
-    public List<QcModeDTO> getMenu() {
+    public List<QcModeDTO> getMenu(Map<String, Object> pageData) {
         List<QcMode> qcModeList = this.list(new QueryWrapper<QcMode>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .orderByAsc("parent_id", "order_no")
         );
+
+        Iterator<QcMode> iterator = qcModeList.iterator();
+        while (iterator.hasNext()) {
+            QcMode qcMode = iterator.next();
+            if (!pageData.containsKey(qcMode.getName()) && !"病程信息".equals(qcMode.getName())) {
+                iterator.remove();
+            }
+        }
+
         Map<Long, List<QcMode>> map = EntityUtil.makeEntityListMap(qcModeList, "parentId");
         // 获取根节点
         List<QcMode> root = map.get(-1L);
         List<QcModeDTO> res = BeanUtil.listCopyTo(root, QcModeDTO.class);
 
-        for(QcModeDTO qcModeDTO : res) {
+        for (QcModeDTO qcModeDTO : res) {
             if (map.containsKey(qcModeDTO.getId())) {
                 qcModeDTO.setSonMode(BeanUtil.listCopyTo(map.get(qcModeDTO.getId()), QcModeDTO.class));
             }

+ 11 - 3
src/main/java/com/diagbot/facade/QcresultInfoFacade.java

@@ -97,7 +97,7 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         AnalyzeVO analyzeVO = new AnalyzeVO();
         analyzeVO.setHospitalId(hospitalId);
         analyzeVO.setBehospitalCode(qcresultVO.getBehospitalCode());
-        Date date = this.saveQcResult(algorithmDTO, algorithmVO, analyzeVO,null);
+        Date date = this.saveQcResult(algorithmDTO, algorithmVO, analyzeVO,null, null, false);
         //返回参数组装
         AnalyzeDTO analyzeDTO = new AnalyzeDTO();
         analyzeDTO.setBehospitalCode(qcresultVO.getBehospitalCode());
@@ -110,9 +110,13 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         return analyzeDTO;
     }
 
-    public Date saveQcResult(AlgorithmDTO algorithmDTO, AlgorithmVO algorithmVO, AnalyzeVO analyzeVO, String pageData) {
+    public Date saveQcResult(AlgorithmDTO algorithmDTO, AlgorithmVO algorithmVO, AnalyzeVO analyzeVO,
+                             String pageData, String menuData, Boolean isTask) {
         //更新质控评分结果信息
-        Long useId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+        Long useId = 0L;
+        if (!isTask) {
+            useId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+        }
         Date now = DateUtil.now();
         //获取旧记录
         QcresultInfo qcresultInfo
@@ -146,6 +150,10 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         if (StringUtil.isNotBlank(pageData)){
             qcresultInfo.setPageData(pageData);
         }
+        if (StringUtil.isNotBlank(menuData)){
+            qcresultInfo.setMenuData(menuData);
+        }
+
         qcresultInfo.setGmtCreate(now);
         qcresultInfo.setCreator(useId.toString());
         qcresultInfo.setGmtModified(now);

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

@@ -41,4 +41,7 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<ResultDetailDTO> resultStatisticsByDept(FilterVO filterVO);
+
+
+    public List<BehospitalInfo> getNoGrade();
 }

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

@@ -41,4 +41,7 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public List<ResultDetailDTO> resultStatisticsByDept(FilterVO filterVO);
+
+
+    public List<BehospitalInfo> getNoGrade();
 }

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

@@ -57,4 +57,9 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<ResultDetailDTO> resultStatisticsByDept(FilterVO filterVO) {
         return baseMapper.resultStatisticsByDept(filterVO);
     }
+
+    @Override
+    public List<BehospitalInfo> getNoGrade() {
+        return baseMapper.getNoGrade();
+    }
 }

+ 10 - 5
src/main/java/com/diagbot/task/BehospitalInfoAnalyzeTask.java

@@ -3,8 +3,10 @@ package com.diagbot.task;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.BehospitalInfoFacade;
 import com.diagbot.facade.SysTaskCronFacade;
 import com.diagbot.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.Trigger;
@@ -13,7 +15,6 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.SchedulingConfigurer;
 import org.springframework.scheduling.config.ScheduledTaskRegistrar;
 import org.springframework.scheduling.support.CronTrigger;
-import org.springframework.stereotype.Component;
 
 import java.time.LocalDateTime;
 import java.util.Date;
@@ -23,15 +24,18 @@ import java.util.Date;
  * @author: gaodm
  * @time: 2020/4/15 17:45
  */
-//@Component
-//@Configuration      //1.主要用于标记配置类,兼备Component的效果。
-//@EnableScheduling   // 2.开启定时任务
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+@Slf4j
 public class BehospitalInfoAnalyzeTask implements SchedulingConfigurer {
     @Autowired
     private SysTaskCronFacade sysTaskCronFacade;
 
     private SysTaskCron task001 = new SysTaskCron();
 
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
     /**
      * 执行定时任务.
      */
@@ -44,7 +48,8 @@ public class BehospitalInfoAnalyzeTask implements SchedulingConfigurer {
                 if (null != task001
                         && task001.getIsDeleted().equals(IsDeleteEnum.N.getKey())
                         && task001.getIsUsed().equals(1)) {
-                    System.out.println("执行动态定时任务: " + LocalDateTime.now().toLocalTime());
+                    log.info("执行动态定时任务: " + LocalDateTime.now().toLocalTime());
+                    behospitalInfoFacade.execute();
                 }
             }
         }, new Trigger() {

+ 302 - 69
src/main/java/com/diagbot/util/DBConn.java

@@ -5,8 +5,27 @@ import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.List;
 import java.util.ResourceBundle;
 
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.entity.HomePage;
+import com.diagbot.entity.MedRecordType;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.MedicalRecordContent;
+import com.diagbot.vo.FBehospitalInfoVO;
+import com.diagbot.vo.FDoctorAdviceVO;
+import com.diagbot.vo.FHomeDiagnoseVO;
+import com.diagbot.vo.FHomeOperationVO;
+import com.diagbot.vo.FHomePageVO;
+import com.diagbot.vo.FMedicalRecordContentVO;
+import com.diagbot.vo.FMedicalRecordTypeVO;
+import com.diagbot.vo.FMedicalRecordVO;
+import com.google.common.collect.Lists;
+
 public class DBConn {
 	
 	private static final String DRIVER = getValue("jdbc.driverClassName");
@@ -131,76 +150,290 @@ public class DBConn {
 			}
 		}
 	}
+	
+	/**
+	 * 从视图中获取医嘱信息
+	 * @return
+	 */
+	public static List<DoctorAdvice> getDoctorAdvice(){
+		List<DoctorAdvice> doctorAdviceList=Lists.newLinkedList();
+		
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from BR_DOCTADVICE_CX where CJCXRQ BETWEEN TO_DATE('2020-03-01', 'yyyy-MM-dd') and TO_DATE('2020-03-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FDoctorAdviceVO doctorAdviceVO=new FDoctorAdviceVO();
+				doctorAdviceVO.setDoctorAdviceId(rs.getString("BRYZID"));//病人医嘱ID
+				doctorAdviceVO.setHospitalId(Long.getLong("1"));//医院ID
+				doctorAdviceVO.setBehospitalCode(rs.getString("BRYZID"));//病人ID
+				doctorAdviceVO.setOrderDoctorName(rs.getString("YSKDPB"));//医生开单判别
+				doctorAdviceVO.setFrequency(rs.getString("YZPLPB"));//医嘱频率判别
+				doctorAdviceVO.setParentTypeId(rs.getString("FLYZID"));//父类医嘱ID
+				doctorAdviceVO.setDoctorAdviceType(rs.getString("YZLXPB"));//医嘱类型判别
+				doctorAdviceVO.setUsageNum(rs.getString("YCSYSL"));//一次使用数量
+				doctorAdviceVO.setUsageUnit(rs.getString("YCYLDW"));//一次用量单位
+				doctorAdviceVO.setDose(rs.getString("YZDCJL"));//医嘱单次剂量
+				doctorAdviceVO.setDoseUnit(rs.getString("DCJLDW"));//单次剂量单位
+				doctorAdviceVO.setMedModeType(rs.getString("GYFSID"));//给药方式
+				doctorAdviceVO.setDaFrequency(rs.getString("YZPLID"));//医嘱频率
+				doctorAdviceVO.setDaDealType(rs.getString("YZCLLX"));//医嘱处理类型
+				doctorAdviceVO.setDaStartDate(rs.getDate("YZKSSJ"));//医嘱开始时间
+				doctorAdviceVO.setDaItemName(rs.getString("YZXMMC"));//医嘱项目名称
+				doctorAdviceVO.setDaStatus(rs.getString("YZZTPB"));//医嘱状态判别
+				doctorAdviceVO.setDaStopDate(rs.getDate("YZJSSJ"));//医嘱结束时间
+				doctorAdviceVO.setDaGroupNo(rs.getString("YZTZXH"));//医嘱同组序号
+				doctorAdviceVO.setDaPrescriptionType(rs.getString("YZCFLX"));//医嘱处方类型
+				doctorAdviceVO.setDaMedType(rs.getString("YZLYLX"));//医嘱领药类型
+				doctorAdviceVO.setDoctorNotice(rs.getString("YSZTSM"));//医生嘱托
+				doctorAdviceVO.setDoctorId(rs.getString("KDYSID"));//开单医生ID
+				doctorAdviceVO.setDoctorName(rs.getString("KDYSXM"));//开单医生姓名
+				
+				DoctorAdvice doctorAdvice=new DoctorAdvice();
+				BeanUtil.copyProperties(doctorAdviceVO, doctorAdvice);
+				
+				doctorAdviceList.add(doctorAdvice);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return doctorAdviceList;
+	}
 
-	public static void main(String[] args) throws Exception {
-		DBConn dbconn=new DBConn();
-		String sql="select * from BR_RECHOME_CX";
-		ResultSet rs1 =dbconn.Query(sql, null);
-		while(rs1.next()){
-			String BRZYID=rs1.getString("BRZYID");
+	/**
+	 * 获取病历信息
+	 * @return
+	 */
+	public static List<BehospitalInfo> getBehospitalInfo() {
+		List<BehospitalInfo> behospitalInfoList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from BR_RECHOME_CX where BAZKRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FBehospitalInfoVO behospitalInfoVO=new FBehospitalInfoVO();
+				/*
+				behospitalInfoVO.setBehospitalCode(rs.getString("BASYID"));//病人住院ID
+				behospitalInfoVO.setHospitalId(hospitalId);//医院ID
+				behospitalInfoVO.setName(name);//姓名
+				behospitalInfoVO.setSex(sex);//性别
+				behospitalInfoVO.setBirthday(birthday);//出生日期
+				behospitalInfoVO.setFileCode(fileCode);//档案号
+				behospitalInfoVO.setWardCode(wardCode);//病区编码
+				behospitalInfoVO.setWardName(wardName);//病区名称
+				behospitalInfoVO.setBehDeptId(behDeptId);//住院科室ID
+				behospitalInfoVO.setBehDeptName(behDeptName);//住院科室名称
+				behospitalInfoVO.setBedCode(bedCode);//床位号
+				behospitalInfoVO.setBedName(bedName);//床位名称
+				behospitalInfoVO.setInsuranceName(insuranceName);//医保类别
+				behospitalInfoVO.setJobType(jobType);//职业
+				behospitalInfoVO.setBehospitalDate(behospitalDate);//入院时间
+				behospitalInfoVO.setLeaveHospitalDate(leaveHospitalDate);//出院时间
+				behospitalInfoVO.setDiagnoseIcd(diagnoseIcd);//疾病ICD编码
+				behospitalInfoVO.setDiagnose(diagnose);//疾病名称
+				behospitalInfoVO.setDoctorId(doctorId);//医生ID
+				behospitalInfoVO.setDoctorName(doctorName);//医生姓名
+				*/
+				BehospitalInfo behospitalInfo=new BehospitalInfo();
+				BeanUtil.copyProperties(behospitalInfoVO, behospitalInfo);
+				behospitalInfoList.add(behospitalInfo);
+				
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		return behospitalInfoList;
+	}
+	
+	/**
+	 * 从视图获取病案首页信息
+	 */
+	public static List<HomePage> getHomePage() {
+		List<HomePage> homePageList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from BR_RECHOME_CX where BAZKRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FHomePageVO homePageVO=new FHomePageVO();
+				homePageVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homePageVO.setHospitalId(Long.getLong(rs.getString("BASYID").toString()));//医院ID
+				homePageVO.setBehospitalCode(rs.getString("BRZYID"));//病人住院序号
+				homePageVO.setHospitalCode(rs.getString("ZZJGID"));//组织机构id
+				homePageVO.setHospitalName(rs.getString("ZZJGMC"));//医疗机构名称
+				homePageVO.setOrgCode(rs.getString("ZZJGBH"));//医疗机构代码
+				homePageVO.setPayType(rs.getString("YLFKLB"));//医疗付费方式
+				homePageVO.setHealthCard(rs.getString("BRJKKH"));//健康卡号
+				homePageVO.setBehospitalNum(rs.getString("BRZYCS"));//住院次数
+				homePageVO.setFileCode(rs.getString("BRBABH"));//病案号
+				homePageVO.setName(rs.getString("BRBAXM"));//姓名
+				homePageVO.setSex(rs.getString("BRBAXB"));//性别
+				homePageVO.setBirthday(rs.getDate("BRCSRQ"));//出生日期
+				
+				HomePage homePage=new HomePage();
+				BeanUtil.copyProperties(homePageVO, homePage);
+				homePageList.add(homePage);
+				
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return homePageList;
+	}
+	
+	/**
+	 * 从视图中获取文书类型
+	 * @return
+	 */
+	public static List<MedicalRecord> getMedicalRecord(){
+		List<FMedicalRecordVO> medicalRecordVOList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from MR_MEDICALRECORDS_CX where BAZKRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FMedicalRecordVO medicalRecordVO=new FMedicalRecordVO();
+				medicalRecordVO.setRecId(rs.getString("BLCJID"));
+				medicalRecordVO.setHospitalId(Long.getLong("1"));//医院ID
+				medicalRecordVO.setBehospitalCode(rs.getString("BRZYID"));//病人住院ID
+				medicalRecordVO.setOrgCode(rs.getString("ZZJGDM"));//组织机构代码
+				medicalRecordVO.setRecTypeId(rs.getString("BLLBID"));//病历类别编号
+				medicalRecordVO.setRecDate(rs.getString("BCJLSJ"));//病历日期
+				medicalRecordVO.setRecTitle(rs.getString("BCJLMC"));//病历标题
+				
+				medicalRecordVOList.add(medicalRecordVO);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
 		}
-		//System.out.println(getConnection());
-		/*
-		 * String username = "root";// 数据库用户名 String password = "langtong";// 数据库密码
-		 * 
-		 * //sqlServer String sqlServerDriver =
-		 * "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String sqlServerUrl =
-		 * "jdbc:sqlserver://192.1.2.92:1433;DatabaseName=lis";
-		 * 
-		 * //mysql8.0以上 String mysqlHighDriver = "com.mysql.cj.jdbc.Driver"; String
-		 * mysqlHighUrl =
-		 * "jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&serverTimezone=UTC";
-		 * 
-		 * //mysql8.0以下 String mysqlLowDriver = "com.mysql.jdbc.Driver"; String
-		 * mysqlLowUrl = "jdbc:mysql://localhost:3306/world";
-		 * 
-		 * //oracle String oracleDriver = "oracle.jdbc.OracleDriver"; String oracleUrl =
-		 * "jdbc:oracle:thin:@localhost:1521:XE";
-		 * 
-		 * File file1; File file2;
-		 * 
-		 * FileOutputStream fop = null;
-		 * 
-		 * Connection conn = null; try { Class.forName(mysqlLowDriver); conn =
-		 * DriverManager.getConnection(mysqlLowUrl, username, password);
-		 * 
-		 * System.out.println("国家代码:"); Scanner input = new Scanner(System.in);
-		 * input.useDelimiter("\n"); String countryCode = input.next();
-		 * 
-		 * PreparedStatement pst = null; pst =
-		 * conn.prepareStatement("select DISTINCT (CountryCode) from city"); ResultSet
-		 * rs = pst.executeQuery();
-		 * 
-		 * while(rs.next()){ String filePar = "C:/Users/94556/Desktop/test/" +
-		 * rs.getString("CountryCode");// 文件夹路径 file1 = new File(filePar); if
-		 * (!file1.exists()) { file1.mkdirs(); }
-		 * 
-		 * PreparedStatement pst1 = null; pst1 =
-		 * conn.prepareStatement("select * from city where CountryCode = '" +
-		 * rs.getString("CountryCode") +"'"); ResultSet rs1 = pst1.executeQuery();
-		 * 
-		 * while(rs1.next()){
-		 * 
-		 * file2 = new File("C:/Users/94556/Desktop/test/" + rs.getString("CountryCode")
-		 * + "/" + rs1.getString("Name") + ".txt"); fop = new FileOutputStream(file2);
-		 * 
-		 * if (!file2.exists()) { file2.createNewFile(); }
-		 * 
-		 * StringBuffer content = new StringBuffer("城市:" + rs1.getString("Name") +
-		 * ",国家代号:" + rs1.getString("CountryCode") + ",行政区:" + rs1.getString("District")
-		 * + ",人口:" + rs1.getString("Population") + "\n");
-		 * 
-		 * byte[] contentInBytes = content.toString().getBytes();
-		 * fop.write(contentInBytes);
-		 * 
-		 * } fop.flush(); fop.close();
-		 * 
-		 * rs1.close(); pst1.close(); }
-		 * 
-		 * rs.close(); pst.close(); conn.close();
-		 * 
-		 * 
-		 * } catch (Exception e) { e.printStackTrace(); }
-		 */
+		
+		List<MedicalRecord> medicalRecordList=BeanUtil.listCopyTo(medicalRecordVOList, MedicalRecord.class);
+		return medicalRecordList;
+	}
+	
+	/**
+	 * 从视图中获取文书内容
+	 * @return
+	 */
+	public static List<MedicalRecordContent> getMedicalRecordContent(){
+		List<FMedicalRecordContentVO> mrContentVOList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from MR_MEDICALRECORDS_CX where CJCXRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FMedicalRecordContentVO mrContentVO=new FMedicalRecordContentVO();
+				mrContentVO.setContentBlob(rs.getBlob("BLJLNR"));
+				mrContentVO.setHospitalId(Long.getLong("1"));
+				mrContentVO.setRecId(rs.getString("BLJLID"));
+				mrContentVOList.add(mrContentVO);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		List<MedicalRecordContent> mrContentList=BeanUtil.listCopyTo(mrContentVOList, MedicalRecordContent.class);
+		return mrContentList;
+	}
+	
+	/**
+	 * 从视图中获取文书类型
+	 * @return
+	 */
+	public static List<MedRecordType> getMedicalRecordType(){
+		List<FMedicalRecordTypeVO> mrTypeVOList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from AR_MEDIRECCLASS_CX";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FMedicalRecordTypeVO mrTypeVO=new FMedicalRecordTypeVO();
+				mrTypeVO.setTypeId(rs.getString("BLLBID"));
+				mrTypeVO.setHospitalId(Long.getLong("1"));
+				mrTypeVO.setTypeName(rs.getString("BLLBMC"));
+				mrTypeVO.setObjName(rs.getString("BLLBFW"));
+				mrTypeVO.setSpell(rs.getString("HZSRM1"));
+				mrTypeVOList.add(mrTypeVO);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		List<MedRecordType> medicalRecordTypeList=BeanUtil.listCopyTo(mrTypeVOList, MedRecordType.class);
+		return medicalRecordTypeList;
+	}
+	
+	/**
+	 * 病案诊断
+	 * @return
+	 */
+	public static List<HomeDiagnoseInfo> getHomeDiagnose(){
+		List<HomeDiagnoseInfo> homeDiagnoseVOList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from BR_RECDIAGNOSE_CX where CJCXRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FHomeDiagnoseVO homeDiagnoseVO=new FHomeDiagnoseVO();
+				homeDiagnoseVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homeDiagnoseVO.setHospitalId(Long.getLong("1"));//医院ID
+				homeDiagnoseVO.setDiagnoseOrderNo(rs.getString("BAZDXH"));//诊断序号
+				homeDiagnoseVO.setDiagnoseType(rs.getString("ZDLBDM"));//诊断类别
+				homeDiagnoseVO.setDiagnoseTypeShort(rs.getString("ZCZDPB"));//诊断判别
+				homeDiagnoseVO.setDiagnoseName(rs.getString("ZDJBMC"));//诊断名称
+				homeDiagnoseVO.setBehospitalType(rs.getString("ZGQKDM"));//入院情况
+				homeDiagnoseVO.setLeaveHospitalType(rs.getString("RYQKBM"));//出院情况
+				//homeDiagnoseVO.setPathologyDiagnose(rs.getString("BASYID"));//病理号
+				homeDiagnoseVO.setIcdCode(rs.getString("ICDM"));//诊断编码
+				
+				HomeDiagnoseInfo homeDiagnoseInfo=new HomeDiagnoseInfo();
+				BeanUtil.copyProperties(homeDiagnoseVO, homeDiagnoseInfo);
+				homeDiagnoseVOList.add(homeDiagnoseInfo);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		return homeDiagnoseVOList;
+	}
+	
+	/**
+	 * 病案手术
+	 * @return
+	 */
+	public static List<HomeOperationInfo> getHomeOperation() {
+		List<FHomeOperationVO> homeOperationVOList=Lists.newLinkedList();
+		try {
+			DBConn dbconn=new DBConn();
+			String sql="select * from BR_RECOPERATION_CX where CJCXRQ BETWEEN TO_DATE('2020-02-01', 'yyyy-MM-dd') and TO_DATE('2020-04-30', 'yyyy-MM-dd')";
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				FHomeOperationVO homeOperationVO=new FHomeOperationVO();
+				homeOperationVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homeOperationVO.setHospitalId(Long.getLong("1"));//医院ID
+				homeOperationVO.setOperationOrderNo(rs.getString("BRSSXH"));//手术序号
+				homeOperationVO.setOperationDate(rs.getDate("BRSSRQ"));//手术日期
+				homeOperationVO.setOperationCode(rs.getString("SSDMID"));//手术编码
+				homeOperationVO.setOperationDoctorId(rs.getString("SSYSID"));//手术医生
+				homeOperationVO.setFirstAssistantId(rs.getString("YZHSID"));//一助医生
+				homeOperationVO.setSecondAssistantId(rs.getString("EZHSID"));//二助医生
+				homeOperationVO.setCutLevel(rs.getString("QKDJDM"));//切口等级
+				homeOperationVO.setHealingLevel(rs.getString("YHDJDM"));//愈合等级
+				homeOperationVO.setOperationName(rs.getString("BRSSMC"));//手术名称
+				homeOperationVO.setOperationLevel(rs.getString("SSJBID"));//手术级别
+				homeOperationVO.setAnaesthesiaName(rs.getString("MZFFMC"));//麻醉方式
+				homeOperationVO.setShamOperationName(rs.getString("NSSMC"));//拟手术名称
+				
+				homeOperationVOList.add(homeOperationVO);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		List<HomeOperationInfo> homeOperationList=BeanUtil.listCopyTo(homeOperationVOList, HomeOperationInfo.class);
+		return homeOperationList;
+	}
+	
+	public static void main(String[] args) throws Exception {
+		
 	}
 }

+ 2 - 0
src/main/java/com/diagbot/vo/AnalyzeVO.java

@@ -14,4 +14,6 @@ public class AnalyzeVO {
     private String behospitalCode; // 病历id
     @ApiModelProperty(hidden = true)
     private Long hospitalId; //医院ID
+    @ApiModelProperty(hidden = true)
+    private Boolean isTask = false;
 }

+ 4 - 9
src/main/java/com/diagbot/util/bean/BehospitalInfoVO.java

@@ -1,16 +1,11 @@
-package com.diagbot.util.bean;
+package com.diagbot.vo;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import lombok.Getter;
-import lombok.Setter;
+import lombok.Data;
 
-@Getter
-@Setter
-public class BehospitalInfoVO implements Serializable{
-
-	private static final long serialVersionUID = 1L;
+@Data
+public class FBehospitalInfoVO{
 
 	/**
      * 病人住院ID

+ 4 - 9
src/main/java/com/diagbot/util/bean/DoctorAdviceVO.java

@@ -1,17 +1,12 @@
-package com.diagbot.util.bean;
+package com.diagbot.vo;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import lombok.Getter;
-import lombok.Setter;
+import lombok.Data;
 
-@Getter
-@Setter
-public class DoctorAdviceVO implements Serializable {
+@Data
+public class FDoctorAdviceVO {
 
-	private static final long serialVersionUID = 1L;
-	
 	/**
      * 病人医嘱ID
      */

+ 41 - 0
src/main/java/com/diagbot/vo/FHomeDiagnoseVO.java

@@ -0,0 +1,41 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+@Data
+public class FHomeDiagnoseVO {
+	/**
+     * 病案首页ID
+     */
+    private String homePageId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 诊断序号
+     */
+    private String diagnoseOrderNo;
+
+    /**
+     * 诊断类别(主要诊断、其他诊断)
+     */
+    private String diagnoseType;
+
+    /**
+     * 诊断判别(主、次)
+     */
+    private String diagnoseTypeShort;
+
+    private String diagnoseName;
+
+    private String behospitalType;
+
+    private String leaveHospitalType;
+
+    private String pathologyDiagnose;
+
+    private String icdCode;
+}

+ 78 - 0
src/main/java/com/diagbot/vo/FHomeOperationVO.java

@@ -0,0 +1,78 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import lombok.Data;
+
+@Data
+public class FHomeOperationVO {
+	/**
+     * 病案首页ID
+     */
+    private String homePageId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 手术序号
+     */
+    private String operationOrderNo;
+
+    /**
+     * 手术日期
+     */
+    private Date operationDate;
+
+    /**
+     * 手术编码
+     */
+    private String operationCode;
+
+    /**
+     * 手术医生ID
+     */
+    private String operationDoctorId;
+
+    /**
+     * 一助医生ID
+     */
+    private String firstAssistantId;
+
+    /**
+     * 二助医生ID
+     */
+    private String secondAssistantId;
+
+    /**
+     * 切口等级
+     */
+    private String cutLevel;
+
+    /**
+     * 愈合等级
+     */
+    private String healingLevel;
+
+    /**
+     * 手术名称
+     */
+    private String operationName;
+
+    /**
+     * 手术级别
+     */
+    private String operationLevel;
+
+    /**
+     * 麻醉方式(全麻、局麻、静脉麻醉)
+     */
+    private String anaesthesiaName;
+
+    /**
+     * 拟手术名称
+     */
+    private String shamOperationName;
+}

+ 4 - 9
src/main/java/com/diagbot/util/bean/HomePageVO.java

@@ -1,17 +1,12 @@
-package com.diagbot.util.bean;
+package com.diagbot.vo;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import lombok.Getter;
-import lombok.Setter;
+import lombok.Data;
 
-@Getter
-@Setter
-public class HomePageVO implements Serializable{
+@Data
+public class FHomePageVO{
 	
-	private static final long serialVersionUID = 1L;
-
 	/**
      * 病案首页编号
      */

+ 28 - 0
src/main/java/com/diagbot/vo/FMedicalRecordContentVO.java

@@ -0,0 +1,28 @@
+package com.diagbot.vo;
+
+import java.sql.Blob;
+
+import lombok.Data;
+
+@Data
+public class FMedicalRecordContentVO {
+	/**
+     * 病历ID
+     */
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 文书内容(blob)
+     */
+    private Blob contentBlob;
+
+    /**
+     * 病历文本(文本)
+     */
+    private String contentText;
+}

+ 36 - 0
src/main/java/com/diagbot/vo/FMedicalRecordTypeVO.java

@@ -0,0 +1,36 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+@Data
+public class FMedicalRecordTypeVO {
+	/**
+     * 类别ID
+     */
+    private String typeId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 类别名称
+     */
+    private String typeName;
+
+    /**
+     * 上级类别
+     */
+    private String parentTypeId;
+
+    /**
+     * 服务对象(全院、科室、个人)
+     */
+    private String objName;
+
+    /**
+     * 拼音
+     */
+    private String spell;
+}

+ 38 - 0
src/main/java/com/diagbot/vo/FMedicalRecordVO.java

@@ -0,0 +1,38 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+@Data
+public class FMedicalRecordVO {
+	private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 组织机构代码
+     */
+    private String orgCode;
+
+    /**
+     * 病历类别编号
+     */
+    private String recTypeId;
+
+    /**
+     * 病历日期
+     */
+    private String recDate;
+
+    /**
+     * 病历标题
+     */
+    private String recTitle;
+}

+ 4 - 0
src/main/java/com/diagbot/vo/GetDetailVO.java

@@ -3,6 +3,9 @@ package com.diagbot.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @description:
  * @author: zhoutg
@@ -14,4 +17,5 @@ public class GetDetailVO {
     private String behospitalCode; // 病历id
     @ApiModelProperty(hidden = true)
     private Long hospitalId; //医院ID
+    private List<String> paramStr = new ArrayList<>(); // 获取具体的参数
 }

+ 20 - 1
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -73,6 +73,15 @@ public class BehospitalInfoController {
         return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO));
     }
 
+    @ApiOperation(value = "评分[by:zhoutg]",
+            notes = "")
+    @PostMapping("/analyze_rpc")
+    @SysLogger("analyze_rpc")
+    @Transactional
+    public RespDTO<AnalyzeDTO> analyze_rpc(@RequestBody AnalyzeVO analyzeVO) {
+        return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO));
+    }
+
     @ApiOperation(value = "新增质控条目[by:zhoutg]",
             notes = "")
     @PostMapping("/addCase")
@@ -83,7 +92,8 @@ public class BehospitalInfoController {
     }
 
     @ApiOperation(value = "删除质控条目[by:zhoutg]",
-            notes = "")
+            notes = "behospitalCode:病历号,必填<br>" +
+                    "id:明细id,必填<br>")
     @PostMapping("/delCase")
     @SysLogger("delCase")
     public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO){
@@ -99,4 +109,13 @@ public class BehospitalInfoController {
         qcresultVO.setType(3);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
+
+    @ApiOperation(value = "批量执行[by:zhoutg]",
+            notes = "")
+    @PostMapping("/execule")
+    @SysLogger("execule")
+    public RespDTO<Boolean> execule(){
+        behospitalInfoFacade.execute();
+        return RespDTO.onSuc(true);
+    }
 }

+ 13 - 7
src/main/java/com/diagbot/web/HomePageController.java

@@ -1,6 +1,5 @@
 package com.diagbot.web;
 
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -8,32 +7,39 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.facade.HomePageFacade;
+import com.diagbot.facade.DataFacade;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 @RestController
-@RequestMapping("/qc/homePageInfo")
+@RequestMapping("/qc/data")
 @Api(value = "病案首页API", tags = { "病案首页API" })
 @SuppressWarnings("unchecked")
-public class HomePageController {
+public class DataController {
 
 	@Autowired
-    private HomePageFacade homePageFacade;
+    private DataFacade dataFacade;
+	
+	@ApiOperation(value = "获取医院病案首页信息[by:gaodm]",notes = "")
+	@PostMapping("/initData")
+	@SysLogger("initData")
+	public RespDTO<Boolean> initData() {
+		return RespDTO.onSuc(dataFacade.initData());
+	}
 	
 	@ApiOperation(value = "获取医院病案首页信息[by:gaodm]",notes = "")
 	@PostMapping("/getHomePage")
 	@SysLogger("getHomePage")
 	public RespDTO<Boolean> getHomePage() {
-		return RespDTO.onSuc(homePageFacade.addHomePage());
+		return RespDTO.onSuc(dataFacade.addHomePage());
 	}
 	
 	@ApiOperation(value = "获取医院医嘱信息[by:gaodm]",notes = "")
 	@PostMapping("/getDoctorAdvice")
 	@SysLogger("getDoctorAdvice")
 	public RespDTO<Boolean> getDoctorAdvice() {
-		return RespDTO.onSuc(homePageFacade.addDoctorAdvice());
+		return RespDTO.onSuc(dataFacade.addDoctorAdvice());
 	}
 	
 }

+ 0 - 20
src/main/java/com/diagbot/web/QcCasesEntryController.java

@@ -1,20 +0,0 @@
-package com.diagbot.web;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
-
-/**
- * <p>
- * 病历条目 前端控制器
- * </p>
- *
- * @author wangfeng
- * @since 2020-04-13
- */
-@Controller
-@RequestMapping("/qc/casesEntry")
-public class QcCasesEntryController {
-
-}

+ 11 - 20
src/main/java/com/diagbot/web/QcModeController.java

@@ -1,19 +1,10 @@
 package com.diagbot.web;
 
 
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.QcModeDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.facade.QcModeFacade;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 /**
  * <p>
  * 菜单 前端控制器
@@ -28,15 +19,15 @@ import java.util.List;
 @SuppressWarnings("unchecked")
 public class QcModeController {
 
-    @Autowired
-    QcModeFacade qcModeFacade;
-
-    @ApiOperation(value = "获取菜单信息[by:zhoutg]",
-            notes = "")
-    @PostMapping("/getMenu")
-    @SysLogger("getMenu")
-    public RespDTO<List<QcModeDTO> > getMenu() {
-        List<QcModeDTO> data = qcModeFacade.getMenu();
-        return RespDTO.onSuc(data);
-    }
+//    @Autowired
+//    QcModeFacade qcModeFacade;
+//
+//    @ApiOperation(value = "获取菜单信息[by:zhoutg]",
+//            notes = "")
+//    @PostMapping("/getMenu")
+//    @SysLogger("getMenu")
+//    public RespDTO<List<QcModeDTO> > getMenu() {
+//        List<QcModeDTO> data = qcModeFacade.getMenu();
+//        return RespDTO.onSuc(data);
+//    }
 }

+ 0 - 20
src/main/java/com/diagbot/web/QcresultDetailController.java

@@ -1,20 +0,0 @@
-package com.diagbot.web;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 质控评分明细信息
-每次评分增加一条信息,前面所有评分is_deleted全部设置为Y 前端控制器
- * </p>
- *
- * @author zhoutg
- * @since 2020-04-13
- */
-@RestController
-@RequestMapping("/qc/resultDetail")
-public class QcresultDetailController {
-
-}

+ 0 - 20
src/main/java/com/diagbot/web/QcresultInfoController.java

@@ -1,20 +0,0 @@
-package com.diagbot.web;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 质控评分结果信息
-每次评分增加一条信息,前面所有评分is_deleted全部设置为Y 前端控制器
- * </p>
- *
- * @author zhoutg
- * @since 2020-04-13
- */
-@RestController
-@RequestMapping("/qc/resultInfo")
-public class QcresultInfoController {
-
-}

+ 1 - 0
src/main/java/com/diagbot/web/SysDictionaryInfoController.java

@@ -28,6 +28,7 @@ import java.util.Map;
 @SuppressWarnings("unchecked")
 @Api(value = "字典信息API", tags = { "字典信息API" })
 @ApiIgnore
+@Deprecated
 public class SysDictionaryInfoController {
 
     @Autowired

+ 1 - 1
src/main/resources/application-dev.yml

@@ -152,7 +152,7 @@ mybatis-plus:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.232:5008
+qc.address: http://192.168.2.232:6009
 
 swagger:
   enable: true

+ 1 - 1
src/main/resources/application-local.yml

@@ -152,7 +152,7 @@ mybatis-plus:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.232:5008
+qc.address: http://192.168.2.232:6009
 
 swagger:
   enable: true

+ 1 - 1
src/main/resources/application-pre.yml

@@ -152,7 +152,7 @@ mybatis-plus:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.232:5008
+qc.address: http://192.168.2.232:6009
 
 swagger:
   enable: true

+ 1 - 1
src/main/resources/application-pro.yml

@@ -152,7 +152,7 @@ mybatis-plus:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.232:5008
+qc.address: http://192.168.2.232:6009
 
 swagger:
   enable: true

+ 1 - 1
src/main/resources/application-test.yml

@@ -152,7 +152,7 @@ mybatis-plus:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.232:5008
+qc.address: http://192.168.2.232:6009
 
 swagger:
   enable: true

+ 22 - 3
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -62,11 +62,13 @@
     </select>
 
     <select id="getMsg" resultType="com.diagbot.dto.MsgDTO">
-        SELECT b.`name` model_name,c.score,c.msg,c.cases_entry_id,c.is_reject,c.id id
-        FROM `qc_cases_entry` a, qc_mode b, med_qcresult_detail c
-        where a.is_deleted = 'N' and b.is_deleted = 'N' and c.is_deleted = 'N'
+        SELECT b.`name` model_name,c.score,c.msg,c.cases_entry_id,c.is_reject,c.id id, a.cases_id cases_id, d.score cases_score,b.id model_id
+        FROM `qc_cases_entry` a, qc_mode b, med_qcresult_detail c, qc_cases_hospital d
+        where a.is_deleted = 'N' and b.is_deleted = 'N' and c.is_deleted = 'N' and d.is_deleted = 'N'
         and a.id = c.cases_entry_id
         and a.mode_id = b.id
+        AND c.cases_id = d.cases_id
+        and c.hospital_id = d.hospital_id
         and c.hospital_id = #{hospitalId}
         and c.behospital_code = #{behospitalCode}
         order by a.order_no
@@ -197,4 +199,21 @@
         ) t2
         )
     </select>
+
+
+    <select id="getNoGrade" resultMap="BaseResultMap">
+         select * from med_behospital_info a
+            where a.is_deleted = 'N'
+            and
+            not EXISTS (
+            SELECT
+                1
+            FROM
+                med_qcresult_info b
+            WHERE
+                b.is_deleted = 'N'
+            AND a.hospital_id = b.hospital_id
+            AND a.behospital_code = b.behospital_code
+            )
+    </select>
 </mapper>

+ 15 - 9
src/main/resources/mapper/QcCasesEntryHospitalMapper.xml

@@ -59,17 +59,23 @@
         b.mode_id AS modeId,
         b.id AS casesEntryId,
         a.hospital_id AS hospitalId,
-        b.name AS entryName,
-        a.msg AS msg ,
-        a.score as score,
-        a.is_reject as isReject
+        b. NAME AS entryName,
+        a.msg AS msg,
+        a.score AS score,
+        a.is_reject AS isReject,
+        c.score AS caseScore
         FROM
-        qc_cases_entry_hospital a
-        JOIN qc_cases_entry b
-        ON a.cases_entry_id = b.id
-        WHERE a.is_deleted = "N"
+        qc_cases_entry_hospital a,
+        qc_cases_entry b,
+        qc_cases_hospital c
+        WHERE
+        a.is_deleted = "N"
         AND b.is_deleted = "N"
-        AND a.is_used =1
+        AND c.is_deleted = "N"
+        AND a.cases_entry_id = b.id
+        AND c.cases_id = b.cases_id
+        AND c.hospital_id = a.hospital_id
+        AND a.is_used = 1
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
         </if>