|
@ -221,20 +221,24 @@ public class AsyncService extends BaseService{
|
|
|
* 推送信息
|
|
|
*/
|
|
|
private void sendMessage(String content, Patient patient, PatientHealthIndex model) {
|
|
|
logger.info("======start sendMessage======");
|
|
|
String patientCode = patient.getCode();
|
|
|
// 消息接收者
|
|
|
List<String> receivers = new ArrayList<String>();
|
|
|
// 查询病人家庭签约的健康管理师
|
|
|
SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patientCode);
|
|
|
logger.info("签约对象--全科医生code===="+signFamily.getDoctor());
|
|
|
String healthDoctorFamily = "";
|
|
|
String doctorFamily = "";
|
|
|
if (signFamily != null) {
|
|
|
healthDoctorFamily = signFamily.getDoctorHealth();
|
|
|
doctorFamily = signFamily.getDoctor();
|
|
|
logger.info("全科医生code======"+doctorFamily);
|
|
|
if (StringUtils.isNotEmpty(healthDoctorFamily)) {
|
|
|
// 添加到消息接收人列表
|
|
|
receivers.add(healthDoctorFamily);
|
|
|
} else if (StringUtils.isNotEmpty(doctorFamily)){
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(doctorFamily)){
|
|
|
// 添加到消息接收人列表
|
|
|
receivers.add(doctorFamily);
|
|
|
}
|
|
@ -248,7 +252,7 @@ public class AsyncService extends BaseService{
|
|
|
// 添加到消息接收人列表
|
|
|
receivers.add(healthDoctorTeam);
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(signFamilySS.getDoctor())){
|
|
|
if (StringUtils.isNotEmpty(signFamilySS.getDoctor())&& !StringUtils.equals(doctorFamily, signFamilySS.getDoctor())){
|
|
|
receivers.add(signFamilySS.getDoctor());
|
|
|
}
|
|
|
}
|
|
@ -292,6 +296,7 @@ public class AsyncService extends BaseService{
|
|
|
}
|
|
|
}
|
|
|
// 批量保存消息
|
|
|
logger.info("消息数量---"+messages.size());
|
|
|
messageDao.save(messages);
|
|
|
// 推送消息给医生
|
|
|
pushMsgTask.put(array);
|
|
@ -459,6 +464,73 @@ public class AsyncService extends BaseService{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置
|
|
|
* @param patient
|
|
|
* @return
|
|
|
*/
|
|
|
public int setTrackPatientByDoctor(String patient){
|
|
|
SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
|
|
|
if(signFamily==null){
|
|
|
return -1;
|
|
|
}
|
|
|
Patient p = patientDao.findByCode(patient);
|
|
|
if(p==null){
|
|
|
return -1;
|
|
|
}
|
|
|
//医生是否自动追踪居民
|
|
|
DoctorSwitch sw = doctorSwitchDao.findByDoctor(signFamily.getDoctor());
|
|
|
DoctorSwitch swh = doctorSwitchDao.findByDoctor(signFamily.getDoctorHealth());
|
|
|
|
|
|
if(sw!=null){
|
|
|
if("1".equals(sw.getAlertPatientSwitch())){
|
|
|
//查询是否与医生建立重点跟踪关系,诺无关系则建立
|
|
|
TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctor(),patient);
|
|
|
|
|
|
if(trackPatient == null){
|
|
|
TrackPatient t = new TrackPatient();
|
|
|
t.setCreateTime(new Date());
|
|
|
t.setDoctorCode(signFamily.getDoctor());
|
|
|
t.setDoctorName(signFamily.getDoctorName());
|
|
|
t.setIdcard(signFamily.getIdcard());
|
|
|
t.setSsc(signFamily.getSsc());
|
|
|
t.setTeamCode(signFamily.getAdminTeamId().intValue());
|
|
|
t.setPatientCode(patient);
|
|
|
t.setPatientName(p.getName());
|
|
|
t.setDel("1");
|
|
|
trackPatientDao.save(t);
|
|
|
}else{
|
|
|
trackPatient.setDel("1");
|
|
|
trackPatientDao.save(trackPatient);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(swh!=null){
|
|
|
if("1".equals(swh.getAlertPatientSwitch())){
|
|
|
//查询是否与医生建立重点跟踪关系,诺无关系则建立
|
|
|
TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctorHealth(),patient);
|
|
|
if(trackPatient == null){
|
|
|
TrackPatient t = new TrackPatient();
|
|
|
t.setCreateTime(new Date());
|
|
|
t.setDoctorCode(signFamily.getDoctorHealth());
|
|
|
t.setDoctorName(signFamily.getDoctorHealthName());
|
|
|
t.setIdcard(signFamily.getIdcard());
|
|
|
t.setSsc(signFamily.getSsc());
|
|
|
t.setTeamCode(signFamily.getAdminTeamId().intValue());
|
|
|
t.setPatientCode(patient);
|
|
|
t.setPatientName(p.getName());
|
|
|
t.setDel("1");
|
|
|
trackPatientDao.save(t);
|
|
|
}else{
|
|
|
trackPatient.setDel("1");
|
|
|
trackPatientDao.save(trackPatient);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 添加积分
|
|
|
* @param deviceSn
|
|
@ -482,11 +554,11 @@ public class AsyncService extends BaseService{
|
|
|
flagStr="GLU_MEASURE";
|
|
|
}
|
|
|
|
|
|
int dataUoloadCount = 0;
|
|
|
PatientDevice patientDevice = patientDeviceDao.findByDeviceSnAndCategoryCodeAndUserType(deviceSn,type,userType);
|
|
|
boolean dataUoloadCount = true;
|
|
|
if (patientDevice!=null){
|
|
|
String today = DateUtil.getStringDateShort();
|
|
|
String startTime = today+" 00:00:00";
|
|
|
/*String startTime = today+" 00:00:00";
|
|
|
String endTime = today+" 23:59:59";
|
|
|
int dateType =1;
|
|
|
if (deviceType==1){
|
|
@ -496,19 +568,38 @@ public class AsyncService extends BaseService{
|
|
|
}
|
|
|
String countSql = "SELECT count(*) num FROM device.wlyy_patient_health_index where `user`='"+patientDevice.getUser()+"' and type = "+dateType+" AND record_date >'"+startTime+"' and record_date <= '"+endTime+"'";
|
|
|
Map<String,Object> countMap = jdbcTemplate.queryForMap(countSql);
|
|
|
dataUoloadCount = Integer.valueOf(String.valueOf(countMap.get("num")));
|
|
|
dataUoloadCount = Integer.valueOf(String.valueOf(countMap.get("num")));*/
|
|
|
//判断今天是否加过体征积分
|
|
|
String urlSearch = wlyyService + "healthBank/selectByDate";
|
|
|
List<NameValuePair> paramsSearch1 = new ArrayList<>();
|
|
|
paramsSearch1.add(new BasicNameValuePair("objectStr", "{\"taskCode\":\"BP_MEASURE\",\"startTime\":\""+today+"\",\"endTime\":\""+today+"\",\"patientId\":\""+patientCode+"\"}"));
|
|
|
String responseSearch1 = HttpClientUtil.post(urlSearch, paramsSearch1, "UTF-8");
|
|
|
List<NameValuePair> paramsSearch2 = new ArrayList<>();
|
|
|
paramsSearch2.add(new BasicNameValuePair("objectStr", "{\"taskCode\":\"GLU_MEASURE\",\"startTime\":\""+today+"\",\"endTime\":\""+today+"\",\"patientId\":\""+patientCode+"\"}"));
|
|
|
String responseSearch2 = HttpClientUtil.post(urlSearch, paramsSearch2, "UTF-8");
|
|
|
com.alibaba.fastjson.JSONObject object1 = com.alibaba.fastjson.JSONObject.parseObject(responseSearch1);
|
|
|
com.alibaba.fastjson.JSONObject object2 = com.alibaba.fastjson.JSONObject.parseObject(responseSearch2);
|
|
|
if(object1!=null && object2!=null){
|
|
|
com.alibaba.fastjson.JSONObject jsonObject1 = (com.alibaba.fastjson.JSONObject) object1.getJSONObject("data").getJSONArray("detailModelList").get(0);
|
|
|
com.alibaba.fastjson.JSONObject jsonObject2 = (com.alibaba.fastjson.JSONObject) object2.getJSONObject("data").getJSONArray("detailModelList").get(0);
|
|
|
if (jsonObject1.getJSONArray("creditsDetailDOS").size()==0 && jsonObject2.getJSONArray("creditsDetailDOS").size()==0){
|
|
|
dataUoloadCount = false;
|
|
|
}
|
|
|
}
|
|
|
logger.info("今日测量数量:"+dataUoloadCount);
|
|
|
}
|
|
|
//增加积分
|
|
|
if (dataUoloadCount == 0 && "350205".equals(hospital.substring(0,6))){
|
|
|
if (!dataUoloadCount && "350205".equals(hospital.substring(0,6))){
|
|
|
logger.info("体征增加积分入口--------");
|
|
|
String sql = "select count(*) num from device.wlyy_devices where device_code = '"+deviceSn+"'";
|
|
|
Map<String,Object> deviceCountMap = jdbcTemplate.queryForMap(sql);
|
|
|
if (Integer.valueOf(String.valueOf(deviceCountMap.get("num")))>0){
|
|
|
|
|
|
logger.info("开始体征增加积分------");
|
|
|
String url = wlyyService + "healthBank/insertCredits";
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("creditsDetail", "{\"tradeType\":\"ACTIVITY_TASK\",\"flag\":\""+flagStr+"\",\"tradeDirection\":1,\"status\":1,\"patientId\":\""+patientCode+"\",\"hospital\":\"350205\"}"));
|
|
|
String response = HttpClientUtil.post(url, params, "UTF-8");
|
|
|
|
|
|
logger.info("增加积分返回结果"+response);
|
|
|
com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(response);
|
|
|
String status = jsonObject.getString("status");
|
|
|
if (!"200".equals(status)){
|
|
@ -517,7 +608,7 @@ public class AsyncService extends BaseService{
|
|
|
}
|
|
|
}
|
|
|
//增加活跃度
|
|
|
if (dataUoloadCount == 0){
|
|
|
if (!dataUoloadCount){
|
|
|
String url = wlyyService + "healthBank/createActiveRecord";
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("activeRecord", "{\"taskCode\":\""+flagStr+"\",\"patientId\":\""+patientCode+"\"}"));
|
|
@ -534,73 +625,6 @@ public class AsyncService extends BaseService{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置
|
|
|
* @param patient
|
|
|
* @return
|
|
|
*/
|
|
|
public int setTrackPatientByDoctor(String patient){
|
|
|
SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
|
|
|
if(signFamily==null){
|
|
|
return -1;
|
|
|
}
|
|
|
Patient p = patientDao.findByCode(patient);
|
|
|
if(p==null){
|
|
|
return -1;
|
|
|
}
|
|
|
//医生是否自动追踪居民
|
|
|
DoctorSwitch sw = doctorSwitchDao.findByDoctor(signFamily.getDoctor());
|
|
|
DoctorSwitch swh = doctorSwitchDao.findByDoctor(signFamily.getDoctorHealth());
|
|
|
|
|
|
if(sw!=null){
|
|
|
if("1".equals(sw.getAlertPatientSwitch())){
|
|
|
//查询是否与医生建立重点跟踪关系,诺无关系则建立
|
|
|
TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctor(),patient);
|
|
|
|
|
|
if(trackPatient == null){
|
|
|
TrackPatient t = new TrackPatient();
|
|
|
t.setCreateTime(new Date());
|
|
|
t.setDoctorCode(signFamily.getDoctor());
|
|
|
t.setDoctorName(signFamily.getDoctorName());
|
|
|
t.setIdcard(signFamily.getIdcard());
|
|
|
t.setSsc(signFamily.getSsc());
|
|
|
t.setTeamCode(signFamily.getAdminTeamId().intValue());
|
|
|
t.setPatientCode(patient);
|
|
|
t.setPatientName(p.getName());
|
|
|
t.setDel("1");
|
|
|
trackPatientDao.save(t);
|
|
|
}else{
|
|
|
trackPatient.setDel("1");
|
|
|
trackPatientDao.save(trackPatient);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(swh!=null){
|
|
|
if("1".equals(swh.getAlertPatientSwitch())){
|
|
|
//查询是否与医生建立重点跟踪关系,诺无关系则建立
|
|
|
TrackPatient trackPatient = trackPatientDao.findByDoctorCodeAndPatientCode(signFamily.getDoctorHealth(),patient);
|
|
|
if(trackPatient == null){
|
|
|
TrackPatient t = new TrackPatient();
|
|
|
t.setCreateTime(new Date());
|
|
|
t.setDoctorCode(signFamily.getDoctorHealth());
|
|
|
t.setDoctorName(signFamily.getDoctorHealthName());
|
|
|
t.setIdcard(signFamily.getIdcard());
|
|
|
t.setSsc(signFamily.getSsc());
|
|
|
t.setTeamCode(signFamily.getAdminTeamId().intValue());
|
|
|
t.setPatientCode(patient);
|
|
|
t.setPatientName(p.getName());
|
|
|
t.setDel("1");
|
|
|
trackPatientDao.save(t);
|
|
|
}else{
|
|
|
trackPatient.setDel("1");
|
|
|
trackPatientDao.save(trackPatient);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
public int cancalTrackPatientByDoctor(String patient){
|
|
|
SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
|
|
|
if(signFamily==null){
|