Browse Source

要求添加国家医保编码和名称

xiaochan 3 years ago
parent
commit
f02294a8bd

+ 5 - 3
src/main/java/thyyxxk/webserver/dao/his/LoginDao.java

@@ -13,10 +13,12 @@ import java.util.List;
 
 @Mapper
 public interface LoginDao {
-    @Select("select code, name, password, code_rs, " +
-            "deptCode=(select dept_code from a_employee_mi where code=a.code) " +
+    @Select("select a.code, b.name, a.password, a.code_rs, " +
+            "b.dept_code as dept_code," +
+            "rtrim(b.yb_code) as yb_code " +
             "from dj_user_base a " +
-            "where code_rs=#{codeRs} and del_flag=0")
+            "         left join a_employee_mi b on (a.code = b.code)  " +
+            "where a.code_rs=#{codeRs} and a.del_flag=0")
     UserInfo findUserByCodeRsFromDjUserBase(@Param("codeRs") String codeRs);
 
     @Select("select code, name, code_rs, password='123456' " +

+ 15 - 0
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/SiQueryDao.java

@@ -1,6 +1,7 @@
 package thyyxxk.webserver.dao.his.medicalinsurance;
 
 import org.apache.ibatis.annotations.*;
+import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
 import thyyxxk.webserver.entity.medicalinsurance.query.*;
 import thyyxxk.webserver.entity.medicalinsurance.setlinfo.TimesList;
@@ -222,6 +223,18 @@ public interface SiQueryDao {
                                           @Param("times") int times,
                                           @Param("sn") int sn);
 
+    @Select("<script>" +
+            "select national_code, national_name " +
+            "from yp_zd_dict " +
+            "where code in " +
+            "<foreach collection='list' item='item' index='index' open='(' close=')' separator=','>" +
+            "#{item}" +
+            "</foreach>" +
+            "and national_code is not null" +
+            "</script>")
+    List<GetDropdownBox> getDrugCountryCode(@Param("list") List<String> list);
+
+
     @Select("select a.feedetl_sn,b.charge_date as fee_ocur_time,a.cnt," +
             "cast(a.pric as decimal(16,2)) as pric, cast(a.det_item_fee_sumamt as decimal(16,2)) as det_item_fee_sumamt, " +
             "a.selfpay_prop,cast(a.fulamt_ownpay_amt as decimal(16,2)) as fulamt_ownpay_amt, " +
@@ -229,6 +242,8 @@ public interface SiQueryDao {
             "cast(a.inscp_scp_amt as decimal(16,2)) as inscp_scp_amt,a.chrgitm_lv, " +
             "med_list_codg=case when b.serial in ('','00') then (select max(national_code) from zd_charge_item where code=b.charge_code_mx) " +
             "else (select max(national_code) from yp_zd_dict where code=b.charge_code_mx) end, " +
+            "medListName=case when b.serial in ('','00') then (select max(national_name) from zd_charge_item where code=b.charge_code_mx) " +
+            "else (select max(national_name) from yp_zd_dict where code=b.charge_code_mx) end, " +
             "medins_list_name=case when b.serial in ('','00') then (select max(name) from zd_charge_item where code=b.charge_code_mx) " +
             "else (select max(name) from yp_zd_dict where code=b.charge_code_mx) end, " +
             "a.med_chrgitm_type,rtrim(b.ward_code) as bilg_dept_codg, " +

+ 8 - 1
src/main/java/thyyxxk/webserver/entity/medicalinsurance/query/SiSetlFeeDetl.java

@@ -2,6 +2,7 @@ package thyyxxk.webserver.entity.medicalinsurance.query;
 
 import lombok.Data;
 import thyyxxk.webserver.constants.sidicts.ChrgitmLv;
+import thyyxxk.webserver.constants.sidicts.MedChrgitmType;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -108,6 +109,12 @@ public class SiSetlFeeDetl implements Serializable {
      */
     private String medListCodg;
 
+    /**
+     * 医疗目录编码
+     */
+    private String medListName;
+
+
     /**
      * 医药机构目录编码
      */
@@ -119,7 +126,7 @@ public class SiSetlFeeDetl implements Serializable {
     private String medinsListName;
 
     /**
-     * 医疗收费项目类别
+     * 医疗收费项目类别  {@link MedChrgitmType}
      */
     private String medChrgitmType;
 

+ 2 - 2
src/main/java/thyyxxk/webserver/service/heliyongyao/RationalUseServer.java

@@ -77,7 +77,7 @@ public class RationalUseServer {
         String detailsXml = yaoPinXinXi(param.getInpatientNo(), param.getAdmissTimes(), param.getCfType(), yp, doct, yaoPinMap);
 
 
-        String js = String.format("\"BaseXml\": \"%s\", \"DetailsXml\" : \"%s\" ", baseXml, detailsXml);
+        String js = String.format("{\"BaseXml\": \"%s\", \"DetailsXml\" : \"%s\"}", baseXml, detailsXml);
         // "{\"BaseXml\": " + baseXml + " ,\"DetailsXml\": " + detailsXml + "";
         log.info("上传数据:{} ", js);
         try {
@@ -221,7 +221,7 @@ public class RationalUseServer {
                     .append("<pres_type>").append("ONCE".equals(item.getFrequCode()) ? "T" : "L").append("</pres_type>")
                     .append("<pres_time>").append(DateUtil.formatDatetime(item.getOrderTime())).append("</pres_time>")
                     .append("<name>").append(item.getOrderName()).append("</name>")
-                    .append("<his_code>").append(nullToBlank(item.getOrderName())).append("</his_code>")
+                    .append("<his_code>").append(nullToBlank(item.getOrderCode())).append("</his_code>")
                     .append("<insur_code>").append(nullToBlank(yp.getNationalCode())).append("</insur_code>")
                     .append("<approval>").append(nullToBlank(yp.getPzwh())).append("</approval>")
                     .append("<spec>").append(nullToBlank(item.getDrugSpecification())).append("</spec>")

+ 13 - 30
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiQueryService.java

@@ -102,8 +102,7 @@ public class SiQueryService {
         if (null == qryPsnBsInfo.getOnlyQry() && StringUtil.isBlank(qryPsnBsInfo.getMedType())) {
             return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "请选择患者的医疗类别!");
         }
-        if (StringUtil.isBlank(qryPsnBsInfo.getSocialNo()) && StringUtil.notBlank(qryPsnBsInfo.getPatNo())
-                && qryPsnBsInfo.getPatNo().length() >= 15) {
+        if (StringUtil.isBlank(qryPsnBsInfo.getSocialNo()) && StringUtil.notBlank(qryPsnBsInfo.getPatNo()) && qryPsnBsInfo.getPatNo().length() >= 15) {
             qryPsnBsInfo.setSocialNo(qryPsnBsInfo.getPatNo());
         }
         if (StringUtil.isBlank(qryPsnBsInfo.getSocialNo())) {
@@ -498,8 +497,7 @@ public class SiQueryService {
     }
 
     public ResultVo<List<TrtInfo>> checkPersonTreatment(BscQryPrm q) {
-        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.CHECK_PERSON_TREATMENT,
-                dao.selectAdmdvs(q.getPatNo(), q.getTimes()));
+        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.CHECK_PERSON_TREATMENT, dao.selectAdmdvs(q.getPatNo(), q.getTimes()));
         JSONObject data = new JSONObject();
         data.put("psn_no", q.getPsnNo());
         data.put("insutype", q.getInsutype());
@@ -548,13 +546,11 @@ public class SiQueryService {
         if (StringUtil.notBlank(q.getPatNo())) {
             String psnNo = dao.selectPsnNo(q.getPatNo());
             if (null == psnNo) {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "【住院号/门诊号:" + q.getPatNo() +
-                        "】没有找到此患者在我院的医保在院信息,请核实。");
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "【住院号/门诊号:" + q.getPatNo() + "】没有找到此患者在我院的医保在院信息,请核实。");
             }
             q.setPsnNo(psnNo);
         }
-        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_IN_HOSPITAL_PATIENTS_INFO,
-                dao.selectAdmdvsByPatNoAndPsnNo(q.getPatNo(), q.getPsnNo()));
+        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_IN_HOSPITAL_PATIENTS_INFO, dao.selectAdmdvsByPatNoAndPsnNo(q.getPatNo(), q.getPsnNo()));
         JSONObject data = new JSONObject();
         data.put("psn_no", q.getPsnNo());
         data.put("begntime", DateUtil.formatDatetime(q.getBegntime()));
@@ -591,8 +587,7 @@ public class SiQueryService {
     }
 
     public ResultVo<List<RefMedin>> queryPersonnelTransferHospitalInfo(BscQryPrm q) {
-        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_PERSONNEL_TRANSFER_HOSPITAL_INFO,
-                dao.selectAdmdvsByPatNoAndPsnNo(q.getPatNo(), q.getPsnNo()));
+        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_PERSONNEL_TRANSFER_HOSPITAL_INFO, dao.selectAdmdvsByPatNoAndPsnNo(q.getPatNo(), q.getPsnNo()));
         JSONObject data = new JSONObject();
         data.put("psn_no", q.getPsnNo());
         data.put("begntime", DateUtil.formatDatetime(q.getBegntime()));
@@ -657,13 +652,11 @@ public class SiQueryService {
         if (null == q.getPsnNo()) {
             String psnNo = dao.selectPsnNo(q.getPatNo());
             if (null == psnNo) {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "【住院号/门诊号:" + q.getPatNo() +
-                        "】未找到此患者的医保参保信息,请核实。");
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "【住院号/门诊号:" + q.getPatNo() + "】未找到此患者的医保参保信息,请核实。");
             }
             q.setPsnNo(psnNo);
         }
-        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_SPECIAL_CHRONIC_DISEASES_MEDICAL_RECORD,
-                dao.selectAdmdvsByPsnNo(q.getPsnNo()));
+        JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_SPECIAL_CHRONIC_DISEASES_MEDICAL_RECORD, dao.selectAdmdvsByPsnNo(q.getPsnNo()));
         JSONObject data = new JSONObject();
         data.put("psn_no", q.getPsnNo());
         data.put("begntime", DateUtil.formatDatetime(q.getBegntime()));
@@ -734,14 +727,12 @@ public class SiQueryService {
         if (null == q.getPsnNo()) {
             String psnNo = dao.selectPsnNo(q.getPatNo());
             if (null == psnNo) {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "【住院号/门诊号:" + q.getPatNo() +
-                        "】未找到此患者的医保参保信息,请核实。");
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "【住院号/门诊号:" + q.getPatNo() + "】未找到此患者的医保参保信息,请核实。");
             }
             q.setPsnNo(psnNo);
         }
         if (StringUtil.isBlank(q.getAdmdvs())) {
-            String admdvs = StringUtil.isBlank(q.getPatNo()) ? dao.selectAdmdvsByPsnNo(q.getPsnNo())
-                    : dao.selectAdmdvsByPatNo(q.getPatNo());
+            String admdvs = StringUtil.isBlank(q.getPatNo()) ? dao.selectAdmdvsByPsnNo(q.getPsnNo()) : dao.selectAdmdvsByPatNo(q.getPatNo());
             q.setAdmdvs(admdvs);
         }
         JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_SPECIAL_CHRONIC_DISEASES_ACCREDITATION, q.getAdmdvs());
@@ -1576,9 +1567,7 @@ public class SiQueryService {
         return ResultVoUtil.success(resultList);
     }
 
-    private void fillSetlStatisticResult(List<SetlStatisticResult> resultList,
-                                         List<BaseSetlStatistics> admdvsSetldataList,
-                                         SetlStatisticResult resultItem) {
+    private void fillSetlStatisticResult(List<SetlStatisticResult> resultList, List<BaseSetlStatistics> admdvsSetldataList, SetlStatisticResult resultItem) {
         String medfeeSumamt = "0";
         String baseMedFundpaySumamt = "0";
         String bigDssFundpaySumamt = "0";
@@ -1591,8 +1580,7 @@ public class SiQueryService {
             bigDssFundpaySumamt = DecimalUtil.add(bigDssFundpaySumamt, itm.getHifmiPay());
             clvFundpaySumamt = DecimalUtil.add(clvFundpaySumamt, itm.getCvlservPay());
             fundpaySumamt = DecimalUtil.add(fundpaySumamt, itm.getFundPaySumamt());
-            String othpay = DecimalUtil.minusLink(itm.getFundPaySumamt(), itm.getHifpPay(),
-                    itm.getHifmiPay(), itm.getCvlservPay());
+            String othpay = DecimalUtil.minusLink(itm.getFundPaySumamt(), itm.getHifpPay(), itm.getHifmiPay(), itm.getCvlservPay());
             othFundpaySumamt = DecimalUtil.add(othFundpaySumamt, othpay);
         }
         resultItem.setMedfeeSumamt(medfeeSumamt);
@@ -1631,11 +1619,7 @@ public class SiQueryService {
         return ResultVoUtil.success(list);
     }
 
-    public ResultVo<List<ZyActpatient>> weiJieSuanZaiYuanHuanZhe(String patNo,
-                                                                 String startTime,
-                                                                 String endTime,
-                                                                 String name,
-                                                                 String certno) {
+    public ResultVo<List<ZyActpatient>> weiJieSuanZaiYuanHuanZhe(String patNo, String startTime, String endTime, String name, String certno) {
         List<ZyActpatient> actpatients = dao.zaiYuanHuanZheXinXi(patNo, startTime, endTime, StringUtil.isContainChinese(name), certno);
         Map<String, String> insuplcAdmdvs = new HashMap<>();
         for (ZyActpatient actpatient : actpatients) {
@@ -1669,8 +1653,7 @@ public class SiQueryService {
         if (registerCalendar.after(ledgerCalendar)) {
             return ResultVoUtil.success();
         }
-        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("医保登记日期【%s】不能小于断账日期【%s】,请修改。",
-                DateUtil.formatDatetime(registerDate), DateUtil.formatDatetime(ledgerAccountDate)));
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("医保登记日期【%s】不能小于断账日期【%s】,请修改。", DateUtil.formatDatetime(registerDate), DateUtil.formatDatetime(ledgerAccountDate)));
     }
 
 }