Parcourir la source

fix: 修复一些数据

Scott il y a 2 ans
Parent
commit
ff99caeb93
14 fichiers modifiés avec 150 ajouts et 17 suppressions
  1. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/mid/response/MidAuditDetailResponse.java
  2. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AdvanceWarningAuditMapper.java
  3. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditDetailMapper.java
  4. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditMapper.java
  5. 35 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AdvanceWarningAuditMapper.xml
  6. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditDetailMapper.xml
  7. 20 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml
  8. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAdvanceWarningAuditService.java
  9. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditDetailService.java
  10. 7 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditService.java
  11. 39 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AdvanceWarningAuditServiceImpl.java
  12. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditDetailServiceImpl.java
  13. 7 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditServiceImpl.java
  14. 21 6
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAnalysisServiceImpl.java

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/mid/response/MidAuditDetailResponse.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.medical.common.bo.mid.response;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.medical.common.bo.DiagnosticInfoResponse;
 import org.jeecg.modules.medical.common.bo.before.PatientInformationResponse;
 import org.jeecg.modules.medical.common.bo.before.PrescriptionDetail;
 
@@ -41,7 +42,7 @@ public class MidAuditDetailResponse implements Serializable {
     @ApiModelProperty(value = "医生信息")
     private MidAuditDoctorInfo doctorInfo;
     @ApiModelProperty(value = "诊断信息")
-    private List<Object> diagnosticInfoList;
+    private List<DiagnosticInfoResponse> diagnosticInfoList;
     @ApiModelProperty(value = "类型")
     private String projectType;
     @ApiModelProperty(value = "违规总数")

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AdvanceWarningAuditMapper.java

@@ -46,4 +46,8 @@ public interface AdvanceWarningAuditMapper extends BaseMapper<AdvanceWarningAudi
                                                      @Param("tableName") String tableName);
 
     PrescriptionDetail loadTreatmentMasterInfo(@Param("id") String id, @Param("tableName") String tableName);
+
+    PrescriptionDetail loadTreatmentMasterInfoByPatientId(@Param("patientId") String patientId, String masterTableName);
+
+    List<PrescriptionDetail> listPrescriptionsByCasePatientId(@Param("patientId") String patientId, @Param("tableName") String tableName);
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditDetailMapper.java

@@ -18,7 +18,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface AfterwardsAuditDetailMapper extends BaseMapper<AfterwardsAuditDetail> {
 
-    PatientInformationResponse loadPatientInfoById(@Param("id") String id);
+    PatientInformationResponse loadPatientInfoById(@Param("id") Integer id);
 
     IPage<MidAuditViolateProjectStatisticsResponse> afterViolateProjectStatisticsList(IPage<AuditAdvanceWarningAuditDetailResponse> page, @Param("projectCode")  String projectCode,
                                                                                       @Param("medicalProjectSearch")String medicalProjectSearch,@Param("startTime") String startTime,@Param("endTime") String endTime);

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditMapper.java

@@ -6,6 +6,7 @@ import java.util.List;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.common.bo.DiagnosticInfoResponse;
 import org.jeecg.modules.medical.common.bo.mid.AuditMidDetailListResponse;
 import org.jeecg.modules.medical.common.bo.mid.request.AuditMidDetailListRequest;
 import org.jeecg.modules.medical.entity.MidIncidentAudit;
@@ -28,5 +29,5 @@ public interface MidIncidentAuditMapper extends BaseMapper<MidIncidentAudit> {
     BigDecimal statissticsErrAmtByMidAuditRecordId(@Param("id") Integer id);
 
 
-
+    List<DiagnosticInfoResponse> loadDiagnosticInfo(@Param("id") Integer id);
 }

+ 35 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AdvanceWarningAuditMapper.xml

@@ -155,4 +155,39 @@
         WHERE
             id = #{id}
     </select>
+    <select id="loadTreatmentMasterInfoByPatientId"
+            resultType="org.jeecg.modules.medical.common.bo.before.PrescriptionDetail">
+        SELECT
+            admission_dept_name as department,
+            admission_dept_id ,
+            doctor_id,
+            doctor_name as doctorName
+        FROM
+            ${tableName}
+        WHERE
+            patient_id = #{patientId}
+    </select>
+    <select id="listPrescriptionsByCasePatientId"
+            resultType="org.jeecg.modules.medical.common.bo.before.PrescriptionDetail">
+        SELECT
+            hd.item_name_hosp as itemNameHosp,
+            "" as department,
+            hd.usage_date as usageDate,
+            "" as doctorName,
+            hd.use_day as useDay
+        FROM
+            ${tableName} AS hd
+        <where>
+            <if test="patientId != null and patientId != ''">
+                AND hd.patient_id = #{patientId}
+            </if>
+            AND (
+                categories_items = "09"
+                or categories_items = "10"
+                or categories_items = "11"
+            )
+
+        </where>
+
+    </select>
 </mapper>

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditDetailMapper.xml

@@ -18,7 +18,7 @@
                 ,ad.treatment_type as treatmentType -- 就诊类型
         FROM afterwards_audit as ad
                  LEFT JOIN his_patient as p on ad.patient_id = p.patient_no
-        WHERE ad.id = #{id}
+        WHERE ad.id = #{id,jdbcType=INTEGER}
     </select>
 
     <select id="afterViolateProjectStatisticsList"

+ 20 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml

@@ -11,8 +11,10 @@
             ,patient_id,
             patient_name,
             treatment_type,
-            medical_dept_name,
-            doctor_name,
+            medical_dept_name
+            ,medical_ins_rule_info_code
+            ,medical_ins_rule_info_name
+            ,doctor_name,
             doctor_id,
             create_time,
             amount
@@ -44,7 +46,7 @@
             <if test="ew.endTime != null and ew.endTime != '' ">
                 AND <![CDATA[  create_time <= #{ew.endTime} ]]>
             </if>
-            <if test="ew.medicalProjectCode != null and ew.medicalProjectCode != null" >
+            <if test="ew.medicalProjectCode != null and ew.medicalProjectCode != '' " >
                 AND medical_project_code = #{ew.medicalProjectCode}
             </if>
             <if test="ew.medicalInsRuleInfoCode != null and ew.medicalInsRuleInfoCode != ''">
@@ -202,4 +204,19 @@
 
     </select>
 
+    <select id="loadDiagnosticInfo" resultType="org.jeecg.modules.medical.common.bo.DiagnosticInfoResponse">
+        SELECT
+            ad.id,
+            ad.outpatient_number as outpatientNumber, -- "住院号",
+            h.icd10_code_basy as mainDiagnosisCode, -- "主要诊断编码",
+            h.icd10_name_basy as mainDiagnosisName, -- "主要诊断名称",
+            h.disease_id1 as subDiagnosisCode, -- "副诊断编码",
+            h.disease_name1 as subDiagnosisName, -- "副诊断名称"
+            "" as subDiagnosis2Code -- 这个等后面确认
+        FROM
+            mid_incident_audit as ad
+                RIGHT JOIN medical_record_homepage as h ON ad.outpatient_number = h.zyh
+        WHERE ad.id = #{id, jdbcType=INTEGER}
+    </select>
+
 </mapper>

+ 8 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAdvanceWarningAuditService.java

@@ -46,4 +46,12 @@ public interface IAdvanceWarningAuditService extends IService<AdvanceWarningAudi
      */
     IPage<PrescriptionDetail> loadPrescriptionsByCase(Page<MedicalHistoryRecord> page, String id, String treatmentType);
     List<PrescriptionDetail> listPrescriptionsByCase( String id, String treatmentType);
+
+    /**
+     * 根据用户id,查询药品明细
+     * @param outpatientNumber
+     * @param treatmentType
+     * @return
+     */
+    List<PrescriptionDetail> listPrescriptionsByCaseAndPatientId(String patientId, String treatmentType);
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditDetailService.java

@@ -24,7 +24,7 @@ public interface IAfterwardsAuditDetailService extends IService<AfterwardsAuditD
      * @param afterwardsAuditService
      * @return
      */
-    PatientInformationResponse loadPatientInfoById(String afterwardsAuditId, IAfterwardsAuditService afterwardsAuditService);
+    PatientInformationResponse loadPatientInfoById(Integer afterwardsAuditId, IAfterwardsAuditService afterwardsAuditService);
 
     IPage<MidAuditViolateProjectStatisticsResponse> afterViolateProjectStatisticsList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String projectCode, String medicalProjectSearch, String startTime, String endTime);
 }

+ 7 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditService.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.medical.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.medical.common.bo.DiagnosticInfoResponse;
 import org.jeecg.modules.medical.common.bo.before.AuditAdvanceWarningAuditDetailResponse;
 import org.jeecg.modules.medical.common.bo.mid.AuditMidDetailListResponse;
 import org.jeecg.modules.medical.common.bo.mid.request.AuditMidDetailListRequest;
@@ -41,5 +42,10 @@ public interface IMidIncidentAuditService extends IService<MidIncidentAudit> {
     BigDecimal statissticsErrAmtByMidAuditRecordId(Integer id);
 
 
-
+    /**
+     * 获取诊断信息
+     * @param midIncidentAuditId
+     * @return
+     */
+    List<DiagnosticInfoResponse> loadDiagnosticInfo(Integer midIncidentAuditId);
 }

+ 39 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AdvanceWarningAuditServiceImpl.java

@@ -247,4 +247,43 @@ public class AdvanceWarningAuditServiceImpl extends ServiceImpl<AdvanceWarningAu
         }
         return result;
     }
+
+    @Override
+    public List<PrescriptionDetail> listPrescriptionsByCaseAndPatientId(String patientId, String treatmentType) {
+
+        String detailTableName = "";
+        String masterTableName = "";
+        treatmentType = treatmentType == null ? "1" : treatmentType;
+        if ("1".equalsIgnoreCase(treatmentType)) { // 住院
+            detailTableName = "hospitalizatio_settle_detail";
+            masterTableName = "master_admission_bill";
+        } else if ("2".equalsIgnoreCase(treatmentType)) { // 门诊
+            detailTableName = "outpatient_settlement_details";
+            masterTableName = "outpatient_settle_bill";
+        }
+        //获取结算主单的科室,和医生信息
+//        PrescriptionDetail masterInfo = baseMapper.loadTreatmentMasterInfoByPatientId(patientId, masterTableName);
+        List<PrescriptionDetail> result = baseMapper.listPrescriptionsByCasePatientId(patientId, detailTableName);
+        if (!CollectionUtils.isEmpty(result)) {
+            for (PrescriptionDetail record : result) {
+//                if(null != masterInfo) {
+//                    record.setDepartment(masterInfo.getDepartment());
+//                    record.setDoctorName(masterInfo.getDoctorName());
+//                }
+                // 计算药品剩余天数
+                LocalDate now = LocalDate.now();
+                if (null != record.getUsageDate()) {
+                    Date date = record.getUsageDate();
+                    Instant instant = date.toInstant();
+                    LocalDate usageLocalDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
+                    // 获取两个日期天数相差
+                    long until = usageLocalDate.until(now, ChronoUnit.DAYS) + 1;
+                    if (record.getUseDay() != null) {
+                        record.setRemainingDays(record.getUseDay() - until);
+                    }
+                }
+            }
+        }
+        return result;
+    }
 }

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditDetailServiceImpl.java

@@ -49,7 +49,7 @@ public class AfterwardsAuditDetailServiceImpl extends ServiceImpl<AfterwardsAudi
     }
 
     @Override
-    public PatientInformationResponse loadPatientInfoById(String id, IAfterwardsAuditService afterwardsAuditService) {
+    public PatientInformationResponse loadPatientInfoById(Integer id, IAfterwardsAuditService afterwardsAuditService) {
         AfterwardsAudit afterwardsAudit = afterwardsAuditService.getById(id);
         if (afterwardsAudit == null) {
             log.error("找不到事前工单id={}", id);
@@ -85,7 +85,7 @@ public class AfterwardsAuditDetailServiceImpl extends ServiceImpl<AfterwardsAudi
         return baseMapper.afterViolateProjectStatisticsList(page, projectCode, medicalProjectSearch, startTime, endTime);
     }
 
-    private List<AfterwardsAuditDetail> loadDetailList(String id) {
+    private List<AfterwardsAuditDetail> loadDetailList(Integer id) {
         LambdaQueryWrapper<AfterwardsAuditDetail> queryWrapper = Wrappers.<AfterwardsAuditDetail>lambdaQuery()
                 .eq(AfterwardsAuditDetail::getAfterwardsAuditId, id);
         return this.list(queryWrapper);

+ 7 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditServiceImpl.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.medical.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.medical.common.bo.DiagnosticInfoResponse;
 import org.jeecg.modules.medical.common.bo.mid.AuditMidDetailListResponse;
 import org.jeecg.modules.medical.common.bo.mid.request.AuditMidDetailListRequest;
 import org.jeecg.modules.medical.entity.MidIncidentAudit;
@@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @Description: mid_incident_audit
@@ -44,4 +46,9 @@ public class MidIncidentAuditServiceImpl extends ServiceImpl<MidIncidentAuditMap
     public BigDecimal statissticsErrAmtByMidAuditRecordId(Integer id) {
         return baseMapper.statissticsErrAmtByMidAuditRecordId(id);
     }
+
+    @Override
+    public List<DiagnosticInfoResponse> loadDiagnosticInfo(Integer midIncidentAuditId) {
+        return baseMapper.loadDiagnosticInfo(midIncidentAuditId);
+    }
 }

+ 21 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAnalysisServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.medical.common.bo.DiagnosticInfoResponse;
 import org.jeecg.modules.medical.common.bo.MedicalOrderInfoResponse;
 import org.jeecg.modules.medical.common.bo.after.response.AfterwardsAuditDetailResponse;
 import org.jeecg.common.util.oConvertUtils;
@@ -159,6 +160,9 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         }
         result.setDescription(detailInfo.getDescription());
         result.setViolationLevel(detailInfo.getReminderLevel());
+        result.setMedicalInsRuleInfoCode(detailInfo.getMedicalInsRuleInfoCode());
+        result.setMedicalInsRuleInfoName(detailInfo.getMedicalInsRuleInfoName());
+        result.setCreateTime(detailInfo.getCreateTime());
         // 构建违规项目/药品明细
         ViolationsProjectMedicinesDetail v = new ViolationsProjectMedicinesDetail();
         v.setMedicalProjectCode(detailInfo.getMedicalInsRuleInfoCode());
@@ -193,8 +197,8 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         midAuditDoctorInfo.setFeedbackResult(detailInfo.getFeedbackResult());
         result.setDoctorInfo(midAuditDoctorInfo);
         // 构建诊断信息
-
-
+        List<DiagnosticInfoResponse> diagnosticInfoList = midIncidentAuditService.loadDiagnosticInfo(detailInfo.getMidIncidentAuditId());
+        result.setDiagnosticInfoList(diagnosticInfoList);
         return result;
     }
 
@@ -235,13 +239,24 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         result.setViolationLevel(detailInfo.getReminderLevel());
         result.setMedicalInsRuleInfoCode(detailInfo.getMedicalInsRuleInfoCode());
         result.setMedicalInsRuleInfoName(detailInfo.getMedicalInsRuleInfoName());
-        List<PrescriptionDetail> prescriptionDetails = advanceWarningAuditService.listPrescriptionsByCase(detailInfo.getOutpatientNumber(), detailInfo.getTreatmentType());
+        result.setCreateTime(detailInfo.getCreateTime());
+        //构建药品信息
+//        List<PrescriptionDetail> prescriptionDetails = advanceWarningAuditService.listPrescriptionsByCase(detailInfo.getOutpatientNumber(), detailInfo.getTreatmentType());
+        List<PrescriptionDetail> prescriptionDetails = advanceWarningAuditService.listPrescriptionsByCaseAndPatientId(detailInfo.getPatientId(), detailInfo.getTreatmentType());
         if (oConvertUtils.isNotEmpty(prescriptionDetails)) {
+            prescriptionDetails = prescriptionDetails.stream().map(item -> {
+                item.setDepartment(detailInfo.getMedicalDeptName());
+                item.setDoctorId(detailInfo.getDoctorId());
+                item.setDoctorName(detailInfo.getDoctorName());
+                return item;
+            }).collect(Collectors.toList());
             result.setPrescriptionDetail(prescriptionDetails);
         }
         // 构建患者信息
-        PatientInformationResponse patientInformationResponse =
-                midIncidentAuditDetailService.loadPatientInfoById(detailInfo.getId().toString());
+//        PatientInformationResponse patientInformationResponse =
+//                midIncidentAuditDetailService.loadPatientInfoById(detailInfo.getId().toString());
+        PatientInformationResponse patientInformationResponse = afterwardsAuditDetailService.loadPatientInfoById(detailInfo.getId(), afterwardsAuditService);
+        patientInformationResponse.setPatientName(detailInfo.getPatientName());
         result.setPatientInfo(patientInformationResponse);
         // 构建医生信息
         MidAuditDoctorInfo midAuditDoctorInfo = new MidAuditDoctorInfo();
@@ -294,7 +309,7 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         List<ViolationsProjectMedicinesDetail> violationsProjectMedicinesDetails = new ArrayList<>();
         violationsProjectMedicinesDetails.add(v);
         result.setLists(violationsProjectMedicinesDetails);
-        PatientInformationResponse patientInformationResponse = afterwardsAuditDetailService.loadPatientInfoById(detailInfo.getAfterwardsAuditId().toString(), afterwardsAuditService);
+        PatientInformationResponse patientInformationResponse = afterwardsAuditDetailService.loadPatientInfoById(detailInfo.getAfterwardsAuditId(), afterwardsAuditService);
         // 构建患者信息
 //        PatientInformationResponse patientInformationResponse =
 //                midIncidentAuditDetailService.loadPatientInfoById(detailInfo.getMidIncidentAuditId().toString(), midIncidentAuditService);