From 654570ead3c36d874202bcda0dbf4dc87f94fd73 Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Thu, 5 Jan 2017 11:42:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E6=A3=80=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/biz/service/AntExRecordService.java | 48 ++++++++-- .../lyms/platform/biz/service/CommonService.java | 34 ++++++- .../web/facade/AntenatalExaminationFacade.java | 106 --------------------- 3 files changed, 68 insertions(+), 120 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java index 8d606be..ca84477 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java @@ -22,6 +22,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * 产检记录 @@ -38,7 +39,8 @@ public class AntExRecordService { private AntenatalExaminationService antExService; @Autowired private PatientsService patientsService; - + @Autowired + private CommonService commonService; public List aggregateOne(AntExRecordQuery antExRecordQuery) { return antExRecordDao.aggregateOne(antExRecordQuery.convertToQuery()); @@ -56,7 +58,7 @@ public class AntExRecordService { antExQuery.setHospitalId(hospitalId); //复诊 - List list = antExService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.DESC,"checkDate")); + List list = antExService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.DESC, "checkDate")); for (AntenatalExaminationModel antEx : list) { AntExRecordModel record = convert(antEx); if (null != record) { @@ -96,13 +98,12 @@ public class AntExRecordService { } - - private void syncSingle(String pid){ + private void syncSingle(String pid) { AntExQuery antExQuery = new AntExQuery(); antExQuery.setYn(YnEnums.YES.getId()); antExQuery.setPid(pid); //复诊 - List list = antExService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.DESC,"checkDate")); + List list = antExService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.DESC, "checkDate")); for (AntenatalExaminationModel antEx : list) { AntExRecordModel record = convert(antEx); if (null != record) { @@ -215,7 +216,21 @@ public class AntExRecordService { antExRecordModel.setBarCode(antEx.getBarCode()); antExRecordModel.setNextCheckTime(antEx.getNextCheckTime()); antExRecordModel.setCheckTime(antEx.getCheckDate()); + //取当次产检的风险因素 + List li = null; + try { + li = JsonUtil.toList(antEx.getRiskFactor(), List.class); + } catch (Exception e) { + } + if (null != li) { + antExRecordModel.sethRisk(li); + Map result = commonService.calculateRiskScore(li); + antExRecordModel.sethScore((Integer) result.get("result")); + antExRecordModel.sethLevel((List) result.get("levelList")); + } + Patients patients = patientsService.findOnePatientById(antEx.getParentId()); + if (null != patients) { if (patients.getType() == 1) { antExRecordModel.setStatus(2); @@ -236,9 +251,9 @@ public class AntExRecordService { antExRecordModel.setLastMenses(patients.getLastMenses()); antExRecordModel.setDueDate(patients.getDueDate()); antExRecordModel.setName(patients.getUsername()); - antExRecordModel.sethScore(null==patients.getRiskScore()?0:patients.getRiskScore()); + /* antExRecordModel.sethScore(null==patients.getRiskScore()?0:patients.getRiskScore()); antExRecordModel.sethRisk(patients.getRiskFactorId()); - antExRecordModel.sethLevel(JsonUtil.toList(patients.getRiskLevelId(), List.class)); + antExRecordModel.sethLevel(JsonUtil.toList(patients.getRiskLevelId(), List.class));*/ } else { logger.info("antex find patient by id is null. parentId:" + antEx.getParentId()); return null; @@ -258,6 +273,19 @@ public class AntExRecordService { antExRecordModel.setBarCode(antExChuModel.getBarCode()); antExRecordModel.setCheckTime(antExChuModel.getCheckTime()); antExRecordModel.setNextCheckTime(antExChuModel.getNextCheckTime()); + //高危信息 + List li = null; + try { + li = JsonUtil.toList(antExChuModel.getHighrisk(), List.class); + } catch (Exception e) { + } + if (null != li) { + antExRecordModel.sethRisk(li); + Map result = commonService.calculateRiskScore(li); + antExRecordModel.sethScore((Integer) result.get("result")); + antExRecordModel.sethLevel((List) result.get("levelList")); + } + Patients patients = patientsService.findOnePatientById(antExChuModel.getParentId()); if (null != patients) { if (patients.getType() == 1) { @@ -279,9 +307,9 @@ public class AntExRecordService { antExRecordModel.setLastMenses(patients.getLastMenses()); antExRecordModel.setDueDate(patients.getDueDate()); antExRecordModel.setName(patients.getUsername()); - antExRecordModel.sethScore(null==patients.getRiskScore()?0:patients.getRiskScore()); + /* antExRecordModel.sethScore(null==patients.getRiskScore()?0:patients.getRiskScore()); antExRecordModel.sethRisk(patients.getRiskFactorId()); - antExRecordModel.sethLevel(JsonUtil.toList(patients.getRiskLevelId(), List.class)); + antExRecordModel.sethLevel(JsonUtil.toList(patients.getRiskLevelId(), List.class));*/ } else { logger.info("antexc find patient by id is null. parentId:" + antExChuModel.getParentId()); return null; @@ -306,7 +334,7 @@ public class AntExRecordService { antExRecordQuery.mysqlBuild(antExRecordDao.count(query)); query.start(antExRecordQuery.getOffset()).end(antExRecordQuery.getLimit()); } - return antExRecordDao.queryRecord(query.addOrder(Sort.Direction.DESC,"modified")); + return antExRecordDao.queryRecord(query.addOrder(Sort.Direction.DESC, "modified")); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommonService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommonService.java index ce15381..ad94dbe 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommonService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CommonService.java @@ -1,18 +1,21 @@ package com.lyms.platform.biz.service; import com.lyms.platform.common.enums.RiskDefaultTypeEnum; +import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.ExceptionUtils; import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.pojo.AntExChuModel; +import com.lyms.platform.pojo.AntenatalExaminationModel; import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.PatientsQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by Administrator on 2016/12/26 0026. @@ -127,4 +130,27 @@ public class CommonService { } return list; } + + /** + * 根据高危因素计算高危评分和风险等级 + * + * @param riskList + * @return + */ + public Map calculateRiskScore(List riskList ){ + Map result = new HashMap(); + int score=0; + List levelList = new ArrayList<>() ; + for (int i = 0; i < riskList.size(); i++) { + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(riskList.get(i).toString()); + score += basicConfig.getScore(); + basicConfig = basicConfigService.getOneBasicConfigById(basicConfig.getParentId()); + if (null != basicConfig && !levelList.contains(basicConfig.getId())) { + levelList.add(basicConfig.getId()); + } + } + result.put("score",score); + result.put("levelList",levelList); + return result; + } } \ No newline at end of file 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 13959ab..ef31865 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 @@ -511,112 +511,6 @@ public class AntenatalExaminationFacade { } } - //修改患者风险等级 - private void updatePatientRiskLevel(AntExChuModel antExChuModel, Patients patients) { - List list = new ArrayList<>(); - Integer score = 0; - try { - if (StringUtils.isNotEmpty(antExChuModel.getHighrisk()) && !"[]".equals(antExChuModel.getHighrisk())) { - List l = JsonUtil.toList(antExChuModel.getHighrisk(), List.class); - for (int i = 0; i < l.size(); i++) { - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(l.get(i).toString()); - score += basicConfig.getScore(); - basicConfig = basicConfigService.getOneBasicConfigById(basicConfig.getParentId()); - if (null != basicConfig && !list.contains(basicConfig.getId())) { - list.add(basicConfig.getId()); - } - } - } - } catch (Exception e) { - } - try { - if (StringUtils.isNotEmpty(antExChuModel.getOtherHighRisk()) && !"{}".equals(antExChuModel.getOtherHighRisk())) { - Map map = JsonUtil.str2Obj(antExChuModel.getOtherHighRisk(), Map.class); - String m = (String) map.get("fyyse"); - if (!list.contains(m)) { - list.add(m); - } - //风险评分 - Object idObj = map.get("fxpf"); - if (null != idObj && !"null".equals(idObj.toString()) && !"".equals(idObj.toString())) { - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(idObj.toString()); - score += NumberUtils.toInt(basicConfig.getName(), 0); - } - } - } catch (Exception e) { - } - patientsService.updatePatient(patients); - if (!list.isEmpty()) { - Patients patients1 = new Patients(); - try { - List list2 = JsonUtil.toList(antExChuModel.getHighrisk(), List.class); - patients1.setRiskFactorId(list2); - } catch (Exception e) { - } - patients1.setRiskScore(score); - patients1.setRiskLevelId(JsonUtil.array2JsonString(list)); - patients1.setModified(new Date()); - PatientsQuery patientsQuery = new PatientsQuery(); - patientsQuery.setPid(patients.getPid()); - patientsQuery.setYn(YnEnums.YES.getId()); - patientsQuery.setType(1); - patientsService.findAndModify(patientsQuery, patients1); - } - } - - //修改患者风险等级 - private void updatePatientRiskLevel(AntenatalExaminationModel antExChuModel, Patients patients) { - List list = new ArrayList<>(); - Integer score = 0; - try { - if (StringUtils.isNotEmpty(antExChuModel.getRiskFactor()) && !"[]".equals(antExChuModel.getRiskFactor())) { - List l = JsonUtil.toList(antExChuModel.getRiskFactor(), List.class); - for (int i = 0; i < l.size(); i++) { - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(l.get(i).toString()); - score += basicConfig.getScore(); - basicConfig = basicConfigService.getOneBasicConfigById(basicConfig.getParentId()); - if (null != basicConfig && !list.contains(basicConfig.getId())) { - list.add(basicConfig.getId()); - } - } - } - } catch (Exception e) { - } - try { - if (StringUtils.isNotEmpty(antExChuModel.getOtherRisk()) && !"{}".equals(antExChuModel.getOtherRisk())) { - Map map = JsonUtil.str2Obj(antExChuModel.getOtherRisk(), Map.class); - String m = (String) map.get("fyyse"); - if (!list.contains(m)) { - list.add(m); - } - //风险评分 - Object idObj = map.get("fxpf"); - if (null != idObj && !"null".equals(idObj.toString()) && !"".equals(idObj.toString())) { - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(idObj.toString()); - score += NumberUtils.toInt(basicConfig.getName(), 0); - } - } - } catch (Exception e) { - } - patientsService.updatePatient(patients); - if (!list.isEmpty()) { - Patients patients1 = new Patients(); - try { - List list2 = JsonUtil.toList(antExChuModel.getRiskFactor(), List.class); - patients1.setRiskFactorId(list2); - } catch (Exception e) { - } - patients1.setRiskScore(score); - patients1.setModified(new Date()); - patients1.setRiskLevelId(JsonUtil.array2JsonString(list)); - PatientsQuery patientsQuery = new PatientsQuery(); - patientsQuery.setPid(patients.getPid()); - patientsQuery.setYn(YnEnums.YES.getId()); - patientsQuery.setType(1); - patientsService.findAndModify(patientsQuery, patients1); - } - } - /** * 获取最后一次高危产检的高危信息 *

-- 1.8.3.1