Переглянути джерело

入院记录数据落库结构化调整

chengyao 4 роки тому
батько
коміт
3c42c7c38a

+ 9 - 8
src/main/java/com/diagbot/facade/data/AMedConsultationRecordFacade.java

@@ -10,6 +10,7 @@ import com.diagbot.service.impl.MedConsultationRecordServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.MapUtil;
+import com.diagbot.vo.AMedConsultationRecordVO;
 import com.diagbot.vo.data.AMedConsultationNoteVO;
 import com.diagbot.vo.data.AMedConsultationResultVO;
 import org.springframework.beans.BeanUtils;
@@ -47,16 +48,16 @@ public class AMedConsultationRecordFacade extends MedConsultationRecordServiceIm
     public void dealData(String columnMap,Map<String, Object> entityMap,Long hospitalId){
         MedConsultationRecord medConsultationRecord=new MedConsultationRecord();
         try {
-            AMedConsultationResultVO aMedConsultationNoteVO=(AMedConsultationResultVO) MapUtil.mapToObject(entityMap, AMedConsultationNoteVO.class);
-            BeanUtils.copyProperties(aMedConsultationNoteVO,medConsultationRecord);
+            AMedConsultationRecordVO aMedConsultationRecordVO=(AMedConsultationRecordVO) MapUtil.mapToObject(entityMap, AMedConsultationRecordVO.class);
+            BeanUtils.copyProperties(aMedConsultationRecordVO,medConsultationRecord);
             medConsultationRecord.setHospitalId(hospitalId);//医院编码
 
-            medConsultationRecord.setRecordDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getRecordDate()));//病历日期recordDate
-            medConsultationRecord.setBehospitalDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getBehospitalDate()));//入院日期behospital_date
-            medConsultationRecord.setApplyDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getApplyDate()));//申请日期apply_date
-            medConsultationRecord.setConsultationDate(DateUtil.parseDate(aMedConsultationNoteVO.getConsultationArriveDate()));//会诊时间consultation_date
-            medConsultationRecord.setRecDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getRecDate()));//记录时间rec_date
-            medConsultationRecord.setAuditDate(DateUtil.parseDateTime(aMedConsultationNoteVO.getAuditDate()));//审核时间audit_date
+            medConsultationRecord.setRecordDate(DateUtil.parseDateTime(aMedConsultationRecordVO.getRecordDate()));//病历日期recordDate
+            medConsultationRecord.setBehospitalDate(DateUtil.parseDateTime(aMedConsultationRecordVO.getBehospitalDate()));//入院日期behospital_date
+            medConsultationRecord.setApplyDate(DateUtil.parseDateTime(aMedConsultationRecordVO.getApplyDate()));//申请日期apply_date
+            medConsultationRecord.setConsultationDate(DateUtil.parseDate(aMedConsultationRecordVO.getConsultationArriveDate()));//会诊时间consultation_date
+            medConsultationRecord.setRecDate(DateUtil.parseDateTime(aMedConsultationRecordVO.getRecDate()));//记录时间rec_date
+            medConsultationRecord.setAuditDate(DateUtil.parseDateTime(aMedConsultationRecordVO.getAuditDate()));//审核时间audit_date
 
             medConsultationRecord.setWholeData(columnMap);
             //判断数据库中是否存在,不存在insert

+ 11 - 9
src/main/java/com/diagbot/facade/data/AMedicalRecordFacade.java

@@ -119,24 +119,26 @@ public class AMedicalRecordFacade extends MedicalRecordServiceImpl {
     public boolean hisDataDeal(HisDataDealVO hisDataDealVO) throws Exception {
         QueryWrapper<MedicalRecord> medicalRecordQe = new QueryWrapper<>();
         medicalRecordQe.eq("hospital_id", hisDataDealVO.getHospitalId());
-        medicalRecordQe.in("mode_id", hisDataDealVO.getModeId());
-        medicalRecordQe.in("is_deleted", IsDeleteEnum.N.getKey());
+        medicalRecordQe.eq("mode_id", hisDataDealVO.getModeId());
+        medicalRecordQe.eq("is_deleted", IsDeleteEnum.N.getKey());
         medicalRecordQe.orderByDesc("rec_date");
+        medicalRecordQe.orderByDesc("rec_id");
         if (hisDataDealVO.getRecIdList().size() > 0) {
             medicalRecordQe.in("rec_id", hisDataDealVO.getRecIdList());
         }
 
+      //保留最新的入院记录
         List<MedicalRecord> medicalRecordList = medicalRecordService.list(medicalRecordQe);
-        ArrayList<Integer> indexList = Lists.newArrayList();
-        for (MedicalRecord medicalRecord : medicalRecordList) {
-            if("1l".equals(medicalRecord.getModeId())){
-                indexList.add(medicalRecordList.indexOf(medicalRecord)) ;
-                if(indexList.size()>1){
-                    medicalRecordList.remove(medicalRecord);
+        if (1l == hisDataDealVO.getModeId() && ListUtil.isNotEmpty(medicalRecordList) && medicalRecordList.size()>1) {
+            int count = 0;
+            for (int i = 0; i < medicalRecordList.size(); i++) {
+                if (count >= 1) {
+                    medicalRecordList.remove(i);
+                    i--;
                 }
+                count++;
             }
         }
-
             medicalRecordList.forEach(medicalRecord -> {
                         QueryWrapper<MedicalRecordContent> medicalRecordContentQe = new QueryWrapper<>();
                         medicalRecordContentQe.eq("hospital_id", hisDataDealVO.getHospitalId());

+ 167 - 0
src/main/java/com/diagbot/vo/AMedConsultationRecordVO.java

@@ -0,0 +1,167 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+@Data
+public class AMedConsultationRecordVO {
+
+    /**
+     * 记录编号
+     */
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    private String hospitalId;
+
+    /**
+     * 病历号
+     */
+    private String behospitalCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 床号
+     */
+    private String bedNo;
+
+    /**
+     * 科别
+     */
+    private String deptName;
+
+    /**
+     * 病历日期
+     */
+    private String recordDate;
+
+    /**
+     * 标题
+     */
+    private String recTitle;
+
+    /**
+     * 入院日期
+     */
+    private String behospitalDate;
+
+    /**
+     * 申请科室
+     */
+    private String applyDept;
+
+    /**
+     * 申请医生
+     */
+    private String applyDoctor;
+
+    /**
+     * 申请日期
+     */
+    private String applyDate;
+
+    /**
+     * 会诊类别
+     */
+    private String inviteType;
+
+    /**
+     * 会诊科室
+     */
+    private String inviteDept;
+
+    /**
+     * 会诊医生
+     */
+    private String inviteDoctor;
+
+    /**
+     * 当前诊断
+     */
+    private String currentDiagnosis;
+
+    /**
+     * 会诊目的
+     */
+    private String consultationPurpose;
+
+    /**
+     * 会诊意见
+     */
+    private String consultationOpinions;
+
+    /**
+     * 会诊到达时间
+     */
+    private String consultationArriveDate;
+
+    /**
+     * 记录医生
+     */
+    private String recDoctor;
+
+    /**
+     * 记录时间
+     */
+    private String recDate;
+
+    /**
+     * 审核医生
+     */
+    private String auditDoctor;
+
+    /**
+     * 审核时间
+     */
+    private String auditDate;
+
+    /**
+     * 结构化数据
+     */
+    private String wholeData;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 是否删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private String gmtCreate;
+
+    /**
+     * 记录修改时间
+     */
+    private String gmtModified;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 修改人
+     */
+    private String modifier;
+}

+ 1 - 1
src/main/java/com/diagbot/vo/data/HisDataDealVO.java

@@ -14,7 +14,7 @@ public class HisDataDealVO {
 
     private Long hospitalId;
 
-    private List<Long> modeId;
+    private Long modeId;
 
     private Date startDate;
 

+ 8 - 2
src/main/resources/mapper/MedLisResultMapper.xml

@@ -61,14 +61,20 @@
             and t1.hospital_id = #{hospitalId}
         </if>
         and t1.rep_no = t2.rep_no
-        <if test="behospitalDate != null">
-            <![CDATA[ AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') >= #{behospitalDate}]]>
+        <if test="isPlacefile != null and isPlacefile == 0">
+            <if test="behospitalDate != null">
+                <![CDATA[ AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') >= #{behospitalDate}]]>
+            </if>
         </if>
         <if test="isPlacefile != null and isPlacefile == 1">
             <if test="leaveHospitalDate != null">
                 <![CDATA[AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') <= #{leaveHospitalDate}]]>
             </if>
+            <if test="behospitalDate != null">
+                <![CDATA[AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') >= #{behospitalDate}]]>
+            </if>
         </if>
+
     </select>
 
     <update id="updateBatchByKey">

+ 9 - 5
src/main/resources/mapper/MedPacsResultMapper.xml

@@ -61,15 +61,19 @@
             and t1.hospital_id = #{hospitalId}
         </if>
             and t1.rep_no = t2.rep_no
+        <if test="isPlacefile != null and isPlacefile == 0">
+            <if test="behospitalDate != null">
+                <![CDATA[ AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') >= #{behospitalDate}]]>
+            </if>
+        </if>
         <if test="isPlacefile != null and isPlacefile == 1">
             <if test="leaveHospitalDate != null">
-                <![CDATA[ AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') <= #{leaveHospitalDate}]]>
+                <![CDATA[AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') <= #{leaveHospitalDate}]]>
+            </if>
+            <if test="behospitalDate != null">
+                <![CDATA[AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') >= #{behospitalDate}]]>
             </if>
         </if>
-        <if test="behospitalDate != null">
-            <![CDATA[ AND date_format (t1.check_date,'%Y-%m-%d %H:%i:%s') >= #{behospitalDate}]]>
-        </if>
-
     </select>
 
     <update id="updateBatchByKey">

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

@@ -74,7 +74,7 @@
         <if test="ruleType != null">
             AND a.rule_type = #{ruleType}
         </if>
-        ORDER BY a.cases_id,a.order_no DESC
+        ORDER BY a.cases_id,a.order_no,a.gmt_modified,b.gmt_modified DESC
     </select>
     <select id="findQcCasesEntryAll" resultType="com.diagbot.dto.QcCasesEntryFindDTO">
         SELECT DISTINCT