瀏覽代碼

新医保接口

lighter 3 年之前
父節點
當前提交
4e5f7a964d

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>web-server</artifactId>
-    <version>2</version>
+    <version>1</version>
     <name>web-server</name>
     <description>server for yibao-web</description>
     <properties>

+ 10 - 0
src/main/java/thyyxxk/webserver/constants/sidicts/SiFunction.java

@@ -378,6 +378,16 @@ public enum SiFunction {
      * */
     UPLOAD_SI_SETTLE_INFO("4101", "结算清单上传"),
 
+    /**
+     * 通过此交易修改医疗保障基金结算清单信息(医疗保障基金结算清单信息状态修改)
+     * */
+    MODIFY_SI_SETTLE_STATE("4102", ""),
+
+    /**
+     * 通过此交易查询医疗保障基金结算清单详细信息(医疗保障基金结算清单信息查询)
+     * */
+    QUERY_SI_SETTLE_INFO("4103", ""),
+
     /* =========================================== 自费病人就医信息 ========================================== */
     /**
      * 通过此交易上传自费病人费用明细信息(自费病人费用明细信息上传)

+ 59 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/manage/deptmanage/DeptInfoQuery.java

@@ -0,0 +1,59 @@
+package thyyxxk.webserver.entity.medicalinsurance.manage.deptmanage;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+@Data
+public class DeptInfoQuery {
+    @JSONField(name = "infno")
+    private String infno;
+
+    @JSONField(name = "msgid")
+    private String msgid;
+
+    @JSONField(name = "mdtrtarea_admvs")
+    private String mdtrtareaAdmvs;
+
+    @JSONField(name = "insuplc_admdvs")
+    private String insuplcAdmdvs;
+
+    @JSONField(name = "recer_sys_code")
+    private String recerSysCode;
+
+    @JSONField(name = "dev_no")
+    private String devNo;
+
+    @JSONField(name = "dev_safe_info")
+    private String devSafeInfo;
+
+    @JSONField(name = "cainfo")
+    private String cainfo;
+
+    @JSONField(name = "signtype")
+    private String signtype;
+
+    @JSONField(name = "infver")
+    private String infver;
+
+    @JSONField(name = "opter_type")
+    private String opterType;
+
+    @JSONField(name = "opter")
+    private String opter;
+
+    @JSONField(name = "opter_name")
+    private String opterName;
+
+    @JSONField(name = "inf_time")
+    private String infTime;
+
+    @JSONField(name = "fixmedins_code")
+    private String fixmedinsCode;
+
+    @JSONField(name = "fixmedins_name")
+    private String fixmedinsName;
+
+    @JSONField(name = "sign_no")
+    private String signNo;
+
+}

+ 23 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/manage/deptmanage/DrInfoQuery.java

@@ -0,0 +1,23 @@
+package thyyxxk.webserver.entity.medicalinsurance.manage.deptmanage;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+@Data
+public class DrInfoQuery {
+    @JSONField(name = "prac_psn_type")
+    private String pracPsnType;
+
+    @JSONField(name = "psn_cert_type")
+    private String psnCertType;
+
+    @JSONField(name = "certno")
+    private String certno;
+
+    @JSONField(name = "prac_psn_name")
+    private String pracPsnName;
+
+    @JSONField(name = "prac_psn_code")
+    private String pracPsnCode;
+
+}

+ 23 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/manage/examination/BilgItemInfo.java

@@ -0,0 +1,23 @@
+package thyyxxk.webserver.entity.medicalinsurance.manage.examination;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+@Data
+public class BilgItemInfo {
+    @JSONField(name = "psn_no")
+    private String psnNo;
+
+    @JSONField(name = "exam_org_code")
+    private String examOrgCode;
+
+    @JSONField(name = "exam_org_name")
+    private String examOrgName;
+
+    @JSONField(name = "exam_item_code")
+    private String examItemCode;
+
+    @JSONField(name = "exam_item_name")
+    private String examItemName;
+
+}

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

@@ -15,11 +15,14 @@ import thyyxxk.webserver.dao.his.medicalinsurance.SiManageDao;
 import thyyxxk.webserver.dao.his.medicalinsurance.SiSetlinfoDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
-import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.medicalinsurance.log.SiLog;
 import thyyxxk.webserver.entity.medicalinsurance.manage.*;
 import thyyxxk.webserver.entity.medicalinsurance.manage.deptmanage.DeptInfo;
+import thyyxxk.webserver.entity.medicalinsurance.manage.deptmanage.DeptInfoQuery;
+import thyyxxk.webserver.entity.medicalinsurance.manage.deptmanage.DrInfoQuery;
 import thyyxxk.webserver.entity.medicalinsurance.manage.detailanalyse.MainPart;
+import thyyxxk.webserver.entity.medicalinsurance.manage.examination.BilgItemInfo;
+import thyyxxk.webserver.entity.medicalinsurance.manage.goods.*;
 import thyyxxk.webserver.entity.medicalinsurance.setlinfo.SiSetlinfo;
 import thyyxxk.webserver.entity.medicalinsurance.setlinfo.SlctSetlPrm;
 import thyyxxk.webserver.utils.*;
@@ -397,4 +400,159 @@ public class SiManageService {
         return SiUtil.makeReturnWithoutOutput(result, "科室信息撤销成功。");
     }
 
+    public ResultVo<JSONObject> queryDeptInfo(DeptInfoQuery query) {
+        String ref = JSONObject.toJSONString(query);
+        JSONObject input = exec.makeTradeHeader(SiFunction.QUERY_DEPARTMENT_INFO);
+        input.getJSONObject("input").put("data", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.QUERY_DEPARTMENT_INFO);
+        log.info("【操作员:{}】,科室信息查询:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
+        Integer infcode = result.getInteger(RESULT_CODE);
+        if (null == infcode) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
+        }
+        if (infcode == 0) {
+            return ResultVoUtil.success(result.getJSONObject(OUTPUT));
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result.getString(ERROR_MESSAGE));
+    }
+
+    // 接口存在问题
+    public ResultVo<JSONObject> queryDrInfo(DrInfoQuery query) {
+        String ref = JSONObject.toJSONString(query);
+        JSONObject input = exec.makeTradeHeader(SiFunction.QUERY_MEDICAL_STAFF_INFO);
+        input.getJSONObject("input").put("data", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.QUERY_MEDICAL_STAFF_INFO);
+        log.info("【操作员:{}】,医执人员信息查询:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
+        Integer infcode = result.getInteger(RESULT_CODE);
+        if (null == infcode) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
+        }
+        if (infcode == 0) {
+            return ResultVoUtil.success(result.getJSONObject(OUTPUT));
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result.getString(ERROR_MESSAGE));
+    }
+
+    public ResultVo<JSONObject> queryExaminationExInfo(BilgItemInfo bilgItemInfo) {
+        String ref = JSONObject.toJSONString(bilgItemInfo);
+        JSONObject input = exec.makeTradeHeader(SiFunction.QUERY_MUTUAL_ACCREDIT_INFO);
+        input.getJSONObject("input").put("bilgiteminfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.QUERY_MUTUAL_ACCREDIT_INFO);
+        log.info("【操作员:{}】,项目互认信息查询:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
+        Integer infcode = result.getInteger(RESULT_CODE);
+        if (null == infcode) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
+        }
+        if (infcode == 0) {
+            return ResultVoUtil.success(result.getJSONObject(OUTPUT));
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result.getString(ERROR_MESSAGE));
+    }
+
+    public ResultVo<JSONObject> queryExaminationExInfo(String psnNo, String reportNo) {
+        JSONObject input = exec.makeTradeHeader(SiFunction.QUERY_DIAGNOSIS_REPORT_DETAIL);
+        JSONObject rptdetailinfo = new JSONObject();
+        rptdetailinfo.put("psn_no", psnNo);
+        rptdetailinfo.put("rpotc_no", reportNo);
+        rptdetailinfo.put("fixmedins_code", SiUtil.INSTITUTION_ID);
+        input.getJSONObject("input").put("rptdetailinfo", rptdetailinfo);
+        JSONObject result = exec.executeTrade(input, SiFunction.QUERY_DIAGNOSIS_REPORT_DETAIL);
+        log.info("【操作员:{}】,报告明细信息查询:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
+        Integer infcode = result.getInteger(RESULT_CODE);
+        if (null == infcode) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
+        }
+        if (infcode == 0) {
+            return ResultVoUtil.success(result.getJSONObject(OUTPUT));
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result.getString(ERROR_MESSAGE));
+    }
+
+    public ResultVo<String> uploadInvinfo(InvinfoUpload invinfo) {
+        String ref = JSONObject.toJSONStringWithDateFormat(invinfo, "yyyy-MM-dd");
+        JSONObject input = exec.makeTradeHeader(SiFunction.UPLOAD_COMMODITY_INVENTORY);
+        input.getJSONObject("input").put("invinfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.UPLOAD_COMMODITY_INVENTORY);
+        return SiUtil.makeReturnWithoutOutput(result, "商品盘存上传成功。");
+    }
+
+    public ResultVo<String> modifyInvinfo(InvinfoModify invinfo) {
+        String ref = JSONObject.toJSONStringWithDateFormat(invinfo, "yyyy-MM-dd HH:mm:ss");
+        JSONObject input = exec.makeTradeHeader(SiFunction.CHANGE_COMMODITY_INVENTORY);
+        input.getJSONObject("input").put("invinfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.CHANGE_COMMODITY_INVENTORY);
+        return SiUtil.makeReturnWithoutOutput(result, "商品盘存修改成功。");
+    }
+
+    public ResultVo<String> purchaseGoods(PurcinfoBought purcinfo) {
+        String ref = JSONObject.toJSONString(purcinfo);
+        JSONObject input = exec.makeTradeHeader(SiFunction.UPLOAD_COMMODITY_PURCHASE);
+        input.getJSONObject("input").put("purcinfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.UPLOAD_COMMODITY_PURCHASE);
+        return SiUtil.makeReturnWithoutOutput(result, "商品采购上传成功。");
+    }
+
+    public ResultVo<String> returnGoods(PurcinfoBought purcinfo) {
+        String ref = JSONObject.toJSONString(purcinfo);
+        JSONObject input = exec.makeTradeHeader(SiFunction.UPLOAD_COMMODITY_PURCHASE_RETURN);
+        input.getJSONObject("input").put("purcinfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.UPLOAD_COMMODITY_PURCHASE_RETURN);
+        return SiUtil.makeReturnWithoutOutput(result, "商品采购退货成功。");
+    }
+
+    public ResultVo<String> saleGoods(SelinfoSold selinfo) {
+        String ref = JSONObject.toJSONString(selinfo);
+        JSONObject input = exec.makeTradeHeader(SiFunction.UPLOAD_COMMODITY_SALES);
+        input.getJSONObject("input").put("selinfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.UPLOAD_COMMODITY_SALES);
+        return SiUtil.makeReturnWithoutOutput(result, "商品销售上传成功。");
+    }
+
+    public ResultVo<String> returnSales(SelinfoReturn selinfo) {
+        String ref = JSONObject.toJSONString(selinfo);
+        JSONObject input = exec.makeTradeHeader(SiFunction.UPLOAD_COMMODITY_SALES_RETURN);
+        input.getJSONObject("input").put("selinfo", JSONObject.parseObject(ref));
+        JSONObject result = exec.executeTrade(input, SiFunction.UPLOAD_COMMODITY_SALES_RETURN);
+        return SiUtil.makeReturnWithoutOutput(result, "商品销售退货成功。");
+    }
+
+    public ResultVo<String> deleteGoods(String fixmedinsBchno, int type) {
+        JSONObject input = exec.makeTradeHeader(SiFunction.DELETE_COMMODITY_INFO);
+        JSONObject data = new JSONObject();
+        data.put("fixmedins_bchno", fixmedinsBchno);
+        data.put("inv_data_type", type);    // 1-盘存信息;2-库存变更信息;3-采购信息;4-销售信息
+        input.getJSONObject("input").put("data", data);
+        JSONObject result = exec.executeTrade(input, SiFunction.DELETE_COMMODITY_INFO);
+        return SiUtil.makeReturnWithoutOutput(result, "商品删除成功。");
+    }
+
+    public ResultVo<String> modifySetllistState(String psnNo, String setlId, int type) {
+        JSONObject input = exec.makeTradeHeader(SiFunction.MODIFY_SI_SETTLE_STATE);
+        JSONObject data = new JSONObject();
+        data.put("psn_no", psnNo);
+        data.put("setl_id", setlId);
+        data.put("stas_type", type);    // 0未提交,1已提交
+        input.getJSONObject("input").put("data", data);
+        JSONObject result = exec.executeTrade(input, SiFunction.MODIFY_SI_SETTLE_STATE);
+        log.info("【操作员:{}】,结算清单状态修改:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
+        return SiUtil.makeReturnWithoutOutput(result, "结算清单状态修改成功。");
+    }
+
+    public ResultVo<JSONObject> querySetllistInfo(String psnNo, String setlId) {
+        JSONObject input = exec.makeTradeHeader(SiFunction.QUERY_SI_SETTLE_INFO);
+        JSONObject data = new JSONObject();
+        data.put("psn_no", psnNo);
+        data.put("setl_id", setlId);
+        input.getJSONObject("input").put("data", data);
+        JSONObject result = exec.executeTrade(input, SiFunction.QUERY_SI_SETTLE_INFO);
+        log.info("【操作员:{}】,结算清单信息查询:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
+        Integer infcode = result.getInteger(RESULT_CODE);
+        if (null == infcode) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
+        }
+        if (infcode == 0) {
+            return ResultVoUtil.success(result.getJSONObject(OUTPUT));
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result.getString(ERROR_MESSAGE));
+    }
 }

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

@@ -550,7 +550,8 @@ public class SiQueryService {
             }
             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()));

+ 2 - 0
src/main/java/thyyxxk/webserver/service/triage/TriageService.java

@@ -195,6 +195,8 @@ public class TriageService {
         if (param.getAction() == 1) {
             if (null != result && result.equals("0")) {
                 dao.updateStatus(param.getSerialNo());
+            } else {
+                log.error("消息推送失败,没有找到在线的分诊台连接。{}", prm);
             }
         }
         return ResultVoUtil.success(result);