Browse Source

Merge branch 'master' into 'master'

添加判断抗肿瘤药

See merge request lighter/web-server!23
huangshuhua 2 years ago
parent
commit
8ec4961f7a

+ 16 - 0
src/main/java/thyyxxk/webserver/dao/his/ybkf/YbUtilDao.java

@@ -44,4 +44,20 @@ public interface YbUtilDao {
     List<ZyDetailCharge> selectInterventionalProject(@Param("patNo") String patNo, @Param("times") Integer times,
         @Param("ledgerSn") Integer ledgerSn, @Param("item") String item);
 
+    /**
+     * @description: 查询病人使用抗肿瘤药物(做化疗时用到的药,但不包括抗肿瘤辅助用药)
+     * @author: hsh
+     * @date: 2022/11/8 15:50
+     * @param: [patNo, times]
+     * @return: List<Map<String,Object>>
+     **/
+    @Select(" select top 10 * from yp_zy_patient" +
+            " where rtrim(inpatient_no) = #{patNo} and admiss_times = #{times} " +
+            " and charge_code in " +
+            " (select charge_code from yp_base " +
+            "  where class_code in " +
+            "  (select code from yp_zd_class where code like '09%' and code <> '090900' ) " +
+            " ) ")
+    List<Map<String, Object>> selectChemotherapyDigan(@Param("patNo") String patNo, @Param("times") Integer times);
+
 }

+ 11 - 7
src/main/java/thyyxxk/webserver/service/ybkf/YbClnTimesAvgService.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.service.ybkf;
 
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
@@ -27,6 +28,7 @@ import java.util.stream.Collectors;
  * @Version: 1.0
  */
 @Service
+@Log4j2
 public class YbClnTimesAvgService {
 
     private final YbClnTimesAvgDao dao;
@@ -92,7 +94,7 @@ public class YbClnTimesAvgService {
                 // 长沙县城职/居普通住院病人做了介入手术且手术+化疗同时进行病人也纳入单列
                 if("长沙县城职普通住院".equals(insurName) || "长沙县城居普通住院".equals(insurName)){
                     // 是否用了介入手术材料并且是否同时做了化疗
-                    if(isInterventionalProject(info.getPatNo(), info.getTimes(), info.getLedgerSn()) && isChemotherapy(info.getPatNo(), info.getTimes(), info.getLedgerSn())){
+                    if(isInterventionalProject(info.getPatNo(), info.getTimes(), info.getLedgerSn()) && isChemotherapy(info.getPatNo(), info.getTimes())){
                         flag = false;
                     }
                 }
@@ -128,10 +130,12 @@ public class YbClnTimesAvgService {
         return ResultVoUtil.success(resultMap);
     }
 
-    private boolean isChemotherapy(String patNo, Integer times, Integer ledgerSn) {
-        // 待定
-        System.out.println("------------------" + patNo + "||" + times + "||" + ledgerSn + "------------------");
-        return false;
+    private boolean isChemotherapy(String patNo, Integer times) {
+        List<Map<String, Object>> feeList = utilDao.selectChemotherapyDigan(patNo, times);
+        if(feeList.size() > 0){
+            log.info("住院号:{}, 住院次数:{}", patNo, times);
+        }
+        return feeList.size() != 0;
     }
 
     private boolean isInterventionalProject(String patNo, Integer times, Integer ledgerSn) {
@@ -209,7 +213,7 @@ public class YbClnTimesAvgService {
                 // 长沙县城职/居普通住院病人做了介入手术且手术+化疗同时进行病人也纳入单列
                 if("长沙县城职普通住院".equals(insurName) || "长沙县城居普通住院".equals(insurName)){
                     // 是否用了介入手术材料并且是否同时做了化疗
-                    if(isInterventionalProject(info.getPatNo(), info.getTimes(), info.getLedgerSn()) && isChemotherapy(info.getPatNo(), info.getTimes(), info.getLedgerSn())){
+                    if(isInterventionalProject(info.getPatNo(), info.getTimes(), info.getLedgerSn()) && isChemotherapy(info.getPatNo(), info.getTimes())){
                         flag = false;
                     }
                 }
@@ -284,7 +288,7 @@ public class YbClnTimesAvgService {
             // 长沙县城职/居普通住院病人做了介入手术且手术+化疗同时进行病人也纳入单列
             if("长沙县城职普通住院".equals(insurName) || "长沙县城居普通住院".equals(insurName)){
                 // 是否用了介入手术材料并且是否同时做了化疗
-                if(isInterventionalProject(info.getPatNo(), info.getTimes(), info.getLedgerSn()) && isChemotherapy(info.getPatNo(), info.getTimes(), info.getLedgerSn())){
+                if(isInterventionalProject(info.getPatNo(), info.getTimes(), info.getLedgerSn()) && isChemotherapy(info.getPatNo(), info.getTimes())){
                     flag = false;
                 }
             }