From 6e680441d128b2c2fa275951a19dce74d0b64e66 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Thu, 22 Dec 2016 14:16:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=84=BF=E7=AB=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/biz/dal/IBabyBookBuildingDao.java | 2 + .../biz/dal/impl/BabyBookbuildingDaoImpl.java | 11 ++ .../biz/service/BabyBookbuildingService.java | 4 + .../lyms/hospitalapi/qhdfy/QhdfyHisService.java | 7 +- .../operate/web/controller/TestController.java | 123 +++++++++++-- .../operate/web/facade/BabyCheckFacade.java | 191 +++++++++++++-------- 6 files changed, 253 insertions(+), 85 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyBookBuildingDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyBookBuildingDao.java index bca034b..9129b97 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyBookBuildingDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyBookBuildingDao.java @@ -23,4 +23,6 @@ public interface IBabyBookBuildingDao { List queryBabyOrder(Date startDate, String tempHid, String pid); List getBirthBabies(String dateStr); + + void updateBabyLastGrowth(BabyCheckModel model); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyBookbuildingDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyBookbuildingDaoImpl.java index 669fa70..a01eeb0 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyBookbuildingDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyBookbuildingDaoImpl.java @@ -1,6 +1,7 @@ package com.lyms.platform.biz.dal.impl; import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.pojo.AntExChuModel; import com.lyms.platform.pojo.BabyCheckModel; import com.mongodb.DBCollection; import com.mongodb.DBObject; @@ -10,6 +11,8 @@ import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.AggregationOperation; import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Repository; import com.lyms.platform.biz.dal.IBabyBookBuildingDao; @@ -105,4 +108,12 @@ public class BabyBookbuildingDaoImpl extends BaseMongoDAOImpl impleme return ids; } + + @Override + public void updateBabyLastGrowth(BabyCheckModel model) { + this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(model.getBuildId())), + Update.update("weightEvaluate", model.getWeightEvaluate()).set("heightEvaluate", + model.getHeadEvaluate()).set("headEvaluate",model.getHeadEvaluate()).set("heightWeight",model.getHeightWeight()), BabyModel.class); + } + } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java index 937f736..6f6e05f 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java @@ -73,4 +73,8 @@ public class BabyBookbuildingService { public List getBirthBabies(String dateStr) { return babyBookBuildingDao.getBirthBabies(dateStr); } + + public void updateBabyLastGrowth(BabyCheckModel model) { + babyBookBuildingDao.updateBabyLastGrowth(model); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java index ea63410..10bd53e 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java @@ -341,13 +341,14 @@ public class QhdfyHisService { for (PregPatientinfo info:list) { Map map = new HashMap<>(); map.put("bhnum", info.getP_BHNUM()); - if ("1".equals(info.getP_SEX())) { + if ("男".equals(info.getP_SEX())) { map.put("sex", "男"); - } else if ("2".equals(info.getP_SEX())) { + } else if ("女".equals(info.getP_SEX())) { map.put("sex", "女"); } map.put("name", info.getP_NAME()); - map.put("cardNo", info.getP_CARDNO()); + map.put("idCardNo", info.getP_CARDNO()); //身份证号码 + map.put("cardNo", cardNo);//就诊卡号 map.put("phone", info.getP_MOBILEPHONE()); map.put("birth", DateUtil.getyyyy_MM_dd(parseYmd(info.getBIRTH()))); result.add(map); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 68465d0..bc76696 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -1,25 +1,19 @@ package com.lyms.platform.operate.web.controller; import com.lyms.hospitalapi.qhdfy.QhdfyHisService; -import com.lyms.platform.biz.service.AntenatalExaminationService; -import com.lyms.platform.biz.service.AssayConfigService; -import com.lyms.platform.biz.service.PatientsService; -import com.lyms.platform.biz.service.SieveService; +import com.lyms.platform.biz.service.*; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.CompressEncodeingUtil; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; +import com.lyms.platform.operate.web.facade.BabyCheckFacade; import com.lyms.platform.operate.web.result.HighScoreResult; import com.lyms.platform.operate.web.service.SyncDataTaskService; import com.lyms.platform.permission.service.OrganizationService; -import com.lyms.platform.pojo.AntExChuModel; -import com.lyms.platform.pojo.AntenatalExaminationModel; -import com.lyms.platform.pojo.AssayConfig; -import com.lyms.platform.pojo.Patients; -import com.lyms.platform.query.AntExChuQuery; -import com.lyms.platform.query.AntExQuery; -import com.lyms.platform.query.PatientsQuery; +import com.lyms.platform.pojo.*; +import com.lyms.platform.query.*; +import javafx.scene.shape.LineTo; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; @@ -67,6 +61,16 @@ public class TestController { @Autowired private AntenatalExaminationFacade antenatalExaminationFacade; + @Autowired + private BabyBookbuildingService babyBookbuildingService; + + @Autowired + private BabyCheckService babyCheckService; + + + @Autowired + private BabyCheckFacade babyCheckFacade; + /** * 获取科室 */ @@ -610,7 +614,7 @@ public class TestController { Date max = pat.getFmDate(); if (min != null && max != null) { - HighScoreResult highScoreResult = antenatalExaminationFacade.getPatLastRiskByDate(pat.getPid(),true,min,max); + HighScoreResult highScoreResult = antenatalExaminationFacade.getPatLastRiskByDate(pat.getPid(), true, min, max); PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setId(pat.getId()); patientsQuery1.setYn(YnEnums.YES.getId()); @@ -635,6 +639,101 @@ public class TestController { } + /** + * 更新儿童检查表中的生长发育评价 + * @param hid + * @return + */ + @RequestMapping(value = "/updateBabyGrowth", method = RequestMethod.GET) + @ResponseBody + public String updateBabyGrowth(@RequestParam(required = true) String hid) { + + + BabyModelQuery babyModelQuery = new BabyModelQuery(); + babyModelQuery.setYn(YnEnums.YES.getId()); + babyModelQuery.setHospitalId(hid); + + List models = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery); + if (CollectionUtils.isNotEmpty(models)) + { + int batchSize = 200; + int end = 0; + for (int i = 0; i < models.size(); i += batchSize) { + end = (end + batchSize); + if (end > models.size()) { + end = models.size(); + } + System.out.println("start:" + i + ",end:" + end); + final List tempList = models.subList(i, end); + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) + { + for (BabyModel babyModel : tempList) { + if (babyModel != null) + { + BabyCheckModelQuery query = new BabyCheckModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setBuildId(babyModel.getId()); + + List checkModels = babyCheckService.queryBabyCheckRecord(query); + if (CollectionUtils.isNotEmpty(checkModels)) + { + for (BabyCheckModel checkModel : checkModels) + { + String height = checkModel.getHeight(); + String birth = DateUtil.getyyyy_MM_dd(babyModel.getBirth()); + // type 0 体重标准差数值表 1 身长/身高标准差数值表 2 头围标准差数值表 3身高别体重 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(height)) + { + String value = babyCheckFacade.getGrowthValue(birth,Double.parseDouble(height),babyModel.getSex(),1); + checkModel.setHeadEvaluate(value); + + } + String head = checkModel.getHead(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(head)) { + String value = babyCheckFacade.getGrowthValue(birth,Double.parseDouble(head),babyModel.getSex(),1); + checkModel.setHeadEvaluate(value); + } + + String weight = checkModel.getWeight(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(weight)) { + String value = babyCheckFacade.getGrowthValue(birth,Double.parseDouble(weight),babyModel.getSex(),1); + checkModel.setHeadEvaluate(value); + } + + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(height) && + com.lyms.platform.common.utils.StringUtils.isNotEmpty(weight)) + { + //发育评价 + List growthEvaluate = babyCheckFacade.getBabyGrowthEvaluate(Double.parseDouble(height), babyModel.getSex(), birth, Double.parseDouble(weight)); + if (CollectionUtils.isNotEmpty(growthEvaluate)) + { + checkModel.setGrowthEvaluate(JsonUtil.array2JsonString(growthEvaluate)); + } + + String hw = babyCheckFacade.getBabyHW(Double.parseDouble(height),Double.parseDouble(weight),babyModel.getSex(),birth); + checkModel.setHeightWeight(hw); + + } + + babyCheckService.updateBabyCheck(checkModel,checkModel.getId()); + } + } + } + } + } + } + }).start(); + } + + } + + + return "updateBabyGrowth finish"; + } + public static void main(String[] a) { try { List list = FileUtils.readLines(new File("D:\\temp\\qhdfy_lost1.csv")); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index f8d875b..af2fe43 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -94,6 +94,8 @@ public class BabyCheckFacade { bm.setLastDiagnose(diagnoseNames); } babyBookbuildingService.updateBabyBuild(bm, request.getBuildId()); + updateLastGrowth(model); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } @@ -294,19 +296,47 @@ public class BabyCheckFacade { applyOrderService.updateByParentId(referralApplyOrderQuery2, model1); } } + + updateLastGrowth(model); + br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); br.setData(model.getId()); return br; } + + public void updateLastGrowth(BabyCheckModel model) + { + babyBookbuildingService.updateBabyLastGrowth(model); + } + + /** * 删除儿保检查 * * @param id */ public void deleteBabyCheckById(String id) { + BabyCheckModelQuery query = new BabyCheckModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(id); + //查询儿童的检查记录 + List checkModels = babyCheckService.queryBabyCheckRecord(query,"checkDate", Sort.Direction.DESC); + babyCheckService.deleteBabyCheckById(id); + if (CollectionUtils.isNotEmpty(checkModels)) + { + query.setId(null); + query.setBuildId(checkModels.get(0).getBuildId()); + checkModels = babyCheckService.queryBabyCheckRecord(query,"checkDate", Sort.Direction.DESC); + if (CollectionUtils.isNotEmpty(checkModels)) + { + updateLastGrowth(checkModels.get(0)); + } + } + + } /** @@ -877,8 +907,20 @@ public class BabyCheckFacade { * @param sex * @return */ - public BaseObjectResponse queryHWByHeight(Double height,Double value, Integer sex,String birth) { + public BaseObjectResponse queryHWByHeight(Double height,Double weight, Integer sex,String birth) { + + + String res = getBabyHW(height,weight,sex,birth); + BaseObjectResponse br = new BaseObjectResponse(); + br.setData(res); + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + return br; + } + + public String getBabyHW(Double height,Double weight, Integer sex,String birth) + { Double hw = getHw(height); //计算儿童的月龄 @@ -896,41 +938,36 @@ public class BabyCheckFacade { if (CollectionUtils.isNotEmpty(list)) { AwModel model = list.get(0); - if (model.getPthreeDs() < value) + if (model.getPthreeDs() < weight) { res = "上"; } - else if (model.getPthreeDs() >=value && value > model.getPtwoDs()) + else if (model.getPthreeDs() >=weight && weight > model.getPtwoDs()) { res = "中上"; } - else if (model.getPtwoDs() >=value && value > model.getPoneDs()) + else if (model.getPtwoDs() >=weight && weight > model.getPoneDs()) { res = "中+"; } - else if (model.getPoneDs() >=value && value >= model.getRoneDs()) + else if (model.getPoneDs() >=weight && weight >= model.getRoneDs()) { res = "中"; } - else if (model.getRoneDs() >value && value >= model.getRtwoDs()) + else if (model.getRoneDs() >weight && weight >= model.getRtwoDs()) { res = "中-"; } - else if (model.getRtwoDs() >value && value >= model.getRthreeDs()) + else if (model.getRtwoDs() >weight && weight >= model.getRthreeDs()) { res = "中下"; } - else if (model.getRtwoDs() >value) + else if (model.getRtwoDs() >weight) { res = "下"; } } - - BaseObjectResponse br = new BaseObjectResponse(); - br.setData(res); - br.setErrorcode(ErrorCodeConstants.SUCCESS); - br.setErrormsg("成功"); - return br; + return res; } /** @@ -980,6 +1017,16 @@ public class BabyCheckFacade { */ public BaseObjectResponse queryGrowthEvaluate(Double height, Integer sex, String birth,Double weight) { + List list = getBabyGrowthEvaluate(height, sex, birth, weight); + BaseObjectResponse br = new BaseObjectResponse(); + br.setData(list); + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + return br; + } + + public List getBabyGrowthEvaluate(Double height, Integer sex, String birth,Double weight) + { List growthEvaluate = new ArrayList<>(); Double hw = getHw(height); @@ -1027,32 +1074,28 @@ public class BabyCheckFacade { if (value != null) { - //中位数百分比 - Double mp = weight/value; - if (mp < 0.8) - { - growthEvaluate.add("重度消瘦"); - } - else if (0.8 <= mp && mp < 0.9) - { - growthEvaluate.add("轻度消瘦"); - } - else if (1.1 < mp && mp <= 1.2) - { - growthEvaluate.add("超重"); - } - else if ( mp > 1.2) - { - growthEvaluate.add("肥胖"); - } + //中位数百分比 + Double mp = weight/value; + if (mp < 0.8) + { + growthEvaluate.add("重度消瘦"); + } + else if (0.8 <= mp && mp < 0.9) + { + growthEvaluate.add("轻度消瘦"); + } + else if (1.1 < mp && mp <= 1.2) + { + growthEvaluate.add("超重"); + } + else if ( mp > 1.2) + { + growthEvaluate.add("肥胖"); + } } } - BaseObjectResponse br = new BaseObjectResponse(); - br.setData(growthEvaluate); - br.setErrorcode(ErrorCodeConstants.SUCCESS); - br.setErrormsg("成功"); - return br; + return growthEvaluate; } public BaseObjectResponse getBaseConfig() { @@ -1095,7 +1138,17 @@ public class BabyCheckFacade { } public BaseObjectResponse queryBabyHealthStatus(String birth,Double value, Integer sex, Integer type) { + String res = getGrowthValue(birth,value,sex,type); + BaseObjectResponse objectResponse = new BaseObjectResponse(); + objectResponse.setData(res); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + + public String getGrowthValue(String birth,Double value, Integer sex, Integer type) + { //计算儿童的月龄 int monthAge = DateUtil.getBabyAgeMonth(DateUtil.parseYMD(birth), new Date()); @@ -1106,39 +1159,37 @@ public class BabyCheckFacade { if (CollectionUtils.isNotEmpty(list)) { AwModel model = list.get(0); - if (model.getPthreeDs() < value) - { - res = "上"; - } - else if (model.getPthreeDs() >=value && value > model.getPtwoDs()) - { - res = "中上"; - } - else if (model.getPtwoDs() >=value && value > model.getPoneDs()) - { - res = "中+"; - } - else if (model.getPoneDs() >=value && value >= model.getRoneDs()) - { - res = "中"; - } - else if (model.getRoneDs() >value && value >= model.getRtwoDs()) - { - res = "中-"; - } - else if (model.getRtwoDs() >value && value >= model.getRthreeDs()) - { - res = "中下"; - } - else if (model.getRtwoDs() >value) - { - res = "下"; - } + if (model.getPthreeDs() < value) + { + res = "上"; + } + else if (model.getPthreeDs() >=value && value > model.getPtwoDs()) + { + res = "中上"; + } + else if (model.getPtwoDs() >=value && value > model.getPoneDs()) + { + res = "中+"; + } + else if (model.getPoneDs() >=value && value >= model.getRoneDs()) + { + res = "中"; + } + else if (model.getRoneDs() >value && value >= model.getRtwoDs()) + { + res = "中-"; + } + else if (model.getRtwoDs() >value && value >= model.getRthreeDs()) + { + res = "中下"; + } + else if (model.getRtwoDs() >value) + { + res = "下"; + } } - BaseObjectResponse objectResponse = new BaseObjectResponse(); - objectResponse.setData(res); - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); - objectResponse.setErrormsg("成功"); - return objectResponse; + + return res; + } } -- 1.8.3.1