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 6e20abc..c59eb8c 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 @@ -2717,19 +2717,138 @@ public class AntenatalExaminationFacade { if (mapItems != null && mapItems.size() > 0) { - Integer age = DateUtil.getAge(patients.getBirth(), new Date()); - //年龄高危匹配 - List detailItems = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.age.getId()); - if (CollectionUtils.isNotEmpty(detailItems)) + if (patients != null && patients.getBirth() != null) { - for (DiagnoseItemModel item : detailItems) + Double age = (double)DateUtil.getAge(patients.getBirth(), new Date()); + //年龄高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.age.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) { - if (compare(item,age) && CollectionUtils.isNotEmpty(item.getRiskIds())) + for (DiagnoseItemModel item : detailItemsAge) { - list.addAll(item.getRiskIds()); + if (compare(item,age) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } + } + } + } + + if (StringUtils.isNotEmpty(antExcAddRequest.getBaricIndex())) + { + Double baricIndex = Double.parseDouble(antExcAddRequest.getBaricIndex()); + + //BMI(体重指数)高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.bmi.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) + { + for (DiagnoseItemModel item : detailItemsAge) + { + if (compare(item,baricIndex) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } + } + } + } + + + if (StringUtils.isNotEmpty(antExcAddRequest.getHeight())) + { + Double height = Double.parseDouble(antExcAddRequest.getHeight()); + + //身高高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.height.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) + { + for (DiagnoseItemModel item : detailItemsAge) + { + if (compare(item,height) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } + } + } + } + + if (antExcAddRequest.getAbortion() != null) + { + Double abortion = (double)antExcAddRequest.getAbortion(); + + //孕产史高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) + { + //流产次 + for (DiagnoseItemModel item : detailItemsAge) + { + if ("28".equals(item.getValueOne()) && compare(item,abortion) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } } } } + + + if (antExcAddRequest.getProdTime() != null) + { + Double prodTime = (double)antExcAddRequest.getProdTime(); + //孕产史高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) + { + //产次 + for (DiagnoseItemModel item : detailItemsAge) + { + if ("29".equals(item.getValueOne()) && compare(item,prodTime) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } + } + } + } + + + if (antExcAddRequest.getYinchan() != null) + { + Double yinchan = (double)antExcAddRequest.getYinchan(); + //孕产史高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) + { + //引产次 + for (DiagnoseItemModel item : detailItemsAge) + { + if ("30".equals(item.getValueOne()) && compare(item,yinchan) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } + } + } + } + + + if (antExcAddRequest.getYinchan() != null) + { + Double planedProd = (double)antExcAddRequest.getPlanedProd(); + //孕产史高危匹配 + List detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId()); + if (CollectionUtils.isNotEmpty(detailItemsAge)) + { + //剖宫产次 + for (DiagnoseItemModel item : detailItemsAge) + { + if ("31".equals(item.getValueOne()) && compare(item,planedProd) && CollectionUtils.isNotEmpty(item.getRiskIds())) + { + list.addAll(item.getRiskIds()); + } + } + } + } + + + } return new BaseObjectResponse().setData(list).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); @@ -2742,28 +2861,28 @@ public class AntenatalExaminationFacade { * @param calValue 被计算值 * @return */ - private boolean compare(String expId,String value,Integer calValue) + private boolean compare(String expId,String value,Double calValue) { Integer id = Integer.parseInt(expId); switch (id) { case 1 : - return calValue > Integer.parseInt(value); + return calValue > Double.parseDouble(value); case 2 : - return calValue >= Integer.parseInt(value) ; + return calValue >= Double.parseDouble(value) ; case 3 : - return calValue < Integer.parseInt(value); + return calValue < Double.parseDouble(value); case 4 : - return calValue <= Integer.parseInt(value) ; + return calValue <= Double.parseDouble(value) ; case 5 : - return calValue == Integer.parseInt(value); + return calValue == Double.parseDouble(value); case 6 : - return Integer.parseInt(value) != calValue; + return Double.parseDouble(value) != calValue; default: return false; } } - private boolean compare(DiagnoseItemModel item,Integer calValue) + private boolean compare(DiagnoseItemModel item,Double calValue) { String expId1 = item.getValueOne(); String value1 = item.getValueTwo(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/DiagnoseConfigFacde.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/DiagnoseConfigFacde.java index f11f8df..311b2bc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/DiagnoseConfigFacde.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/DiagnoseConfigFacde.java @@ -1,8 +1,10 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.biz.service.DiagnoseConfigService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.OptActionEnums; +import com.lyms.platform.common.enums.RiskDefaultTypeEnum; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.JsonUtil; @@ -10,8 +12,10 @@ import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.DiagnoseConfigRequest; import com.lyms.platform.operate.web.result.DiagnoseConfigResult; import com.lyms.platform.operate.web.result.DiagnoseItemResult; +import com.lyms.platform.pojo.BasicConfig; import com.lyms.platform.pojo.DiagnoseConfigModel; import com.lyms.platform.pojo.DiagnoseItemModel; +import com.lyms.platform.query.BasicConfigQuery; import com.lyms.platform.query.DiagnoseConfigQuery; import com.lyms.platform.query.DiagnoseItemsQuery; import org.apache.commons.collections.CollectionUtils; @@ -38,6 +42,9 @@ public class DiagnoseConfigFacde { @Autowired private OperateLogFacade operateLogFacade; + @Autowired + private BasicConfigService basicConfigService; + /** * 添加配置基础和项 * @param request @@ -198,6 +205,8 @@ public class DiagnoseConfigFacde { DiagnoseItemsQuery diagnoseItemsQuery = new DiagnoseItemsQuery(); diagnoseItemsQuery.setConfigId(configModel.getId()); + BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); + List diagnoseItemModels = diagnoseConfigService.queryDiagnoseItems(diagnoseItemsQuery); if (CollectionUtils.isNotEmpty(diagnoseItemModels) && CollectionUtils.isNotEmpty(configModel.getConfigs())) { @@ -210,6 +219,40 @@ public class DiagnoseConfigFacde { { DiagnoseItemResult dr = new DiagnoseItemResult(); dr.convertToResult(diagnose); + + if (CollectionUtils.isNotEmpty(diagnose.getRiskIds())) + { + List> list = new ArrayList<>(); + + for (String rid : diagnose.getRiskIds()) + { + basicConfigQuery.setId(rid); + List basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery); + Map map = new HashMap<>(); + map.put("id", basicConfigs.get(0).getId()); + map.put("name", basicConfigs.get(0).getName()); + map.put("code", basicConfigs.get(0).getCode()); + + basicConfigQuery.setId(basicConfigs.get(0).getParentId()); + List basicConfigs2 = basicConfigService.queryBasicConfig(basicConfigQuery); + if (CollectionUtils.isNotEmpty(basicConfigs2)) { + String name = basicConfigs2.get(0).getName(); + if (name.indexOf("黄色") > -1) { + name = "黄色"; + } else if (name.indexOf("橙色") > -1) { + name = "橙色"; + } else if (name.indexOf("红色") > -1) { + name = "红色"; + } else if (name.indexOf("紫色") > -1) { + name = "紫色"; + } + map.put("color", "risk_" + RiskDefaultTypeEnum.getColor(name)); + } + + list.add(map); + } + } + itemModels.add(dr); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/DiagnoseItemResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/DiagnoseItemResult.java index b028442..901f396 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/DiagnoseItemResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/DiagnoseItemResult.java @@ -4,6 +4,7 @@ import com.lyms.platform.common.base.IBasicResultConvert; import com.lyms.platform.pojo.DiagnoseItemModel; import java.util.List; +import java.util.Map; /** @@ -11,36 +12,23 @@ import java.util.List; */ public class DiagnoseItemResult implements IBasicResultConvert { -// private String id; -// private String configId; -// private String hospitalId; -// private String parentId; - //是否启用 0停用 1启用 -// private Integer enable; + private String valueOne; private String valueTwo; private String valueThree; private String valueFour; private String valueFive; -// //权重 -// private Integer weight; //高危id - private List riskIds; + private List> riskIds; @Override public DiagnoseItemResult convertToResult(DiagnoseItemModel model) { -// setId(model.getId()); -// setConfigId(model.getConfigId()); -// setHospitalId(model.getHospitalId()); -// setParentId(model.getParentId()); -// setEnable(model.getEnable()); setValueOne(model.getValueOne()); setValueTwo(model.getValueTwo()); setValueThree(model.getValueThree()); setValueFour(model.getValueFour()); setValueFive(model.getValueFive()); - setRiskIds(model.getRiskIds()); return this; } @@ -86,12 +74,11 @@ public class DiagnoseItemResult implements IBasicResultConvert getRiskIds() { + public List> getRiskIds() { return riskIds; } - public void setRiskIds(List riskIds) { + public void setRiskIds(List> riskIds) { this.riskIds = riskIds; } }