Browse Source

修改建档接口

humingfen 4 years ago
parent
commit
40a6c20938

+ 84 - 43
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -82,6 +82,8 @@ public class YkyyEntranceService {
    private final static String updateJdxx="http://192.168.20.55:10023/ykyy/updateJdxx";
    private final static String updateJzkh = "http://192.168.20.55:10023/ykyy/updateJzkh";
    private final static String orgCode ="350211A5004";
    private final static String orgName ="厦门大学附属厦门眼科中心";
@ -3107,33 +3109,92 @@ public class YkyyEntranceService {
        return content;
    }
    //判断居民是否建过档,没有就建档
    public JSONObject patientJDKH(String patientId, String idcard, String name,String phoneNum, String medicare) throws Exception {
        JSONObject res = new JSONObject();
        //查询是否建档
        String brid = "";
        String bridSql = "SELECT brid \"brid\" from portal_his.V_ZKSG_BRCX@xec_link where jzkh = '" + medicare + "' ";
    //获取调用hospital-entrance createSQLQuery 返回结果
    public JSONArray getSqlResult(String sql) throws Exception {
        Map<String, Object> params = new HashedMap();
        params.put("sql", bridSql);
        logger.info("bridSql:" + bridSql);
        params.put("sql", sql);
        HttpResponse response = HttpUtils.doGet(url, params);
        String content = response.getContent();
        logger.info("sql:" + sql);
        logger.info("response:" + content);
        JSONObject rs = JSON.parseObject(content);
        Integer status = rs.getInteger("status");
        JSONObject rsult = JSON.parseObject(content);
        Integer status = rsult.getInteger("status");
        if (status == 200) {
            JSONArray array = rs.getJSONArray("detailModelList");
            int size = array.size();
            if (size == 1) {
                brid = ((JSONObject) array.get(0)).getString("BRID");
            } else if (size > 1) {
            JSONArray array = rsult.getJSONArray("detailModelList");
            return array;
        }
        return null;
    }
    //判断居民是否建过档,没有就建档
    public JSONObject patientJDKH(String idcard, String name, String phoneNum, String medicare) throws Exception {
        JSONObject res = new JSONObject();
        Float brid = null;
        //根据身份证查询是否建档
        String sfzhSql = "SELECT jzkh \"jzkh\" ,brid \"brid\" from portal_his.V_ZKSG_BRCX@xec_link where sfzh = '" + idcard + "' ";
        //根据社保卡查询是否建档
        String jzkhSql = "SELECT brid \"brid\",sfzh \"sfzh\" from portal_his.V_ZKSG_BRCX@xec_link where jzkh = '" + medicare + "' ";
        JSONArray sfzhArray = getSqlResult(sfzhSql);
        int size = sfzhArray.size();
        if (size == 1) {
            JSONObject json = sfzhArray.getJSONObject(0);
            Object jzkh = json.get("JZKH");//社保卡
            //获取居民信息
            brid = json.getFloat("brid");//病人id
            if (jzkh != null && !jzkh.toString().equals(medicare)) {//判断是否跟当前医保卡号一致
                res.put("status", -1);
                res.put("message", "该居民存在多条建档信息!");
                res.put("message", "您输入的卡号和该就诊人在医院预留的卡号不一致,请重新输入。");
                return res;
            } else if (jzkh == null) {//若为空则更新社保卡
                Map<String, Object> updateParams = new HashedMap();
                updateParams.put("brid", brid);
                updateParams.put("jzkh", medicare);
                logger.info("更新params:" + updateParams);
                HttpResponse updateResponse = HttpUtils.doGet(updateJzkh, updateParams);
                String updateContent = updateResponse.getContent();
                logger.info("更新患者信息updateResponse:" + updateContent);
                JSONObject rsult = JSON.parseObject(updateContent);
                Integer s = rsult.getInteger("status");
                if (s != 200) {
                    res.put("status", -1);
                    res.put("message", "更新社保卡失败!");
                    return res;
                }
            }
        } else if (size > 1) {//如果存在多条数据,查看是否有跟当前社保卡号一致的,如果有则跳过,如果社保卡都为空则取其中一条更新,否则就提示与预留卡号不一致
            String sql = "SELECT brid \"brid\" from portal_his.V_ZKSG_BRCX@xec_link where sfzh = '" + idcard + "' and  jzkh = '" + medicare + "' ";
            JSONArray array = getSqlResult(sql);
            logger.info("查询身份证和社保卡:" + array.toString());
            if (array.size() == 1) {
                brid = sfzhArray.getJSONObject(0).getFloat("brid");
            } else { //判断社保卡号是否都为空
                String nullSql = "SELECT brid \"brid\" from portal_his.V_ZKSG_BRCX@xec_link where sfzh = '" + idcard + "' and  jzkh is null ";
                Integer count = getSqlResult(nullSql).size();
                if (count == size) {//如果都为空就默认取一条,然后更新社保卡号
                    brid = sfzhArray.getJSONObject(0).getFloat("brid");
                    Map<String, Object> updateParams = new HashedMap();
                    updateParams.put("brid", brid);
                    updateParams.put("jzkh", medicare);
                    logger.info("更新params:" + updateParams);
                    HttpResponse updateResponse = HttpUtils.doGet(updateJzkh, updateParams);
                    String updateContent = updateResponse.getContent();
                    logger.info("更新患者信息updateResponse:" + updateContent);
                    JSONObject rsult = JSON.parseObject(updateContent);
                    Integer s = rsult.getInteger("status");
                    if (s != 200) {
                        res.put("status", -1);
                        res.put("message", "更新社保卡失败!");
                        return res;
                    }
                }
            }
        } else { //身份证号没查到信息,就用社保卡号查询
            JSONArray jzkhArray = getSqlResult(jzkhSql);
            brid = jzkhArray.getJSONObject(0).getFloat("brid");
        }
        //先通过身份证查询是否有这个病人id 如果有直接返回 如果没有则新建
        if (StringUtil.isBlank(brid)) {
        //查询是否有这个病人id 如果有直接返回 如果没有则新建
        if (brid != null)
        {
            Map<String, Object> params1 = new HashedMap();
            params1.put("brxm", name);
            params1.put("csny", IdCardUtil.getBirthdayForIdcardStr(idcard));
@ -3146,37 +3207,17 @@ public class YkyyEntranceService {
            params1.put("zy", 0);
            HttpResponse response1 = HttpUtils.doGet(saveJdxxUrl, params1);
            String content1 = response1.getContent();
            logger.info("params1:" + params1);
            logger.info("response1:" + content1);
            logger.info("建档params:" + params1);
            logger.info("建档response:" + content1);
            JSONObject rs1 = JSON.parseObject(content1);
            if (rs1.getInteger("status") != 200) {
                res.put("status", -1);
                res.put("message", "操作失败,失败原因:" + rs1.getString("message"));
                res.put("message", "建档失败,失败原因:" + rs1.getString("message"));
                return res;
            } else {
                //获取病人id
                response = HttpUtils.doGet(url, params);
                content = response.getContent();
                rs = JSON.parseObject(content);
                status = rs.getInteger("status");
                if (status == 200) {
                    res.put("status", 200);
                    /*JSONArray array = rs.getJSONArray("detailModelList");
                    int size = array.size();
                    if(size == 1){
                        logger.info("array:" + array.toString());
                        brid = ((JSONObject)array.get(0)).getString("brid");
                        res.put("status", 200);
                        res.put("message", brid);
                        logger.info("brid:" + brid);
                    }else if (size > 1){
                        res.put("status", -1);
                        res.put("message", "该居民存在多条建档信息!");
                        return res;
                    }*/
                }
            }
        }
        return res;
    }
}

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/hospital/WlyyFamilyMemberController.java

@ -352,7 +352,7 @@ public class WlyyFamilyMemberController extends EnvelopRestEndpoint {
                    id = jsonObject.get("id").toString();
                }
                //获取建档信息
                JSONObject jdObject = ykyyEntranceService.patientJDKH(patientId, idCard,familyName,username,medicare);
                JSONObject jdObject = ykyyEntranceService.patientJDKH(idCard,familyName,username,medicare);
                if(jdObject.getInteger("status") == 200) {
                    mixEnvelop = wlyyFamilyMemberService.addFamily(id, patientId, familyName, dictId, cardType, idCard, username, false, medicareType, medicare, clinicId);
                }else {