Commit 9ea10ca75a28660168d662bc18f669e36ab756ce

Authored by liquanyu
1 parent 7d27e2670b

血糖

Showing 5 changed files with 283 additions and 7 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/BloodSugar.java View file @ 9ea10ca
... ... @@ -65,6 +65,28 @@
65 65 //当前孕周
66 66 private Integer currentWeek;
67 67  
  68 + //0 未推送 1已经推送
  69 + private Integer exceptionSend;
  70 +
  71 + //0 未推送 1已经推送
  72 + private Integer sevenSend;
  73 +
  74 + public Integer getExceptionSend() {
  75 + return exceptionSend;
  76 + }
  77 +
  78 + public void setExceptionSend(Integer exceptionSend) {
  79 + this.exceptionSend = exceptionSend;
  80 + }
  81 +
  82 + public Integer getSevenSend() {
  83 + return sevenSend;
  84 + }
  85 +
  86 + public void setSevenSend(Integer sevenSend) {
  87 + this.sevenSend = sevenSend;
  88 + }
  89 +
68 90 public Integer getCurrentWeek() {
69 91 return currentWeek;
70 92 }
platform-dal/src/main/java/com/lyms/platform/query/BloodSugarQuery.java View file @ 9ea10ca
... ... @@ -19,11 +19,17 @@
19 19  
20 20 private String id;
21 21 private String parentId;
  22 + private List<String> parentIds;
22 23 private String pid;
23 24 private Boolean isExistReportDate;
24 25 private Date createdStart;
25 26 private Date createdEnd;
  27 + //0 未推送 1已经推送
  28 + private Integer exceptionSend;
26 29  
  30 + //0 未推送 1已经推送
  31 + private Integer sevenSend;
  32 +
27 33 @Override
28 34 public MongoQuery convertToQuery() {
29 35 MongoCondition condition = MongoCondition.newInstance();
... ... @@ -35,6 +41,38 @@
35 41 if(StringUtils.isNotEmpty(parentId)){
36 42 condition = condition.and("parentId", parentId, MongoOper.IS);
37 43 }
  44 +
  45 + if(CollectionUtils.isNotEmpty(parentIds)){
  46 + condition = condition.and("parentId", parentIds, MongoOper.IN);
  47 + }
  48 +
  49 + if(exceptionSend != null){
  50 + if (exceptionSend == 0)
  51 + {
  52 + MongoCondition con1 = MongoCondition.newInstance("exceptionSend", exceptionSend, MongoOper.IS);
  53 + MongoCondition con = MongoCondition.newInstance("exceptionSend", false, MongoOper.EXISTS);
  54 + condition = condition.orCondition(new MongoCondition[]{con1, con});
  55 + }
  56 + else
  57 + {
  58 + condition = condition.and("exceptionSend", exceptionSend, MongoOper.IS);
  59 + }
  60 +
  61 + }
  62 +
  63 + if(sevenSend != null){
  64 + if (sevenSend == 0)
  65 + {
  66 + MongoCondition con1 = MongoCondition.newInstance("sevenSend", sevenSend, MongoOper.IS);
  67 + MongoCondition con = MongoCondition.newInstance("sevenSend", false, MongoOper.EXISTS);
  68 + condition = condition.orCondition(new MongoCondition[]{con1, con});
  69 + }
  70 + else
  71 + {
  72 + condition = condition.and("sevenSend", sevenSend, MongoOper.IS);
  73 + }
  74 + }
  75 +
38 76 if(StringUtils.isNotEmpty(pid)){
39 77 condition = condition.and("pid", pid, MongoOper.IS);
40 78 }
... ... @@ -67,6 +105,29 @@
67 105 return condition.toMongoQuery();
68 106 }
69 107  
  108 + public Integer getExceptionSend() {
  109 + return exceptionSend;
  110 + }
  111 +
  112 + public void setExceptionSend(Integer exceptionSend) {
  113 + this.exceptionSend = exceptionSend;
  114 + }
  115 +
  116 + public Integer getSevenSend() {
  117 + return sevenSend;
  118 + }
  119 +
  120 + public void setSevenSend(Integer sevenSend) {
  121 + this.sevenSend = sevenSend;
  122 + }
  123 +
  124 + public List<String> getParentIds() {
  125 + return parentIds;
  126 + }
  127 +
  128 + public void setParentIds(List<String> parentIds) {
  129 + this.parentIds = parentIds;
  130 + }
70 131  
71 132 public String getId() {
72 133 return id;
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java View file @ 9ea10ca
... ... @@ -8,10 +8,7 @@
8 8 import com.lyms.platform.pojo.BloodSugar;
9 9 import org.springframework.beans.factory.annotation.Autowired;
10 10 import org.springframework.stereotype.Controller;
11   -import org.springframework.web.bind.annotation.PathVariable;
12   -import org.springframework.web.bind.annotation.RequestMapping;
13   -import org.springframework.web.bind.annotation.RequestMethod;
14   -import org.springframework.web.bind.annotation.ResponseBody;
  11 +import org.springframework.web.bind.annotation.*;
15 12  
16 13 import javax.servlet.http.HttpServletRequest;
17 14 import java.util.Date;
... ... @@ -124,7 +121,13 @@
124 121 public BaseResponse getSysBloodSugarReport(@PathVariable String patientId
125 122 ,HttpServletRequest httpServletRequest) {
126 123 LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext");
127   - return bloodSugarService.getSysBloodSugarReport(patientId,loginState.getId());
  124 + return bloodSugarService.getSysBloodSugarReport(patientId, loginState.getId());
  125 + }
  126 +
  127 + @ResponseBody
  128 + @RequestMapping(value = "/getBloodSugars/{doctorId}/{type}/{status}", method = RequestMethod.GET)
  129 + public BaseResponse getBloodSugars(@PathVariable String doctorId,@PathVariable Integer type,@PathVariable Integer status,@RequestParam(required = false) String keyword) {
  130 + return bloodSugarService.getBloodSugars(doctorId, type, status, keyword);
128 131 }
129 132  
130 133 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java View file @ 9ea10ca
... ... @@ -31,5 +31,7 @@
31 31 BaseResponse addWeightInfo(String id, String beforeWeight, String currentWeight);
32 32  
33 33 BaseResponse getSysBloodSugarReport(String patientId,Integer userId);
  34 +
  35 + BaseResponse getBloodSugars(String doctorId, Integer type, Integer status, String keyword);
34 36 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java View file @ 9ea10ca
... ... @@ -3,8 +3,10 @@
3 3 import com.alibaba.fastjson.JSONArray;
4 4 import com.alibaba.fastjson.JSONObject;
5 5 import com.lyms.platform.biz.service.*;
  6 +import com.lyms.platform.common.constants.ErrorCodeConstants;
6 7 import com.lyms.platform.common.enums.BloodSugarEnums;
7 8 import com.lyms.platform.common.enums.BloodSugarEnums2;
  9 +import com.lyms.platform.common.enums.PatientSerEnums;
8 10 import com.lyms.platform.common.enums.YnEnums;
9 11 import com.lyms.platform.common.result.*;
10 12 import com.lyms.platform.common.utils.DateUtil;
11 13  
12 14  
... ... @@ -21,11 +23,15 @@
21 23 import com.lyms.platform.operate.web.utils.MongoUtil;
22 24 import com.lyms.platform.operate.web.utils.ReportConfig;
23 25 import com.lyms.platform.permission.model.Organization;
  26 +import com.lyms.platform.permission.model.PatientService;
  27 +import com.lyms.platform.permission.model.PatientServiceQuery;
24 28 import com.lyms.platform.permission.service.OrganizationService;
  29 +import com.lyms.platform.permission.service.PatientServiceService;
25 30 import com.lyms.platform.pojo.*;
26 31 import com.lyms.platform.query.AntExChuQuery;
27 32 import com.lyms.platform.query.AntExRecordQuery;
28 33 import com.lyms.platform.query.BloodSugarQuery;
  34 +import com.lyms.platform.query.PatientsQuery;
29 35 import org.apache.commons.collections.MapUtils;
30 36 import org.apache.commons.collections.map.HashedMap;
31 37 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -74,6 +80,9 @@
74 80 private AntenatalExaminationService antenatalExaminationService;
75 81  
76 82 @Autowired
  83 + private PatientServiceService patientServiceService;
  84 +
  85 + @Autowired
77 86 private ComputeKulServiceManager computeKulServiceManager;
78 87  
79 88 @Autowired
... ... @@ -374,7 +383,7 @@
374 383 }
375 384 }
376 385 if(flag) {
377   - weekMap.put("value", "--");
  386 + weekMap.put("value", "");
378 387 }
379 388 weekAvgMap.add(weekMap);
380 389 }
... ... @@ -413,7 +422,7 @@
413 422 }
414 423 }
415 424 if(flag) {
416   - monthMap.put("value", "--");
  425 + monthMap.put("value", "");
417 426 }
418 427 monthAvgMap.add(monthMap);
419 428 }
... ... @@ -1192,6 +1201,185 @@
1192 1201 private void setData(Map<String, Object> map, String key, String value) {
1193 1202 map.put("id", key);
1194 1203 map.put("name", value);
  1204 + }
  1205 +
  1206 +
  1207 + @Override
  1208 + public BaseResponse getBloodSugars(String doctorId, Integer type, Integer status, String keyword) {
  1209 + List<Map> datas = new ArrayList<>();
  1210 + List<String> pids = new ArrayList<>();
  1211 + if (org.apache.commons.lang.StringUtils.isNotEmpty(keyword))
  1212 + {
  1213 + PatientsQuery patientsQuery = new PatientsQuery();
  1214 + patientsQuery.setYn(YnEnums.YES.getId());
  1215 + patientsQuery.setQueryNo(keyword);
  1216 + patientsQuery.setType(1);
  1217 + List<Patients> pats = patientsService.queryPatient(patientsQuery);
  1218 + if (CollectionUtils.isNotEmpty(pats))
  1219 + {
  1220 + for (Patients pat : pats)
  1221 + {
  1222 + pids.add(pat.getId());
  1223 + }
  1224 + }
  1225 + else
  1226 + {
  1227 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas);
  1228 + }
  1229 + }
  1230 +
  1231 +
  1232 + PatientServiceQuery patientQuery = new PatientServiceQuery();
  1233 + patientQuery.setSerDoct(doctorId);
  1234 + patientQuery.setSerType(PatientSerEnums.SerTypeEnums.xt.getId());
  1235 + patientQuery.setSerStatus(1);
  1236 + if (CollectionUtils.isNotEmpty(pids))
  1237 + {
  1238 + patientQuery.setParentIds((String[]) pids.toArray(new String[pids.size()]));
  1239 + }
  1240 + List<PatientService> list = patientServiceService.queryPatientService(patientQuery);
  1241 + List<String> patientIds = new ArrayList<>();
  1242 +
  1243 + if (CollectionUtils.isNotEmpty(list))
  1244 + {
  1245 + for (PatientService ps : list)
  1246 + {
  1247 + Patients pat = patientsService.findOnePatientById(ps.getParentid());
  1248 + if (pat != null && pat.getType() == 1)
  1249 + {
  1250 + patientIds.add(ps.getParentid());
  1251 + }
  1252 + }
  1253 + }
  1254 +
  1255 + BloodSugarQuery bloodSugarQuery = new BloodSugarQuery();
  1256 + bloodSugarQuery.setParentIds(patientIds);
  1257 + //七天没有记录的
  1258 + if (type == 1)
  1259 + {
  1260 + bloodSugarQuery.setCreatedEnd(DateUtil.addDay(new Date(),-7));
  1261 + if (status != null && status == 1)
  1262 + {
  1263 + bloodSugarQuery.setSevenSend(status);
  1264 + }
  1265 + else if (status != null && status == 0)
  1266 + {
  1267 + bloodSugarQuery.setSevenSend(status);
  1268 + }
  1269 + }
  1270 + //大于等于连续3次异常的
  1271 + else if (type == 2)
  1272 + {
  1273 + if (status != null && status == 1)
  1274 + {
  1275 + bloodSugarQuery.setExceptionSend(status);
  1276 + }
  1277 + else if (status != null && status == 0)
  1278 + {
  1279 + bloodSugarQuery.setExceptionSend(status);
  1280 + }
  1281 + }
  1282 +
  1283 + List<BloodSugar> bloodSugars = bloodSugarService.queryBloodSugarList(bloodSugarQuery,Sort.Direction.DESC, "created");
  1284 +
  1285 + Map<String, List<BloodSugar>> listMap = new HashMap<>();
  1286 +
  1287 + if (CollectionUtils.isNotEmpty(bloodSugars))
  1288 + {
  1289 + for (BloodSugar bloodSugar : bloodSugars)
  1290 + {
  1291 + List<BloodSugar> bss = listMap.get(bloodSugar.getParentId());
  1292 + if (CollectionUtils.isEmpty(bss))
  1293 + {
  1294 + bss = new ArrayList<>();
  1295 + }
  1296 + bss.add(bloodSugar);
  1297 + listMap.put(bloodSugar.getParentId(),bss);
  1298 + }
  1299 + }
  1300 + if (listMap.size() > 0)
  1301 + {
  1302 + for (String key : listMap.keySet())
  1303 + {
  1304 + List<BloodSugar> sugarList = listMap.get(key);
  1305 + if (CollectionUtils.isNotEmpty(sugarList))
  1306 + {
  1307 + Map map = new HashMap();
  1308 + BloodSugar bloodSugar1 = sugarList.get(0);
  1309 + if (type == 2)
  1310 + {
  1311 +
  1312 + boolean isContinue = false;
  1313 + Map<String, List<BloodSugar>> maps = new HashMap<>();
  1314 + if (CollectionUtils.isNotEmpty(sugarList))
  1315 + {
  1316 + for (BloodSugar bloodSugar : sugarList)
  1317 + {
  1318 + List<BloodSugar> bss = maps.get(bloodSugar.getCreatYmdDate());
  1319 + if (CollectionUtils.isEmpty(bss))
  1320 + {
  1321 + bss = new ArrayList<>();
  1322 + }
  1323 + bss.add(bloodSugar);
  1324 + maps.put(bloodSugar.getCreatYmdDate(),bss);
  1325 + }
  1326 + }
  1327 + maps = sortMapByKey(maps);
  1328 + if (maps.size() > 0) {
  1329 + int count = 0;
  1330 + for (String key1 : maps.keySet()) {
  1331 + List<BloodSugar> bss = maps.get(key1);
  1332 + if (CollectionUtils.isNotEmpty(bss))
  1333 + {
  1334 + for (BloodSugar bs : bss)
  1335 + {
  1336 + int result = getBloodSugarStatus(bs.getBloodSugarType(),Float.parseFloat(bs.getBloodSugar()));
  1337 + if (result != 0)
  1338 + {
  1339 + count++;
  1340 + break;
  1341 + }
  1342 + }
  1343 + }
  1344 + if (count >= 3)
  1345 + {
  1346 + isContinue = true;
  1347 + break;
  1348 + }
  1349 + }
  1350 + }
  1351 +
  1352 + if (!isContinue)
  1353 + {
  1354 + continue;
  1355 + }
  1356 + }
  1357 + else if (type == 1)
  1358 + {
  1359 + BloodSugarQuery bloodSugarQuery1 = new BloodSugarQuery();
  1360 + bloodSugarQuery1.setParentId(bloodSugar1.getParentId());
  1361 + bloodSugarQuery1.setCreatedStart(DateUtil.addDay(new Date(), -7));
  1362 + List<BloodSugar> list1 = bloodSugarService.queryBloodSugarList(bloodSugarQuery1,Sort.Direction.DESC, "created");
  1363 + if (CollectionUtils.isNotEmpty(list1))
  1364 + {
  1365 + continue;
  1366 + }
  1367 + }
  1368 +
  1369 + Patients patients = patientsService.findOnePatientById(bloodSugar1.getParentId());
  1370 +
  1371 + map.put("patientId",patients != null ? patients.getId() : "");
  1372 + map.put("name",patients != null ? patients.getUsername() : "");
  1373 + map.put("age",patients != null ? DateUtil.getAge(patients.getBirth(), bloodSugar1.getCreated()): "");
  1374 + map.put("week",patients != null ? DateUtil.getWeekDesc(patients.getLastMenses(), bloodSugar1.getCreated()): "");
  1375 + map.put("bloodSugar",bloodSugar1.getBloodSugar());
  1376 + map.put("days",DateUtil.getDays(bloodSugar1.getCreated(), new Date()));
  1377 + map.put("phone",patients.getPhone());
  1378 + datas.add(map);
  1379 + }
  1380 + }
  1381 + }
  1382 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas);
1195 1383 }
1196 1384  
1197 1385 }