瀏覽代碼

违规收费分析添加药品分析,并改为新医保

lighter 3 年之前
父節點
當前提交
7cfe416de8

+ 10 - 7
src/main/java/thyyxxk/webserver/dao/his/reports/IllegalChargesAnalysisDao.java

@@ -38,13 +38,16 @@ public interface IllegalChargesAnalysisDao {
     @Delete("delete from t_illegal_charge_template where id like #{id}")
     void deleteTemplate(@Param("id") String id);
 
-    @Select("select rtrim(code) as code, rtrim(name) as name from zd_charge_item where py_code like #{pyCode}")
+    @Select("select distinct rtrim(code) as code, rtrim(name) as name from zd_charge_item where isnull(del_flag,0)!=1 and py_code like #{pyCode} union " +
+            "select distinct rtrim(code) as code, rtrim(name) as name from yp_zd_dict where isnull(del_flag,0)!=1 and py_code like #{pyCode} ")
     List<PureCodeName> selectChargeItemByPyCode(@Param("pyCode") String pyCode);
 
-    @Select("select rtrim(code) as code, rtrim(name) as name from zd_charge_item where code like #{code}")
+    @Select("select distinct rtrim(code) as code, rtrim(name) as name from zd_charge_item where isnull(del_flag,0)!=1 and code like #{code} union " +
+            "select distinct rtrim(code) as code, rtrim(name) as name from yp_zd_dict where isnull(del_flag,0)!=1 and code like #{code}")
     List<PureCodeName> selectChargeItemByCode(@Param("code") String code);
 
-    @Select("select rtrim(code) as code, rtrim(name) as name from zd_charge_item where name like #{name}")
+    @Select("select distinct rtrim(code) as code, rtrim(name) as name from zd_charge_item where isnull(del_flag,0)!=1 and name like #{name} union " +
+            "select distinct rtrim(code) as code, rtrim(name) as name from yp_zd_dict where isnull(del_flag,0)!=1 and name like #{name}")
     List<PureCodeName> selectChargeItemByName(@Param("name") String name);
 
     @Update("update t_illegal_charge_template set label=#{label}, value=#{value},attribute=#{attribute} where id=#{id}")
@@ -52,8 +55,8 @@ public interface IllegalChargesAnalysisDao {
 
     @Select("select a.inpatient_no,a.admiss_times, " +
             "name=(select rtrim(name) from a_patient_mi t where t.inpatient_no=a.inpatient_no), " +
-            "responceType=(select rtrim(responce_type) from yb_zy_review_record t " +
-            "where t.inpatient_no=a.inpatient_no and t.admiss_times=a.admiss_times and t.ledger_sn=a.ledger_sn), " +
+            "medtype=(select med_type from t_si_pat_info t " +
+            "where t.pat_no=a.inpatient_no and t.times=a.admiss_times and t.ledger_sn=a.ledger_sn), " +
             "deptName=(select rtrim(name) from zd_unit_code where code=a.ward_code), " +
             "wardName=(select rtrim(name) from zd_unit_code where code=a.dept_code), " +
             "diag=(select rtrim(dis_diag_comment) from zy_dis_diag_yb t where t.inpatient_no=a.inpatient_no " +
@@ -69,8 +72,8 @@ public interface IllegalChargesAnalysisDao {
 
     @Select("select *, " +
             "name=(select rtrim(name) from a_patient_mi where inpatient_no=temp.inpatient_no), " +
-            "responceType=(select rtrim(responce_type) from yb_zy_review_record where inpatient_no= " +
-            "temp.inpatient_no and admiss_times=temp.admiss_times), " +
+            "medtype=(select max(med_type) from t_si_pat_info t where t.pat_no=temp.inpatient_no and " +
+            "t.times=temp.admiss_times ), " +
             "wardName=(select rtrim(name) from zd_unit_code where code=temp.ward_code), " +
             "diag=(select rtrim(dis_diag_comment) from zy_dis_diag_yb where zy_dis_diag_yb.inpatient_no=temp.inpatient_no and " +
             "zy_dis_diag_yb.admiss_times=temp.admiss_times and dis_diag_no=1), " +

+ 2 - 23
src/main/java/thyyxxk/webserver/entity/reports/illegalchargesanalysis/IllegalChargeData.java

@@ -15,8 +15,8 @@ public class IllegalChargeData {
     private String name;
     private String inpatientNo;
     private Integer admissTimes;
-    private String responceType;
-    private String responceTypeName;
+    private String medtype;
+    private String medtypeName;
     private String deptName;
     private String wardName;
     private String diag;
@@ -57,25 +57,4 @@ public class IllegalChargeData {
     private String disDiag;
 
     private String disDiagComment;
-
-    public String getResponceType() {
-        return null == responceType ? "" : responceType;
-    }
-
-    public String getResponceTypeName() {
-        switch (getResponceType()) {
-            case "02":
-                return "省医保";
-            case "03":
-                return "市城居医保";
-            case "04":
-                return "新农合";
-            case "09":
-                return "市城职医保";
-            case "10":
-                return "省医保-异地";
-            default:
-                return "自费";
-        }
-    }
 }

+ 1 - 1
src/main/java/thyyxxk/webserver/entity/reports/illegalchargesanalysis/IllegalChargeTemplate.java

@@ -79,7 +79,7 @@ public class IllegalChargeTemplate implements Serializable {
     private String end;
 
     @TableField(exist = false)
-    private List<String> responces;
+    private List<String> medtypes;
 
     @JsonInclude(JsonInclude.Include.NON_NULL)
     private long currentPage;

+ 1 - 1
src/main/java/thyyxxk/webserver/service/querydata/QueryDrugsAndProjectsService.java

@@ -160,7 +160,7 @@ public class QueryDrugsAndProjectsService {
      * @return 返回检验检查的数据
      */
     public ResultVo<List<IllegalChargeData>> chaXunJianYanJianCha(IllegalChargeTemplate param) {
-        List<IllegalChargeData> list = dao.chaXunJianYanJianCha(param.getStart(), param.getEnd(), param.getResponces());
+        List<IllegalChargeData> list = dao.chaXunJianYanJianCha(param.getStart(), param.getEnd(), param.getMedtypes());
         if (list.isEmpty()) {
             return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
         }

+ 8 - 14
src/main/java/thyyxxk/webserver/service/reports/IllegalChargesAnalysisService.java

@@ -11,6 +11,7 @@ import thyyxxk.webserver.entity.dictionary.PureCodeName;
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeData;
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeTemplate;
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.SearchChargeItem;
+import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
 import thyyxxk.webserver.utils.TokenUtil;
@@ -164,17 +165,6 @@ public class IllegalChargesAnalysisService {
     public ResultVo<List<IllegalChargeData>> analyzeTargetData(IllegalChargeTemplate template) {
         template.setStart(template.getStart() + " 00:00:00");
         template.setEnd(template.getEnd() + " 23:59:59");
-        if (null == template.getResponces()) {
-            template.setResponces(new ArrayList<>());
-        }
-        if (template.getResponces().isEmpty()) {
-            // TODO: 2021/11/12 违规收费分析查询所有医保数据
-//            template.getResponces().add(ResponceType.HUNAN_PROVINCIAL_MEDICAL_INSURANCE);
-//            template.getResponces().add(ResponceType.HUNAN_PROVINCE_REMOTE_MEDICAL_INSURANCE);
-//            template.getResponces().add(ResponceType.CHANGSHA_CITY_RESIDENTS_MEDICAL_INSURANCE);
-//            template.getResponces().add(ResponceType.CHANGSHA_CITY_WORKERS_MEDICAL_INSURANCE);
-//            template.getResponces().add(ResponceType.NEW_RURAL_COOPERATIVE_MEDICAL_INSURANCE);
-        }
         log.info("违规收费分析:{}", template);
         if (template.getAttribute() == 1) {
             return sameTimeCharge(template);
@@ -187,11 +177,15 @@ public class IllegalChargesAnalysisService {
         for (PureCodeName main : template.getMainCharges()) {
             List<IllegalChargeData> mainList = dao.selectChargeDataForSameTime(template.getStart(),
                     template.getEnd(), main.getCode());
-            mainList.removeIf(item -> !template.getResponces().contains(item.getResponceType()));
+            if (ListUtil.notBlank(template.getMedtypes())) {
+                mainList.removeIf(item -> !template.getMedtypes().contains(item.getMedtype()));
+            }
             for (PureCodeName cflct : template.getConflictCharges()) {
                 List<IllegalChargeData> cflctList = dao.selectChargeDataForSameTime(template.getStart(),
                         template.getEnd(), cflct.getCode());
-                cflctList.removeIf(item -> !template.getResponces().contains(item.getResponceType()));
+                if (ListUtil.notBlank(template.getMedtypes())) {
+                    cflctList.removeIf(item -> !template.getMedtypes().contains(item.getMedtype()));
+                }
                 Map<String, IllegalChargeData> map = new HashMap<>(mainList.size());
                 for (IllegalChargeData item : mainList) {
                     String key = item.getInpatientNo() + "_" + item.getChargeDay();
@@ -247,7 +241,7 @@ public class IllegalChargesAnalysisService {
     }
 
     public ResultVo<List<IllegalChargeData>> queryHuanZheLiangCiRuYuanRiQi(IllegalChargeTemplate param) {
-        List<IllegalChargeData> list = dao.queryHuanZheLiangCiRuYuanRiQi(param.getStart(), param.getEnd(), param.getResponces());
+        List<IllegalChargeData> list = dao.queryHuanZheLiangCiRuYuanRiQi(param.getStart(), param.getEnd(), param.getMedtypes());
         if (list.isEmpty()) {
             return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
         }