|
@ -0,0 +1,463 @@
|
|
|
package com.yihu.jw.care.endpoint.device;
|
|
|
|
|
|
import com.yihu.jw.care.endpoint.BaseController;
|
|
|
import com.yihu.jw.care.service.device.PatientHealthIndexService;
|
|
|
import com.yihu.jw.entity.care.device.DevicePatientHealthIndex;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.json.JSONArray;
|
|
|
import org.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
@Controller
|
|
|
@RequestMapping(value = "/patient/health_index", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
|
|
@Api(description = "患者指标")
|
|
|
public class PatientHealthController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
@Autowired
|
|
|
private PatientHealthIndexService healthIndexService;
|
|
|
|
|
|
/**
|
|
|
* 更改接口(包括手动记录的修改和所有的删除)
|
|
|
* 血糖 value1 血糖值 value2 1234567血糖时间段
|
|
|
* 血压 value1 高压 value2 低压 value3脉搏 value4心率不齐(0否 1是)
|
|
|
* 体重 value1 体重值
|
|
|
* 腰围 value1 腰围值
|
|
|
* @param recordDate 记录时间
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = "/modify", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("更改接口(包括手动记录的修改和所有的删除)")
|
|
|
public String modify(@RequestParam long id,
|
|
|
@RequestParam(required = false) String recordDate,
|
|
|
@RequestParam(required = false) String value1,
|
|
|
@RequestParam(required = false) String value2,
|
|
|
@RequestParam(required = false) String value3,
|
|
|
@RequestParam(required = false) String value4) {
|
|
|
try {
|
|
|
healthIndexService.modify(id,recordDate, value1, value2, value3, value4);
|
|
|
return write(200, "更改成功!");
|
|
|
} catch (Exception e) {
|
|
|
error(e);
|
|
|
return invalidUserException(e, -1, "更改失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "/getRecentData", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("患者最近的各项健康信息")
|
|
|
public String getRecentData() {
|
|
|
try {
|
|
|
//新增查询物联网
|
|
|
List list = new ArrayList();
|
|
|
String patient = getRepUID();
|
|
|
// String patient = getUID();
|
|
|
// 健康指标类型(1血糖,2血压,3体重,4腰围)
|
|
|
Map map = healthIndexService.findDataByPatient(patient, 1);
|
|
|
Map map1 = healthIndexService.findDataByPatient(patient, 2);
|
|
|
Map map2 = healthIndexService.findDataByPatient(patient, 3);
|
|
|
Map map3 = healthIndexService.findDataByPatient(patient, 4);
|
|
|
// 血糖各个时间段取值
|
|
|
if (map.size() != 0) {
|
|
|
Map sugar = new HashMap();
|
|
|
Object time = map.get("time");
|
|
|
String isDevice = map.get("isDevice").toString();
|
|
|
Object value1 = map.get("value1");
|
|
|
Object value2 = map.get("value2");
|
|
|
Object value3 = map.get("value3");
|
|
|
Object value4 = map.get("value4");
|
|
|
Object value5 = map.get("value5");
|
|
|
Object value6 = map.get("value6");
|
|
|
Object value7 = map.get("value7");
|
|
|
sugar.put("type", 1);
|
|
|
sugar.put("isDevice", isDevice);
|
|
|
if (time != null) {
|
|
|
sugar.put("time", time);
|
|
|
}
|
|
|
if (value1 != null) {
|
|
|
sugar.put("value1", value1);
|
|
|
}
|
|
|
if (value2 != null) {
|
|
|
sugar.put("value2", value2);
|
|
|
}
|
|
|
if (value3 != null) {
|
|
|
sugar.put("value3", value3);
|
|
|
}
|
|
|
if (value4 != null) {
|
|
|
sugar.put("value4", value4);
|
|
|
}
|
|
|
if (value5 != null) {
|
|
|
sugar.put("value5", value5);
|
|
|
}
|
|
|
if (value6 != null) {
|
|
|
sugar.put("value6", value6);
|
|
|
}
|
|
|
if (value7 != null) {
|
|
|
sugar.put("value7", value7);
|
|
|
}
|
|
|
list.add(sugar);
|
|
|
}
|
|
|
// 血压 value1高压 value2低压 value3脉搏 value4心率不齐
|
|
|
if (map1.size() != 0) {
|
|
|
Map pa = new HashMap();
|
|
|
Object time = map1.get("time");
|
|
|
String isDevice = map1.get("isDevice").toString();
|
|
|
Object value1 = map1.get("value1");
|
|
|
Object value2 = map1.get("value2");
|
|
|
Object value3 = map1.get("value3");
|
|
|
Object value4 = map1.get("value4");
|
|
|
Object value5 = map1.get("value5");
|
|
|
Object value6 = map1.get("value6");
|
|
|
Object value7 = map1.get("value7");
|
|
|
pa.put("type", 2);
|
|
|
pa.put("isDevice", isDevice);
|
|
|
if (time != null) {
|
|
|
pa.put("time", time);
|
|
|
}
|
|
|
if (value1 != null) {
|
|
|
pa.put("value1", value1);
|
|
|
}
|
|
|
if (value2 != null) {
|
|
|
pa.put("value2", value2);
|
|
|
}
|
|
|
if (value3 != null) {
|
|
|
pa.put("value3", value3);
|
|
|
}
|
|
|
if (value4 != null) {
|
|
|
pa.put("value4", value4);
|
|
|
}
|
|
|
if (value5 != null) {
|
|
|
pa.put("value5", value5);
|
|
|
}
|
|
|
if (value6 != null) {
|
|
|
pa.put("value6", value6);
|
|
|
}
|
|
|
if (value7 != null) {
|
|
|
pa.put("value7", value7);
|
|
|
}
|
|
|
list.add(pa);
|
|
|
}
|
|
|
// 体重 value1 体重
|
|
|
if (map2.size() != 0) {
|
|
|
Map weight = new HashMap();
|
|
|
Object time = map2.get("time");
|
|
|
String isDevice = map2.get("isDevice").toString();
|
|
|
Object value1 = map2.get("value1");
|
|
|
Object value2 = map2.get("value2");
|
|
|
Object value3 = map2.get("value3");
|
|
|
Object value4 = map2.get("value4");
|
|
|
Object value5 = map2.get("value5");
|
|
|
Object value6 = map2.get("value6");
|
|
|
Object value7 = map2.get("value7");
|
|
|
weight.put("type", 3);
|
|
|
weight.put("isDevice", isDevice);
|
|
|
if (time != null) {
|
|
|
weight.put("time", time);
|
|
|
}
|
|
|
if (value1 != null) {
|
|
|
weight.put("value1", value1);
|
|
|
}
|
|
|
if (value2 != null) {
|
|
|
weight.put("value2", value2);
|
|
|
}
|
|
|
if (value3 != null) {
|
|
|
weight.put("value3", value3);
|
|
|
}
|
|
|
if (value4 != null) {
|
|
|
weight.put("value4", value4);
|
|
|
}
|
|
|
if (value5 != null) {
|
|
|
weight.put("value5", value5);
|
|
|
}
|
|
|
if (value6 != null) {
|
|
|
weight.put("value6", value6);
|
|
|
}
|
|
|
if (value7 != null) {
|
|
|
weight.put("value7", value7);
|
|
|
}
|
|
|
list.add(weight);
|
|
|
}
|
|
|
// 腰围 value1腰围
|
|
|
if (map3.size() != 0) {
|
|
|
Map waist = new HashMap();
|
|
|
Object time = map3.get("time");
|
|
|
String isDevice = map3.get("isDevice").toString();
|
|
|
Object value1 = map3.get("value1");
|
|
|
Object value2 = map3.get("value2");
|
|
|
Object value3 = map3.get("value3");
|
|
|
Object value4 = map3.get("value4");
|
|
|
Object value5 = map3.get("value5");
|
|
|
Object value6 = map3.get("value6");
|
|
|
Object value7 = map3.get("value7");
|
|
|
waist.put("type", 4);
|
|
|
waist.put("isDevice", isDevice);
|
|
|
if (time != null) {
|
|
|
waist.put("time", time);
|
|
|
}
|
|
|
if (value1 != null) {
|
|
|
waist.put("value1", value1);
|
|
|
}
|
|
|
if (value2 != null) {
|
|
|
waist.put("value2", value2);
|
|
|
}
|
|
|
if (value3 != null) {
|
|
|
waist.put("value3", value3);
|
|
|
}
|
|
|
if (value4 != null) {
|
|
|
waist.put("value4", value4);
|
|
|
}
|
|
|
if (value5 != null) {
|
|
|
waist.put("value5", value5);
|
|
|
}
|
|
|
if (value6 != null) {
|
|
|
waist.put("value6", value6);
|
|
|
}
|
|
|
if (value7 != null) {
|
|
|
waist.put("value7", value7);
|
|
|
}
|
|
|
list.add(waist);
|
|
|
}
|
|
|
return write(200, "查询成功", "data", list);
|
|
|
} catch (Exception e) {
|
|
|
error(e);
|
|
|
return error(-1, "查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "recent", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("患者最近填写的健康指标")
|
|
|
public String recent() {
|
|
|
try {
|
|
|
|
|
|
JSONArray array = healthIndexService.findRecentByPatient(getRepUID());
|
|
|
// JSONArray array = healthIndexService.findRecentByPatient(getUID());
|
|
|
if (array != null) {
|
|
|
return write(200, "查询成功", "list", array);
|
|
|
} else {
|
|
|
return error(-1, "查询失败");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
error(e);
|
|
|
return error(-1, "查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "last_new", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("获取患者最后填写的健康指标(新)-展会")
|
|
|
public String last_new() {
|
|
|
try {
|
|
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
String patient = getRepUID();
|
|
|
// String patient = getUID();
|
|
|
// DevicePatientHealthIndex xt = healthIndexService.findLastByPatien(patient, 1);
|
|
|
DevicePatientHealthIndex xt = healthIndexService.findLastByPatienIot(patient, 1);
|
|
|
if (xt != null) {
|
|
|
map.put("xt", xt);
|
|
|
}
|
|
|
// DevicePatientHealthIndex xy = healthIndexService.findLastByPatien(patient, 2);
|
|
|
DevicePatientHealthIndex xy = healthIndexService.findLastByPatienIot(patient, 2);
|
|
|
if (xy != null) {
|
|
|
map.put("xy", xy);
|
|
|
}
|
|
|
// DevicePatientHealthIndex tz = healthIndexService.findLastByPatien(patient, 3);
|
|
|
DevicePatientHealthIndex tz = healthIndexService.findLastByPatienIot(patient, 3);
|
|
|
if (tz != null) {
|
|
|
map.put("tz", tz);
|
|
|
}
|
|
|
// DevicePatientHealthIndex sg = healthIndexService.findLastByPatien(patient, 4);
|
|
|
DevicePatientHealthIndex sg = healthIndexService.findLastByPatienIot(patient, 4);
|
|
|
if (sg != null) {
|
|
|
map.put("sg", sg);
|
|
|
}
|
|
|
DevicePatientHealthIndex xl = healthIndexService.findLastByPatienIot(patient, 5);
|
|
|
if (xl != null) {
|
|
|
map.put("xl", xl);
|
|
|
}
|
|
|
return write(200, "查询成功", "data", map);
|
|
|
} catch (Exception ex) {
|
|
|
error(ex);
|
|
|
return invalidUserException(ex, -1, ex.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "addPatientHealthIndex", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("新增患者指标")
|
|
|
public String addPatientHealthIndex(@ApiParam(name = "data", value = "指标数据", defaultValue = "{\"gi\":\"5.5\",\"gi_type\":\"1\"}")
|
|
|
@RequestParam(value = "data", required = true) String data,
|
|
|
@ApiParam(name = "type", value = "指标类型", defaultValue = "1")
|
|
|
@RequestParam(value = "type", required = true) String type,
|
|
|
@ApiParam(name = "patient", value = "patient", defaultValue = "1")
|
|
|
@RequestParam(value = "patient", required = false) String patient) {
|
|
|
try {
|
|
|
|
|
|
|
|
|
if(StringUtils.isBlank(patient)){
|
|
|
patient = getRepUID();
|
|
|
// patient = getUID();
|
|
|
}
|
|
|
DevicePatientHealthIndex obj = healthIndexService.addPatientHealthIndex(data, type, patient, null);
|
|
|
|
|
|
//血糖和血压需要校验
|
|
|
if (type.equals("1") || type.equals("2")) {
|
|
|
healthIndexService.verifyHealthIndex(obj.getId());
|
|
|
}
|
|
|
|
|
|
//判断居民的体征预警状态
|
|
|
// healthIndexService.handlePatientStandarStatus(obj);
|
|
|
|
|
|
return success("新增患者指标成功!");
|
|
|
} catch (Exception ex) {
|
|
|
error(ex);
|
|
|
return invalidUserException(ex, -1, ex.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "verifyPatientHealthIndex", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("校验患者指标")
|
|
|
public String verifyPatientHealthIndex(@ApiParam(name = "id", value = "指标id", defaultValue = "")
|
|
|
@RequestParam(value = "id", required = true) Long id) {
|
|
|
try {
|
|
|
|
|
|
|
|
|
healthIndexService.verifyHealthIndex(id);
|
|
|
|
|
|
return success("校验患者指标成功!");
|
|
|
} catch (Exception ex) {
|
|
|
return invalidUserException(ex, -1, ex.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "chart", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("根据患者标志获取健康指标(图表)")
|
|
|
public String getHealthIndexChartByPatient(@ApiParam(name = "type", value = "指标类型(1血糖,2血压,3体重,4腰围)", defaultValue = "1")
|
|
|
@RequestParam(value = "type", required = true) int type,
|
|
|
@ApiParam(name = "gi_type", value = "就餐类型0全部", defaultValue = "1")
|
|
|
@RequestParam(value = "gi_type", required = false) int gi_type,
|
|
|
@ApiParam(name = "begin", value = "开始时间", defaultValue = "2017-05-22 00:00:00")
|
|
|
@RequestParam(value = "begin", required = true) String begin,
|
|
|
@ApiParam(name = "end", value = "结束时间", defaultValue = "2017-06-02 00:00:00")
|
|
|
@RequestParam(value = "end", required = true) String end) {
|
|
|
try {
|
|
|
|
|
|
JSONArray jsonArray = healthIndexService.findChartByPatient(getUID(),type,gi_type,begin,end);
|
|
|
if (jsonArray.length()==0) {
|
|
|
return success("查询成功!");
|
|
|
}
|
|
|
return write(200, "查询成功", "list", jsonArray);
|
|
|
} catch (Exception ex) {
|
|
|
error(ex);
|
|
|
return invalidUserException(ex, -1, "查询失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "chart_new", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("根据患者标志获取健康指标(图表)-展会")
|
|
|
public String getHealthIndexChartByPatient_new(@ApiParam(name = "type", value = "指标类型(1血糖,2血压,3体重,4腰围)", defaultValue = "1")
|
|
|
@RequestParam(value = "type", required = true) int type,
|
|
|
@ApiParam(name = "gi_type", value = "就餐类型0全部", defaultValue = "1")
|
|
|
@RequestParam(value = "gi_type", required = false) int gi_type,
|
|
|
@ApiParam(name = "begin", value = "开始时间", defaultValue = "2017-05-22 00:00:00")
|
|
|
@RequestParam(value = "begin", required = true) String begin,
|
|
|
@ApiParam(name = "end", value = "结束时间", defaultValue = "2017-06-02 00:00:00")
|
|
|
@RequestParam(value = "end", required = true) String end) {
|
|
|
try {
|
|
|
|
|
|
JSONArray jsonArray = healthIndexService.findChartByPatient(getRepUID(), type, gi_type, begin, end);
|
|
|
// List<DevicePatientHealthIndex> list = healthIndexService.findChartByPatient(getUID(), type, gi_type, begin, end);
|
|
|
|
|
|
if (jsonArray.length()==0) {
|
|
|
return success("查询成功!");
|
|
|
}
|
|
|
return write(200, "查询成功", "list", jsonArray);
|
|
|
} catch (Exception ex) {
|
|
|
error(ex);
|
|
|
return invalidUserException(ex, -1, "查询失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "list", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("患者获取健康指标")
|
|
|
public String getHealthIndexByPatient(@ApiParam(name = "type", value = "指标类型(1血糖,2血压,3体重/身高,4腰围)", defaultValue = "1")
|
|
|
@RequestParam(value = "type", required = true) int type,
|
|
|
@ApiParam(name = "start", value = "开始时间", defaultValue = "2016-07-23 00:00:00")
|
|
|
@RequestParam(value = "start", required = true) String start,
|
|
|
@ApiParam(name = "end", value = "结束时间", defaultValue = "2016-08-23 00:00:00")
|
|
|
@RequestParam(value = "end", required = true) String end,
|
|
|
@ApiParam(name = "page", value = "第几页", defaultValue = "1")
|
|
|
@RequestParam(value = "page", required = true) int page,
|
|
|
@ApiParam(name = "pagesize", value = "每页几行", defaultValue = "10")
|
|
|
@RequestParam(value = "pagesize", required = true) int pagesize) {
|
|
|
try {
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
if (type == 1) {
|
|
|
List<Object> list = healthIndexService.findIndexByPatient2(getUID(), type, start, end, page, pagesize);
|
|
|
jsonObject.put("data",list);
|
|
|
}else{
|
|
|
JSONArray jsonArray = healthIndexService.findIndexByPatient(getUID(), type, start, end, page, pagesize);
|
|
|
jsonObject.put("data",jsonArray);
|
|
|
}
|
|
|
return write(200, "查询成功", "list", jsonObject);
|
|
|
} catch (Exception ex) {
|
|
|
error(ex);
|
|
|
return invalidUserException(ex, -1, "查询失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "standard", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("患者健康指标预警值查询")
|
|
|
public String standard() {
|
|
|
try {
|
|
|
JSONArray standardArray = new JSONArray();
|
|
|
JSONArray userArray = new JSONArray();
|
|
|
// 预警值未设置,返回默认值
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
sb.append("[");
|
|
|
// 默认血糖(餐前,餐后二小时)
|
|
|
sb.append("{min_value_1:"+ PatientHealthIndexService.HEALTH_STANDARD_ST_MIN_BEFORE +", max_value_1: "+ PatientHealthIndexService.HEALTH_STANDARD_ST_MAX_BEFORE +", " +
|
|
|
"min_value_2:"+ PatientHealthIndexService.HEALTH_STANDARD_ST_MIN_AFTER +", max_value_2:"+ PatientHealthIndexService.HEALTH_STANDARD_ST_MAX_AFTER +", type:1},");
|
|
|
// 默认血压(收缩压,舒张压)
|
|
|
sb.append("{min_value_1:"+ PatientHealthIndexService.HEALTH_STANDARD_SSY_MIN +", max_value_1:"+ PatientHealthIndexService.HEALTH_STANDARD_SSY_MAX +", " +
|
|
|
"min_value_2:"+ PatientHealthIndexService.HEALTH_STANDARD_SZY_MIN +", max_value_2:"+ PatientHealthIndexService.HEALTH_STANDARD_SZY_MAX +", type:2}");
|
|
|
sb.append("]");
|
|
|
standardArray = new JSONArray(sb.toString());
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("standard", standardArray);
|
|
|
json.put("custom", userArray);
|
|
|
return write(200, "查询成功", "data", json);
|
|
|
} catch (Exception e) {
|
|
|
error(e);
|
|
|
return invalidUserException(e, -1, "查询失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|