Commit 53ace698cd96d2a94a9dc7290bedf85a37d0e3a9

Authored by liquanyu
1 parent a6d16a943f

血糖报告

Showing 3 changed files with 119 additions and 88 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java View file @ 53ace69
... ... @@ -423,7 +423,10 @@
423 423  
424 424 @RequestMapping(method = RequestMethod.GET, value = "/getPatientRiskInfo")
425 425 @ResponseBody
426   - public Map getPatientRiskInfo(@RequestParam(required = false)String cardNo,@RequestParam(required = false)String vcCardNo){
  426 + public String getPatientRiskInfo(@RequestParam(required = false)String cardNo,@RequestParam(required = false)String vcCardNo,
  427 + HttpServletResponse response){
  428 + response.setHeader("Content-type", "text/xml;charset=utf-8");
  429 + response.setCharacterEncoding("UTF-8");
427 430 return antenatalExaminationFacade.getPatientRiskInfo(cardNo, vcCardNo);
428 431 }
429 432  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java View file @ 53ace69
... ... @@ -33,6 +33,9 @@
33 33 import org.apache.commons.collections.map.HashedMap;
34 34 import org.apache.commons.lang.StringUtils;
35 35 import org.apache.commons.lang.math.NumberUtils;
  36 +import org.dom4j.Document;
  37 +import org.dom4j.DocumentHelper;
  38 +import org.dom4j.Element;
36 39 import org.slf4j.Logger;
37 40 import org.slf4j.LoggerFactory;
38 41 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -45,6 +48,7 @@
45 48 import org.springframework.stereotype.Component;
46 49 import org.springframework.util.StopWatch;
47 50  
  51 +import java.io.UnsupportedEncodingException;
48 52 import java.util.*;
49 53 import java.util.regex.Pattern;
50 54  
51 55  
52 56  
53 57  
54 58  
55 59  
56 60  
57 61  
58 62  
59 63  
60 64  
... ... @@ -4534,92 +4538,114 @@
4534 4538 }
4535 4539  
4536 4540  
4537   - public Map<String,Object> getPatientRiskInfo(String cardNo, String vcCardNo) {
  4541 + public String getPatientRiskInfo(String cardNo, String vcCardNo) {
  4542 + Document document = DocumentHelper.createDocument();// 建立document对象,用来操作xml文件
  4543 + document.setXMLEncoding("utf-8");
  4544 + try {
4538 4545  
4539   - Map<String,Object> map = new HashMap<>();
4540   - if (StringUtils.isEmpty(cardNo) && StringUtils.isEmpty(vcCardNo) )
4541   - {
4542   - return map;
4543   - }
  4546 + Element riskElement = document.addElement("risk");// 建立根节点
4544 4547  
4545   - PatientsQuery patientsQuery = new PatientsQuery();
4546   - if (StringUtils.isNotEmpty(cardNo))
4547   - {
4548   - patientsQuery.setCardNo(cardNo);
4549   - }
4550   - else if (StringUtils.isNotEmpty(vcCardNo))
4551   - {
4552   - patientsQuery.setVcCardNo(vcCardNo);
4553   - }
4554   - patientsQuery.setYn(YnEnums.YES.getId());
  4548 + if (StringUtils.isEmpty(cardNo) && StringUtils.isEmpty(vcCardNo) )
  4549 + {
  4550 + String xml = document.asXML().toString();
  4551 + return xml;
  4552 + }
4555 4553  
4556   - List<Patients> list = patientsService.queryPatient(patientsQuery);
4557   - if (CollectionUtils.isNotEmpty(list)) {
4558   - Patients patients = list.get(0);
  4554 + PatientsQuery patientsQuery = new PatientsQuery();
  4555 + if (StringUtils.isNotEmpty(cardNo))
  4556 + {
  4557 + patientsQuery.setCardNo(cardNo);
  4558 + }
  4559 + else if (StringUtils.isNotEmpty(vcCardNo))
  4560 + {
  4561 + patientsQuery.setVcCardNo(vcCardNo);
  4562 + }
  4563 + patientsQuery.setYn(YnEnums.YES.getId());
4559 4564  
4560   - HighScoreResult highScoreResult = findLastRisk(patients.getPid(), false);
4561   - AntExQuery antExQuery = new AntExQuery();
4562   - antExQuery.setYn(YnEnums.YES.getId());
4563   - antExQuery.setPid(patients.getPid());
4564   - antExQuery.setStart(DateUtil.addMonth(new Date(), -12));
4565   - // 姓名: VARCHAR2
4566   - // 证件号: VARCHAR2
4567   - // 就诊卡号:VARCHAR2
4568   - // 高危因素:VARCHAR2
4569   - // 产检医生:VARCHAR2
4570   - // 产检孕周:VARCHAR2
4571   - map.put("name", patients.getUsername());
4572   - map.put("cardNo", patients.getCardNo());
4573   - map.put("vcCardNo", patients.getVcCardNo());
  4565 + List<Patients> list = patientsService.queryPatient(patientsQuery);
  4566 + if (CollectionUtils.isNotEmpty(list)) {
  4567 + Patients patients = list.get(0);
4574 4568  
4575   - List riskList = highScoreResult.getHighRisk();
4576   - List resultList = new ArrayList();
4577   - if (CollectionUtils.isNotEmpty(riskList))
4578   - {
4579   - for (int i = 0 ;i < riskList.size() ; i++)
  4569 + HighScoreResult highScoreResult = findLastRisk(patients.getPid(), false);
  4570 + AntExQuery antExQuery = new AntExQuery();
  4571 + antExQuery.setYn(YnEnums.YES.getId());
  4572 + antExQuery.setPid(patients.getPid());
  4573 + antExQuery.setStart(DateUtil.addMonth(new Date(), -12));
  4574 + // 姓名: VARCHAR2
  4575 + // 证件号: VARCHAR2
  4576 + // 就诊卡号:VARCHAR2
  4577 + // 高危因素:VARCHAR2
  4578 + // 产检医生:VARCHAR2
  4579 + // 产检孕周:VARCHAR2
  4580 +
  4581 + Element nameElement = riskElement.addElement("name");
  4582 + nameElement.addText(patients.getUsername());
  4583 +
  4584 + Element cardNoElement = riskElement.addElement("cardNo");
  4585 + cardNoElement.addText(patients.getCardNo());
  4586 +
  4587 + Element vcCardNoElement = riskElement.addElement("cardNo");
  4588 + vcCardNoElement.addText(patients.getVcCardNo());
  4589 +
  4590 + String checkDoctor = "";
  4591 + if (StringUtils.isNotEmpty(patients.getLastCheckEmployeeId()) && FunvCommonUtil.isNumeric(patients.getLastCheckEmployeeId())) {
  4592 + Users users = usersService.getUsers(Integer.parseInt(patients.getLastCheckEmployeeId()));
  4593 + if (users != null && users.getYn() == YnEnums.YES.getId()) {
  4594 + checkDoctor = users.getName();
  4595 + }
  4596 + }
  4597 +
  4598 + Element checkDoctorElement = riskElement.addElement("checkDoctor");
  4599 + checkDoctorElement.addText(checkDoctor);
  4600 +
  4601 +
  4602 + Element checkWeekElement = riskElement.addElement("checkWeek");
  4603 + checkWeekElement.addText(patients.getLastCTime() == null ? "" : DateUtil.getWeekDesc(patients.getLastMenses(), patients.getLastCTime()));
  4604 +
  4605 +
  4606 + List riskList = highScoreResult.getHighRisk();
  4607 + if (CollectionUtils.isNotEmpty(riskList))
4580 4608 {
4581   - Map<String, String> rmap = (Map<String, String>) riskList.get(i);
4582   - Map<String, String> resultMap = new HashMap<>();
4583   - String color = rmap.get("color");
4584   - if ("risk_green".equals(color))
  4609 + for (int i = 0 ;i < riskList.size() ; i++)
4585 4610 {
4586   - color = "绿色";
  4611 + Map<String, String> rmap = (Map<String, String>) riskList.get(i);
  4612 + String color = rmap.get("color");
  4613 + if ("risk_green".equals(color))
  4614 + {
  4615 + color = "绿色";
  4616 + }
  4617 + else if ("risk_orange".equals(color))
  4618 + {
  4619 + color = "橙色";
  4620 + }
  4621 + else if ("risk_yellow".equals(color))
  4622 + {
  4623 + color = "黄色";
  4624 + }
  4625 + else if ("risk_red".equals(color))
  4626 + {
  4627 + color = "红色";
  4628 + }
  4629 + else if ("risk_purple".equals(color))
  4630 + {
  4631 + color = "紫色";
  4632 + }
  4633 + Element riskFactorElement = riskElement.addElement("riskFactor");
  4634 +
  4635 + String name = rmap.get("name");
  4636 + Element nElement = riskFactorElement.addElement("name");
  4637 + nElement.addText(name);
  4638 +
  4639 + Element colorElement = riskFactorElement.addElement("color");
  4640 + colorElement.addText(color);
4587 4641 }
4588   - else if ("risk_orange".equals(color))
4589   - {
4590   - color = "橙色";
4591   - }
4592   - else if ("risk_yellow".equals(color))
4593   - {
4594   - color = "黄色";
4595   - }
4596   - else if ("risk_red".equals(color))
4597   - {
4598   - color = "红色";
4599   - }
4600   - else if ("risk_purple".equals(color))
4601   - {
4602   - color = "紫色";
4603   - }
4604   - String name = rmap.get("name");
4605   - resultMap.put("color",color);
4606   - resultMap.put("name",name);
4607   - resultList.add(resultMap);
4608 4642 }
4609 4643 }
4610   -
4611   - map.put("riskFactor", resultList);
4612   - String checkDoctor = "";
4613   - if (StringUtils.isNotEmpty(patients.getLastCheckEmployeeId()) && FunvCommonUtil.isNumeric(patients.getLastCheckEmployeeId())) {
4614   - Users users = usersService.getUsers(Integer.parseInt(patients.getLastCheckEmployeeId()));
4615   - if (users != null && users.getYn() == YnEnums.YES.getId()) {
4616   - checkDoctor = users.getName();
4617   - }
4618   - }
4619   - map.put("checkDoctor", checkDoctor);
4620   - map.put("checkWeek",patients.getLastCTime() == null ? "" : DateUtil.getWeekDesc(patients.getLastMenses(),patients.getLastCTime()));
  4644 + return document.asXML();
  4645 + } catch (Exception e) {
  4646 + return document.asXML();
4621 4647 }
4622   - return map;
  4648 +
4623 4649 }
4624 4650 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java View file @ 53ace69
... ... @@ -554,9 +554,11 @@
554 554 {
555 555 continue;
556 556 }
557   - successCount = getBloodSugarSuccess( type, bsType, blood);
558   - monitorStatus = successCount / size < 0.8 ? 2 : 3;
  557 + successCount += getBloodSugarSuccess(bsType, blood);
  558 +
559 559 }
  560 + double result = new BigDecimal((float)successCount / size).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
  561 + monitorStatus = result < 0.8 ? 2 : 3;
560 562 }
561 563 else if (type == 2 && size < 21)
562 564 {
563 565  
... ... @@ -571,10 +573,10 @@
571 573 {
572 574 continue;
573 575 }
574   - successCount = getBloodSugarSuccess( type, bsType, blood);
575   - double pacent = successCount / size;
576   - monitorStatus = pacent < 0.6 ? 5 : (pacent < 0.8 ? 6 : 7);
  576 + successCount += getBloodSugarSuccess(bsType, blood);
577 577 }
  578 + double result = new BigDecimal((float)successCount / size).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
  579 + monitorStatus = result < 0.6 ? 5 : (result < 0.8 ? 6 : 7);
578 580 }
579 581  
580 582 Patients patients = mongoTemplate.findById(one.getParentId(), Patients.class);
581 583  
582 584  
583 585  
584 586  
585 587  
... ... @@ -594,29 +596,29 @@
594 596 }
595 597  
596 598  
597   - private int getBloodSugarSuccess(int type,int bsType,BloodSugar blood)
  599 + private int getBloodSugarSuccess(int bsType,BloodSugar blood)
598 600 {
599 601 int successCount = 0;
600 602  
601 603 Double bloodSugarValue = Double.valueOf(blood.getBloodSugar());
602 604 //空腹
603   - if (bsType == 1 && 3.3 >= bloodSugarValue && bloodSugarValue <= 5.3)
  605 + if (bsType == 1 && 3.3 <= bloodSugarValue && bloodSugarValue <= 5.3)
604 606 {
605 607 successCount+=1;
606 608 }
607   - else if ((type == 2 || type == 4 || type == 6) && 3.3 >= bloodSugarValue && bloodSugarValue <= 5.3)
  609 + else if ((bsType == 2 || bsType == 4 || bsType == 6) && 3.3 <= bloodSugarValue && bloodSugarValue <= 5.3)
608 610 {
609 611 successCount+=1;
610 612 }
611   - else if ((type == 3 || type == 5 || type == 7) && 4.4 >= bloodSugarValue && bloodSugarValue <= 6.7)
  613 + else if ((bsType == 3 || bsType == 5 || bsType == 7) && 4.4 <= bloodSugarValue && bloodSugarValue <= 6.7)
612 614 {
613 615 successCount+=1;
614 616 }
615   - else if (type == 8 && 4.4 >= bloodSugarValue && bloodSugarValue <= 6.7)
  617 + else if (bsType == 8 && 4.4 <= bloodSugarValue && bloodSugarValue <= 6.7)
616 618 {
617 619 successCount+=1;
618 620 }
619   - else if (type == 9 && 4.4 >= bloodSugarValue && bloodSugarValue <= 6.7)
  621 + else if (bsType == 9 && 4.4 <= bloodSugarValue && bloodSugarValue <= 6.7)
620 622 {
621 623 successCount+=1;
622 624 }