Pārlūkot izejas kodu

1.4.8版本 异常数据消息推送

liuwenbin 7 gadi atpakaļ
vecāks
revīzija
6059b6fadd

+ 29 - 6
patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/DeviceService.java

@ -216,6 +216,17 @@ public class DeviceService extends BaseService{
        }
        return true;
    }
    /**
     * 判断当前指标偏高或偏低
     */
    private int checkHealthIndexDetail(Double current, Double max, Double min) {
        if (current > max ) {
            return 1;
        }else if(current < min || current < 0){
            return 2;
        }
        return 0;
    }
    /**************************************************************************************************************/
    /**
     * 设备数据查询接口
@ -997,8 +1008,12 @@ public class DeviceService extends BaseService{
            // 餐后
            if (index % 2 == 0) {
                if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter )) {
                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
//                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
                    if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==1){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏高</span>";
                    }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==2){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏低</span>";
                    }
                    //体征异常,更新体征数据状态
//                    data.setStatus(1);
//                    patientHealthIndexDao.save(data);
@ -1006,8 +1021,12 @@ public class DeviceService extends BaseService{
                }
            } else { //餐前
                if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueBefore, minValueBefore)) {
                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
//                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
                    if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==1){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏高</span>";
                    }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==2){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏低</span>";
                    }
                    //体征异常,更新体征数据状态
//                    data.setStatus(1);
//                    patientHealthIndexDao.save(data);
@ -1041,8 +1060,12 @@ public class DeviceService extends BaseService{
            }
            // 收缩压/舒张压校验
            if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY) || !checkHealthIndex(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)) {
                msgContent = patient.getName() + "血压异常(舒张压 " + value2 + "mmHg、收缩压 " + value1 + "mmHg),请处理";
//                msgContent = patient.getName() + "血压异常(舒张压 " + value2 + "mmHg、收缩压 " + value1 + "mmHg),请处理";
                if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY)==1||checkHealthIndexDetail(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)==1){
                    msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血压偏高</span>";
                }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY)==2||checkHealthIndexDetail(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)==2){
                    msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血压偏低</span>";
                }
                //体征异常,更新体征数据状态
//                data.setStatus(1);
//                patientHealthIndexDao.save(data);

+ 20 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthGuidanceService.java

@ -27,6 +27,8 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 健康指导业务处理类
@ -104,7 +106,7 @@ public class PatientHealthGuidanceService extends BaseService {
	 * @param guidance
	 * @return
	 */
	public PatientHealthGuidance add(PatientHealthGuidance guidance, String accessToken) throws Exception {
	public PatientHealthGuidance add(PatientHealthGuidance guidance, String accessToken,String tzCode) throws Exception {
		Doctor doctor = doctorDao.findByCode(guidance.getDoctor());
		Patient patient = patientDao.findByCode(guidance.getPatient());
		//家庭医生
@ -172,6 +174,23 @@ public class PatientHealthGuidanceService extends BaseService {
				}
			}
		}
		if(StringUtils.isNotEmpty(tzCode)){
			String sql = " select * from device.wlyy_patient_health_index where id in ("+tzCode+")";
			List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
			Date currentTime = new Date();
			long h24 = 60*60*24;
			for(Map<String, Object> one :list){
				String tempSql="";
				Date temp =(Date)one.get("czrq");
				if(currentTime.getTime()-temp.getTime()>h24){//有效干预
					tempSql = "update device.wlyy_patient_health_index set manage_result=1 where id="+one.get("id");
				}else{//无效干预
					tempSql = "update device.wlyy_patient_health_index set manage_result=2 where id="+one.get("id");
				}
				jdbcTemplate.execute(tempSql);
			}
		}
		return guidance;
	}

+ 18 - 6
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/message/MessageService.java

@ -345,8 +345,8 @@ public class MessageService extends BaseService {
    /**
     * 获取超标指标消息--根据患者分组
     */
    public List<Map<String, Object>> getHealthIndexMessage(String doctor) throws Exception {
        List<Map<String, Object>> re = new ArrayList<>();
    public Map<String,List<Map<String, Object>>> getHealthIndexMessage(String doctor) throws Exception {
        String sql = "select a.sender,a.tz_type,count(1) count,max(date_format(a.create_time,'%Y-%m-%d %H:%i:%s')) last_time,a.has_read from wlyy_Message a where a.receiver='" + doctor + "' and a.type='2' group by a.sender,a.tz_type,a.has_read order by last_time desc";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
@ -394,7 +394,7 @@ public class MessageService extends BaseService {
                System.out.print("not exit patient!code:" + patientCode);
            }
        }
        List<Map<String, Object>> re = new ArrayList<>();
        for (Map<String, Object> item : map.values()) {
            Map<String, Object> obj = new HashMap<>();
            String type = String.valueOf(item.get("type")); //1血糖,2血压,3体重,4腰
@ -407,6 +407,7 @@ public class MessageService extends BaseService {
            obj.put("sex", item.get("sex"));
            obj.put("birthday", item.get("birthday"));
            obj.put("photo", item.get("photo"));
            obj.put("count",count1);
            if ("1".equals(type)) {
                if(count1>0){
                    obj.put("message", "有" + count1 + "条血糖异常未读消息");
@ -422,6 +423,7 @@ public class MessageService extends BaseService {
            } else {
                break;
            }
            re.add(obj);
        }
        Collections.sort(re, new Comparator<Map<String, Object>>() {
@ -431,8 +433,18 @@ public class MessageService extends BaseService {
                return time2.compareTo(time1);
            }
        });
        return re;
        Map<String,List<Map<String, Object>>> result = new LinkedHashMap();
        for(Map<String, Object> one:re){
            String key = DateUtil.dateToStr(DateUtil.stringToDate(one.get("time")+"",DateUtil.YYYY_MM_DD_HH_MM_SS),DateUtil.YYYY_MM_DD);
            if(result.containsKey(key)&&result.get(key)!=null){
                List<Map<String, Object>> temp = result.get(key);
                temp.add(one);
                result.put(key,temp);
            }else{
                result.put(key,new ArrayList<>(Arrays.asList(one)));
            }
        }
        return result;
    }
    /**
@ -456,7 +468,7 @@ public class MessageService extends BaseService {
                map.put("type", type);
                map.put("read", String.valueOf(item.getRead()));
                map.put("sex", String.valueOf(item.getSex()));
                map.put("tzCode", String.valueOf(item.getTzCode()));
                map.put("czrq", DateUtil.dateToStrLong(item.getCreateTime()));
                DevicePatientHealthIndex data =devicePatientHealthIndexDao.findOne(Long.valueOf(item.getTzCode()));

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/template/DoctorTeamGuidanceService.java

@ -484,7 +484,7 @@ public class DoctorTeamGuidanceService extends BaseService {
        guidance.setImages(image);
        // 保存
        if (patientHealthGuidanceService.add(guidance, accessToken) != null) {
        if (patientHealthGuidanceService.add(guidance, accessToken,null) != null) {
            String sendImgs = "";
            if (StringUtils.isNotBlank(image)) {
                sendImgs = image;

+ 5 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/health/DoctorHealthGuidanceController.java

@ -143,7 +143,8 @@ public class DoctorHealthGuidanceController extends WeixinBaseController {
                      @RequestParam String content,
                      @RequestParam(required = false) String modelCode,
                      @RequestParam(required = false) String images,
                      @RequestParam(required = false) String voice) {
                      @RequestParam(required = false) String voice,
                      @RequestParam(required = false) String tzCode) {
        String imageUrls = "";
        String imageRow = "";
@ -186,11 +187,12 @@ public class DoctorHealthGuidanceController extends WeixinBaseController {
                guidance.setImages(images);
                // 保存到居民端健康指导
                if (patientHealthGuidanceService.add(guidance, getAccessToken()) != null) {
                if (patientHealthGuidanceService.add(guidance, getAccessToken(),tzCode) != null) {
                    Patient p = patientService.findByCode(patient);
                    String imcotent = "{\"title\":\"健康指导\",\"type\":2,\"id\":\"" + guidance.getId() + "\",\"img\":\"" + guidance.getImages() + "\",\"content\":\"" + CommonUtil.getSubString(guidance.getContent(), 0, 30) + "\"}";
                    consultService.sendMucMessageBySingnType(getUID(), doctor.getName(), patient, imcotent, "4", p.getName());
                    BusinessLogs.info(BusinessLogs.BusinessType.guidance, getUID(), patient, new JSONObject(guidance));
                    return success("保存成功!");
                } else {
                    return error(-1, "居民签约已到期,请使用文字回复。");
@ -233,7 +235,7 @@ public class DoctorHealthGuidanceController extends WeixinBaseController {
                guidance.setImages(images);
                // 保存
                if (patientHealthGuidanceService.add(guidance, getAccessToken()) != null) {
                if (patientHealthGuidanceService.add(guidance, getAccessToken(),tzCode) != null) {
                    String sendImgs = "";
                    if (StringUtils.isNotBlank(images)) {
                        sendImgs = images;

+ 18 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/message/DoctorMessageController.java

@ -24,6 +24,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -242,9 +244,10 @@ public class DoctorMessageController extends BaseController {
    @ApiOperation("获取超标指标消息--根据患者分组")
    public String getHealthIndexMessage() throws Exception {
        try {
            List<Map<String, Object>> list = messageService.getHealthIndexMessage(getUID());     //"D20161008003"
//            List<Map<String, Object>> list = messageService.getHealthIndexMessage("xh1D2017031503333");     //"D20161008003"
            Map<String,List<Map<String, Object>>> map = messageService.getHealthIndexMessage(getUID());
            return write(200, "获取超标指标消息成功", "data", list);
            return write(200, "获取超标指标消息成功", "data", map);
        } catch (Exception ex) {
            return invalidUserException(ex, -1, ex.getMessage());
        }
@ -263,8 +266,18 @@ public class DoctorMessageController extends BaseController {
                                                 @RequestParam(value = "pagesize", required = true) Integer pagesize) throws Exception {
        try {
            List<Map<String, String>> list = messageService.getHealthIndexMessageByPatient(getUID(), patient, type, page, pagesize);
            return write(200, "获取超标指标消息成功", "data", list);
            String tzCode ="";
            for(Map<String, String> one:list){
                tzCode +=","+one.get("tzCode");
            }
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
            map.put("status", 200);
            map.put("msg", "获取超标指标消息成功");
            map.put("data", list);
            map.put("tzCode",tzCode.length()>0?tzCode.substring(1):"");
            return mapper.writeValueAsString(map);
        } catch (Exception ex) {
            ex.printStackTrace();
            return invalidUserException(ex, -1, "查询失败");
@ -452,4 +465,5 @@ public class DoctorMessageController extends BaseController {
            return invalidUserException(ex, -1, ex.getMessage());
        }
    }
}