Parcourir la source

对接接口整理

lantone il y a 5 ans
Parent
commit
5da9c1d8f6
64 fichiers modifiés avec 4533 ajouts et 28 suppressions
  1. 12 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  2. 12 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  3. 43 0
      src/main/java/com/diagbot/dto/data/ABasDeptInfoDTO.java
  4. 40 0
      src/main/java/com/diagbot/dto/data/ABasDoctorInfoDTO.java
  5. 111 0
      src/main/java/com/diagbot/dto/data/ABehospitalInfoDTO.java
  6. 131 0
      src/main/java/com/diagbot/dto/data/ADoctorAdviceDTO.java
  7. 43 0
      src/main/java/com/diagbot/dto/data/AHomeDiagnoseDTO.java
  8. 81 0
      src/main/java/com/diagbot/dto/data/AHomeOperationDTO.java
  9. 653 0
      src/main/java/com/diagbot/dto/data/AHomePageDTO.java
  10. 92 0
      src/main/java/com/diagbot/dto/data/AMedCrisisDTO.java
  11. 30 0
      src/main/java/com/diagbot/dto/data/AMedicalRecordContentDTO.java
  12. 49 0
      src/main/java/com/diagbot/dto/data/AMedicalRecordDTO.java
  13. 38 0
      src/main/java/com/diagbot/dto/data/AMedicalRecordTypeDTO.java
  14. 17 0
      src/main/java/com/diagbot/dto/data/AMrContentDTO.java
  15. 7 7
      src/main/java/com/diagbot/entity/BasDeptInfo.java
  16. 171 0
      src/main/java/com/diagbot/entity/BasDoctorInfo.java
  17. 317 0
      src/main/java/com/diagbot/entity/MedCrisisInfo.java
  18. 6 1
      src/main/java/com/diagbot/entity/MedicalRecord.java
  19. 0 2
      src/main/java/com/diagbot/entity/MedicalRecordContent.java
  20. 13 0
      src/main/java/com/diagbot/entity/QcType.java
  21. 0 2
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  22. 21 0
      src/main/java/com/diagbot/facade/QcTypeFacade.java
  23. 63 0
      src/main/java/com/diagbot/facade/data/ABasDeptInfoFacade.java
  24. 76 0
      src/main/java/com/diagbot/facade/data/ABasDoctorInfoFacade.java
  25. 117 0
      src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java
  26. 65 0
      src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java
  27. 57 0
      src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java
  28. 53 0
      src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java
  29. 126 0
      src/main/java/com/diagbot/facade/data/AHomePageFacade.java
  30. 65 0
      src/main/java/com/diagbot/facade/data/AMedCrisisFacade.java
  31. 72 0
      src/main/java/com/diagbot/facade/data/AMedRecordTypeFacade.java
  32. 49 0
      src/main/java/com/diagbot/facade/data/AMedicalRecordContentFacade.java
  33. 220 0
      src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java
  34. 20 0
      src/main/java/com/diagbot/mapper/BasDoctorInfoMapper.java
  35. 0 1
      src/main/java/com/diagbot/mapper/HomePageMapper.java
  36. 16 0
      src/main/java/com/diagbot/mapper/MedCrisisInfoMapper.java
  37. 0 1
      src/main/java/com/diagbot/mapper/SysRoleMapper.java
  38. 18 0
      src/main/java/com/diagbot/service/BasDoctorInfoService.java
  39. 0 1
      src/main/java/com/diagbot/service/HomePageService.java
  40. 16 0
      src/main/java/com/diagbot/service/MedCrisisInfoService.java
  41. 29 0
      src/main/java/com/diagbot/service/impl/BasDoctorInfoServiceImpl.java
  42. 0 1
      src/main/java/com/diagbot/service/impl/HomePageServiceImpl.java
  43. 20 0
      src/main/java/com/diagbot/service/impl/MedCrisisInfoServiceImpl.java
  44. 68 0
      src/main/java/com/diagbot/util/ReadProperties.java
  45. 700 0
      src/main/java/com/diagbot/util/TZDBConn.java
  46. 44 0
      src/main/java/com/diagbot/vo/data/ABasDeptInfoVO.java
  47. 134 0
      src/main/java/com/diagbot/vo/data/ABehospitalInfoVO.java
  48. 128 0
      src/main/java/com/diagbot/vo/data/ADoctorAdviceVO.java
  49. 41 0
      src/main/java/com/diagbot/vo/data/AHomeDiagnoseVO.java
  50. 93 0
      src/main/java/com/diagbot/vo/data/AMedCrisisVO.java
  51. 36 0
      src/main/java/com/diagbot/vo/data/AMedicalRecordTypeVO.java
  52. 49 0
      src/main/java/com/diagbot/vo/data/AMedicalRecordVO.java
  53. 16 0
      src/main/java/com/diagbot/vo/data/AMrContentVO.java
  54. 141 0
      src/main/java/com/diagbot/web/DataController.java
  55. 0 1
      src/main/java/com/diagbot/web/QcCasesController.java
  56. 2 2
      src/main/resources/application-local.yml
  57. 24 0
      src/main/resources/jdbc.properties
  58. 47 0
      src/main/resources/mapper/BasDoctorInfoMapper.xml
  59. 5 5
      src/main/resources/mapper/BehospitalInfoMapper.xml
  60. 2 2
      src/main/resources/mapper/HomePageMapper.xml
  61. 31 0
      src/main/resources/mapper/MedCrisisInfoMapper.xml
  62. 1 1
      src/main/java/com/diagbot/facade/QcModelHospitalFacade.java
  63. 1 0
      src/main/resources/mapper/QcTypeMapper.xml
  64. 1 1
      src/main/resources/mapper/QcresultInfoMapper.xml

+ 12 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -60,6 +60,18 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/behospitalInfo/page_dept").permitAll()
                 .antMatchers("/qc/behospitalInfo/page_person").permitAll()
                 .antMatchers("/consoleByDept/getDept").permitAll()
+                .antMatchers("/qc/data/sendDoctorInfos").permitAll()
+                .antMatchers("/qc/data/sendDeptInfos").permitAll()
+                .antMatchers("/qc/data/sendRecordTypes").permitAll()
+                .antMatchers("/qc/data/sendMedicalRecord").permitAll()
+                .antMatchers("/qc/data/sendMrContent").permitAll()
+                .antMatchers("/qc/data/sendPatientInfo").permitAll()
+                .antMatchers("/qc/data/sendDoctorAdvice").permitAll()
+                .antMatchers("/qc/data/sendHomePage").permitAll()
+                .antMatchers("/qc/data/sendHomeDiagnose").permitAll()
+                .antMatchers("/qc/data/sendHomeOperation").permitAll()
+                .antMatchers("/qc/data/sendMrView").permitAll()
+                .antMatchers("/qc/data/sendCrisis").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

+ 12 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -103,6 +103,18 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/behospitalInfo/page_dept", request)
                 || matchers("/qc/behospitalInfo/page_person", request)
                 || matchers("/consoleByDept/getDept", request)
+                || matchers("/qc/data/sendDoctorInfos", request)
+                || matchers("/qc/data/sendDeptInfos", request)
+                || matchers("/qc/data/sendRecordTypes", request)
+                || matchers("/qc/data/sendMedicalRecord", request)
+                || matchers("/qc/data/sendMrContent", request)
+                || matchers("/qc/data/sendPatientInfo", request)
+                || matchers("/qc/data/sendDoctorAdvice", request)
+                || matchers("/qc/data/sendHomePage", request)
+                || matchers("/qc/data/sendHomeDiagnose", request)
+                || matchers("/qc/data/sendHomeOperation", request)
+                || matchers("/qc/data/sendMrView", request)
+                || matchers("/qc/data/sendCrisis", request)
                 || matchers("/", request)) {
             return true;
         }

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

@@ -0,0 +1,43 @@
+package com.diagbot.dto.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Getter
+@Setter
+public class ABasDeptInfoDTO {
+    /**
+     * 科室编码(HIS导入)
+     */
+    private String deptId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    private String parentDeptId;
+
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    /**
+     * 科室类别
+     */
+    private String deptType;
+
+    /**
+     * 首字母拼音
+     */
+    private String spell;
+
+    /**
+     * 区域类别(门诊、工作站、住院等)
+     */
+    private String station;
+
+}

+ 40 - 0
src/main/java/com/diagbot/dto/data/ABasDoctorInfoDTO.java

@@ -0,0 +1,40 @@
+package com.diagbot.dto.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Getter
+@Setter
+public class ABasDoctorInfoDTO {
+    /**
+     * HIS导入的医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院导入科室ID
+     */
+    private String deptId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 职称
+     */
+    private String professor;
+    /**
+     * 职业医师资格
+     */
+    private String occup;
+
+}

+ 111 - 0
src/main/java/com/diagbot/dto/data/ABehospitalInfoDTO.java

@@ -0,0 +1,111 @@
+package com.diagbot.dto.data;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ABehospitalInfoDTO{
+
+	/**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 医院ID
+     */
+    private String hospitalId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    private String fileCode;
+
+    /**
+     * 病区编码
+     */
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    private Date leaveHospitalDate;
+
+    /**
+     * 疾病ICD编码
+     */
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    private String diagnose;
+
+    /**
+     * 医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+}

+ 131 - 0
src/main/java/com/diagbot/dto/data/ADoctorAdviceDTO.java

@@ -0,0 +1,131 @@
+package com.diagbot.dto.data;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ADoctorAdviceDTO {
+
+	/**
+     * 病人医嘱ID
+     */
+    private String doctorAdviceId;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 医生开单判别
+     */
+    private String orderDoctorName;
+
+    /**
+     * 医嘱频率判别
+     */
+    private String frequency;
+
+    /**
+     * 父类医嘱ID
+     */
+    private String parentTypeId;
+
+    /**
+     * 医嘱类型判别(嘱托长嘱、长期医嘱等)
+     */
+    private String doctorAdviceType;
+
+    /**
+     * 一次使用数量
+     */
+    private String usageNum;
+
+    /**
+     * 一次用量单位
+     */
+    private String usageUnit;
+
+    /**
+     * 医嘱单次剂量
+     */
+    private String dose;
+
+    /**
+     * 单次剂量单位
+     */
+    private String doseUnit;
+
+    /**
+     * 给药方式
+     */
+    private String medModeType;
+
+    /**
+     * 医嘱频率
+     */
+    private String daFrequency;
+
+    /**
+     * 医嘱处理类型
+     */
+    private String daDealType;
+
+    /**
+     * 医嘱开始时间
+     */
+    private Date daStartDate;
+
+    /**
+     * 医嘱项目名称
+     */
+    private String daItemName;
+
+    /**
+     * 医嘱状态判别
+     */
+    private String daStatus;
+
+    /**
+     * 医嘱结束时间
+     */
+    private Date daStopDate;
+
+    /**
+     * 医嘱同组序号
+     */
+    private String daGroupNo;
+
+    /**
+     * 医嘱处方类型(检验、描述医嘱、膳食、西药、护理等)
+     */
+    private String daPrescriptionType;
+
+    /**
+     * 医嘱领药类型
+     */
+    private String daMedType;
+
+    /**
+     * 医生嘱托
+     */
+    private String doctorNotice;
+
+    /**
+     * 开单医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+}

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

@@ -0,0 +1,43 @@
+package com.diagbot.dto.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class AHomeDiagnoseDTO {
+	/**
+     * 病案首页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;
+}

+ 81 - 0
src/main/java/com/diagbot/dto/data/AHomeOperationDTO.java

@@ -0,0 +1,81 @@
+package com.diagbot.dto.data;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class AHomeOperationDTO {
+	/**
+     * 病案首页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;
+
+}

+ 653 - 0
src/main/java/com/diagbot/dto/data/AHomePageDTO.java

@@ -0,0 +1,653 @@
+package com.diagbot.dto.data;
+
+import java.util.Date;
+import java.util.List;
+
+import com.diagbot.vo.data.AHomeDiagnoseVO;
+import com.diagbot.vo.data.AHomeOperationVO;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AHomePageDTO {
+	/**
+     * 病案首页编号
+     */
+    private String homePageId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院序号
+     */
+    private String behospitalCode;
+
+    /**
+     * 组织机构id
+     */
+    private String hospitalCode;
+
+    /**
+     * 医疗机构名称
+     */
+    private String hospitalName;
+
+    /**
+     * 医疗机构代码
+     */
+    private String orgCode;
+
+    /**
+     * 医疗付费方式
+     */
+    private String payType;
+
+    /**
+     * 健康卡号
+     */
+    private String healthCard;
+
+    /**
+     * 住院次数
+     */
+    private String behospitalNum;
+
+    /**
+     * 病案号
+     */
+    private String fileCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    private String birthday;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 年龄单位
+     */
+    private String ageUnit;
+
+    /**
+     * 国籍
+     */
+    private String nationality;
+
+    /**
+     * 新生儿出生月数
+     */
+    private String newbornMonth;
+
+    /**
+     * 新生儿出生天数
+     */
+    private String newbornDay;
+
+    /**
+     * 新生儿出生体重
+     */
+    private String newbornWeight;
+
+    /**
+     * 新生儿入院体重
+     */
+    private String newbornBehospitalWeight;
+
+    /**
+     * 出生地
+     */
+    private String bornAddress;
+
+    /**
+     * 籍贯
+     */
+    private String bornPlace;
+
+    /**
+     * 民族
+     */
+    private String nation;
+
+    /**
+     * 身份证号
+     */
+    private String identityCardNo;
+
+    /**
+     * 职业
+     */
+    private String jobType;
+
+    /**
+     * 婚姻
+     */
+    private String marriage;
+
+    /**
+     * 现住址
+     */
+    private String curAddress;
+
+    /**
+     * 现住址电话
+     */
+    private String curPhone;
+
+    /**
+     * 现住址邮编
+     */
+    private String curPostCode;
+
+    /**
+     * 户口地址
+     */
+    private String residenceAddress;
+
+    /**
+     * 户口地址邮编
+     */
+    private String residencePostCode;
+
+    /**
+     * 工作单位
+     */
+    private String workAddress;
+
+    /**
+     * 工作单位电话
+     */
+    private String workPhone;
+
+    /**
+     * 工作单位邮编
+     */
+    private String workPostCode;
+
+    /**
+     * 联系人姓名
+     */
+    private String contactName;
+
+    /**
+     * 联系人关系
+     */
+    private String contactRelation;
+
+    /**
+     * 联系人地址
+     */
+    private String contactAddress;
+
+    /**
+     * 联系人电话
+     */
+    private String contactPhone;
+
+    /**
+     * 入院途径
+     */
+    private String behospitalWay;
+
+    /**
+     * 入院时间
+     */
+    private Date behospitalDate;
+
+    /**
+     * 入院科别
+     */
+    private String behospitalDept;
+
+    /**
+     * 入院病房
+     */
+    private String behospitalWard;
+
+    /**
+     * 入院床位序号
+     */
+    private String behospitalBedId;
+
+    /**
+     * 入院床位号码
+     */
+    private String behospitalBedCode;
+
+    /**
+     * 转科科别
+     */
+    private String changeDept;
+
+    /**
+     * 出院时间
+     */
+    private Date leaveHospitalDate;
+
+    /**
+     * 出院科别
+     */
+    private String leaveHospitalDept;
+
+    /**
+     * 出院病房
+     */
+    private String leaveHospitalWard;
+
+    /**
+     * 出院床位序号
+     */
+    private String leaveHospitalBedId;
+
+    /**
+     * 出院床位号码
+     */
+    private String leaveHospitalBedCode;
+
+    /**
+     * 实际住院天数
+     */
+    private String behospitalDayNum;
+
+    /**
+     * 门急诊诊断
+     */
+    private String outpatientEmrDiagnose;
+
+    /**
+     * 门急诊诊断编码
+     */
+    private String outpatientEmrDiagnoseCode;
+
+    /**
+     * 损伤中毒因素
+     */
+    private String poisonFactor;
+
+    /**
+     * 损伤中毒因素编码
+     */
+    private String poisonFactorCode;
+
+    /**
+     * 病理诊断
+     */
+    private String pathologyDiagnose;
+
+    /**
+     * 病理诊断编码
+     */
+    private String pathologyDiagnoseCode;
+
+    /**
+     * 病理诊断编号
+     */
+    private String pathologyDiagnoseId;
+
+    /**
+     * 药物过敏
+     */
+    private String isMedAllergy;
+
+    /**
+     * 过敏药物
+     */
+    private String medAllergyName;
+
+    /**
+     * 死亡患者尸检
+     */
+    private String autopsy;
+
+    /**
+     * 血型
+     */
+    private String bloodType;
+
+    /**
+     * Rh
+     */
+    private String rh;
+
+    /**
+     * 科主任
+     */
+    private String deptDirector;
+
+    /**
+     * 主任医师
+     */
+    private String directorDoctor;
+
+    /**
+     * 主治医师
+     */
+    private String attendingDoctor;
+
+    /**
+     * 住院医师
+     */
+    private String behospitalDoctor;
+
+    /**
+     * 责任护士
+     */
+    private String responseNurse;
+
+    /**
+     * 进修医师
+     */
+    private String studyDoctor;
+
+    /**
+     * 实习医师
+     */
+    private String practiceDoctor;
+
+    /**
+     * 编码员
+     */
+    private String encodeMan;
+
+    /**
+     * 病案质量
+     */
+    private String homePageQuality;
+
+    /**
+     * 质控医师
+     */
+    private String qcDoctor;
+
+    /**
+     * 质控护士
+     */
+    private String qcNurse;
+
+    /**
+     * 质控日期
+     */
+    private Date qcDate;
+
+    /**
+     * 离院方式
+     */
+    private String leaveHospitalType;
+
+    /**
+     * 接收机构名称
+     */
+    private String acceptOrgCode;
+
+    /**
+     * 31天内再住院计划
+     */
+    private String againBehospitalPlan;
+
+    /**
+     * 再住院目的
+     */
+    private String againBehospitalGoal;
+
+    /**
+     * 颅脑损伤患者昏迷前天数
+     */
+    private String tbiBeforeDay;
+
+    /**
+     * 颅脑损伤患者昏迷前小时
+     */
+    private String tbiBeforeHour;
+
+    /**
+     * 颅脑损伤患者昏迷前分钟
+     */
+    private String tbiBeforeMinute;
+
+    /**
+     * 颅脑损伤患者昏迷后天数
+     */
+    private String tbiAfterDay;
+
+    /**
+     * 颅脑损伤患者昏迷后小时
+     */
+    private String tbiAfterHour;
+
+    /**
+     * 颅脑损伤患者昏迷后分钟
+     */
+    private String tbiAfterMinute;
+
+    /**
+     * 总费用
+     */
+    private String totalFee;
+
+    /**
+     * 自付金额
+     */
+    private String ownFee;
+
+    /**
+     * 一般医疗服务费
+     */
+    private String generalFee;
+
+    /**
+     * 一般治疗服务费
+     */
+    private String serviceFee;
+
+    /**
+     * 护理费
+     */
+    private String nurseFee;
+
+    /**
+     * 其他费用
+     */
+    private String otherFee;
+
+    /**
+     * 病理诊断费
+     */
+    private String pathologyFee;
+
+    /**
+     * 实验室诊断费
+     */
+    private String labFee;
+
+    /**
+     * 影像学诊断费
+     */
+    private String pacsFee;
+
+    /**
+     * 临床诊断项目费
+     */
+    private String clinicDiagnoseFee;
+
+    /**
+     * 非手术治疗项目费
+     */
+    private String notOperationFee;
+
+    /**
+     * 临床物理治疗费
+     */
+    private String clinicPhysicFee;
+
+    /**
+     * 手术治疗费
+     */
+    private String operationTreatFee;
+
+    /**
+     * 麻醉费
+     */
+    private String anaesthesiaFee;
+
+    /**
+     * 手术费
+     */
+    private String operationFee;
+
+    /**
+     * 康复类
+     */
+    private String healthTypeFee;
+
+    /**
+     * 中医治疗费
+     */
+    private String chnTreatFee;
+
+    /**
+     * 西药费
+     */
+    private String westernMedFee;
+
+    /**
+     * 抗菌药物费用
+     */
+    private String antibiosisFee;
+
+    /**
+     * 中成药费
+     */
+    private String chnMedFee;
+
+    /**
+     * 中草药费
+     */
+    private String chnHerbFee;
+
+    /**
+     * 血费
+     */
+    private String bloodFee;
+
+    /**
+     * 白蛋白类制品费
+     */
+    private String albumenFee;
+
+    /**
+     * 球蛋白类制品费
+     */
+    private String globulinFee;
+
+    /**
+     * 凝血因子类制品费
+     */
+    private String bloodFactorFee;
+
+    /**
+     * 细胞因子类制品费
+     */
+    private String cellFactorFee;
+
+    /**
+     * 检查用一次性医用材料费
+     */
+    private String checkMaterialFee;
+
+    /**
+     * 治疗用一次性医用材料费
+     */
+    private String treatMaterialFee;
+
+    /**
+     * 手术用一次性医用材料费
+     */
+    private String operationMaterialFee;
+
+    /**
+     * 其他类其他费
+     */
+    private String otherTypeFee;
+
+    /**
+     * 单病种管理
+     */
+    private String singleDiagManage;
+
+    /**
+     * 临床路径管理
+     */
+    private String clinicPathwayManage;
+
+    /**
+     * 门诊与住院
+     */
+    private String isOutpatientBehospital;
+
+    /**
+     * 入院与出院
+     */
+    private String isLeaveBehospital;
+
+    /**
+     * 术前与术后
+     */
+    private String isOperationBeforeAfter;
+
+    /**
+     * 临床与病理
+     */
+    private String isClinicPathology;
+
+    /**
+     * 放射与病理
+     */
+    private String isRadiatePathology;
+
+    /**
+     * 病人抢救次数
+     */
+    private String rescueNum;
+
+    /**
+     * 病人抢救成功次数
+     */
+    private String rescueSuccessNum;
+
+    /**
+     * 是否为自动出院
+     */
+    private String isAutoLeavehospital;
+
+    /**
+     * 转归情况
+     */
+    private String returnToType;
+    /**
+     * 出院诊断
+     */
+    private List<AHomeDiagnoseVO> leaveDiags;
+
+    /**
+     * 手术情况
+     */
+    private List<AHomeOperationVO> operations;
+
+}

+ 92 - 0
src/main/java/com/diagbot/dto/data/AMedCrisisDTO.java

@@ -0,0 +1,92 @@
+package com.diagbot.dto.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class AMedCrisisDTO {
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 记录类型
+     */
+    private String recType;
+
+    /**
+     * 危急值ID
+     */
+    private String crisisId;
+
+    /**
+     * 危急值名称
+     */
+    private String crisisName;
+
+    /**
+     * 开单科室ID
+     */
+    private String deptId;
+
+    /**
+     * 开单科室名称
+     */
+    private String deptName;
+
+    /**
+     * 开单医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 危急结果值
+     */
+    private String crisisValue;
+
+    /**
+     * 危急值描述
+     */
+    private String crisisDesc;
+
+    /**
+     * 危急值状态
+     */
+    private String crisisStatus;
+
+    /**
+     * 参考上限
+     */
+    private String crisisTopValue;
+
+    /**
+     * 参考下限
+     */
+    private String crisisLowerValue;
+
+    /**
+     * 送检时间
+     */
+    private Date sendDate;
+
+    /**
+     * 报告时间
+     */
+    private Date repDate;
+}

+ 30 - 0
src/main/java/com/diagbot/dto/data/AMedicalRecordContentDTO.java

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

+ 49 - 0
src/main/java/com/diagbot/dto/data/AMedicalRecordDTO.java

@@ -0,0 +1,49 @@
+package com.diagbot.dto.data;
+
+import com.diagbot.vo.data.AMedicalRecordContentVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+@Getter
+@Setter
+public class AMedicalRecordDTO {
+	private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 组织机构代码
+     */
+    private String orgCode;
+
+    /**
+     * 病历类别编号
+     */
+    private String recTypeId;
+
+    /**
+     * 病历日期
+     */
+    private String recDate;
+
+    /**
+     * 病历标题
+     */
+    private Date recTitle;
+
+    /**
+     * 病历内容
+     */
+    private List<AMedicalRecordContentVO> contents;
+}

+ 38 - 0
src/main/java/com/diagbot/dto/data/AMedicalRecordTypeDTO.java

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

+ 17 - 0
src/main/java/com/diagbot/dto/data/AMrContentDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto.data;
+
+import com.diagbot.vo.data.AMedicalRecordVO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+import java.util.Map;
+
+@Getter
+@Setter
+public class AMrContentDTO {
+
+    private List<AMedicalRecordVO> records;
+
+    private Map<String,Object> map;
+}

+ 7 - 7
src/main/java/com/diagbot/entity/BasDeptInfo.java

@@ -3,8 +3,8 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -59,12 +59,12 @@ public class BasDeptInfo implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -132,18 +132,18 @@ public class BasDeptInfo implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 171 - 0
src/main/java/com/diagbot/entity/BasDoctorInfo.java

@@ -0,0 +1,171 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-04-17
+ */
+public class BasDoctorInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * HIS导入的医生ID
+     */
+    @TableId(value = "doctor_id",type = IdType.INPUT)
+    private String doctorId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院导入科室ID
+     */
+    private String deptId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 职称
+     */
+    private String professor;
+
+    /**
+     * 职业医师资格
+     */
+    private String occup;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    public String getDoctorId() {
+        return doctorId;
+    }
+
+    public void setDoctorId(String doctorId) {
+        this.doctorId = doctorId;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getProfessor() {
+        return professor;
+    }
+
+    public void setProfessor(String professor) {
+        this.professor = professor;
+    }
+    public String getOccup() {
+        return occup;
+    }
+
+    public void setOccup(String occup) {
+        this.occup = occup;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    @Override
+    public String toString() {
+        return "BasDoctorInfo{" +
+                "doctorId=" + doctorId +
+                ", hospitalId=" + hospitalId +
+                ", deptId=" + deptId +
+                ", name=" + name +
+                ", professor=" + professor +
+                ", occup=" + occup +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                "}";
+    }
+}

+ 317 - 0
src/main/java/com/diagbot/entity/MedCrisisInfo.java

@@ -0,0 +1,317 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 危急值信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-28
+ */
+@TableName("med_crisis_info")
+@Data
+public class MedCrisisInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "rec_id",type = IdType.INPUT)
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 记录类型
+     */
+    private String recType;
+
+    /**
+     * 危急值ID
+     */
+    private String crisisId;
+
+    /**
+     * 危急值名称
+     */
+    private String crisisName;
+
+    /**
+     * 开单科室ID
+     */
+    private String deptId;
+
+    /**
+     * 开单科室名称
+     */
+    private String deptName;
+
+    /**
+     * 开单医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 危急结果值
+     */
+    private String crisisValue;
+
+    /**
+     * 危急值描述
+     */
+    private String crisisDesc;
+
+    /**
+     * 危急值状态
+     */
+    private String crisisStatus;
+
+    /**
+     * 参考上限
+     */
+    private String crisisTopValue;
+
+    /**
+     * 参考下限
+     */
+    private String crisisLowerValue;
+
+    /**
+     * 送检时间
+     */
+    private Date sendDate;
+
+    /**
+     * 报告时间
+     */
+    private Date repDate;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    public String getRecId() {
+        return recId;
+    }
+
+    public void setRecId(String recId) {
+        this.recId = recId;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getBehospitalCode() {
+        return behospitalCode;
+    }
+
+    public void setBehospitalCode(String behospitalCode) {
+        this.behospitalCode = behospitalCode;
+    }
+    public String getRecType() {
+        return recType;
+    }
+
+    public void setRecType(String recType) {
+        this.recType = recType;
+    }
+    public String getCrisisId() {
+        return crisisId;
+    }
+
+    public void setCrisisId(String crisisId) {
+        this.crisisId = crisisId;
+    }
+    public String getCrisisName() {
+        return crisisName;
+    }
+
+    public void setCrisisName(String crisisName) {
+        this.crisisName = crisisName;
+    }
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+    public String getDoctorId() {
+        return doctorId;
+    }
+
+    public void setDoctorId(String doctorId) {
+        this.doctorId = doctorId;
+    }
+    public String getDoctorName() {
+        return doctorName;
+    }
+
+    public void setDoctorName(String doctorName) {
+        this.doctorName = doctorName;
+    }
+    public String getCrisisValue() {
+        return crisisValue;
+    }
+
+    public void setCrisisValue(String crisisValue) {
+        this.crisisValue = crisisValue;
+    }
+    public String getCrisisDesc() {
+        return crisisDesc;
+    }
+
+    public void setCrisisDesc(String crisisDesc) {
+        this.crisisDesc = crisisDesc;
+    }
+    public String getCrisisStatus() {
+        return crisisStatus;
+    }
+
+    public void setCrisisStatus(String crisisStatus) {
+        this.crisisStatus = crisisStatus;
+    }
+    public String getCrisisTopValue() {
+        return crisisTopValue;
+    }
+
+    public void setCrisisTopValue(String crisisTopValue) {
+        this.crisisTopValue = crisisTopValue;
+    }
+    public String getCrisisLowerValue() {
+        return crisisLowerValue;
+    }
+
+    public void setCrisisLowerValue(String crisisLowerValue) {
+        this.crisisLowerValue = crisisLowerValue;
+    }
+    public Date getSendDate() {
+        return sendDate;
+    }
+
+    public void setSendDate(Date sendDate) {
+        this.sendDate = sendDate;
+    }
+    public Date getRepDate() {
+        return repDate;
+    }
+
+    public void setRepDate(Date repDate) {
+        this.repDate = repDate;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    @Override
+    public String toString() {
+        return "MedCrisisInfo{" +
+            "recId=" + recId +
+            ", hospitalId=" + hospitalId +
+            ", behospitalCode=" + behospitalCode +
+            ", recType=" + recType +
+            ", crisisId=" + crisisId +
+            ", crisisName=" + crisisName +
+            ", deptId=" + deptId +
+            ", deptName=" + deptName +
+            ", doctorId=" + doctorId +
+            ", doctorName=" + doctorName +
+            ", crisisValue=" + crisisValue +
+            ", crisisDesc=" + crisisDesc +
+            ", crisisStatus=" + crisisStatus +
+            ", crisisTopValue=" + crisisTopValue +
+            ", crisisLowerValue=" + crisisLowerValue +
+            ", sendDate=" + sendDate +
+            ", repDate=" + repDate +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+        "}";
+    }
+}

+ 6 - 1
src/main/java/com/diagbot/entity/MedicalRecord.java

@@ -48,7 +48,12 @@ public class MedicalRecord implements Serializable {
     /**
      * 病历日期
      */
-    private String recDate;
+    private Date recDate;
+
+    /**
+     * 模块id
+     */
+    private Long modeId;
 
     /**
      * 病历标题

+ 0 - 2
src/main/java/com/diagbot/entity/MedicalRecordContent.java

@@ -17,8 +17,6 @@ import java.util.Date;
  * @author zhoutg
  * @since 2020-04-13
  */
-@TableName("med_medical_record_content")
-@Data
 public class MedicalRecordContent implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 13 - 0
src/main/java/com/diagbot/entity/QcType.java

@@ -24,6 +24,11 @@ public class QcType implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
     /**
      * 质控类型名称
      */
@@ -66,6 +71,13 @@ public class QcType implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
 
     public String getName() {
         return name;
@@ -127,6 +139,7 @@ public class QcType implements Serializable {
     public String toString() {
         return "QcType{" +
                 "id=" + id +
+                ", hospitalId=" + hospitalId +
                 ", name=" + name +
                 ", remark=" + remark +
                 ", isDeleted=" + isDeleted +

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

@@ -104,8 +104,6 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     Boolean encryptFlag;
     @Autowired
     QcQuestionFacade qcQuestionFacade;
-    @Autowired
-    QcModelHospitalFacade qcModelHospitalFacade;
 
     /**
      * 分页

+ 21 - 0
src/main/java/com/diagbot/facade/QcTypeFacade.java

@@ -0,0 +1,21 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.MrqcSysApplication;
+import com.diagbot.entity.QcType;
+import com.diagbot.service.impl.QcTypeServiceImpl;
+import org.springframework.boot.SpringApplication;
+import org.springframework.stereotype.Component;
+
+@Component
+public class QcTypeFacade extends QcTypeServiceImpl {
+
+    public Long saveT(QcType qcType){
+        this.baseMapper.insert(qcType);
+        QueryWrapper<QcType> qWrapper =new QueryWrapper<>();
+        qWrapper.eq("name",qcType.getName());
+        qWrapper.eq("hospital_id", qcType.getHospitalId());
+        QcType entity=this.baseMapper.selectOne(qWrapper);
+        return entity.getId();
+    }
+}

+ 63 - 0
src/main/java/com/diagbot/facade/data/ABasDeptInfoFacade.java

@@ -0,0 +1,63 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ABasDeptInfoDTO;
+import com.diagbot.entity.BasDeptInfo;
+import com.diagbot.service.impl.BasDeptInfoServiceImpl;
+import com.diagbot.vo.data.ABasDeptInfoVO;
+import com.diagbot.util.BeanUtil;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ABasDeptInfoFacade extends BasDeptInfoServiceImpl{
+
+    /**
+     * 通过接口同步数据
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ABasDeptInfoDTO>> executeDept(List<ABasDeptInfoVO> list) {
+        if(list!=null && list.size()>0){
+            List<BasDeptInfo> basDeptInfoList=Lists.newArrayList();
+            List<ABasDeptInfoDTO> basDeptInfoDtoList=Lists.newArrayList();
+            basDeptInfoList=BeanUtil.listCopyTo(list,BasDeptInfo.class);
+            basDeptInfoDtoList=BeanUtil.listCopyTo(list,ABasDeptInfoDTO.class);
+
+            //循环验证数据有效性
+            for (BasDeptInfo basDeptInfo:basDeptInfoList) {
+                if("".equals(basDeptInfo.getDeptId())) {
+                    return RespDTO.onError("请输入科室编码!");
+                }else if(basDeptInfo.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(basDeptInfo.getDeptName())){
+                    return RespDTO.onError("请输入科室名称!");
+                }
+            }
+            execute(basDeptInfoList);
+            return RespDTO.onSuc(basDeptInfoDtoList);
+        }else {
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<BasDeptInfo> basDeptInfoList){
+        basDeptInfoList.stream().forEach(s -> {
+            QueryWrapper<BasDeptInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("dept_id", s.getDeptId());
+            queryWrapper.eq("hospital_id", s.getHospitalId());
+            BasDeptInfo basDeptInfo = this.getOne(queryWrapper);
+            if (basDeptInfo != null) {
+                s.setGmtModified(new Date());
+                this.update(s,queryWrapper);
+            } else {
+                s.setGmtCreate(new Date());
+                this.save(s);
+            }
+        });
+    }
+}

+ 76 - 0
src/main/java/com/diagbot/facade/data/ABasDoctorInfoFacade.java

@@ -0,0 +1,76 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ABasDoctorInfoDTO;
+import com.diagbot.entity.BasDoctorInfo;
+import com.diagbot.service.impl.BasDoctorInfoServiceImpl;
+import com.diagbot.service.impl.MedQcresultCasesServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.ABasDoctorInfoVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ABasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
+    @Autowired
+    @Qualifier("basDoctorInfoServiceImpl")
+    private BasDoctorInfoServiceImpl basDoctorInfoService;
+    /**
+     * 从接口接收医生信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ABasDoctorInfoDTO>> executeDoctor(List<ABasDoctorInfoVO> list) {
+        if(list!=null && list.size()>0){
+            List<BasDoctorInfo> basDoctorInfoList=Lists.newArrayList();
+            List<ABasDoctorInfoDTO> basDoctorDtoList=Lists.newArrayList();
+            basDoctorInfoList=BeanUtil.listCopyTo(list,BasDoctorInfo.class);
+            basDoctorDtoList=BeanUtil.listCopyTo(list,ABasDoctorInfoDTO.class);
+            //循环验证数据有效性
+            for (BasDoctorInfo basDoctorInfo:basDoctorInfoList) {
+                if("".equals(basDoctorInfo.getDoctorId())) {
+                    return RespDTO.onError("请输入医生编码!");
+                }else if(basDoctorInfo.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }
+            }
+            execute(basDoctorInfoList);
+            return RespDTO.onSuc(basDoctorDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<BasDoctorInfo> basDoctorInfoList){
+        List<BasDoctorInfo> addE=Lists.newArrayList();
+        List<BasDoctorInfo> updateE=Lists.newArrayList();
+
+        basDoctorInfoList.stream().forEach(s -> {
+            QueryWrapper<BasDoctorInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("doctor_id", s.getDoctorId());
+            queryWrapper.eq("hospital_id", s.getHospitalId());
+            BasDoctorInfo basDoctorInfo = this.getOne(queryWrapper);
+            if (basDoctorInfo != null) {
+                s.setGmtModified(new Date());
+                updateE.add(s);
+                //basDoctorInfoService.update(s,queryWrapper);
+            } else {
+                s.setGmtCreate(new Date());
+                //this.save(s);
+                addE.add(s);
+            }
+        });
+        if(updateE.size()>0){
+            basDoctorInfoService.updateBatchByKey(updateE);
+        }
+        if(addE.size()>0){
+            basDoctorInfoService.saveBatch(addE);
+        }
+    }
+}

+ 117 - 0
src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java

@@ -0,0 +1,117 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ABehospitalInfoDTO;
+import com.diagbot.entity.*;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.QcAbnormalFacade;
+import com.diagbot.facade.QcTypeFacade;
+import com.diagbot.service.impl.BehospitalInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.ABehospitalInfoVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
+
+    @Autowired
+    private QcTypeFacade qcTypeFacade;
+
+    @Autowired
+    private AMedicalRecordFacade aMedicalRecordFacade;
+
+    @Autowired
+    private QcAbnormalFacade qcAbnormalFacade;
+
+
+    /**
+     * 通过接口更新病人住院记录信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ABehospitalInfoDTO>> executeBehospital(List<ABehospitalInfoVO> list) {
+        if(list!=null && list.size()>0) {
+            List<BehospitalInfo> behospitalInfoList = Lists.newArrayList();
+            List<ABehospitalInfoDTO> behospitalInfoDtoList = Lists.newArrayList();
+            behospitalInfoList = BeanUtil.listCopyTo(list, BehospitalInfo.class);
+            behospitalInfoDtoList = BeanUtil.listCopyTo(list, ABehospitalInfoDTO.class);
+
+            //循环验证数据有效性
+            for (BehospitalInfo behospitalInfo:behospitalInfoList) {
+                if("".equals(behospitalInfo.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                }else if(behospitalInfo.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(behospitalInfo.getBehDeptId())){
+                    return RespDTO.onError("请输入住院科室编码!");
+                }else if("".equals(behospitalInfo.getBehDeptName())){
+                    return RespDTO.onError("请输入住院科室名称!");
+                }
+            }
+            execute(behospitalInfoList);
+            return RespDTO.onSuc(behospitalInfoDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+
+    public void execute(List<BehospitalInfo> behospitalInfoList){
+        List<BehospitalInfo> add = Lists.newLinkedList();
+        List<BehospitalInfo> updateE = Lists.newLinkedList();
+        behospitalInfoList.stream().forEach(s -> {
+            QueryWrapper<MedicalRecord> wrapper = new QueryWrapper<>();
+            wrapper.eq("behospital_code", s.getBehospitalCode());
+            wrapper.eq("hospital_id", s.getHospitalId());
+            wrapper.eq("mode_id", Long.valueOf("1"));
+            MedicalRecord medicalRecord = aMedicalRecordFacade.getOne(wrapper);
+            if(medicalRecord!=null){
+                QueryWrapper<QcType> qWrapper =new QueryWrapper<>();
+                qWrapper.eq("name",medicalRecord.getRecTitle());
+                qWrapper.eq("hospital_id", s.getHospitalId());
+                QcType qcType=qcTypeFacade.getOne(qWrapper);
+                if(qcType!=null){
+                    s.setQcTypeId(qcType.getId());
+                }else{
+                    //新增类型到qc_type表中
+                    QcType qctype=new QcType();
+                    qctype.setHospitalId(s.getHospitalId());
+                    qctype.setName(medicalRecord.getRecTitle());
+                    qctype.setRemark("台州");
+                    qctype.setGmtCreate(new Date());
+
+                    Long id=qcTypeFacade.saveT(qctype);
+                    s.setQcTypeId(id);
+
+                    //新增类型到监测表中
+                    QcAbnormal qcAbnormal=new QcAbnormal();
+                    qcAbnormal.setHospitalId(s.getHospitalId());
+                    qcAbnormal.setBehospitalCode(s.getBehospitalCode());
+                    qcAbnormal.setType(2);
+                    qcAbnormal.setDescription(medicalRecord.getRecTitle());
+                    qcAbnormal.setGmtCreate(new Date());
+                    qcAbnormalFacade.getBaseMapper().insert(qcAbnormal);
+                }
+            }
+
+            QueryWrapper<BehospitalInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("behospital_code", s.getBehospitalCode());
+            queryWrapper.eq("hospital_id", s.getHospitalId());
+            queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+            BehospitalInfo behospitalInfo = this.getOne(queryWrapper);
+            if (behospitalInfo != null) {
+                s.setGmtModified(new Date());
+                this.update(s,queryWrapper);
+            } else {
+                s.setGmtCreate(new Date());
+                this.save(s);
+            }
+        });
+    }
+}

+ 65 - 0
src/main/java/com/diagbot/facade/data/ADoctorAdviceFacade.java

@@ -0,0 +1,65 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.ADoctorAdviceDTO;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.DoctorAdviceServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.ADoctorAdviceVO;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class ADoctorAdviceFacade extends DoctorAdviceServiceImpl{
+    /**
+     * 数据引擎-通过接口更新医生医嘱信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<ADoctorAdviceDTO>> executeDoctorAdvice(List<ADoctorAdviceVO> list) {
+        if(list!=null && list.size()>0){
+            List<DoctorAdvice> doctorAdviceList=Lists.newArrayList();
+            List<ADoctorAdviceDTO> doctorAdviceDtoList=Lists.newArrayList();
+            doctorAdviceList=BeanUtil.listCopyTo(list,DoctorAdvice.class);
+            doctorAdviceDtoList=BeanUtil.listCopyTo(list,ADoctorAdviceDTO.class);
+            //循环验证数据有效性
+            for (DoctorAdvice doctorAdvice:doctorAdviceList) {
+                if("".equals(doctorAdvice.getDoctorAdviceId())) {
+                    return RespDTO.onError("请输入病人医嘱编码!");
+                }else if(doctorAdvice.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(doctorAdvice.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+            }
+            execute(doctorAdviceList);
+            return RespDTO.onSuc(doctorAdviceDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<DoctorAdvice> doctorAdviceList){
+        if (doctorAdviceList != null && doctorAdviceList.size() > 0) {
+            doctorAdviceList.stream().forEach(s -> {
+                QueryWrapper<DoctorAdvice> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("doctor_advice_id", s.getDoctorAdviceId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                DoctorAdvice doctorAdvice = this.getOne(queryWrapper);
+                if (doctorAdvice != null) {
+                    s.setGmtModified(new Date());
+                    this.update(s,queryWrapper);
+                } else {
+                    s.setGmtCreate(new Date());
+                    this.save(s);
+                }
+            });
+        }
+    }
+}

+ 57 - 0
src/main/java/com/diagbot/facade/data/AHomeDiagnoseInfoFacade.java

@@ -0,0 +1,57 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AHomeDiagnoseDTO;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.service.impl.HomeDiagnoseInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.AHomeDiagnoseVO;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
+    /**
+     * 数据引擎-通过接口更新病案首页诊断
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AHomeDiagnoseDTO>> executeHomeDiagnose(List<AHomeDiagnoseVO> list) {
+        if(list!=null && list.size()>0){
+            List<HomeDiagnoseInfo> homeDiagnoseList=Lists.newArrayList();
+            List<AHomeDiagnoseDTO> homeDiagnoseDtoList=Lists.newArrayList();
+
+            homeDiagnoseList=BeanUtil.listCopyTo(list,HomeDiagnoseInfo.class);
+            homeDiagnoseDtoList=BeanUtil.listCopyTo(list,AHomeDiagnoseDTO.class);
+            execute(homeDiagnoseList);
+            return RespDTO.onSuc(homeDiagnoseDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<HomeDiagnoseInfo> homeDiagnoseList){
+        if (homeDiagnoseList != null && homeDiagnoseList.size() > 0) {
+            homeDiagnoseList.stream().forEach(s -> {
+                if(s.getHomePageId()!=null && !"".equals(s.getDiagnoseOrderNo())){
+                    QueryWrapper<HomeDiagnoseInfo> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.eq("home_page_id", s.getHomePageId());
+                    queryWrapper.eq("hospital_id", s.getHospitalId());
+                    queryWrapper.eq("diagnose_order_no", s.getDiagnoseOrderNo());
+                    HomeDiagnoseInfo diagnoseInfo = this.getOne(queryWrapper);
+                    if (diagnoseInfo != null) {
+                        s.setGmtModified(new Date());
+                        this.update(s,queryWrapper);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        this.save(s);
+                    }
+                }
+            });
+        }
+    }
+}

+ 53 - 0
src/main/java/com/diagbot/facade/data/AHomeOperationInfoFacade.java

@@ -0,0 +1,53 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.data.AHomeOperationDTO;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.service.impl.HomeOperationInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.AHomeOperationVO;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AHomeOperationInfoFacade extends HomeOperationInfoServiceImpl{
+    /**
+     * 数据引擎-通过接口更新病案首页手术
+     * @param list
+     * @return
+     */
+    public List<AHomeOperationDTO> executeHomeOperation(List<AHomeOperationVO> list) {
+        List<HomeOperationInfo> homeOperationList=Lists.newArrayList();
+        List<AHomeOperationDTO> homeOperationDtoList=Lists.newArrayList();
+        if(list!=null && list.size()>0){
+            homeOperationList=BeanUtil.listCopyTo(list,HomeOperationInfo.class);
+            homeOperationDtoList=BeanUtil.listCopyTo(list,AHomeOperationDTO.class);
+            execute(homeOperationList);
+        }
+        return homeOperationDtoList;
+    }
+
+    public void execute(List<HomeOperationInfo> homeOperationList){
+        if (homeOperationList != null && homeOperationList.size() > 0) {
+            homeOperationList.stream().forEach(s -> {
+                if(s.getHomePageId()!=null && !"".equals(s.getOperationOrderNo())) {
+                    QueryWrapper<HomeOperationInfo> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.eq("home_page_id", s.getHomePageId());
+                    queryWrapper.eq("hospital_id", s.getHospitalId());
+                    queryWrapper.eq("operation_order_no", s.getOperationOrderNo());
+                    HomeOperationInfo operationInfo = this.getOne(queryWrapper);
+                    if (operationInfo != null) {
+                        s.setGmtModified(new Date());
+                        this.update(s,queryWrapper);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        this.save(s);
+                    }
+                }
+            });
+        }
+    }
+}

+ 126 - 0
src/main/java/com/diagbot/facade/data/AHomePageFacade.java

@@ -0,0 +1,126 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AHomePageDTO;
+import com.diagbot.entity.HomeDiagnoseInfo;
+import com.diagbot.entity.HomeOperationInfo;
+import com.diagbot.entity.HomePage;
+import com.diagbot.service.impl.HomePageServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.data.AHomeDiagnoseVO;
+import com.diagbot.vo.data.AHomeOperationVO;
+import com.diagbot.vo.data.AHomePageVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AHomePageFacade extends HomePageServiceImpl{
+
+    @Autowired
+    private AHomeDiagnoseInfoFacade aHomeDiagnoseInfoFacade;
+
+    @Autowired
+    private AHomeOperationInfoFacade aHomeOperationInfoFacade;
+
+    /**
+     * 数据引擎-通过接口更新病案首页
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AHomePageDTO>> executeHomePage(List<AHomePageVO> list) {
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (AHomePageVO aHomePageVO:list) {
+                if("".equals(aHomePageVO.getHomePageId())) {
+                    return RespDTO.onError("请输入病案首页编号!");
+                }else if(aHomePageVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(aHomePageVO.getBehospitalCode())){
+                    return RespDTO.onError("请输入病人住院编码!");
+                }
+                //出院诊断
+                if(aHomePageVO.getLeaveDiags()!=null && aHomePageVO.getLeaveDiags().size()>0){
+                    for (AHomeDiagnoseVO aHomeDiagnoseVO:aHomePageVO.getLeaveDiags()){
+                        if("".equals(aHomeDiagnoseVO.getHomePageId())) {
+                            return RespDTO.onError("出院诊断未输入病案首页编号!");
+                        }else if(aHomeDiagnoseVO.getHospitalId()==null){
+                            return RespDTO.onError("出院诊断未输入医院编码!");
+                        }else if("".equals(aHomeDiagnoseVO.getDiagnoseOrderNo())){
+                            return RespDTO.onError("出院诊断未输入顺序号!");
+                        }
+                    }
+                };
+
+                //住院手术
+                if(aHomePageVO.getOperations()!=null && aHomePageVO.getOperations().size()>0){
+                    for (AHomeOperationVO aHomeOperationVO:aHomePageVO.getOperations()){
+                        if("".equals(aHomeOperationVO.getHomePageId())) {
+                            return RespDTO.onError("住院手术未输入病案首页编号!");
+                        }else if(aHomeOperationVO.getHospitalId()==null){
+                            return RespDTO.onError("住院手术未输入医院编码!");
+                        }else if("".equals(aHomeOperationVO.getOperationOrderNo())){
+                            return RespDTO.onError("住院手术未输入顺序号!");
+                        }
+                    }
+                }
+            }
+            //装载数据
+            List<HomePage> homePageList=Lists.newArrayList();
+            List<AHomePageDTO> homePageDtoList=Lists.newArrayList();
+            list.stream().forEach(s->{
+                //初始化入参
+                HomePage homePage=new HomePage();
+                BeanUtil.copyProperties(s,homePage);
+                homePage.setBirthday(DateUtil.parseDate(s.getBirthday()));
+                homePageList.add(homePage);
+
+                //初始化出参
+                AHomePageDTO aHomePageDTO=new AHomePageDTO();
+                BeanUtil.copyProperties(s,aHomePageDTO);
+                homePageDtoList.add(aHomePageDTO);
+
+                //初始化诊断和手术,并同步到数据库
+                List<HomeDiagnoseInfo> homeDiagnoseList=BeanUtil.listCopyTo(s.getLeaveDiags(),HomeDiagnoseInfo.class);
+                List<HomeOperationInfo> homeOperationList=BeanUtil.listCopyTo(s.getOperations(),HomeOperationInfo.class);
+
+                aHomeDiagnoseInfoFacade.execute(homeDiagnoseList);//首页诊断
+                aHomeOperationInfoFacade.execute(homeOperationList);//首页手术
+            });
+            execute(homePageList);
+
+            return RespDTO.onSuc(homePageDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+
+    }
+
+    /**
+     * 病案首页
+     * @param homePageList
+     */
+    public void execute(List<HomePage> homePageList){
+        if (homePageList != null && homePageList.size() > 0) {
+            homePageList.stream().forEach(s -> {
+                QueryWrapper<HomePage> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("home_page_id", s.getHomePageId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                HomePage homePage = this.getOne(queryWrapper);
+                if (homePage != null) {
+                    s.setGmtModified(new Date());
+                    this.update(s,queryWrapper);
+                } else {
+                    s.setGmtCreate(new Date());
+                    this.save(s);
+                }
+            });
+        }
+    }
+}

+ 65 - 0
src/main/java/com/diagbot/facade/data/AMedCrisisFacade.java

@@ -0,0 +1,65 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedCrisisDTO;
+import com.diagbot.entity.MedCrisisInfo;
+import com.diagbot.service.impl.MedCrisisInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.AMedCrisisVO;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AMedCrisisFacade extends MedCrisisInfoServiceImpl{
+
+    public RespDTO<List<AMedCrisisDTO>> executeMedCrisis(List<AMedCrisisVO> list) {
+        if(list!=null && list.size()>0){
+            //循环验证数据有效性
+            for (AMedCrisisVO aMedCrisisVO:list) {
+                if("".equals(aMedCrisisVO.getRecId())){
+                    return RespDTO.onError("请输入文书编码!");
+                }else if("".equals(aMedCrisisVO.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                }else if(aMedCrisisVO.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(aMedCrisisVO.getRecType())){
+                    return RespDTO.onError("请输入危急值类型!");
+                }
+            }
+
+            List<MedCrisisInfo> medCrisisList=Lists.newArrayList();
+            List<AMedCrisisDTO> medCrisisDtoList=Lists.newArrayList();
+
+            medCrisisList=BeanUtil.listCopyTo(list,MedCrisisInfo.class);
+            medCrisisDtoList=BeanUtil.listCopyTo(list,AMedCrisisDTO.class);
+            execute(medCrisisList);
+            return RespDTO.onSuc(medCrisisDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void execute(List<MedCrisisInfo> medCrisisList){
+        if (medCrisisList != null && medCrisisList.size() > 0) {
+            medCrisisList.stream().forEach(s -> {
+                QueryWrapper<MedCrisisInfo> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                queryWrapper.eq("behospital_code", s.getBehospitalCode());
+                queryWrapper.eq("rec_type", s.getRecType());
+                MedCrisisInfo medCrisisInfo = this.getOne(queryWrapper);
+                if (medCrisisInfo != null) {
+                    s.setGmtModified(new Date());
+                    this.update(s,queryWrapper);
+                } else {
+                    s.setGmtCreate(new Date());
+                    this.save(s);
+                }
+            });
+        }
+    }
+}

+ 72 - 0
src/main/java/com/diagbot/facade/data/AMedRecordTypeFacade.java

@@ -0,0 +1,72 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedicalRecordTypeDTO;
+import com.diagbot.entity.BasDoctorInfo;
+import com.diagbot.entity.MedRecordType;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.MedRecordTypeServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.AMedicalRecordTypeVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class AMedRecordTypeFacade extends MedRecordTypeServiceImpl {
+    /**
+     * 数据引擎-通过接口更新病人住院记录信息
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AMedicalRecordTypeDTO>> executeMRType(List<AMedicalRecordTypeVO> list) {
+        if(list!=null && list.size()>0){
+            List<MedRecordType> medRecordTypeList=Lists.newArrayList();
+            List<AMedicalRecordTypeDTO> medRecordTypeDtoList=Lists.newArrayList();
+            medRecordTypeList=BeanUtil.listCopyTo(list,MedRecordType.class);
+            medRecordTypeDtoList=BeanUtil.listCopyTo(list,AMedicalRecordTypeDTO.class);
+            //循环验证数据有效性
+            for (MedRecordType medRecordType:medRecordTypeList) {
+                if("".equals(medRecordType.getTypeId())) {
+                    return RespDTO.onError("请输入文书类型编码!");
+                }else if(medRecordType.getHospitalId()==null){
+                    return RespDTO.onError("请输入医院编码!");
+                }else if("".equals(medRecordType.getTypeName())){
+                    return RespDTO.onError("请文书类型名称!");
+                }
+            }
+            execute(medRecordTypeList);
+            return RespDTO.onSuc(medRecordTypeDtoList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    public void executeMRTypePort(){
+
+    }
+
+    public void execute(List<MedRecordType> medRecordTypeList){
+        List<MedRecordType> add = Lists.newLinkedList();
+        List<MedRecordType> updateE = Lists.newLinkedList();
+        if (medRecordTypeList != null && medRecordTypeList.size() != 0) {
+            medRecordTypeList.stream().forEach(s -> {
+                QueryWrapper<MedRecordType> queryWrapper = new QueryWrapper<>();
+                queryWrapper.in("type_id", s.getTypeId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                //queryWrapper.eq("is_deleted",IsDeleteEnum.N);
+                MedRecordType mrType = this.getOne(queryWrapper);
+                if (mrType != null) {
+                    this.update(s,queryWrapper);
+                } else {
+                    this.save(s);
+                }
+            });
+        }
+    }
+}

+ 49 - 0
src/main/java/com/diagbot/facade/data/AMedicalRecordContentFacade.java

@@ -0,0 +1,49 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.data.AMedicalRecordContentDTO;
+import com.diagbot.entity.MedicalRecordContent;
+import com.diagbot.service.impl.MedicalRecordContentServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.vo.data.AMedicalRecordContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+@Component
+public class AMedicalRecordContentFacade extends MedicalRecordContentServiceImpl{
+    /**
+     * 数据引擎-通过接口更新病历内容
+     * @param list
+     * @return
+     */
+    public List<AMedicalRecordContentDTO> executeMrRecordContent(List<AMedicalRecordContentVO> list) {
+        List<MedicalRecordContent> mrContentList=Lists.newArrayList();
+        List<AMedicalRecordContentDTO> mrContentDtoList=Lists.newArrayList();
+        if(list!=null && list.size()>0){
+            mrContentList=BeanUtil.listCopyTo(list,MedicalRecordContent.class);
+            mrContentDtoList=BeanUtil.listCopyTo(list,AMedicalRecordContentDTO.class);
+            execute(mrContentList);
+        }
+        return mrContentDtoList;
+    }
+
+    public void execute(List<MedicalRecordContent> mrContentList){
+        if (mrContentList != null && mrContentList.size() > 0) {
+            mrContentList.stream().forEach(s -> {
+                QueryWrapper<MedicalRecordContent> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("rec_id", s.getRecId());
+                queryWrapper.eq("hospital_id", s.getHospitalId());
+                MedicalRecordContent mrContent = this.getOne(queryWrapper);
+                if (mrContent != null) {
+                    s.setGmtModified(new Date());
+                    this.updateById(s);
+                } else {
+                    s.setGmtCreate(new Date());
+                    this.save(s);
+                }
+            });
+        }
+    }
+}

+ 220 - 0
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -0,0 +1,220 @@
+package com.diagbot.facade.data;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.AMedicalRecordDTO;
+import com.diagbot.dto.data.AMrContentDTO;
+import com.diagbot.entity.*;
+import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.facade.ModelHospitalFacade;
+import com.diagbot.facade.QcAbnormalFacade;
+import com.diagbot.service.impl.MedicalRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ReadProperties;
+import com.diagbot.vo.AnalyzeApiVO;
+import com.diagbot.vo.data.AMedicalRecordVO;
+import com.diagbot.vo.data.AMrContentVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
+
+    @Autowired
+    private ModelHospitalFacade modelHospitalFacade;
+
+    @Autowired
+    private AMedicalRecordContentFacade aMedicalRecordContentFacade;
+
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
+    @Autowired
+    private QcAbnormalFacade qcAbnormalFacade;
+
+    @Autowired
+    private ReadProperties readProperties;
+
+    /**
+     * 通过接口更新病历记录
+     * @param list
+     * @return
+     */
+    public RespDTO<List<AMedicalRecordDTO>> executeMrRecordView(List<AMedicalRecordVO> list) {
+        if(list!=null && list.size()>0) {
+            //循环验证数据有效性
+            for (AMedicalRecordVO aMedicalRecordVO : list) {
+                if ("".equals(aMedicalRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入文书序号!");
+                } else if (aMedicalRecordVO.getHospitalId() == null) {
+                    return RespDTO.onError("请输入医院编码!");
+                } else if ("".equals(aMedicalRecordVO.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                } else if ("".equals(aMedicalRecordVO.getRecTypeId())) {
+                    return RespDTO.onError("请输入病历类别编号!");
+                } else if ("".equals(aMedicalRecordVO.getRecTitle())) {
+                    return RespDTO.onError("请输入病历标题!");
+                } else if (aMedicalRecordVO.getContents() == null || aMedicalRecordVO.getContents().size() == 0) {
+                    return RespDTO.onError("请输入文书详情!");
+                }
+            }
+            //装载数据
+            initData(list);
+            List<AMedicalRecordDTO> medicalRecordDTOList = Lists.newArrayList();
+            medicalRecordDTOList = BeanUtil.listCopyTo(list, AMedicalRecordDTO.class);
+            return RespDTO.onSuc(medicalRecordDTOList);
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    /**
+     * 数据引擎-通过接口更新病历记录
+     * @param aMrContentVO
+     * @return
+     */
+    public RespDTO<Map<String, Object>> executeMrRecord(AMrContentVO aMrContentVO) {
+        if(aMrContentVO.getRecords()!=null && aMrContentVO.getRecords().size()>0){
+            AMrContentDTO aMrContentDTO=new AMrContentDTO();
+            //循环验证数据有效性
+            for (AMedicalRecordVO aMedicalRecordVO : aMrContentVO.getRecords()) {
+                if ("".equals(aMedicalRecordVO.getRecId())) {
+                    return RespDTO.onError("请输入文书序号!");
+                } else if (aMedicalRecordVO.getHospitalId() == null) {
+                    return RespDTO.onError("请输入医院编码!");
+                } else if ("".equals(aMedicalRecordVO.getBehospitalCode())) {
+                    return RespDTO.onError("请输入病人住院编码!");
+                } else if ("".equals(aMedicalRecordVO.getRecTypeId())) {
+                    return RespDTO.onError("请输入病历类别编号!");
+                } else if ("".equals(aMedicalRecordVO.getRecTitle())) {
+                    return RespDTO.onError("请输入病历标题!");
+                } else if (aMedicalRecordVO.getContents() == null || aMedicalRecordVO.getContents().size() == 0) {
+                    return RespDTO.onError("请输入文书详情!");
+                }
+            }
+            //装载数据
+            initData(aMrContentVO.getRecords());
+
+            String behospitalCode =aMrContentVO.getRecords().get(0).getBehospitalCode();
+            Long hospitalId=aMrContentVO.getRecords().get(0).getHospitalId();
+            MedicalRecord medicalRecord=new MedicalRecord();
+            BeanUtil.copyProperties(aMrContentVO.getRecords().get(0),medicalRecord);
+            Long modeId=initModeId(medicalRecord);
+
+            if(aMrContentVO.getDockModeType().equals("1")){
+                if(modeId==0 || modeId==null){
+                    return RespDTO.onError("无对应的文书类型");
+                }
+                //页面模式
+                String url=readProperties.getProcessQcUrl()+"?behospitalCode="+behospitalCode+"&hospitalId="+hospitalId+"&modeId="+modeId;
+                Map<String,Object> map=new HashMap<String,Object>();
+                map.put("url",url);
+                return RespDTO.onSuc(map);
+            }else if(aMrContentVO.getDockModeType().equals("2")){
+                AnalyzeApiVO analyzeApiVO=new AnalyzeApiVO();
+                analyzeApiVO.setBehospitalCode(behospitalCode);
+                analyzeApiVO.setHospitalId(hospitalId);
+                Map<String, Object> map=behospitalInfoFacade.analyzeApi(analyzeApiVO);
+                //接口引擎模式
+                return RespDTO.onSuc(map);
+            }else{
+                if(modeId==0 || modeId==null){
+                    return RespDTO.onError("无对应的文书类型");
+                }
+                //页面模式
+                String url=readProperties.getProcessQcUrl()+"?behospitalCode="+behospitalCode+"&hospitalId="+hospitalId+"&modeId="+modeId;
+
+                AnalyzeApiVO analyzeApiVO=new AnalyzeApiVO();
+                analyzeApiVO.setBehospitalCode(behospitalCode);
+                analyzeApiVO.setHospitalId(hospitalId);
+                Map<String, Object> map=behospitalInfoFacade.analyzeApi(analyzeApiVO);
+
+                map.put("url",url);
+
+                return RespDTO.onSuc(map);
+            }
+        }else{
+            return RespDTO.onError("未接收到数据!");
+        }
+    }
+
+    private void initData(List<AMedicalRecordVO> list){
+        List<MedicalRecord> medicalRecordList = Lists.newArrayList();
+        medicalRecordList = BeanUtil.listCopyTo(list, MedicalRecord.class);
+
+        execute(medicalRecordList);
+        list.stream().forEach(s -> {
+            List<MedicalRecordContent> contents = Lists.newArrayList();
+            contents = BeanUtil.listCopyTo(s.getContents(), MedicalRecordContent.class);
+
+            aMedicalRecordContentFacade.execute(contents);
+        });
+    }
+
+    public void execute(List<MedicalRecord> medicalRecordList){
+        if (medicalRecordList != null && medicalRecordList.size() > 0) {
+            medicalRecordList.stream().forEach(s -> {
+                //初始化mode_id
+                Long modeId=initModeId(s);
+                if(modeId==Long.valueOf("0")){
+                    //新增类型到监测表中
+                    QcAbnormal qcAbnormal=new QcAbnormal();
+                    qcAbnormal.setHospitalId(s.getHospitalId());
+                    qcAbnormal.setBehospitalCode(s.getBehospitalCode());
+                    qcAbnormal.setType(1);
+                    qcAbnormal.setDescription(s.getRecTitle());
+                    qcAbnormal.setGmtCreate(new Date());
+                    qcAbnormalFacade.save(qcAbnormal);
+                }
+                s.setModeId(modeId);
+                //新增或修改
+                saveOrUpdateE(s);
+            });
+        }
+    }
+
+
+    /**
+     * 新增或修改文书信息
+     * @param medicalRecord
+     */
+    private void saveOrUpdateE(MedicalRecord medicalRecord){
+        QueryWrapper<MedicalRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("rec_id", medicalRecord.getRecId());
+        queryWrapper.eq("hospital_id", medicalRecord.getHospitalId());
+        queryWrapper.eq("behospital_code", medicalRecord.getBehospitalCode());
+        MedicalRecord mRecord = this.getOne(queryWrapper);
+        if (mRecord != null) {
+            medicalRecord.setGmtModified(new Date());
+            this.update(medicalRecord,queryWrapper);
+        } else {
+            medicalRecord.setGmtCreate(new Date());
+            this.save(medicalRecord);
+        }
+    }
+
+    /**
+     * 初始化模型ID
+     * @param medicalRecord
+     * @return
+     */
+    private Long initModeId(MedicalRecord medicalRecord){
+        Long modeId=Long.valueOf("0");
+        QueryWrapper<ModelHospital> wrapper = new QueryWrapper<>();
+        wrapper.eq("hospital_id",medicalRecord.getHospitalId());
+        wrapper.eq("hospital_model_name",medicalRecord.getRecTitle());
+        ModelHospital mode=modelHospitalFacade.getOne(wrapper);
+        if(mode!=null){
+            modeId=mode.getStandModelId();
+        }else{
+            modeId=Long.valueOf("0");
+        }
+        return modeId;
+    }
+}

+ 20 - 0
src/main/java/com/diagbot/mapper/BasDoctorInfoMapper.java

@@ -0,0 +1,20 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.BasDoctorInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-04-17
+ */
+public interface BasDoctorInfoMapper extends BaseMapper<BasDoctorInfo> {
+
+    public void updateBatchByKey(List<BasDoctorInfo> list);
+
+}

+ 0 - 1
src/main/java/com/diagbot/mapper/HomePageMapper.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.entity.HomePage;
 import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
 import org.apache.ibatis.annotations.Param;
 

+ 16 - 0
src/main/java/com/diagbot/mapper/MedCrisisInfoMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.MedCrisisInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 危急值信息 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-28
+ */
+public interface MedCrisisInfoMapper extends BaseMapper<MedCrisisInfo> {
+
+}

+ 0 - 1
src/main/java/com/diagbot/mapper/SysRoleMapper.java

@@ -1,7 +1,6 @@
 package com.diagbot.mapper;
 
 import com.diagbot.dto.SysMenuPermissionDTO;
-import com.diagbot.dto.SysRoleMenuDTO;
 import com.diagbot.entity.SysRole;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.SysRoleMenuQueryVO;

+ 18 - 0
src/main/java/com/diagbot/service/BasDoctorInfoService.java

@@ -0,0 +1,18 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.BasDoctorInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-04-17
+ */
+public interface BasDoctorInfoService extends IService<BasDoctorInfo> {
+    //public void updateBatchByKey(List<BasDoctorInfo> list);
+}

+ 0 - 1
src/main/java/com/diagbot/service/HomePageService.java

@@ -5,7 +5,6 @@ import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.entity.HomePage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
 import org.apache.ibatis.annotations.Param;
 

+ 16 - 0
src/main/java/com/diagbot/service/MedCrisisInfoService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.MedCrisisInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 危急值信息 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-28
+ */
+public interface MedCrisisInfoService extends IService<MedCrisisInfo> {
+
+}

+ 29 - 0
src/main/java/com/diagbot/service/impl/BasDoctorInfoServiceImpl.java

@@ -0,0 +1,29 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.BasDoctorInfo;
+import com.diagbot.mapper.BasDoctorInfoMapper;
+import com.diagbot.service.BasDoctorInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2020-04-17
+ */
+@Service
+public class BasDoctorInfoServiceImpl extends ServiceImpl<BasDoctorInfoMapper, BasDoctorInfo> implements BasDoctorInfoService {
+    /**
+     * 根据医生编码和医院编码,批量更新
+     * @param list
+     */
+    public void updateBatchByKey(List<BasDoctorInfo> list){
+        this.baseMapper.updateBatchByKey(list);
+    }
+
+}

+ 0 - 1
src/main/java/com/diagbot/service/impl/HomePageServiceImpl.java

@@ -7,7 +7,6 @@ import com.diagbot.entity.HomePage;
 import com.diagbot.mapper.HomePageMapper;
 import com.diagbot.service.HomePageService;
 import com.diagbot.vo.FilterPageByAverageVO;
-import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;

+ 20 - 0
src/main/java/com/diagbot/service/impl/MedCrisisInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.MedCrisisInfo;
+import com.diagbot.mapper.MedCrisisInfoMapper;
+import com.diagbot.service.MedCrisisInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 危急值信息 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-28
+ */
+@Service
+public class MedCrisisInfoServiceImpl extends ServiceImpl<MedCrisisInfoMapper, MedCrisisInfo> implements MedCrisisInfoService {
+
+}

+ 68 - 0
src/main/java/com/diagbot/util/ReadProperties.java

@@ -0,0 +1,68 @@
+package com.diagbot.util;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+@Component
+@PropertySource(value={"classpath:jdbc.properties"})
+public class ReadProperties {
+
+	@Value(value="${remote.address.ver}")
+	public String remoteAddressVer;
+	
+	@Value(value="${remote.address.hor}")
+	public String remoteAddressHor;
+	
+	@Value(value="${jdbc.driverClassName}")
+	public String jdbcDriverClassName;
+	
+	@Value(value="${jdbc.url}")
+	public String jdbcUrl;
+	
+	@Value(value="${jdbc.username}")
+	public String jdbcUsername;
+	
+	@Value(value="${jdbc.password}")
+	public String jdbcPassword;
+
+	@Value(value="${process.qc.url}")
+	public String processQcUrl;
+
+	public String getRemoteAddressVer() {
+		return remoteAddressVer;
+	}
+
+	public String getRemoteAddressHor() {
+		return remoteAddressHor;
+	}
+
+	@Value(value="${his.patient.url}")
+	public String hisPatientUrl;
+
+
+
+
+	public String getHisPatientUrl() {
+		return hisPatientUrl;
+	}
+
+	public String getJdbcDriverClassName() {
+		return jdbcDriverClassName;
+	}
+
+	public String getJdbcUrl() {
+		return jdbcUrl;
+	}
+
+	public String getJdbcUsername() {
+		return jdbcUsername;
+	}
+
+	public String getJdbcPassword() {
+		return jdbcPassword;
+	}
+	
+	public String getProcessQcUrl(){return processQcUrl;}
+	
+}

+ 700 - 0
src/main/java/com/diagbot/util/TZDBConn.java

@@ -0,0 +1,700 @@
+package com.diagbot.util;
+
+import java.sql.Connection;
+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.BasDeptInfo;
+import com.diagbot.entity.BasDoctorInfo;
+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.google.common.collect.Lists;
+
+public class TZDBConn {
+	private static final String DRIVER = getValue("jdbc.driverClassName");
+    private static final String URL = getValue("jdbc.url");
+    private static final String USERNAME = getValue("jdbc.username");
+    private static final String PASSWORD = getValue("jdbc.password");
+
+	public static final Long HOSPITAL_ID=Long.valueOf("3");//1:长兴,2:邵逸夫,3:台州市立医院
+    
+    private static Connection connection = null;
+    private static PreparedStatement sta = null;
+	private static ResultSet rs = null;
+	
+	/**
+     * 读取属性文件中的信息
+     *
+     * @param key
+     * @return
+     */
+    private static String getValue(String key) {
+        // 资源包绑定
+        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
+        return bundle.getString(key);
+    }
+    
+    /**
+	 * 加载驱动程序
+	 */
+	static {
+		try {
+			Class.forName(DRIVER);
+		} catch (ClassNotFoundException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * @return 连接对象
+	 */
+	public Connection getConnection() {
+		try {
+			connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+		return connection;
+	}
+	
+	/**
+	 * @param sql sql语句
+	 * @param obj 参数
+	 * @return 数据集合
+	 */
+	public ResultSet Query(String sql,Object...obj){
+		connection=getConnection();
+		try {
+			sta=connection.prepareStatement(sql);
+			if(obj!=null){
+				for(int i=0;i<obj.length;i++){
+					sta.setObject(i+1, obj[i]);
+				}
+			}
+			rs=sta.executeQuery();
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+		return rs;
+	}
+	
+	/**
+	 * 关闭资源
+	 */
+	public void close() {
+		try {
+			if (rs != null) {
+				rs.close();
+			}
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				if (sta != null) {
+					sta.close();
+				}
+			} catch (SQLException e2) {
+				e2.printStackTrace();
+			} finally {
+				if (connection != null) {
+					try {
+						connection.close();
+					} catch (SQLException e) {
+						e.printStackTrace();
+					}
+				}
+			}
+		}
+	}
+	
+	/**
+	 * 医生信息
+	 * @return
+	 */
+	public List<BasDoctorInfo> getBasDoctorInfo(String sql) {
+		List<BasDoctorInfo> basDoctorInfoList=Lists.newLinkedList();
+		TZDBConn dbconn=new TZDBConn();
+		try {
+			rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				BasDoctorInfo basDoctorInfo=new BasDoctorInfo();
+				basDoctorInfo.setDoctorId(rs.getString("YHRYBH"));//医生ID
+				basDoctorInfo.setHospitalId(HOSPITAL_ID);//医院ID
+				//basDoctorInfoVO.setDeptId(rs.getString("ZZKSID"));//科室ID
+				basDoctorInfo.setName(rs.getString("YHRYMC"));//医生姓名
+				basDoctorInfo.setProfessor(rs.getString("YHRYZC"));//职称
+
+				basDoctorInfoList.add(basDoctorInfo);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		
+		return basDoctorInfoList;
+	}
+	
+	/**
+	 * 从视图中获取医院科室数据,根据修改时间同步数据
+	 * @return
+	 */
+	public List<BasDeptInfo> getDeptInfo(String sql) {
+		List<BasDeptInfo> basDeptInfoList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				BasDeptInfo basDeptInfo=new BasDeptInfo();
+				basDeptInfo.setDeptId(rs.getString("ZZKSDM"));//科室编码
+				basDeptInfo.setHospitalId(HOSPITAL_ID);//医院ID
+				basDeptInfo.setDeptName(rs.getString("ZZKSMC"));//科室名称
+				//basDeptInfoVO.setDeptType(rs.getString("ZZKSLB"));//科室类别
+				basDeptInfo.setSpell(rs.getString("HZSRM1"));//首字母拼音
+				//basDeptInfoVO.setStation(rs.getString("FLKSID"));//区域类别
+
+				basDeptInfoList.add(basDeptInfo);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		return basDeptInfoList;
+	}
+	
+	/**
+	 * 病案诊断
+	 * @return
+	 */
+	public List<HomeDiagnoseInfo> getHomeDiagnose(String sql){
+		List<HomeDiagnoseInfo> homeDiagnoseVOList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				HomeDiagnoseInfo homeDiagnose=new HomeDiagnoseInfo();
+				homeDiagnose.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homeDiagnose.setHospitalId(HOSPITAL_ID);//医院ID
+				homeDiagnose.setDiagnoseOrderNo(rs.getString("BAZDXH"));//诊断序号
+				homeDiagnose.setDiagnoseName(rs.getString("ZDJBMC"));//诊断名称
+				homeDiagnose.setDiagnoseType(rs.getString("ZDLBDM"));//诊断类别
+				homeDiagnose.setDiagnoseTypeShort(rs.getString("ZCZDPB"));//诊断判别
+				homeDiagnose.setBehospitalType(rs.getString("RYQKBM"));//入院情况
+				//homeDiagnoseVO.setLeaveHospitalType(rs.getString("RYQKBM"));//出院情况
+				//homeDiagnoseVO.setPathologyDiagnose(rs.getString("BASYID"));//病理号
+				homeDiagnose.setIcdCode(rs.getString("ICDM"));//诊断编码
+
+				homeDiagnoseVOList.add(homeDiagnose);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		
+		return homeDiagnoseVOList;
+	}
+	
+	/**
+	 * 病案手术
+	 * @return
+	 */
+	public List<HomeOperationInfo> getHomeOperation(String sql) {
+		List<HomeOperationInfo> homeOperationVOList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				HomeOperationInfo homeOperationVO=new HomeOperationInfo();
+				homeOperationVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homeOperationVO.setHospitalId(HOSPITAL_ID);//医院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("QKDJDM"));//愈合等级
+				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();
+		}finally {
+			close();
+		}
+		List<HomeOperationInfo> homeOperationList=BeanUtil.listCopyTo(homeOperationVOList, HomeOperationInfo.class);
+		return homeOperationList;
+	}
+	
+	/**
+	 * 从视图获取病案首页信息
+	 * 获取近几个月的数据
+	 */
+	public List<HomePage> getHomePage(String sql) {
+		List<HomePage> homePageList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				HomePage homePageVO=new HomePage();
+				homePageVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homePageVO.setHospitalId(HOSPITAL_ID);//医院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"));//出生日期
+				homePageVO.setAge(rs.getString("BRDQNL").equals("-")?null:rs.getString("BRDQNL"));//病人年龄
+				homePageVO.setAgeUnit(rs.getString("BRNLDW"));//年龄单位
+				homePageVO.setNationality(rs.getString("BRBAGJ"));//国籍
+				homePageVO.setNewbornMonth(rs.getString("YENLYS"));//新生儿出生月数
+				homePageVO.setNewbornDay(rs.getString("YENLTS"));//新生儿出生天数
+				homePageVO.setNewbornWeight(rs.getString("YECSTZ"));//新生儿出生体重
+				homePageVO.setNewbornBehospitalWeight(rs.getString("YERYTZ"));//新生儿入院体重
+				homePageVO.setBornAddress(rs.getString("BRCSDZ"));//出生地
+				homePageVO.setBornPlace(rs.getString("BRBAJG"));//籍贯
+				homePageVO.setNation(rs.getString("BRBAMZ"));//民族
+				homePageVO.setIdentityCardNo(rs.getString("BRSFZH"));//身份证号
+				homePageVO.setJobType(rs.getString("BRBASF"));//职业
+				homePageVO.setMarriage(rs.getString("BRHYZK"));//婚姻
+				homePageVO.setCurAddress(rs.getString("BRLXDZ"));//现住址
+				homePageVO.setCurPhone(rs.getString("BRLXDH"));//现住址电话
+				homePageVO.setCurPostCode(rs.getString("LXDZYB"));//现住址邮编
+				homePageVO.setResidenceAddress(rs.getString("BRHKDZ"));//户口地址
+				homePageVO.setResidencePostCode(rs.getString("HKDZYB"));//户口地址邮编
+				homePageVO.setWorkAddress(rs.getString("GZDWMC"));//工作单位
+				homePageVO.setWorkPhone(rs.getString("GZDWDH"));//工作单位电话
+				homePageVO.setWorkPostCode(rs.getString("GZDWYB"));//工作单位邮编
+				homePageVO.setContactName(rs.getString("LXRYXM"));//联系人姓名
+				homePageVO.setContactRelation(rs.getString("LXRYGX"));//联系人关系
+				homePageVO.setContactAddress(rs.getString("LXRYDZ"));//联系人地址
+				homePageVO.setContactPhone(rs.getString("LXRYDH"));//联系人电话
+				homePageVO.setBehospitalWay(rs.getString("RYLYDM"));//入院途径
+				homePageVO.setBehospitalDate(rs.getDate("BRRYRQ"));//入院时间
+				homePageVO.setBehospitalDept(rs.getString("RYKSID"));//入院科室
+				homePageVO.setBehospitalWard(rs.getString("RYBQID"));//入院病房
+				homePageVO.setBehospitalBedId(rs.getString("RYCWID"));//入院床位序号
+				homePageVO.setBehospitalBedCode(rs.getString("RYCWHM"));//入院床位号码
+				homePageVO.setChangeDept(rs.getString("BRZKKB"));//转科科别
+				homePageVO.setLeaveHospitalDate(rs.getDate("BRCYRQ"));//出院时间
+				homePageVO.setLeaveHospitalDept(rs.getString("CYKSID"));//出院科别
+				homePageVO.setLeaveHospitalWard(rs.getString("CYBQID"));//出院病房
+				homePageVO.setLeaveHospitalBedId(rs.getString("CYCWID"));//出院床位序号
+				homePageVO.setLeaveHospitalBedCode(rs.getString("CYCWHM"));//出院床位号码
+				homePageVO.setBehospitalDayNum(rs.getString("SJZYTS"));//实际住院天数
+				homePageVO.setOutpatientEmrDiagnose(rs.getString("BRMZZD"));//门急诊诊断
+				homePageVO.setOutpatientEmrDiagnoseCode(rs.getString("MZZDDM"));//门急诊诊断编码
+				homePageVO.setPoisonFactor(rs.getString("SSZDYSMC"));//损伤中毒因素
+				homePageVO.setPoisonFactorCode(rs.getString("SSZDYSBM"));//损伤中毒因素编码
+				homePageVO.setPathologyDiagnose(rs.getString("BLZDMC"));//病理诊断
+				homePageVO.setPathologyDiagnoseCode(rs.getString("BLZDBM"));//病理诊断编码
+				homePageVO.setPathologyDiagnoseId(rs.getString("BLZDBH"));//病理诊断编号
+				homePageVO.setIsMedAllergy(rs.getString("YWYWGM"));//药物过敏
+				homePageVO.setMedAllergyName(rs.getString("BRGMYW"));//过敏药物
+				homePageVO.setAutopsy(rs.getString("BRSFSJ"));//死亡患者尸检
+				homePageVO.setBloodType(rs.getString("BRBAXX"));//血型
+				homePageVO.setRh(rs.getString("BRBARH"));//Rh
+				homePageVO.setDeptDirector(rs.getString("KZR"));//科主任
+				homePageVO.setDirectorDoctor(rs.getString("ZRYS"));//主任医师
+				homePageVO.setAttendingDoctor(rs.getString("ZZYS"));//主治医师
+				homePageVO.setBehospitalDoctor(rs.getString("ZYYS"));//住院医师
+				homePageVO.setResponseNurse(rs.getString("ZRHS"));//责任护士
+				homePageVO.setStudyDoctor(rs.getString("JXYS"));//进修医师
+				homePageVO.setPracticeDoctor(rs.getString("SXYS"));//实习医师
+				homePageVO.setEncodeMan(rs.getString("BMY"));//编码员
+				homePageVO.setHomePageQuality(rs.getString("BRBAZL"));//病案质量
+				homePageVO.setQcDoctor(rs.getString("BAZKYS"));//质控医师
+				homePageVO.setQcNurse(rs.getString("BAZKHS"));//质控护士
+				if(!"".equals(rs.getString("BAZKRQ"))){
+					homePageVO.setQcDate(DateUtil.parseDate(rs.getString("BAZKRQ"),DateUtil.DATE_TIME_FORMAT));//质控日期
+				}
+				homePageVO.setLeaveHospitalType(rs.getString("BRLYFS"));//离院方式
+				homePageVO.setAcceptOrgCode(rs.getString("ZYJGMC"));//接收机构名称
+				homePageVO.setAgainBehospitalPlan(rs.getString("SSYZZY"));//31天内再住院计划
+				homePageVO.setAgainBehospitalGoal(rs.getString("SSYZZYMD"));//再住院目的
+				homePageVO.setTbiBeforeDay(rs.getString("RYQHMTS"));//颅脑损伤患者昏迷前天数
+				homePageVO.setTbiBeforeHour(rs.getString("RYQHMXS"));//颅脑损伤患者昏迷前小时
+				homePageVO.setTbiBeforeMinute(rs.getString("RYQHMFZ"));//颅脑损伤患者昏迷前分钟
+				homePageVO.setTbiAfterDay(rs.getString("RYQHMFZ"));//颅脑损伤患者昏迷后天数
+				homePageVO.setTbiAfterHour(rs.getString("RYHHMXS"));//颅脑损伤患者昏迷后小时
+				homePageVO.setTbiAfterMinute(rs.getString("RYQHMFZ"));//颅脑损伤患者昏迷后分钟
+				homePageVO.setTotalFee(rs.getString("ZFY"));//总费用
+				homePageVO.setOwnFee(rs.getString("ZFJE"));//自付金额
+				homePageVO.setGeneralFee(rs.getString("YBYLFWF"));//一般医疗服务费
+				homePageVO.setServiceFee(rs.getString("YBZLCZF"));//一般治疗服务费
+				homePageVO.setNurseFee(rs.getString("HLF"));//护理费
+				//homePageVO.setOtherFee(rs.getString("QTFY"));//其他费用
+				homePageVO.setPathologyFee(rs.getString("BLZDF"));//病理诊断费
+				homePageVO.setLabFee(rs.getString("SYSZDF"));//实验室诊断费
+				homePageVO.setPacsFee(rs.getString("YXXZDF"));//影像学诊断费
+				homePageVO.setClinicDiagnoseFee(rs.getString("LCZDXMF"));//临床诊断项目费
+				homePageVO.setNotOperationFee(rs.getString("FSSZLXMF"));//非手术治疗项目费
+				homePageVO.setClinicPhysicFee(rs.getString("LCWLZLF"));//临床物理治疗费
+				homePageVO.setOperationTreatFee(rs.getString("SSZLF"));//手术治疗费
+				homePageVO.setAnaesthesiaFee(rs.getString("MZF"));//麻醉费
+				homePageVO.setOperationFee(rs.getString("SSF"));//手术费
+				homePageVO.setHealthTypeFee(rs.getString("KFF"));//康复类
+				homePageVO.setChnTreatFee(rs.getString("ZYZLF"));//中医治疗费
+				homePageVO.setWesternMedFee(rs.getString("XYF"));//西药费
+				homePageVO.setAntibiosisFee(rs.getString("KJYWF"));//抗菌药物费用
+				homePageVO.setChnMedFee(rs.getString("ZCYF"));//中成药费
+				homePageVO.setChnHerbFee(rs.getString("CYF"));//中草药费
+				homePageVO.setBloodFee(rs.getString("XF"));//血费
+				homePageVO.setAlbumenFee(rs.getString("BDBLZPF"));//白蛋白类制品费
+				homePageVO.setGlobulinFee(rs.getString("QDBLZPF"));//球蛋白类制品费
+				homePageVO.setBloodFactorFee(rs.getString("NXYZLZPF"));//凝血因子类制品费
+				homePageVO.setCellFactorFee(rs.getString("XBYZLZPF"));//细胞因子类制品费
+				homePageVO.setCheckMaterialFee(rs.getString("JCYYCXYYCLF"));//检查用一次性医用材料费
+				homePageVO.setTreatMaterialFee(rs.getString("ZLYYCXYYCLF"));//治疗用一次性医用材料费
+				homePageVO.setOperationMaterialFee(rs.getString("SSYYCXYYCLF"));//手术用一次性医用材料费
+				homePageVO.setOtherTypeFee(rs.getString("QTF"));//其他类其他费
+				homePageVO.setSingleDiagManage(rs.getString("DBZGL"));//单病种管理
+				homePageVO.setClinicPathwayManage(rs.getString("SSLCLJGL"));//临床路径管理
+				homePageVO.setIsOutpatientBehospital(rs.getString("MZZYFH"));//门诊与住院
+				homePageVO.setIsLeaveBehospital(rs.getString("RYCYFH"));//入院与出院
+				homePageVO.setIsOperationBeforeAfter(rs.getString("SQSHFH"));//术前与术后
+				homePageVO.setIsClinicPathology(rs.getString("LCBLFH"));//临床与病理
+				homePageVO.setIsRadiatePathology(rs.getString("FSBLFH"));//放射与病理
+				homePageVO.setRescueSuccessNum(rs.getString("BRQJCS"));//病人抢救次数
+				homePageVO.setRescueSuccessNum(rs.getString("QJCGCS"));//病人抢救成功次数
+				homePageVO.setIsAutoLeavehospital(rs.getString("ZDCYPB"));//是否为自动出院
+				homePageVO.setReturnToType(rs.getString("CYQKDM"));//转归情况HomePage homePageVO=new HomePage();
+				homePageVO.setHomePageId(rs.getString("BASYID"));//病案首页ID
+				homePageVO.setHospitalId(Long.valueOf("3"));//医院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"));//出生日期
+				homePageVO.setAge(rs.getString("BRDQNL"));//病人年龄
+				homePageVO.setAgeUnit(rs.getString("BRNLDW"));//年龄单位
+				homePageVO.setNationality(rs.getString("BRBAGJ"));//国籍
+				homePageVO.setNewbornMonth(rs.getString("YENLYS"));//新生儿出生月数
+				homePageVO.setNewbornDay(rs.getString("YENLTS"));//新生儿出生天数
+				homePageVO.setNewbornWeight(rs.getString("YECSTZ"));//新生儿出生体重
+				homePageVO.setNewbornBehospitalWeight(rs.getString("YERYTZ"));//新生儿入院体重
+				homePageVO.setBornAddress(rs.getString("BRCSDZ"));//出生地
+				homePageVO.setBornPlace(rs.getString("BRBAJG"));//籍贯
+				homePageVO.setNation(rs.getString("BRBAMZ"));//民族
+				homePageVO.setIdentityCardNo(rs.getString("BRSFZH"));//身份证号
+				homePageVO.setJobType(rs.getString("BRBASF"));//职业
+				homePageVO.setMarriage(rs.getString("BRHYZK"));//婚姻
+				homePageVO.setCurAddress(rs.getString("BRLXDZ"));//现住址
+				homePageVO.setCurPhone(rs.getString("BRLXDH"));//现住址电话
+				homePageVO.setCurPostCode(rs.getString("LXDZYB"));//现住址邮编
+				homePageVO.setResidenceAddress(rs.getString("BRHKDZ"));//户口地址
+				homePageVO.setResidencePostCode(rs.getString("HKDZYB"));//户口地址邮编
+				homePageVO.setWorkAddress(rs.getString("GZDWMC"));//工作单位
+				homePageVO.setWorkPhone(rs.getString("GZDWDH"));//工作单位电话
+				homePageVO.setWorkPostCode(rs.getString("GZDWYB"));//工作单位邮编
+				homePageVO.setContactName(rs.getString("LXRYXM"));//联系人姓名
+				homePageVO.setContactRelation(rs.getString("LXRYGX"));//联系人关系
+				homePageVO.setContactAddress(rs.getString("LXRYDZ"));//联系人地址
+				homePageVO.setContactPhone(rs.getString("LXRYDH"));//联系人电话
+				homePageVO.setBehospitalWay(rs.getString("RYLYDM"));//入院途径
+				homePageVO.setBehospitalDate(rs.getDate("BRRYRQ"));//入院时间
+				homePageVO.setBehospitalDept(rs.getString("RYKSID"));//入院科室
+				homePageVO.setBehospitalWard(rs.getString("RYBQID"));//入院病房
+				homePageVO.setBehospitalBedId(rs.getString("RYCWID"));//入院床位序号
+				homePageVO.setBehospitalBedCode(rs.getString("RYCWHM"));//入院床位号码
+				homePageVO.setChangeDept(rs.getString("BRZKKB"));//转科科别
+				homePageVO.setLeaveHospitalDate(rs.getDate("BRCYRQ"));//出院时间
+				homePageVO.setLeaveHospitalDept(rs.getString("CYKSID"));//出院科别
+				homePageVO.setLeaveHospitalWard(rs.getString("CYBQID"));//出院病房
+				homePageVO.setLeaveHospitalBedId(rs.getString("CYCWID"));//出院床位序号
+				homePageVO.setLeaveHospitalBedCode(rs.getString("CYCWHM"));//出院床位号码
+				homePageVO.setBehospitalDayNum(rs.getString("SJZYTS"));//实际住院天数
+				homePageVO.setOutpatientEmrDiagnose(rs.getString("BRMZZD"));//门急诊诊断
+				homePageVO.setOutpatientEmrDiagnoseCode(rs.getString("MZZDDM"));//门急诊诊断编码
+				homePageVO.setPoisonFactor(rs.getString("SSZDYSMC"));//损伤中毒因素
+				homePageVO.setPoisonFactorCode(rs.getString("SSZDYSBM"));//损伤中毒因素编码
+				homePageVO.setPathologyDiagnose(rs.getString("BLZDMC"));//病理诊断
+				homePageVO.setPathologyDiagnoseCode(rs.getString("BLZDBM"));//病理诊断编码
+				homePageVO.setPathologyDiagnoseId(rs.getString("BLZDBH"));//病理诊断编号
+				homePageVO.setIsMedAllergy(rs.getString("YWYWGM"));//药物过敏
+				homePageVO.setMedAllergyName(rs.getString("BRGMYW"));//过敏药物
+				homePageVO.setAutopsy(rs.getString("BRSFSJ"));//死亡患者尸检
+				homePageVO.setBloodType(rs.getString("BRBAXX"));//血型
+				homePageVO.setRh(rs.getString("BRBARH"));//Rh
+				homePageVO.setDeptDirector(rs.getString("KZR"));//科主任
+				homePageVO.setDirectorDoctor(rs.getString("ZRYS"));//主任医师
+				homePageVO.setAttendingDoctor(rs.getString("ZZYS"));//主治医师
+				homePageVO.setBehospitalDoctor(rs.getString("ZYYS"));//住院医师
+				homePageVO.setResponseNurse(rs.getString("ZRHS"));//责任护士
+				homePageVO.setStudyDoctor(rs.getString("JXYS"));//进修医师
+				homePageVO.setPracticeDoctor(rs.getString("SXYS"));//实习医师
+				homePageVO.setEncodeMan(rs.getString("BMY"));//编码员
+				homePageVO.setHomePageQuality(rs.getString("BRBAZL"));//病案质量
+				homePageVO.setQcDoctor(rs.getString("BAZKYS"));//质控医师
+				homePageVO.setQcNurse(rs.getString("BAZKHS"));//质控护士
+				if(!"".equals(rs.getString("BAZKRQ"))){
+					homePageVO.setQcDate(DateUtil.parseDate(rs.getString("BAZKRQ"),DateUtil.DATE_TIME_FORMAT));//质控日期
+				}
+				homePageVO.setLeaveHospitalType(rs.getString("BRLYFS"));//离院方式
+				homePageVO.setAcceptOrgCode(rs.getString("ZYJGMC"));//接收机构名称
+				homePageVO.setAgainBehospitalPlan(rs.getString("SSYZZY"));//31天内再住院计划
+				homePageVO.setAgainBehospitalGoal(rs.getString("SSYZZYMD"));//再住院目的
+				homePageVO.setTbiBeforeDay(rs.getString("RYQHMTS"));//颅脑损伤患者昏迷前天数
+				homePageVO.setTbiBeforeHour(rs.getString("RYQHMXS"));//颅脑损伤患者昏迷前小时
+				homePageVO.setTbiBeforeMinute(rs.getString("RYQHMFZ"));//颅脑损伤患者昏迷前分钟
+				homePageVO.setTbiAfterDay(rs.getString("RYQHMFZ"));//颅脑损伤患者昏迷后天数
+				homePageVO.setTbiAfterHour(rs.getString("RYHHMXS"));//颅脑损伤患者昏迷后小时
+				homePageVO.setTbiAfterMinute(rs.getString("RYQHMFZ"));//颅脑损伤患者昏迷后分钟
+				homePageVO.setTotalFee(rs.getString("ZFY"));//总费用
+				homePageVO.setOwnFee(rs.getString("ZFJE"));//自付金额
+				homePageVO.setGeneralFee(rs.getString("YBYLFWF"));//一般医疗服务费
+				homePageVO.setServiceFee(rs.getString("YBZLCZF"));//一般治疗服务费
+				homePageVO.setNurseFee(rs.getString("HLF"));//护理费
+				//homePageVO.setOtherFee(rs.getString("QTFY"));//其他费用
+				homePageVO.setPathologyFee(rs.getString("BLZDF"));//病理诊断费
+				homePageVO.setLabFee(rs.getString("SYSZDF"));//实验室诊断费
+				homePageVO.setPacsFee(rs.getString("YXXZDF"));//影像学诊断费
+				homePageVO.setClinicDiagnoseFee(rs.getString("LCZDXMF"));//临床诊断项目费
+				homePageVO.setNotOperationFee(rs.getString("FSSZLXMF"));//非手术治疗项目费
+				homePageVO.setClinicPhysicFee(rs.getString("LCWLZLF"));//临床物理治疗费
+				homePageVO.setOperationTreatFee(rs.getString("SSZLF"));//手术治疗费
+				homePageVO.setAnaesthesiaFee(rs.getString("MZF"));//麻醉费
+				homePageVO.setOperationFee(rs.getString("SSF"));//手术费
+				homePageVO.setHealthTypeFee(rs.getString("KFF"));//康复类
+				homePageVO.setChnTreatFee(rs.getString("ZYZLF"));//中医治疗费
+				homePageVO.setWesternMedFee(rs.getString("XYF"));//西药费
+				homePageVO.setAntibiosisFee(rs.getString("KJYWF"));//抗菌药物费用
+				homePageVO.setChnMedFee(rs.getString("ZCYF"));//中成药费
+				homePageVO.setChnHerbFee(rs.getString("CYF"));//中草药费
+				homePageVO.setBloodFee(rs.getString("XF"));//血费
+				homePageVO.setAlbumenFee(rs.getString("BDBLZPF"));//白蛋白类制品费
+				homePageVO.setGlobulinFee(rs.getString("QDBLZPF"));//球蛋白类制品费
+				homePageVO.setBloodFactorFee(rs.getString("NXYZLZPF"));//凝血因子类制品费
+				homePageVO.setCellFactorFee(rs.getString("XBYZLZPF"));//细胞因子类制品费
+				homePageVO.setCheckMaterialFee(rs.getString("JCYYCXYYCLF"));//检查用一次性医用材料费
+				homePageVO.setTreatMaterialFee(rs.getString("ZLYYCXYYCLF"));//治疗用一次性医用材料费
+				homePageVO.setOperationMaterialFee(rs.getString("SSYYCXYYCLF"));//手术用一次性医用材料费
+				homePageVO.setOtherTypeFee(rs.getString("QTF"));//其他类其他费
+				homePageVO.setSingleDiagManage(rs.getString("DBZGL"));//单病种管理
+				homePageVO.setClinicPathwayManage(rs.getString("SSLCLJGL"));//临床路径管理
+				homePageVO.setIsOutpatientBehospital(rs.getString("MZZYFH"));//门诊与住院
+				homePageVO.setIsLeaveBehospital(rs.getString("RYCYFH"));//入院与出院
+				homePageVO.setIsOperationBeforeAfter(rs.getString("SQSHFH"));//术前与术后
+				homePageVO.setIsClinicPathology(rs.getString("LCBLFH"));//临床与病理
+				homePageVO.setIsRadiatePathology(rs.getString("FSBLFH"));//放射与病理
+				homePageVO.setRescueSuccessNum(rs.getString("BRQJCS"));//病人抢救次数
+				homePageVO.setRescueSuccessNum(rs.getString("QJCGCS"));//病人抢救成功次数
+				homePageVO.setIsAutoLeavehospital(rs.getString("ZDCYPB"));//是否为自动出院
+				homePageVO.setReturnToType(rs.getString("CYQKDM"));//转归情况
+
+				homePageList.add(homePageVO);
+				
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		return homePageList;
+	}
+	
+	/**
+	 * 获取病历信息
+	 * @return
+	 */
+	public List<BehospitalInfo> getBehospitalInfo(String sql) {
+		List<BehospitalInfo> behospitalInfoList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				BehospitalInfo behospitalInfo=new BehospitalInfo();
+				behospitalInfo.setBehospitalCode(rs.getString("BRZYID"));//病人住院ID
+				behospitalInfo.setHospitalId(HOSPITAL_ID);//医院ID
+				behospitalInfo.setName(rs.getString("BRDAXM"));//姓名
+				behospitalInfo.setSex(rs.getString("BRDAXB").equals("M")?"男":"女");//性别
+				behospitalInfo.setBirthday(rs.getDate("BRCSRQ"));//出生日期
+				behospitalInfo.setFileCode(rs.getString("BRDABH"));//档案号
+				behospitalInfo.setWardCode(rs.getString("ZYBQID"));//病区编码
+				behospitalInfo.setWardName(rs.getString("ZYBQMC"));//病区名称
+				behospitalInfo.setBehDeptId(rs.getString("ZYKSID"));//住院科室ID
+				behospitalInfo.setBehDeptName(rs.getString("ZYKSMC"));//住院科室名称
+				behospitalInfo.setBedCode(rs.getString("ZYCWID"));//床位号
+				behospitalInfo.setBedName(rs.getString("ZYCWHM"));//床位名称
+				behospitalInfo.setInsuranceName(rs.getString("BRLBID"));//医保类别
+				behospitalInfo.setJobType(rs.getString("BRXZID"));//职业
+				behospitalInfo.setBehospitalDate(rs.getDate("BRRYRQ"));//入院时间
+				behospitalInfo.setLeaveHospitalDate(rs.getDate("BRCYRQ"));//出院时间
+				behospitalInfo.setDiagnoseIcd(rs.getString("JBDMID"));//疾病ICD编码
+				behospitalInfo.setDiagnose(rs.getString("JBMSXX"));//疾病名称
+				behospitalInfo.setDoctorId(rs.getString("ZZYSID"));//医生ID
+				behospitalInfo.setDoctorName(rs.getString("ZZYSXM"));//医生姓名
+				
+				behospitalInfoList.add(behospitalInfo);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		
+		return behospitalInfoList;
+	}
+	
+	/**
+	 * 从视图中获取医嘱信息
+	 * @return
+	 */
+	public List<DoctorAdvice> getDoctorAdvice(String sql){
+		List<DoctorAdvice> doctorAdviceList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				DoctorAdvice doctorAdviceVO=new DoctorAdvice();
+				doctorAdviceVO.setDoctorAdviceId(rs.getString("BRYZID"));//病人医嘱ID
+				doctorAdviceVO.setHospitalId(HOSPITAL_ID);//医院ID
+				doctorAdviceVO.setBehospitalCode(rs.getString("BRZYID"));//病人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("KDYSMC"));//开单医生姓名
+
+				doctorAdviceList.add(doctorAdviceVO);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		return doctorAdviceList;
+	}
+
+	/**
+	 * 从视图中获取病历记录
+	 * @return
+	 */
+	public List<MedicalRecord> getMedicalRecord(String sql){
+		List<MedicalRecord> medicalRecordList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				MedicalRecord medicalRecord=new MedicalRecord();
+				medicalRecord.setRecId(rs.getString("BLJLID"));
+				medicalRecord.setHospitalId(HOSPITAL_ID);//医院ID
+				medicalRecord.setBehospitalCode(rs.getString("BRZYID"));//病人住院ID
+				medicalRecord.setOrgCode(rs.getString("ZZJGDM"));//组织机构代码
+				medicalRecord.setRecTypeId(rs.getString("BLMBID"));//对应his模板ID
+
+				medicalRecord.setRecDate(rs.getString("BCJLSJ")!=null?DateUtil.parseDateTime(rs.getString("BCJLSJ")):null);//病历日期
+				medicalRecord.setRecTitle(rs.getString("BLJLMC"));//病历标题
+				medicalRecord.setModeId(Long.valueOf(rs.getString("BLLBID")));//对应his类别ID
+				
+				medicalRecordList.add(medicalRecord);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		
+		return medicalRecordList;
+	}
+	
+	/**
+	 * 从视图中获取文书内容
+	 * @return
+	 */
+	public List<MedicalRecordContent> getMedicalRecordContent(String sql){
+		List<MedicalRecordContent> mrContentList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				MedicalRecordContent mrContent=new MedicalRecordContent();
+				mrContent.setHospitalId(HOSPITAL_ID);
+				mrContent.setRecId(rs.getString("BLJLID"));
+				//mrContent.setHtmlText(rs.getString("HTMLSJ"));
+				mrContent.setXmlText(rs.getString("BLJLNR"));
+
+				mrContentList.add(mrContent);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		return mrContentList;
+	}
+	
+	/**
+	 * 从视图中获取文书类型
+	 * @return
+	 */
+	public List<MedRecordType> getMedicalRecordType(String sql){
+		List<MedRecordType> mrTypeList=Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				MedRecordType mrType=new MedRecordType();
+				mrType.setTypeId(rs.getString("BLLBID"));
+				mrType.setHospitalId(HOSPITAL_ID);
+				mrType.setTypeName(rs.getString("BLLBMC"));
+				mrType.setParentTypeId(rs.getString("SJLBID"));
+				mrType.setObjName(rs.getString("BLLBFW"));
+				mrType.setSpell(rs.getString("HZSRM1"));
+				mrTypeList.add(mrType);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+
+		return mrTypeList;
+	}
+	
+}

+ 44 - 0
src/main/java/com/diagbot/vo/data/ABasDeptInfoVO.java

@@ -0,0 +1,44 @@
+package com.diagbot.vo.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Getter
+@Setter
+public class ABasDeptInfoVO {
+    /**
+     * 科室编码(HIS导入)
+     */
+    private String deptId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    private String parentDeptId;
+
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    /**
+     * 科室类别
+     */
+    private String deptType;
+
+    /**
+     * 首字母拼音
+     */
+    private String spell;
+
+    /**
+     * 区域类别(门诊、工作站、住院等)
+     */
+    private String station;
+
+
+}

+ 134 - 0
src/main/java/com/diagbot/vo/data/ABehospitalInfoVO.java

@@ -0,0 +1,134 @@
+package com.diagbot.vo.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ABehospitalInfoVO {
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别(男,女)
+     */
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    private String fileCode;
+
+    /**
+     * 质控类型
+     */
+    private Long qcTypeId;
+
+    /**
+     * 病区编码
+     */
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    private Date leaveHospitalDate;
+
+    /**
+     * 疾病ICD编码
+     */
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    private String diagnose;
+
+    /**
+     * 住院医生ID
+     */
+    private String behDoctorId;
+
+    /**
+     * 住院医生姓名
+     */
+    private String behDoctorName;
+
+    /**
+     * 主治医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 主治医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 主任医生ID
+     */
+    private String directorDoctorId;
+
+    /**
+     * 主任医生姓名
+     */
+    private String directorDoctorName;
+
+}

+ 128 - 0
src/main/java/com/diagbot/vo/data/ADoctorAdviceVO.java

@@ -0,0 +1,128 @@
+package com.diagbot.vo.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ADoctorAdviceVO {
+    /**
+     * 病人医嘱ID
+     */
+    private String doctorAdviceId;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 医生开单判别
+     */
+    private String orderDoctorName;
+
+    /**
+     * 医嘱频率判别
+     */
+    private String frequency;
+
+    /**
+     * 父类医嘱ID
+     */
+    private String parentTypeId;
+
+    /**
+     * 医嘱类型判别(嘱托长嘱、长期医嘱等)
+     */
+    private String doctorAdviceType;
+
+    /**
+     * 一次使用数量
+     */
+    private String usageNum;
+
+    /**
+     * 一次用量单位
+     */
+    private String usageUnit;
+
+    /**
+     * 医嘱单次剂量
+     */
+    private String dose;
+
+    /**
+     * 单次剂量单位
+     */
+    private String doseUnit;
+
+    /**
+     * 给药方式
+     */
+    private String medModeType;
+
+    /**
+     * 医嘱频率
+     */
+    private String daFrequency;
+
+    /**
+     * 医嘱处理类型
+     */
+    private String daDealType;
+
+    /**
+     * 医嘱开始时间
+     */
+    private Date daStartDate;
+
+    /**
+     * 医嘱项目名称
+     */
+    private String daItemName;
+
+    /**
+     * 医嘱状态判别
+     */
+    private String daStatus;
+
+    /**
+     * 医嘱结束时间
+     */
+    private Date daStopDate;
+
+    /**
+     * 医嘱同组序号
+     */
+    private String daGroupNo;
+
+    /**
+     * 医嘱处方类型(检验、描述医嘱、膳食、西药、护理等)
+     */
+    private String daPrescriptionType;
+
+    /**
+     * 医嘱领药类型
+     */
+    private String daMedType;
+
+    /**
+     * 医生嘱托
+     */
+    private String doctorNotice;
+
+    /**
+     * 开单医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+}

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

@@ -0,0 +1,41 @@
+package com.diagbot.vo.data;
+
+import lombok.Data;
+
+@Data
+public class AHomeDiagnoseVO {
+    /**
+     * 病案首页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;
+}

+ 93 - 0
src/main/java/com/diagbot/vo/data/AMedCrisisVO.java

@@ -0,0 +1,93 @@
+package com.diagbot.vo.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class AMedCrisisVO {
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 记录类型
+     */
+    private String recType;
+
+    /**
+     * 危急值ID
+     */
+    private String crisisId;
+
+    /**
+     * 危急值名称
+     */
+    private String crisisName;
+
+    /**
+     * 开单科室ID
+     */
+    private String deptId;
+
+    /**
+     * 开单科室名称
+     */
+    private String deptName;
+
+    /**
+     * 开单医生ID
+     */
+    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 危急结果值
+     */
+    private String crisisValue;
+
+    /**
+     * 危急值描述
+     */
+    private String crisisDesc;
+
+    /**
+     * 危急值状态
+     */
+    private String crisisStatus;
+
+    /**
+     * 参考上限
+     */
+    private String crisisTopValue;
+
+    /**
+     * 参考下限
+     */
+    private String crisisLowerValue;
+
+    /**
+     * 送检时间
+     */
+    private Date sendDate;
+
+    /**
+     * 报告时间
+     */
+    private Date repDate;
+
+}

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

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

+ 49 - 0
src/main/java/com/diagbot/vo/data/AMedicalRecordVO.java

@@ -0,0 +1,49 @@
+package com.diagbot.vo.data;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AMedicalRecordVO {
+
+	private String recId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 组织机构代码
+     */
+    private String orgCode;
+
+    /**
+     * 病历类别编号
+     */
+    private String recTypeId;
+
+    /**
+     * 病历日期
+     */
+    private Date recDate;
+
+    /**
+     * 病历标题
+     */
+    private String recTitle;
+
+    /**
+     * 病历内容
+     */
+    private List<AMedicalRecordContentVO> contents;
+}

+ 16 - 0
src/main/java/com/diagbot/vo/data/AMrContentVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+@Getter
+@Setter
+public class AMrContentVO {
+    @NotBlank(message = "对接模式类型编码不能为空")
+    private String dockModeType;//对接模式类型编码,1:页面模式,2:接口引擎模式
+
+    private List<AMedicalRecordVO> records;
+}

+ 141 - 0
src/main/java/com/diagbot/web/DataController.java

@@ -0,0 +1,141 @@
+package com.diagbot.web;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.data.*;
+import com.diagbot.facade.data.*;
+import com.diagbot.vo.data.*;
+import io.swagger.annotations.ApiOperation;
+import jdk.nashorn.internal.ir.annotations.Ignore;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+import io.swagger.annotations.Api;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/qc/data")
+@Api(value = "对接接口API", tags = { "对接接口API" })
+public class DataController {
+
+
+
+    @Autowired
+    private ABasDeptInfoFacade aBasDeptInfoFacade;
+
+    @Autowired
+    private AMedRecordTypeFacade aMedRecordTypeFacade;
+
+    @Autowired
+    private ABehospitalInfoFacade aBehospitalInfoFacade;
+
+    @Autowired
+    private ADoctorAdviceFacade aDoctorAdviceFacade;
+
+    @Autowired
+    private AHomePageFacade aHomePageFacade;
+
+    @Autowired
+    private AHomeDiagnoseInfoFacade aHomeDiagnoseInfoFacade;
+
+    @Autowired
+    private AHomeOperationInfoFacade aHomeOperationInfoFacade;
+
+    @Autowired
+    private AMedicalRecordFacade aMedicalRecordFacade;
+
+    @Autowired
+    private AMedicalRecordContentFacade aMedicalRecordContentFacade;
+
+    @Autowired
+    private AMedCrisisFacade aMedCrisisFacade;
+
+    @ApiOperation(value = "数据引擎-获取医院所有在职医生的基本信息")
+    @PostMapping("/sendDoctorInfos")
+    @SysLogger("sendDoctorInfos")
+    public RespDTO<List<ABasDoctorInfoDTO>> sendDoctorInfos(@RequestBody List<ABasDoctorInfoVO> list){
+        return aBasDoctorInfoFacade.executeDoctor(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取医院所有有效科室的基本信息")
+    @PostMapping("/sendDeptInfos")
+    @SysLogger("sendDeptInfos")
+    public RespDTO<List<ABasDeptInfoDTO>> sendDeptInfos(@RequestBody List<ABasDeptInfoVO> list){
+        return aBasDeptInfoFacade.executeDept(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取医院所有文书模板基本信息")
+    @PostMapping("/sendRecordTypes")
+    @SysLogger("sendRecordTypes")
+    public RespDTO<List<AMedicalRecordTypeDTO>> sendRecordTypes(@RequestBody List<AMedicalRecordTypeVO> list){
+        return aMedRecordTypeFacade.executeMRType(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取医院病人住院记录信息")
+    @PostMapping("/sendPatientInfo")
+    @SysLogger("sendPatientInfo")
+    public RespDTO<List<ABehospitalInfoDTO>> sendPatientInfo(@RequestBody List<ABehospitalInfoVO> list){
+        return aBehospitalInfoFacade.executeBehospital(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取医院医生医嘱信息")
+    @PostMapping("/sendDoctorAdvice")
+    @SysLogger("sendDoctorAdvice")
+    public RespDTO<List<ADoctorAdviceDTO>> sendDoctorAdvice(@RequestBody List<ADoctorAdviceVO> list){
+        return aDoctorAdviceFacade.executeDoctorAdvice(list);
+    }
+
+    @ApiOperation(value = "支持评分-获取病历记录")
+    @PostMapping("/sendMedicalRecord")
+    @SysLogger("sendMedicalRecord")
+    public RespDTO<Map<String, Object>> sendMedicalRecord(@Valid @RequestBody AMrContentVO aMrContentVO){
+        return aMedicalRecordFacade.executeMrRecord(aMrContentVO);
+    }
+
+    @ApiOperation(value = "支持数据同步-获取病历记录")
+    @PostMapping("/sendMrContent")
+    @SysLogger("sendMrContent")
+    public RespDTO<List<AMedicalRecordDTO>> sendMrContent(@RequestBody List<AMedicalRecordVO> list){
+        return aMedicalRecordFacade.executeMrRecordView(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取病案首页")
+    @PostMapping("/sendHomePage")
+    @SysLogger("sendHomePage")
+    public RespDTO<List<AHomePageDTO>> sendHomePage(@RequestBody List<AHomePageVO> list){
+        return aHomePageFacade.executeHomePage(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取病案首页诊断")
+    @PostMapping("/sendHomeDiagnose")
+    @SysLogger("sendHomeDiagnose")
+    @Ignore
+    public RespDTO<List<AHomeDiagnoseDTO>> sendHomeDiagnose(@RequestBody List<AHomeDiagnoseVO> list){
+        return aHomeDiagnoseInfoFacade.executeHomeDiagnose(list);
+    }
+
+    @ApiOperation(value = "数据引擎-获取病案首页手术")
+    @PostMapping("/sendHomeOperation")
+    @SysLogger("sendHomeOperation")
+    @Ignore
+    public RespDTO<List<AHomeOperationDTO>> sendHomeOperation(@RequestBody List<AHomeOperationVO> list){
+        return RespDTO.onSuc(aHomeOperationInfoFacade.executeHomeOperation(list));
+    }
+
+    @ApiOperation(value = "数据引擎-获取危急值")
+    @PostMapping("/sendCrisis")
+    @SysLogger("sendCrisis")
+    public RespDTO<List<AMedCrisisDTO>> sendCrisis(@RequestBody List<AMedCrisisVO> list){
+        return aMedCrisisFacade.executeMedCrisis(list);
+    }
+
+    @Autowired
+    private ABasDoctorInfoFacade aBasDoctorInfoFacade;
+
+}

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

@@ -5,7 +5,6 @@ import com.diagbot.dto.QcCasesDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.QcCasesFacade;
 import com.diagbot.vo.QcCasesSaveListVO;
-import com.diagbot.vo.QcCasesSaveVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;

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

@@ -58,7 +58,7 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      url: jdbc:mysql://192.168.3.5:3306/qc_122?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
       username: root
       password: lantone
       # 连接池的配置信息
@@ -160,7 +160,7 @@ qc.address: http://192.168.2.232:6009
 
 # 加解密开关
 encrypt:
-  enable: true
+  enable: false
 
 swagger:
   enable: true

+ 24 - 0
src/main/resources/jdbc.properties

@@ -0,0 +1,24 @@
+#\u6570\u636e\u5e93\u914d\u7f6e
+#jdbc.driverClassName=com.mysql.jdbc.Driver
+#jdbc.url=jdbc:mysql://127.0.0.1:3306/diagbot-app?useUnicode=true&characterEncoding=UTF-8
+#jdbc.username=root
+#jdbc.password=root
+
+#jdbc.driverClassName=oracle.jdbc.OracleDriver
+#jdbc.url=jdbc:oracle:thin:@192.168.2.246:1521/ORCL
+#jdbc.username=ETRACKMRQC
+#jdbc.password=ETRACKMRQC
+
+jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
+jdbc.url=jdbc:sqlserver://192.168.100.39\\tzmhemr;DatabaseName=bigemr
+jdbc.username=zjlt
+jdbc.password=zjlt@2020
+
+#\u6570\u636e\u670d\u52a1\u6a21\u5f0f
+remote.address.ver=http://192.18.101.207:2030/index.html
+remote.address.hor=http://192.18.101.207:2030/indexHorizontal.html
+
+process.qc.url=http://192.168.100.157:1489/index.html
+
+#his\u65b9\u60a3\u8005\u63a5\u53e3\u5730\u5740
+his.patient.url=

+ 47 - 0
src/main/resources/mapper/BasDoctorInfoMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.BasDoctorInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.BasDoctorInfo">
+        <id column="doctor_id" property="doctorId" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="dept_id" property="deptId" />
+        <result column="name" property="name" />
+        <result column="professor" property="professor" />
+        <result column="occup" property="occup" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+    </resultMap>
+
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update bas_doctor_info
+            <set>
+                <if test="item.deptId != null">
+                    dept_id = #{item.deptId},
+                </if>
+                <if test="item.name != null">
+                    name = #{item.name},
+                </if>
+                <if test="item.professor != null">
+                    professor = #{item.professor},
+                </if>
+                <if test="item.occup != null">
+                    occup = #{item.occup},
+                </if>
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where doctor_id = #{item.doctorId} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
+
+</mapper>

+ 5 - 5
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -121,7 +121,7 @@
     </select>
 
     <!-- 缺陷排行列表 -->
-    <select id="resultStatistics"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
+    <select id="resultStatistics" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
         SELECT
         t1.msg AS name,
         t1.num AS num,
@@ -200,7 +200,7 @@
     </select>
 
     <!-- 各科室缺陷占比 -->
-    <select id="resultStatisticsByDept"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
+    <select id="resultStatisticsByDept" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
         SELECT
         t1.beh_dept_name AS name,
         t1.num AS num,
@@ -278,7 +278,7 @@
     </select>
 
     <!-- 缺陷排行列表 -->
-    <select id="resultStatistics2"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
+    <select id="resultStatistics2" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
         SELECT
         d.msg as name,
         count(*) AS num
@@ -319,7 +319,7 @@
     </select>
 
     <!-- 各科室缺陷占比 -->
-    <select id="resultStatisticsByDept2"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
+    <select id="resultStatisticsByDept2" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
         SELECT
         a.beh_dept_id,
         a.beh_dept_name as name,
@@ -358,7 +358,7 @@
     </select>
 
     <!-- 缺陷总数查询-->
-    <select id="getTotleResultNum"  parameterType="com.diagbot.vo.FilterVO" resultType="int">
+    <select id="getTotleResultNum" parameterType="com.diagbot.vo.FilterVO" resultType="int">
         SELECT
         count(*) AS totle
         FROM

+ 2 - 2
src/main/resources/mapper/HomePageMapper.xml

@@ -139,7 +139,7 @@
 
 
     <!-- 按科室统计平均住院天数 -->
-    <select id="getAverageDayNum"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.AverageStatisticsDTO">
+    <select id="getAverageDayNum" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.AverageStatisticsDTO">
         SELECT
         a.beh_dept_id as id,
         a.beh_dept_name as name,
@@ -170,7 +170,7 @@
     </select>
 
     <!-- 按科室统计平均费用 -->
-    <select id="getAverageFee"  parameterType="com.diagbot.vo.FilterVO"  resultType="com.diagbot.dto.AverageStatisticsDTO">
+    <select id="getAverageFee" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.AverageStatisticsDTO">
         SELECT
         a.beh_dept_id as id,
         a.beh_dept_name as name,

+ 31 - 0
src/main/resources/mapper/MedCrisisInfoMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.MedCrisisInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MedCrisisInfo">
+        <id column="rec_id" property="recId" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="behospital_code" property="behospitalCode" />
+        <result column="rec_type" property="recType" />
+        <result column="crisis_id" property="crisisId" />
+        <result column="crisis_name" property="crisisName" />
+        <result column="dept_id" property="deptId" />
+        <result column="dept_name" property="deptName" />
+        <result column="doctor_id" property="doctorId" />
+        <result column="doctor_name" property="doctorName" />
+        <result column="crisis_value" property="crisisValue" />
+        <result column="crisis_desc" property="crisisDesc" />
+        <result column="crisis_status" property="crisisStatus" />
+        <result column="crisis_top_value" property="crisisTopValue" />
+        <result column="crisis_lower_value" property="crisisLowerValue" />
+        <result column="send_date" property="sendDate" />
+        <result column="rep_date" property="repDate" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
src/main/java/com/diagbot/facade/QcModelHospitalFacade.java

@@ -1,4 +1,4 @@
-package com.diagbot.facade;
+package mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.QcModelHospital;

+ 1 - 0
src/main/resources/mapper/QcTypeMapper.xml

@@ -5,6 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.QcType">
         <id column="id" property="id" />
+        <result column="hospital_id" property="hospitalId" />
         <result column="name" property="name" />
         <result column="remark" property="remark" />
         <result column="is_deleted" property="isDeleted" />

+ 1 - 1
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -19,7 +19,7 @@
     </resultMap>
 
     <!-- 病历数统计 -->
-    <select id="getQcresultSelectively"  parameterType="com.diagbot.vo.QcresultFilterVO" resultType="int">
+    <select id="getQcresultSelectively" parameterType="com.diagbot.vo.QcresultFilterVO" resultType="int">
         SELECT
         count(1)
         FROM