Browse Source

医保支付方式逻辑修改

lihong 2 years ago
parent
commit
06708af276

+ 1 - 5
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -411,11 +411,7 @@ public class SetlListUpldService {
         if (StringUtil.notBlank(setlinfoUpld.getNwbBirWt())) {
             setlinfoUpld.setNwbAdmType("1");
         }
-        // 如果是生育住院的那么 医保支付方式 为 1 按项目
-        if (isFertilitySign) {
-            setlinfoUpld.setHiPaymtd("1");
-        }
-        setlinfoUpld.setHiPaymtd(getDrgHaiPay(setlinfoUpld.getInsuplc(),setlinfoUpld.getHiPaymtd(),setlinfoUpld.getSetlEndDate()));
+        setlinfoUpld.setHiPaymtd(CommonUtil.calcHiPaymtd(setlinfoUpld.getInsuplc(),medType,setlinfoUpld.getHiType(),setlinfoUpld.getSetlEndDate()).toString());
         //  如果是 职工基本医疗保险的话 没有单位名称和地址 那么就 写死成 普通职工 和 现住址
         if ("310".equals(setlinfoUpld.getHiType())) {
             if (StringUtil.isBlank(setlinfoUpld.getEmpAddr())) {

+ 1 - 1
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiZyService.java

@@ -558,7 +558,7 @@ public class SiZyService {
             setlinfoEntity.setInsuplcAdmdvs(preSetlmt.getInsuplcAdmdvs());
             setlinfoEntity.setBegntime(begntime);
             setlinfoEntity.setEndtime(p.getDismissDate());
-            setlinfoEntity.setHiPaymtd(calculateHiPaymtd(setlinfoEntity));
+            setlinfoEntity.setHiPaymtd(CommonUtil.calcHiPaymtd(setlinfoEntity.getInsuplcAdmdvs(),setlinfoEntity.getMedType(),setlinfoEntity.getInsutype(),setlinfoEntity.getSetlTime()));
             setlinfoEntity.setMedinsType(MedInsTypeUtil.getMedInsType(setlinfoEntity));
             JSONArray setldetail = result.getJSONObject(OUTPUT).getJSONArray("setldetail");
             BigDecimal hospitalPart = BigDecimal.ZERO;

+ 46 - 0
src/main/java/thyyxxk/webserver/utils/CommonUtil.java

@@ -0,0 +1,46 @@
+package thyyxxk.webserver.utils;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:lihong
+ * @Date: 2023/1/12
+ */
+public class CommonUtil {
+    /**
+     * @description:计算医保支付方式
+     * @author: lihong
+     * @date: 2023/1/12 9:44
+     * @param: insuplcAdmdvs 参保地
+     * @param: medType 医疗类别
+     * @param: insurtype 险种类型
+     * @param: setlTime 结算时间
+     * @return: java.lang.Integer
+     **/
+    public static Integer calcHiPaymtd (String insuplcAdmdvs, String medType, String insurtype, Date setlTime){
+        //长沙市、县、浏阳、宁乡、望城、内五区的职工、居民的普通住院、外伤住院结算清单是按DRG传, 4
+        //普通住院 2101 外伤住院 22
+        List<String> medTypes = Arrays.asList("2101", "22");
+        //职工 310  居民 390
+        List<String> insurtypes = Arrays.asList("310", "390");
+        try {
+            if(setlTime.getTime() < DateUtil.parse("2023-01-01","yyyy-MM-dd").getTime()){
+                return 3;
+            }
+            //单病种
+            if (medType.equals("2102")) {
+                return  2;
+            }
+            if(insuplcAdmdvs.startsWith("430") && insurtypes.contains(insurtype) && medTypes.contains(medType)){
+                return 4;
+            }
+        }catch (Exception e){
+            return 1;
+        }
+        // 其他都是按项目 1
+        return 1;
+    }
+}