|
@ -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;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|