Bläddra i källkod

解决诊断传参问题,医保支付方式逻辑修改

lihong 2 år sedan
förälder
incheckning
a9248c0cba

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/UpIdCollectionDao.java

@@ -350,7 +350,7 @@ public interface UpIdCollectionDao extends BaseMapper<SetlinfoUpld> {
     @Select("select top ${pageSize} * from (" +
             "select " +
             "row_number() over (order by setl_time) as rowNumber," +
-            "rtrim(a.pat_no) pat_no,a.times,ledger_sn,psn_name,gend,brdy,insutype,psn_type,mdtrt_id,setl_id,setl_time, " +
+            "rtrim(a.pat_no) pat_no,a.age,a.times,ledger_sn,psn_name,gend,brdy,insutype,psn_type,mdtrt_id,setl_id,setl_time, " +
             "       a.med_type,medfee_sumamt,fund_pay_sumamt, " +
             "       acct_pay,psn_cash_pay,clr_optins,clr_optins_name = (select name from t_region where code=clr_optins), " +
             "       outDeptName=(select rtrim(name) from zd_unit_code where code=isnull(zk_ward,small_dept))," +

+ 2 - 4
src/main/java/thyyxxk/webserver/service/externalhttp/DrgWebServices.java

@@ -3,8 +3,6 @@ package thyyxxk.webserver.service.externalhttp;
 import com.alibaba.fastjson.JSONObject;
 import com.dtflys.forest.annotation.JSONBody;
 import com.dtflys.forest.annotation.Post;
-import com.dtflys.forest.annotation.PostRequest;
-import com.dtflys.forest.annotation.Query;
 import thyyxxk.webserver.entity.vo.DrgGroupTestVO;
 
 /**
@@ -14,8 +12,8 @@ import thyyxxk.webserver.entity.vo.DrgGroupTestVO;
  */
 public interface DrgWebServices {
 
-    @PostRequest(url = "http://172.16.32.126:8080/drg_web/localHelp/drg_dagns/list.action")
-    String localHelpDrgDagns(@Query DrgGroupTestVO drgGroupTestVO);
+    @Post(url = "http://172.16.32.126:8080/drg_web/localHelp/drg_dagns/list.action")
+    String localHelpDrgDagns(@JSONBody  DrgGroupTestVO drgGroupTestVO);
 
     @Post(url = "http://172.16.32.126:8080/drg_web/drgGroupThird/V2/setListDrg.action")
     JSONObject drgQuality(@JSONBody JSONObject obj);

+ 44 - 0
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -181,6 +181,7 @@ public class SetlListUpldService {
         jsonObject.replace("input", input);
         // 这里是上传
         JSONObject result = exec.executeTrade(jsonObject, SiFunction.UPLOAD_SI_SETTLE_INFO);
+        //JSONObject result =null;
 
         log.info("医保结算信息上传 \n操作人:{}\n参数:{} \n结果:{}", TokenUtil.getTokenUserId(), jsonObject, result);
         if (null == result) {
@@ -401,6 +402,7 @@ public class SetlListUpldService {
         if (isFertilitySign) {
             setlinfoUpld.setHiPaymtd("1");
         }
+        setlinfoUpld.setHiPaymtd(getDrgHaiPay(setlinfoUpld.getInsuplc(),setlinfoUpld.getHiPaymtd()));
         //  如果是 职工基本医疗保险的话 没有单位名称和地址 那么就 写死成 普通职工 和 现住址
         if ("310".equals(setlinfoUpld.getHiType())) {
             if (StringUtil.isBlank(setlinfoUpld.getEmpAddr())) {
@@ -468,6 +470,22 @@ public class SetlListUpldService {
         return ResultVoUtil.success(upldCollection);
     }
 
+   private String getDrgHaiPay(String insuplcAdmdvs,String defaultValue){
+        if(StringUtil.isBlank(insuplcAdmdvs)){
+            return defaultValue;
+        }
+        if("4".equals(defaultValue)){
+            return  defaultValue;
+        }
+       String[] drgCityCode =  {"4301","4302","4303","4304","4310"};
+       for(String code:drgCityCode){
+           if(insuplcAdmdvs.startsWith(code)){
+               return "4";
+           }
+       }
+       return defaultValue;
+   }
+
     /**
      * 特级护理天数如果是 0 就不传值
      *
@@ -634,17 +652,42 @@ public class SetlListUpldService {
         } else {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "选中上传的患者审核状态必须要全部为审核通过。");
         }
+        //SetlUploadResultVO setlUploadResultVO = new SetlUploadResultVO();
+        //List<UploadResultInfo> uploadResultInfos = new ArrayList<>();
+        //setlUploadResultVO.setTotalNum(param.size());
+        //int successNum = 0;
+        //int uploadErrNum = 0;
+        //int errNum = 0 ;
         for (int i = 0; i < param.size(); i++) {
             SiSetlinfoTemp siPatInfo = param.get(i);
+            //UploadResultInfo uploadResultInfo = new UploadResultInfo();
+            //uploadResultInfo.setPatNo(siPatInfo.getPatNo());
+            //uploadResultInfo.setTimes(siPatInfo.getTimes());
+            //uploadResultInfo.setLedgerSn(siPatInfo.getLedgerSn());
             try {
                 ResultVo<String> resultVo = upldSetlList(siPatInfo.getPatNo(), siPatInfo.getTimes(), siPatInfo.getLedgerSn());
+                //uploadResultInfo.setResult(resultVo.getMessage());
+                //if(resultVo.getCode() == 200){
+                //    ++successNum;
+                //}else {
+                //    ++uploadErrNum;
+                //}
+                //uploadResultInfo.setType(resultVo.getCode() == 200 ? "0" : "1");
                 upldSetlErrorMessage(siPatInfo.getPatNo(), siPatInfo.getTimes(), siPatInfo.getLedgerSn(), resultVo.getMessage(), resultVo.getCode() == 200 ? 0 : 1, i + 1, param.size(), siPatInfo.getOutDeptName(), siPatInfo.getPsnName(), siPatInfo.getReferPhysicianName());
             } catch (Exception e) {
                 log.info("批量上传结算单错误:{}", JSON.toJSONString(e));
                 e.printStackTrace();
+                //uploadResultInfo.setResult(e.getMessage());
+                //uploadResultInfo.setType("2");
+                //++errNum;
                 upldSetlErrorMessage(siPatInfo.getPatNo(), siPatInfo.getTimes(), siPatInfo.getLedgerSn(), e.getMessage(), 2, i + 1, param.size(), siPatInfo.getOutDeptName(), siPatInfo.getPsnName(), siPatInfo.getReferPhysicianName());
             }
+            //uploadResultInfos.add(uploadResultInfo);
         }
+        //setlUploadResultVO.setUploadResultInfos(uploadResultInfos);
+        //setlUploadResultVO.setUploadErrNum(uploadErrNum);
+        //setlUploadResultVO.setSuccessNum(successNum);
+        //setlUploadResultVO.setErrNum(errNum);
         return ResultVoUtil.success();
     }
 
@@ -1785,6 +1828,7 @@ public class SetlListUpldService {
         if (isFertilitySign) {
             setlinfoUpld.setHiPaymtd("1");
         }
+        setlinfoUpld.setHiPaymtd(getDrgHaiPay(setlinfoUpld.getInsuplc(),setlinfoUpld.getHiPaymtd()));
         //  如果是 职工基本医疗保险的话 没有单位名称和地址 那么就 写死成 普通职工 和 现住址
         if ("310".equals(setlinfoUpld.getHiType())) {
             if (StringUtil.isBlank(setlinfoUpld.getEmpAddr())) {

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

@@ -639,6 +639,13 @@ public class SiZyService {
         String medType = setlInfo.getMedType();
         String insuplcAdmdvs = setlInfo.getInsuplcAdmdvs();
         String insutype = setlInfo.getInsutype();
+        //先按drg上传 长沙 4301 株洲4302   湘潭 4303   衡阳4304  郴州4310
+        String[] drgCityCode =  {"4301","4302","4303","4304","4310"};
+        for(String code:drgCityCode){
+            if(insuplcAdmdvs.startsWith(code)){
+                return 4;
+            }
+        }
         if (medType.equals("2101") || medType.equals("22")) {
             List<String> insuplcAdmdvses = Arrays.asList("430121", "430181");
             List<String> insutypes = Arrays.asList("340", "350");