From 7b38f16b35b4a1feb9ed93c7286d0e1f0a975c23 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Wed, 6 Dec 2017 11:33:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E7=B3=96=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/biz/dal/IBloodSugarDao.java | 15 ++ .../platform/biz/dal/impl/BloodSugarDaoImpl.java | 22 +++ .../platform/biz/service/BloodSugarService.java | 25 +++ .../platform/common/enums/BloodSugarEnums.java | 48 ++++++ .../platform/common/enums/ErrorPatientEnums.java | 20 +-- .../com/lyms/platform/common/utils/DateUtil.java | 2 + .../java/com/lyms/platform/beans/SerialIdEnum.java | 1 + .../java/com/lyms/platform/pojo/BloodPressure.java | 2 +- .../java/com/lyms/platform/pojo/BloodSugar.java | 113 +++++++++++++ .../web/controller/BloodPressureController.java | 5 + .../web/controller/BloodSugarController.java | 60 +++++++ .../operate/web/controller/TestController.java | 15 +- .../platform/operate/web/facade/RemoteFacade.java | 31 ++-- .../operate/web/service/IBloodPressureService.java | 6 + .../operate/web/service/IBloodSugarService.java | 21 +++ .../web/service/impl/BloodPressureServiceImpl.java | 35 ++++ .../web/service/impl/BloodSugarServiceImpl.java | 178 +++++++++++++++++++++ 17 files changed, 559 insertions(+), 40 deletions(-) create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBloodSugarDao.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BloodSugarDaoImpl.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BloodSugarService.java create mode 100644 platform-common/src/main/java/com/lyms/platform/common/enums/BloodSugarEnums.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/BloodSugar.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBloodSugarDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBloodSugarDao.java new file mode 100644 index 0000000..0aa2534 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBloodSugarDao.java @@ -0,0 +1,15 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.pojo.BloodSugar; +import org.springframework.data.mongodb.core.query.Query; + +/** + * 血压 + */ +public interface IBloodSugarDao { + + void add(BloodSugar bloodSugar); + + void updateXy(Query query, BloodSugar bloodSugar); + +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BloodSugarDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BloodSugarDaoImpl.java new file mode 100644 index 0000000..fd3ca0c --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BloodSugarDaoImpl.java @@ -0,0 +1,22 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.IBloodSugarDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.pojo.BloodSugar; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Repository; + +@Repository +public class BloodSugarDaoImpl extends BaseMongoDAOImpl implements IBloodSugarDao { + + @Override + public void add(BloodSugar bloodSugar) { + save(bloodSugar); + } + + @Override + public void updateXy(Query query, BloodSugar bloodSugar) { + update(query, bloodSugar); + } + +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BloodSugarService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BloodSugarService.java new file mode 100644 index 0000000..29776ec --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BloodSugarService.java @@ -0,0 +1,25 @@ +package com.lyms.platform.biz.service; + + +import com.lyms.platform.biz.dal.IBloodSugarDao; +import com.lyms.platform.pojo.BloodSugar; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; + +@Service +public class BloodSugarService { + + @Autowired + private IBloodSugarDao bloodSugarDao; + + public void add(BloodSugar bloodSugar) { + bloodSugarDao.add(bloodSugar); + } + + public void update(BloodSugar bloodSugar) { + bloodSugarDao.updateXy(Query.query(Criteria.where("id").is(bloodSugar.getId())), bloodSugar); + } + +} diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/BloodSugarEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/BloodSugarEnums.java new file mode 100644 index 0000000..1982039 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/BloodSugarEnums.java @@ -0,0 +1,48 @@ +package com.lyms.platform.common.enums; + +import com.lyms.platform.common.utils.StringUtils; + +/** + * 血糖时间段枚举 + */ +public enum BloodSugarEnums { + + A(1, "空腹"), B(2, "早餐前"), C(3, "早餐后2h"), D(4, "午餐前"), E(5, "午餐后2h"), F(6, "晚餐前"), G(7, "晚餐后2h"), H(8, "夜间"), I(9, "睡前"); + + BloodSugarEnums(Integer id, String name) { + this.id = id; + this.name = name; + } + + private Integer id; + private String name; + + public static String getName(String id) { + if(StringUtils.isEmpty(id)) { + return null; + } + BloodSugarEnums[] values = BloodSugarEnums.values(); + for (BloodSugarEnums value : values) { + if (value.getId().equals(id)) { + return value.getName(); + } + } + return null; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/ErrorPatientEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/ErrorPatientEnums.java index b1a0122..5d9833d 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/ErrorPatientEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/ErrorPatientEnums.java @@ -4,23 +4,5 @@ package com.lyms.platform.common.enums; * 健康异常孕妇 */ public enum ErrorPatientEnums { - - PATIENT_WEIGHT(1), - TEMP(2), - BLOOD_PRESSURE(3), - BLOOD_SUGAR(4); - - ErrorPatientEnums(Integer id) { - this.id = id; - } - - private Integer id; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - + PATIENT_WEIGHT, TEMP, BLOOD_PRESSURE, BLOOD_SUGAR; } diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index ffd475c..deab65e 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -1407,6 +1407,8 @@ public class DateUtil { System.out.println(" end>> " + getyyyy_MM_dd(map.get("end"))); }*/ + System.out.println(getBetweenDay(7)); + Date date = parseDate("2017-11-30"); System.out.println(getYesterday().toLocaleString()); System.out.println("当月第一天: " + getMonthDay(date, 0, 1).toLocaleString()); diff --git a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java index fc7e271..f70a049 100644 --- a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java +++ b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java @@ -58,6 +58,7 @@ public enum SerialIdEnum { AntExPRecordModel("AntExPRecordModel", 97531000451L), PatientWeight("PatientWeight", 97531000111L), BloodPressure("BloodPressure", 97531333111L), + BloodSugar("BloodSugar", 97111333111L), last("last", 97531009990L); private String cname; private Long cid; diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java index 7432d55..7763dab 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BloodPressure.java @@ -13,7 +13,7 @@ import java.util.Map; @Document(collection="lyms_blood_pressure") public class BloodPressure extends BaseModel { - private static final long serialVersionUID = SerialIdEnum.PatientWeight.getCid(); + private static final long serialVersionUID = SerialIdEnum.BloodPressure.getCid(); private String id; diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BloodSugar.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BloodSugar.java new file mode 100644 index 0000000..2decf4b --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BloodSugar.java @@ -0,0 +1,113 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.beans.SerialIdEnum; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +/** + * 血糖 + */ +@Document(collection="lyms_blood_sugar") +public class BloodSugar extends BaseModel { + + private static final long serialVersionUID = SerialIdEnum.BloodSugar.getCid(); + + private String id; + + private String parentId; + + private Date created; + + private String creatYmdDate; + + private Integer yn; + + private Integer createUser; + + private String hospitalId; + + /** + * 血糖 + */ + private String bloodSugar; + + private Integer bloodSugarType; + + public String getCreatYmdDate() { + return creatYmdDate; + } + + public void setCreatYmdDate(String creatYmdDate) { + this.creatYmdDate = creatYmdDate; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public Integer getCreateUser() { + return createUser; + } + + public void setCreateUser(Integer createUser) { + this.createUser = createUser; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getBloodSugar() { + return bloodSugar; + } + + public void setBloodSugar(String bloodSugar) { + this.bloodSugar = bloodSugar; + } + + public Integer getBloodSugarType() { + return bloodSugarType; + } + + public void setBloodSugarType(Integer bloodSugarType) { + this.bloodSugarType = bloodSugarType; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java index d238773..fdc0f91 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java @@ -45,5 +45,10 @@ public class BloodPressureController extends BaseController { return bloodPressureService.info(id); } + @ResponseBody + @RequestMapping(value = "/app/{parentId}", method = RequestMethod.GET) + public BaseResponse getAppInfo(@PathVariable String parentId) { + return bloodPressureService.getAppInfo(parentId); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java new file mode 100644 index 0000000..75129b0 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java @@ -0,0 +1,60 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.operate.web.service.IBloodSugarService; +import com.lyms.platform.pojo.BloodSugar; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; + +/** + * 血糖 + */ +@Controller +@RequestMapping("/blood/sugar") +public class BloodSugarController extends BaseController { + + @Autowired + private IBloodSugarService bloodSugarService; + + @ResponseBody + @RequestMapping(value = "/init", method = RequestMethod.GET) + public BaseResponse init() { + return bloodSugarService.init(); + } + + @ResponseBody + @RequestMapping(method = RequestMethod.POST) + @TokenRequired + public BaseResponse add(BloodSugar bloodSugar, HttpServletRequest request) { + return bloodSugarService.add(getUserId(request), bloodSugar); + } + + @ResponseBody + @RequestMapping(method = RequestMethod.GET) + @TokenRequired + public BaseResponse list(String key, String vcCardNo, Integer weekStart, Integer weekEnd, Integer age, Integer page, Integer limit, HttpServletRequest request) { + return bloodSugarService.list(key, vcCardNo, weekStart, weekEnd, age, page, limit, getUserId(request)); + } + + @ResponseBody + @RequestMapping(value = "/{parentId}/{type}", method = RequestMethod.GET) + @TokenRequired + public BaseResponse info(@PathVariable String parentId, @PathVariable Integer type) { + return bloodSugarService.info(parentId, type); + } + + @ResponseBody + @RequestMapping(value = "/app/{parentId}", method = RequestMethod.GET) + public BaseResponse getAppInfo(@PathVariable String parentId) { + return bloodSugarService.getAppInfo(parentId); + } + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 27b2c07..57ff032 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -17,6 +17,7 @@ import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; import com.lyms.platform.operate.web.facade.BabyCheckFacade; import com.lyms.platform.operate.web.facade.SieveFacade; import com.lyms.platform.operate.web.result.HighScoreResult; +import com.lyms.platform.operate.web.service.IBloodPressureService; import com.lyms.platform.operate.web.service.SyncDataTaskService; import com.lyms.platform.operate.web.worker.BuildSerToPatientSerWorker; import com.lyms.platform.permission.model.Organization; @@ -38,10 +39,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import java.io.File; import java.io.IOException; @@ -115,6 +113,15 @@ public class TestController { @Autowired private PatientServiceService patientServiceService; + @Autowired + private IBloodPressureService bloodPressureService; + + @ResponseBody + @RequestMapping("/init/blood/pressure") + public BaseResponse initBloodPressure(@RequestParam Map param) { + return bloodPressureService.initBloodPressure(param); + } + @RequestMapping("/area") @ResponseBody diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RemoteFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RemoteFacade.java index 9d46648..0675f50 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RemoteFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RemoteFacade.java @@ -10,6 +10,7 @@ import com.lyms.platform.pojo.TempModel; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -30,9 +31,9 @@ public class RemoteFacade { Date yesterday = DateUtil.getYesterday(); List> restList = new ArrayList<>(); - List patientWeights = mongoTemplate.find(Query.query(Criteria.where("operaterId").is(operaterId)), PatientWeight.class); - List bloodPressures = mongoTemplate.find(Query.query(Criteria.where("operaterId").is(operaterId)), BloodPressure.class); - List tempModels = mongoTemplate.find(Query.query(Criteria.where("operaterId").is(operaterId)), TempModel.class); + List patientWeights = mongoTemplate.find(Query.query(Criteria.where("operaterId").is(operaterId)).with(new Sort(Sort.Direction.DESC, "created")), PatientWeight.class); + List bloodPressures = mongoTemplate.find(Query.query(Criteria.where("operaterId").is(operaterId)).with(new Sort(Sort.Direction.DESC, "created")), BloodPressure.class); + List tempModels = mongoTemplate.find(Query.query(Criteria.where("operaterId").is(operaterId)).with(new Sort(Sort.Direction.DESC, "created")), TempModel.class); for (PatientWeight patientWeight : patientWeights) { Patients patients = mongoTemplate.findById(patientWeight.getPatientId(), Patients.class); @@ -58,7 +59,7 @@ public class RemoteFacade { temp.put("beforeWeight", patientWeight.getBeforeWeight()); temp.put("nowWeight", patientWeight.getNowWeight()); temp.put("addWeight", addWeight); - temp.put("ckz", "(" + lowMap.get(0) + "~" + highMap.get(0) + ")"); + temp.put("ckz", "(" + lowMap.get(0) + "~" + highMap.get(0) + ")"); temp.put("type", ErrorPatientEnums.PATIENT_WEIGHT); } } @@ -75,28 +76,26 @@ public class RemoteFacade { for (Map.Entry entry : tempList.entrySet()) { if(DateUtil.parseYMD(entry.getKey()).getTime() >= yesterday.getTime()) { if(entry.getValue() < 36D || entry.getValue() > 38.5D ) { - /* patients = (patients == null ? mongoTemplate.findById(p, Patients.class) : patients); + patients = (patients == null ? mongoTemplate.findById(tempModel.getParentId(), Patients.class) : patients); temp.put("username", patients.getUsername()); temp.put("week", DateUtil.getWeekDesc(patients.getLastMenses(), new Date())); - temp.put("parentId", patientWeight.getPatientId()); - temp.put("id", patientWeight.getId()); + temp.put("parentId", tempModel.getParentId()); + temp.put("id", tempModel.getId()); temp.put("day", entry.getKey()); - temp.put("desc", addWeight < low ? "增重过少" : "增重过多"); - temp.put("beforeWeight", patientWeight.getBeforeWeight()); - temp.put("nowWeight", patientWeight.getNowWeight()); - temp.put("addWeight", addWeight); - temp.put("ckz", "(" + lowMap.get(0) + "~" + highMap.get(0) + ")"); - temp.put("type", ErrorPatientEnums.PATIENT_WEIGHT);*/ + temp.put("desc", entry.getValue() < 36D ? "低热" : "高热"); + temp.put("temp", entry.getValue()); + temp.put("ckz", "(36-37.4)"); + temp.put("type", ErrorPatientEnums.TEMP); } } } - + if(MapUtils.isNotEmpty(temp)) { + restList.add(temp); + } } - return restList; } - /** * 获取两个体重之间相差的数值 */ diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java index 60580de..3b73588 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java @@ -3,6 +3,8 @@ package com.lyms.platform.operate.web.service; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.pojo.BloodPressure; +import java.util.Map; + public interface IBloodPressureService extends IBaseService { BaseResponse addOrUpdate(Integer userId, BloodPressure bloodPressure); @@ -10,4 +12,8 @@ public interface IBloodPressureService extends IBaseService { BaseResponse list(String key, String vcCardNo, Integer weekStart, Integer weekEnd, Integer age, Integer page, Integer limit, Integer userId); BaseResponse info(String id); + + BaseResponse getAppInfo(String parentId); + + BaseResponse initBloodPressure(Map param); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java new file mode 100644 index 0000000..68693f5 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java @@ -0,0 +1,21 @@ +package com.lyms.platform.operate.web.service; + +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.pojo.BloodSugar; + +import java.util.Map; + +public interface IBloodSugarService extends IBaseService { + + BaseResponse add(Integer userId, BloodSugar bloodSugar); + + BaseResponse list(String key, String vcCardNo, Integer weekStart, Integer weekEnd, Integer age, Integer page, Integer limit, Integer userId); + + BaseResponse info(String parentId, Integer type); + + BaseResponse getAppInfo(String parentId); + + BaseResponse initBloodSugar(Map param); + + BaseResponse init(); +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java index 2524a69..552b4a0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java @@ -1,5 +1,7 @@ package com.lyms.platform.operate.web.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.lyms.platform.biz.service.BloodPressureService; import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.common.enums.YnEnums; @@ -52,6 +54,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP temp.put("szy", bloodPressure.getSzy()); temp.put("ssy", bloodPressure.getSsy()); temp.put("pulse", bloodPressure.getPulse()); + temp.put("timestamp", DateUtil.getyyyy_MM_dd_hms(new Date())); temp.put("hospitalId", hospitalId); BloodPressure bp = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(bloodPressure.getParentId()).and("yn").ne(0)), BloodPressure.class); bloodPressure.setModified(new Date()); @@ -163,6 +166,37 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP return RespBuilder.buildSuccess("xyInfos", xyInfos, "szyMin", szyMin, "ssyMax", ssyMax, "ssy", ssy, "szy", szy, "pulse", pulse); } + @Override + public BaseResponse getAppInfo(String parentId) { + BloodPressure bloodPressure = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(parentId)), BloodPressure.class); + List> restList = new ArrayList<>(); + if(bloodPressure != null) { + Map> infos = bloodPressure.getInfos(); + Object[] keys = infos.keySet().toArray(); + CollectionUtils.reverseArray(keys); + for (Object key : keys) { + Map temp = new HashMap<>(); + Map info = infos.get(key); + temp.put("createTime", info.get("timestamp")); + temp.put("diastole", info.get("szy")); + temp.put("pulse", info.get("pulse")); + temp.put("shrink", info.get("ssy")); + restList.add(temp); + } + } + return RespBuilder.buildSuccess(restList); + } + + @Override + public BaseResponse initBloodPressure(Map bloods) { + JSONArray array = JSONArray.parseArray(bloods.get("datas")); + for (Object obj : array) { + JSONObject jsonObject = (JSONObject) obj; + System.out.println(jsonObject); + } + return RespBuilder.buildSuccess(); + } + private String getPulseStatus(String ssy, String szy) { String status = ""; if(StringUtils.isNotEmpty(ssy) && StringUtils.isNotEmpty(szy)) { @@ -177,4 +211,5 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP return status; } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java new file mode 100644 index 0000000..ec6ddfa --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java @@ -0,0 +1,178 @@ +package com.lyms.platform.operate.web.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.lyms.platform.biz.service.BloodSugarService; +import com.lyms.platform.common.enums.BloodSugarEnums; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.result.RespBuilder; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.EnumUtil; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.facade.AccessPermissionFacade; +import com.lyms.platform.operate.web.facade.AutoMatchFacade; +import com.lyms.platform.operate.web.service.IBloodSugarService; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.operate.web.utils.MongoUtil; +import com.lyms.platform.pojo.BloodSugar; +import com.lyms.platform.pojo.Patients; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSugarService { + + @Autowired + private BloodSugarService bloodSugarService; + + @Autowired + private MongoTemplate mongoTemplate; + + @Autowired + private AutoMatchFacade autoMatchFacade; + + @Autowired + private MongoUtil mongoUtil; + + @Autowired + private AccessPermissionFacade accessPermissionFacade; + + + public BaseResponse add(Integer userId, BloodSugar bloodSugar) { + bloodSugar.setHospitalId(autoMatchFacade.getHospitalId(userId)); + bloodSugar.setCreated(new Date()); + bloodSugar.setCreateUser(userId); + bloodSugar.setYn(YnEnums.YES.getId()); + bloodSugar.setCreatYmdDate(DateUtil.getyyyy_MM_dd(new Date())); + bloodSugarService.add(bloodSugar); + return RespBuilder.buildSuccess(bloodSugar.getId()); + } + + @Override + public BaseResponse list(String key, String vcCardNo, Integer weekStart, Integer weekEnd, Integer age, Integer page, Integer limit, Integer userId) { + List hospitalIds = accessPermissionFacade.getCurrentUserHospPermissions(userId); + Criteria criteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospitalIds); + Criteria pCriteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospitalIds); + if(StringUtils.isNotEmpty(key)) { + pCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("username").regex(key), Criteria.where("cardNo").is(key)); + } + if(StringUtils.isNotEmpty(vcCardNo)) { + pCriteria.and("vcCardNo").is(vcCardNo); + } + if(weekStart != null && weekEnd != null) { + Date start = DateUtil.getWeekStart(weekEnd); + Date end = DateUtil.getWeekEnd(weekStart); + pCriteria.and("lastMenses").gt(start).lte(end); + } + if(age != null) { + Date start = DateUtil.getBeforeAge(age); + Date end = DateUtil.getBeforeAge(age + 1); + pCriteria.and("birth").gt(end).lte(start); + } + List patients = mongoTemplate.find(Query.query(pCriteria), Patients.class); + List ids = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(patients)) { + for (Patients patient : patients) { + ids.add(patient.getId()); + } + } + criteria.and("parentId").in(ids); + return RespBuilder.buildSuccess(); + } + + @Override + public BaseResponse info(String parentId, Integer type) { + List> tabList = new ArrayList<>(); + List betweenDay = DateUtil.getBetweenDay(7); + Object[] xAxis = betweenDay.toArray(); + CollectionUtils.reverseArray(xAxis); + List minAxis; + List maxAxis; + List bloodSugarAxis = new LinkedList<>(); + if(type == BloodSugarEnums.A.getId()) { + minAxis = Arrays.asList(3.3, 3.3, 3.3, 3.3, 3.3, 3.3, 3.3); + maxAxis = Arrays.asList(5.6, 5.6, 5.6, 5.6, 5.6, 5.6, 5.6); + } else if(type == BloodSugarEnums.B.getId() || type == BloodSugarEnums.D.getId() || type == BloodSugarEnums.F.getId() ) { + minAxis = Arrays.asList(3.3, 3.3, 3.3, 3.3, 3.3, 3.3, 3.3); + maxAxis = Arrays.asList(5.8, 5.8, 5.8, 5.8, 5.8, 5.8, 5.8); + } else if(type == BloodSugarEnums.I.getId()) { + minAxis = Arrays.asList(6.1, 6.1, 6.1, 6.1, 6.1, 6.1, 6.1); + maxAxis = Arrays.asList(7.8, 7.8, 7.8, 7.8, 7.8, 7.8, 7.8); + } else { + minAxis = Arrays.asList(4.4, 4.4, 4.4, 4.4, 4.4, 4.4, 4.4); + maxAxis = Arrays.asList(6.7, 6.7, 6.7, 6.7, 6.7, 6.7, 6.7); + } + + List bloodSugars = mongoTemplate.find(Query.query(Criteria.where("parentId").is(parentId)), BloodSugar.class); + if(CollectionUtils.isNotEmpty(bloodSugars)) { + for (int i = 0; i < betweenDay.size(); i++) { + String day = betweenDay.get(i); + Map temp = new HashMap<>(); + for (BloodSugar bloodSugar : bloodSugars) { + if(day.equals(bloodSugar.getCreatYmdDate())) { + for (BloodSugarEnums sugarEnums : BloodSugarEnums.values()) { + if(sugarEnums.getId() == (bloodSugar.getBloodSugarType())) { + temp.put(sugarEnums.getId(), bloodSugar.getBloodSugar()); + bloodSugarAxis.add(0, bloodSugar.getBloodSugar()); + } + } + } + } + for (BloodSugarEnums sugarEnums : BloodSugarEnums.values()) { + if(!temp.containsKey(sugarEnums.getId())) { + temp.put(sugarEnums.getId(), "--"); + } + } + if(bloodSugarAxis.size() < i + 1) { + bloodSugarAxis.add(0, "0"); + } + temp.put("date", day); + tabList.add(temp); + } + } + return RespBuilder.buildSuccess("tabList", tabList, "xAxis", xAxis, "minAxis", minAxis, "maxAxis", maxAxis, "bloodSugarAxis", bloodSugarAxis); + } + + @Override + public BaseResponse getAppInfo(String parentId) { + BloodSugar bloodSugar = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(parentId)), BloodSugar.class); + List> restList = new ArrayList<>(); + /* if(bloodSugar != null) { + Map> infos = bloodSugar.getInfos(); + Object[] keys = infos.keySet().toArray(); + CollectionUtils.reverseArray(keys); + for (Object key : keys) { + Map temp = new HashMap<>(); + Map info = infos.get(key); + temp.put("createTime", info.get("timestamp")); + temp.put("diastole", info.get("szy")); + temp.put("pulse", info.get("pulse")); + temp.put("shrink", info.get("ssy")); + restList.add(temp); + } + }*/ + return RespBuilder.buildSuccess(restList); + } + + @Override + public BaseResponse initBloodSugar(Map bloods) { + JSONArray array = JSONArray.parseArray(bloods.get("datas")); + for (Object obj : array) { + JSONObject jsonObject = (JSONObject) obj; + System.out.println(jsonObject); + } + return RespBuilder.buildSuccess(); + } + + @Override + public BaseResponse init() { + return RespBuilder.buildSuccess(EnumUtil.toJson(BloodSugarEnums.class)); + } + +} -- 1.8.3.1