From 53ace698cd96d2a94a9dc7290bedf85a37d0e3a9 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Tue, 24 Jul 2018 14:39:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E7=B3=96=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AntenatalExaminationController.java | 5 +- .../web/facade/AntenatalExaminationFacade.java | 178 ++++++++++++--------- .../web/service/impl/BloodSugarServiceImpl.java | 24 +-- 3 files changed, 119 insertions(+), 88 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java index 0d6d931..352ea1d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java @@ -423,7 +423,10 @@ public class AntenatalExaminationController extends BaseController { @RequestMapping(method = RequestMethod.GET, value = "/getPatientRiskInfo") @ResponseBody - public Map getPatientRiskInfo(@RequestParam(required = false)String cardNo,@RequestParam(required = false)String vcCardNo){ + public String getPatientRiskInfo(@RequestParam(required = false)String cardNo,@RequestParam(required = false)String vcCardNo, + HttpServletResponse response){ + response.setHeader("Content-type", "text/xml;charset=utf-8"); + response.setCharacterEncoding("UTF-8"); return antenatalExaminationFacade.getPatientRiskInfo(cardNo, vcCardNo); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 920df24..0b3ac23 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -33,6 +33,9 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -45,6 +48,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import org.springframework.util.StopWatch; +import java.io.UnsupportedEncodingException; import java.util.*; import java.util.regex.Pattern; @@ -4534,91 +4538,113 @@ public class AntenatalExaminationFacade { } - public Map getPatientRiskInfo(String cardNo, String vcCardNo) { - - Map map = new HashMap<>(); - if (StringUtils.isEmpty(cardNo) && StringUtils.isEmpty(vcCardNo) ) - { - return map; - } + public String getPatientRiskInfo(String cardNo, String vcCardNo) { + Document document = DocumentHelper.createDocument();// 建立document对象,用来操作xml文件 + document.setXMLEncoding("utf-8"); + try { - PatientsQuery patientsQuery = new PatientsQuery(); - if (StringUtils.isNotEmpty(cardNo)) - { - patientsQuery.setCardNo(cardNo); - } - else if (StringUtils.isNotEmpty(vcCardNo)) - { - patientsQuery.setVcCardNo(vcCardNo); - } - patientsQuery.setYn(YnEnums.YES.getId()); + Element riskElement = document.addElement("risk");// 建立根节点 - List list = patientsService.queryPatient(patientsQuery); - if (CollectionUtils.isNotEmpty(list)) { - Patients patients = list.get(0); + if (StringUtils.isEmpty(cardNo) && StringUtils.isEmpty(vcCardNo) ) + { + String xml = document.asXML().toString(); + return xml; + } - HighScoreResult highScoreResult = findLastRisk(patients.getPid(), false); - AntExQuery antExQuery = new AntExQuery(); - antExQuery.setYn(YnEnums.YES.getId()); - antExQuery.setPid(patients.getPid()); - antExQuery.setStart(DateUtil.addMonth(new Date(), -12)); - // 姓名: VARCHAR2 - // 证件号: VARCHAR2 - // 就诊卡号:VARCHAR2 - // 高危因素:VARCHAR2 - // 产检医生:VARCHAR2 - // 产检孕周:VARCHAR2 - map.put("name", patients.getUsername()); - map.put("cardNo", patients.getCardNo()); - map.put("vcCardNo", patients.getVcCardNo()); - - List riskList = highScoreResult.getHighRisk(); - List resultList = new ArrayList(); - if (CollectionUtils.isNotEmpty(riskList)) + PatientsQuery patientsQuery = new PatientsQuery(); + if (StringUtils.isNotEmpty(cardNo)) { - for (int i = 0 ;i < riskList.size() ; i++) - { - Map rmap = (Map) riskList.get(i); - Map resultMap = new HashMap<>(); - String color = rmap.get("color"); - if ("risk_green".equals(color)) - { - color = "绿色"; - } - else if ("risk_orange".equals(color)) - { - color = "橙色"; - } - else if ("risk_yellow".equals(color)) - { - color = "黄色"; - } - else if ("risk_red".equals(color)) - { - color = "红色"; - } - else if ("risk_purple".equals(color)) - { - color = "紫色"; + patientsQuery.setCardNo(cardNo); + } + else if (StringUtils.isNotEmpty(vcCardNo)) + { + patientsQuery.setVcCardNo(vcCardNo); + } + patientsQuery.setYn(YnEnums.YES.getId()); + + List list = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(list)) { + Patients patients = list.get(0); + + HighScoreResult highScoreResult = findLastRisk(patients.getPid(), false); + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setYn(YnEnums.YES.getId()); + antExQuery.setPid(patients.getPid()); + antExQuery.setStart(DateUtil.addMonth(new Date(), -12)); + // 姓名: VARCHAR2 + // 证件号: VARCHAR2 + // 就诊卡号:VARCHAR2 + // 高危因素:VARCHAR2 + // 产检医生:VARCHAR2 + // 产检孕周:VARCHAR2 + + Element nameElement = riskElement.addElement("name"); + nameElement.addText(patients.getUsername()); + + Element cardNoElement = riskElement.addElement("cardNo"); + cardNoElement.addText(patients.getCardNo()); + + Element vcCardNoElement = riskElement.addElement("cardNo"); + vcCardNoElement.addText(patients.getVcCardNo()); + + String checkDoctor = ""; + if (StringUtils.isNotEmpty(patients.getLastCheckEmployeeId()) && FunvCommonUtil.isNumeric(patients.getLastCheckEmployeeId())) { + Users users = usersService.getUsers(Integer.parseInt(patients.getLastCheckEmployeeId())); + if (users != null && users.getYn() == YnEnums.YES.getId()) { + checkDoctor = users.getName(); } - String name = rmap.get("name"); - resultMap.put("color",color); - resultMap.put("name",name); - resultList.add(resultMap); } - } - map.put("riskFactor", resultList); - String checkDoctor = ""; - if (StringUtils.isNotEmpty(patients.getLastCheckEmployeeId()) && FunvCommonUtil.isNumeric(patients.getLastCheckEmployeeId())) { - Users users = usersService.getUsers(Integer.parseInt(patients.getLastCheckEmployeeId())); - if (users != null && users.getYn() == YnEnums.YES.getId()) { - checkDoctor = users.getName(); + Element checkDoctorElement = riskElement.addElement("checkDoctor"); + checkDoctorElement.addText(checkDoctor); + + + Element checkWeekElement = riskElement.addElement("checkWeek"); + checkWeekElement.addText(patients.getLastCTime() == null ? "" : DateUtil.getWeekDesc(patients.getLastMenses(), patients.getLastCTime())); + + + List riskList = highScoreResult.getHighRisk(); + if (CollectionUtils.isNotEmpty(riskList)) + { + for (int i = 0 ;i < riskList.size() ; i++) + { + Map rmap = (Map) riskList.get(i); + String color = rmap.get("color"); + if ("risk_green".equals(color)) + { + color = "绿色"; + } + else if ("risk_orange".equals(color)) + { + color = "橙色"; + } + else if ("risk_yellow".equals(color)) + { + color = "黄色"; + } + else if ("risk_red".equals(color)) + { + color = "红色"; + } + else if ("risk_purple".equals(color)) + { + color = "紫色"; + } + Element riskFactorElement = riskElement.addElement("riskFactor"); + + String name = rmap.get("name"); + Element nElement = riskFactorElement.addElement("name"); + nElement.addText(name); + + Element colorElement = riskFactorElement.addElement("color"); + colorElement.addText(color); + } } } - map.put("checkDoctor", checkDoctor); - map.put("checkWeek",patients.getLastCTime() == null ? "" : DateUtil.getWeekDesc(patients.getLastMenses(),patients.getLastCTime())); + return document.asXML(); + } catch (Exception e) { + return document.asXML(); } - return map; + } } \ No newline at end of file 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 index 41b637f..5c61ea9 100644 --- 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 @@ -554,9 +554,11 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga { continue; } - successCount = getBloodSugarSuccess( type, bsType, blood); - monitorStatus = successCount / size < 0.8 ? 2 : 3; + successCount += getBloodSugarSuccess(bsType, blood); + } + double result = new BigDecimal((float)successCount / size).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); + monitorStatus = result < 0.8 ? 2 : 3; } else if (type == 2 && size < 21) { @@ -571,10 +573,10 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga { continue; } - successCount = getBloodSugarSuccess( type, bsType, blood); - double pacent = successCount / size; - monitorStatus = pacent < 0.6 ? 5 : (pacent < 0.8 ? 6 : 7); + successCount += getBloodSugarSuccess(bsType, blood); } + double result = new BigDecimal((float)successCount / size).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); + monitorStatus = result < 0.6 ? 5 : (result < 0.8 ? 6 : 7); } Patients patients = mongoTemplate.findById(one.getParentId(), Patients.class); @@ -594,29 +596,29 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga } - private int getBloodSugarSuccess(int type,int bsType,BloodSugar blood) + private int getBloodSugarSuccess(int bsType,BloodSugar blood) { int successCount = 0; Double bloodSugarValue = Double.valueOf(blood.getBloodSugar()); //空腹 - if (bsType == 1 && 3.3 >= bloodSugarValue && bloodSugarValue <= 5.3) + if (bsType == 1 && 3.3 <= bloodSugarValue && bloodSugarValue <= 5.3) { successCount+=1; } - else if ((type == 2 || type == 4 || type == 6) && 3.3 >= bloodSugarValue && bloodSugarValue <= 5.3) + else if ((bsType == 2 || bsType == 4 || bsType == 6) && 3.3 <= bloodSugarValue && bloodSugarValue <= 5.3) { successCount+=1; } - else if ((type == 3 || type == 5 || type == 7) && 4.4 >= bloodSugarValue && bloodSugarValue <= 6.7) + else if ((bsType == 3 || bsType == 5 || bsType == 7) && 4.4 <= bloodSugarValue && bloodSugarValue <= 6.7) { successCount+=1; } - else if (type == 8 && 4.4 >= bloodSugarValue && bloodSugarValue <= 6.7) + else if (bsType == 8 && 4.4 <= bloodSugarValue && bloodSugarValue <= 6.7) { successCount+=1; } - else if (type == 9 && 4.4 >= bloodSugarValue && bloodSugarValue <= 6.7) + else if (bsType == 9 && 4.4 <= bloodSugarValue && bloodSugarValue <= 6.7) { successCount+=1; } -- 1.8.3.1