|
@ -1903,11 +1903,20 @@ public class YkyyEntranceService {
|
|
|
|
|
|
//挂号
|
|
|
Map<String,Object> map = findYkDoctor(natAppointmentDO.getHospitalFlag());
|
|
|
PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(natAppointmentDO.getPatientId());
|
|
|
//PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(natAppointmentDO.getPatientId());
|
|
|
PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",natAppointmentDO.getPatientId(),"1");
|
|
|
Integer brid= 0;
|
|
|
//病人性质
|
|
|
Integer GHXH = 0;
|
|
|
//挂号明细表HLW_GHMX
|
|
|
HlwGhmxDO hlwGhmxDO = new HlwGhmxDO();
|
|
|
JSONArray jsonArray = findHisPatient(patientMedicareCardDO.getCode(),demoFlag);
|
|
|
if(jsonArray!=null&&jsonArray.size()>0){
|
|
|
//获取居民信息
|
|
|
JSONObject json = jsonArray.getJSONObject(0);
|
|
|
hlwGhmxDO.setBRXZ(json.getInteger("brxz"));
|
|
|
brid = json.getInteger("brid");
|
|
|
}
|
|
|
hlwGhmxDO.setSBXH(0);
|
|
|
hlwGhmxDO.setGHCS(1);
|
|
|
hlwGhmxDO.setGHJE(0);
|
|
@ -1927,24 +1936,18 @@ public class YkyyEntranceService {
|
|
|
hlwGhmxDO.setJZZT(2);
|
|
|
hlwGhmxDO.setJZXH(0);
|
|
|
hlwGhmxDO.setKSDM(map.get("deptCode").toString());
|
|
|
hlwGhmxDO.setBRID(Integer.parseInt(patientMappingDO.getMappingCode()));
|
|
|
hlwGhmxDO.setBRID(brid);
|
|
|
hlwGhmxDO.setGHSJ(new Date());//挂号时间
|
|
|
hlwGhmxDO.setGHLB(1);//挂号类别
|
|
|
hlwGhmxDO.setYSDM(map.get("doctorCode").toString());//医生代码
|
|
|
hlwGhmxDO.setJZYS(map.get("doctorCode").toString());//接诊医生
|
|
|
//病人性质
|
|
|
JSONArray jsonArray = findHisPatient(patientMedicareCardDO.getCode(),demoFlag);
|
|
|
if(jsonArray!=null&&jsonArray.size()>0){
|
|
|
//获取居民信息
|
|
|
JSONObject json = jsonArray.getJSONObject(0);
|
|
|
hlwGhmxDO.setBRXZ(json.getInteger("brxz"));
|
|
|
}
|
|
|
|
|
|
//获取医生信息
|
|
|
hlwGhmxDO.setCZGH(map.get("doctorMappingCode").toString());
|
|
|
|
|
|
|
|
|
// 同一个医生同一个病人,一天一条挂号记录。
|
|
|
JSONArray ja = fingHlwGhmx(patientMappingDO.getMappingCode(),map.get("doctorCode").toString());
|
|
|
JSONArray ja = fingHlwGhmx(String.valueOf(brid),map.get("doctorCode").toString());
|
|
|
if(ja!=null&&ja.size()>0){
|
|
|
//更新
|
|
|
JSONObject json = ja.getJSONObject(0);
|
|
@ -1991,7 +1994,7 @@ public class YkyyEntranceService {
|
|
|
HlwYsMzJzLsDO hlwYsMzJzLsDO = new HlwYsMzJzLsDO();
|
|
|
hlwYsMzJzLsDO.setJZXH(0);
|
|
|
hlwYsMzJzLsDO.setGHXH(GHXH);
|
|
|
hlwYsMzJzLsDO.setBRBH(Integer.parseInt(patientMappingDO.getMappingCode()));
|
|
|
hlwYsMzJzLsDO.setBRBH(brid);
|
|
|
hlwYsMzJzLsDO.setKSDM(Integer.parseInt(map.get("deptCode").toString()));
|
|
|
hlwYsMzJzLsDO.setYSDM(map.get("doctorCode").toString());
|
|
|
hlwYsMzJzLsDO.setKSSJ(DateUtil.getNowDate());
|
|
@ -2038,7 +2041,7 @@ public class YkyyEntranceService {
|
|
|
hlwYsMzJbzdDO.setICD("Z00.001");
|
|
|
hlwYsMzJbzdDO.setMSZD("健康查体");
|
|
|
hlwYsMzJbzdDO.setJBBH(icd10Flag);
|
|
|
hlwYsMzJbzdDO.setBRBH(Integer.valueOf(patientMappingDO.getMappingCode()));
|
|
|
hlwYsMzJbzdDO.setBRBH(brid);
|
|
|
hlwYsMzJbzdDO.setZDLB(11);//诊断类别
|
|
|
hlwYsMzJbzdDO.setZDSJ(DateUtil.getNowDate());//诊断时间
|
|
|
hlwYsMzJbzdDO.setZFPB(0);//作废标志
|
|
@ -2087,7 +2090,7 @@ public class YkyyEntranceService {
|
|
|
Integer brnl =0;
|
|
|
String doctorHis="";
|
|
|
Integer kdks = 0;
|
|
|
Integer brid=0;
|
|
|
/*Integer brid=0;*/
|
|
|
String mzhm="0";
|
|
|
JSONArray jsonArray3 = findHisPatient(patientMedicareCardDO.getCode(),demoFlag);
|
|
|
Map<String,Object> resultMap = new HashMap();
|
|
@ -3134,6 +3137,7 @@ public class YkyyEntranceService {
|
|
|
//判断居民是否建过档,没有就建档
|
|
|
public JSONObject patientJDKH(String idcard, String name, String phoneNum, String medicare) throws Exception {
|
|
|
JSONObject res = new JSONObject();
|
|
|
res.put("status", 200);
|
|
|
Float brid = null;
|
|
|
//根据身份证查询是否建档
|
|
|
String sfzhSql = "SELECT jzkh \"jzkh\" ,brid \"brid\" from portal_his.V_ZKSG_BRCX@xec_link where sfzh = '" + idcard + "' order by JDSJ ";
|
|
@ -3143,7 +3147,7 @@ public class YkyyEntranceService {
|
|
|
int size = sfzhArray.size();
|
|
|
if (size == 1) {
|
|
|
JSONObject json = sfzhArray.getJSONObject(0);
|
|
|
Object jzkh = json.get("JZKH");//社保卡
|
|
|
Object jzkh = json.get("jzkh");//社保卡
|
|
|
//获取居民信息
|
|
|
brid = json.getFloat("brid");//病人id
|
|
|
if (jzkh != null && !jzkh.toString().equals(medicare)) {//判断是否跟当前医保卡号一致
|
|
@ -3160,9 +3164,10 @@ public class YkyyEntranceService {
|
|
|
logger.info("更新患者信息updateResponse:" + updateContent);
|
|
|
JSONObject rsult = JSON.parseObject(updateContent);
|
|
|
Integer s = rsult.getInteger("status");
|
|
|
if (s != 200) {
|
|
|
String message = rsult.getString("message");
|
|
|
if (s != 200 || !message.equals("成功")) {
|
|
|
res.put("status", -1);
|
|
|
res.put("message", "更新社保卡失败!");
|
|
|
res.put("message", message);
|
|
|
return res;
|
|
|
}
|
|
|
}
|
|
@ -3170,31 +3175,47 @@ public class YkyyEntranceService {
|
|
|
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==null||array.size()==0){
|
|
|
res.put("status", -1);
|
|
|
res.put("message", "您输入的卡号和该就诊人在医院预留的卡号不一致,请重新输入。");
|
|
|
return res;
|
|
|
}
|
|
|
if (array.size() == 1) {
|
|
|
brid = sfzhArray.getJSONObject(0).getFloat("brid");
|
|
|
} else { //否则就取最早一条更新
|
|
|
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) {
|
|
|
} 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");
|
|
|
String message = rsult.getString("message");
|
|
|
if (s != 200 || !message.equals("成功")) {
|
|
|
res.put("status", -1);
|
|
|
res.put("message", message);
|
|
|
return res;
|
|
|
}
|
|
|
}else {
|
|
|
res.put("status", -1);
|
|
|
res.put("message", "更新社保卡失败!");
|
|
|
res.put("message", "您输入的卡号和该就诊人在医院预留的卡号不一致,请重新输入。");
|
|
|
return res;
|
|
|
}
|
|
|
}
|
|
|
} else { //身份证号没查到信息,就用社保卡号查询
|
|
|
JSONArray jzkhArray = getSqlResult(jzkhSql);
|
|
|
brid = jzkhArray.getJSONObject(0).getFloat("brid");
|
|
|
if (jzkhArray!=null&&jzkhArray.size()>0){
|
|
|
brid = jzkhArray.getJSONObject(0).getFloat("brid");
|
|
|
}
|
|
|
}
|
|
|
//查询是否有这个病人id 如果有直接返回 如果没有则新建
|
|
|
if (brid != null)
|
|
|
if (brid == null)
|
|
|
{
|
|
|
Map<String, Object> params1 = new HashedMap();
|
|
|
params1.put("brxm", name);
|
|
@ -3215,14 +3236,6 @@ public class YkyyEntranceService {
|
|
|
res.put("status", -1);
|
|
|
res.put("message", "建档失败,失败原因:" + rs1.getString("message"));
|
|
|
return res;
|
|
|
}else {
|
|
|
if (rs1.get("message")!=null){
|
|
|
if (rs1.getString("message").contains("已经建过档案")){
|
|
|
res.put("status", 200);
|
|
|
res.put("message",rs1.getString("message"));
|
|
|
return res;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return res;
|