Commit 6e680441d128b2c2fa275951a19dce74d0b64e66

Authored by liquanyu
1 parent a50d8c7ce4

儿童

Showing 6 changed files with 253 additions and 85 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyBookBuildingDao.java View file @ 6e68044
... ... @@ -23,5 +23,7 @@
23 23 List<BabyCheckModel> queryBabyOrder(Date startDate, String tempHid, String pid);
24 24  
25 25 List<String> getBirthBabies(String dateStr);
  26 +
  27 + void updateBabyLastGrowth(BabyCheckModel model);
26 28 }
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyBookbuildingDaoImpl.java View file @ 6e68044
1 1 package com.lyms.platform.biz.dal.impl;
2 2  
3 3 import com.lyms.platform.common.utils.StringUtils;
  4 +import com.lyms.platform.pojo.AntExChuModel;
4 5 import com.lyms.platform.pojo.BabyCheckModel;
5 6 import com.mongodb.DBCollection;
6 7 import com.mongodb.DBObject;
... ... @@ -10,6 +11,8 @@
10 11 import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
11 12 import org.springframework.data.mongodb.core.aggregation.AggregationResults;
12 13 import org.springframework.data.mongodb.core.query.Criteria;
  14 +import org.springframework.data.mongodb.core.query.Query;
  15 +import org.springframework.data.mongodb.core.query.Update;
13 16 import org.springframework.stereotype.Repository;
14 17  
15 18 import com.lyms.platform.biz.dal.IBabyBookBuildingDao;
... ... @@ -103,6 +106,14 @@
103 106 }
104 107 }
105 108 return ids;
  109 + }
  110 +
  111 +
  112 + @Override
  113 + public void updateBabyLastGrowth(BabyCheckModel model) {
  114 + this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(model.getBuildId())),
  115 + Update.update("weightEvaluate", model.getWeightEvaluate()).set("heightEvaluate",
  116 + model.getHeadEvaluate()).set("headEvaluate",model.getHeadEvaluate()).set("heightWeight",model.getHeightWeight()), BabyModel.class);
106 117 }
107 118  
108 119 }
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java View file @ 6e68044
... ... @@ -73,5 +73,9 @@
73 73 public List<String> getBirthBabies(String dateStr) {
74 74 return babyBookBuildingDao.getBirthBabies(dateStr);
75 75 }
  76 +
  77 + public void updateBabyLastGrowth(BabyCheckModel model) {
  78 + babyBookBuildingDao.updateBabyLastGrowth(model);
  79 + }
76 80 }
platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java View file @ 6e68044
... ... @@ -341,13 +341,14 @@
341 341 for (PregPatientinfo info:list) {
342 342 Map<String,Object> map = new HashMap<>();
343 343 map.put("bhnum", info.getP_BHNUM());
344   - if ("1".equals(info.getP_SEX())) {
  344 + if ("".equals(info.getP_SEX())) {
345 345 map.put("sex", "男");
346   - } else if ("2".equals(info.getP_SEX())) {
  346 + } else if ("".equals(info.getP_SEX())) {
347 347 map.put("sex", "女");
348 348 }
349 349 map.put("name", info.getP_NAME());
350   - map.put("cardNo", info.getP_CARDNO());
  350 + map.put("idCardNo", info.getP_CARDNO()); //身份证号码
  351 + map.put("cardNo", cardNo);//就诊卡号
351 352 map.put("phone", info.getP_MOBILEPHONE());
352 353 map.put("birth", DateUtil.getyyyy_MM_dd(parseYmd(info.getBIRTH())));
353 354 result.add(map);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ 6e68044
1 1 package com.lyms.platform.operate.web.controller;
2 2  
3 3 import com.lyms.hospitalapi.qhdfy.QhdfyHisService;
4   -import com.lyms.platform.biz.service.AntenatalExaminationService;
5   -import com.lyms.platform.biz.service.AssayConfigService;
6   -import com.lyms.platform.biz.service.PatientsService;
7   -import com.lyms.platform.biz.service.SieveService;
  4 +import com.lyms.platform.biz.service.*;
8 5 import com.lyms.platform.common.enums.YnEnums;
9 6 import com.lyms.platform.common.utils.CompressEncodeingUtil;
10 7 import com.lyms.platform.common.utils.DateUtil;
11 8 import com.lyms.platform.common.utils.JsonUtil;
12 9 import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade;
  10 +import com.lyms.platform.operate.web.facade.BabyCheckFacade;
13 11 import com.lyms.platform.operate.web.result.HighScoreResult;
14 12 import com.lyms.platform.operate.web.service.SyncDataTaskService;
15 13 import com.lyms.platform.permission.service.OrganizationService;
16   -import com.lyms.platform.pojo.AntExChuModel;
17   -import com.lyms.platform.pojo.AntenatalExaminationModel;
18   -import com.lyms.platform.pojo.AssayConfig;
19   -import com.lyms.platform.pojo.Patients;
20   -import com.lyms.platform.query.AntExChuQuery;
21   -import com.lyms.platform.query.AntExQuery;
22   -import com.lyms.platform.query.PatientsQuery;
  14 +import com.lyms.platform.pojo.*;
  15 +import com.lyms.platform.query.*;
  16 +import javafx.scene.shape.LineTo;
23 17 import org.apache.commons.collections.CollectionUtils;
24 18 import org.apache.commons.io.FileUtils;
25 19 import org.apache.commons.lang.StringUtils;
... ... @@ -67,6 +61,16 @@
67 61 @Autowired
68 62 private AntenatalExaminationFacade antenatalExaminationFacade;
69 63  
  64 + @Autowired
  65 + private BabyBookbuildingService babyBookbuildingService;
  66 +
  67 + @Autowired
  68 + private BabyCheckService babyCheckService;
  69 +
  70 +
  71 + @Autowired
  72 + private BabyCheckFacade babyCheckFacade;
  73 +
70 74 /**
71 75 * 获取科室
72 76 */
... ... @@ -610,7 +614,7 @@
610 614 Date max = pat.getFmDate();
611 615 if (min != null && max != null)
612 616 {
613   - HighScoreResult highScoreResult = antenatalExaminationFacade.getPatLastRiskByDate(pat.getPid(),true,min,max);
  617 + HighScoreResult highScoreResult = antenatalExaminationFacade.getPatLastRiskByDate(pat.getPid(), true, min, max);
614 618 PatientsQuery patientsQuery1 = new PatientsQuery();
615 619 patientsQuery1.setId(pat.getId());
616 620 patientsQuery1.setYn(YnEnums.YES.getId());
... ... @@ -634,6 +638,101 @@
634 638 return "updateChanLaskRisk finish";
635 639 }
636 640  
  641 +
  642 + /**
  643 + * 更新儿童检查表中的生长发育评价
  644 + * @param hid
  645 + * @return
  646 + */
  647 + @RequestMapping(value = "/updateBabyGrowth", method = RequestMethod.GET)
  648 + @ResponseBody
  649 + public String updateBabyGrowth(@RequestParam(required = true) String hid) {
  650 +
  651 +
  652 + BabyModelQuery babyModelQuery = new BabyModelQuery();
  653 + babyModelQuery.setYn(YnEnums.YES.getId());
  654 + babyModelQuery.setHospitalId(hid);
  655 +
  656 + List<BabyModel> models = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery);
  657 + if (CollectionUtils.isNotEmpty(models))
  658 + {
  659 + int batchSize = 200;
  660 + int end = 0;
  661 + for (int i = 0; i < models.size(); i += batchSize) {
  662 + end = (end + batchSize);
  663 + if (end > models.size()) {
  664 + end = models.size();
  665 + }
  666 + System.out.println("start:" + i + ",end:" + end);
  667 + final List<BabyModel> tempList = models.subList(i, end);
  668 + new Thread(new Runnable() {
  669 + @Override
  670 + public void run() {
  671 + if (CollectionUtils.isNotEmpty(tempList))
  672 + {
  673 + for (BabyModel babyModel : tempList) {
  674 + if (babyModel != null)
  675 + {
  676 + BabyCheckModelQuery query = new BabyCheckModelQuery();
  677 + query.setYn(YnEnums.YES.getId());
  678 + query.setBuildId(babyModel.getId());
  679 +
  680 + List<BabyCheckModel> checkModels = babyCheckService.queryBabyCheckRecord(query);
  681 + if (CollectionUtils.isNotEmpty(checkModels))
  682 + {
  683 + for (BabyCheckModel checkModel : checkModels)
  684 + {
  685 + String height = checkModel.getHeight();
  686 + String birth = DateUtil.getyyyy_MM_dd(babyModel.getBirth());
  687 + // type 0 体重标准差数值表 1 身长/身高标准差数值表 2 头围标准差数值表 3身高别体重
  688 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(height))
  689 + {
  690 + String value = babyCheckFacade.getGrowthValue(birth,Double.parseDouble(height),babyModel.getSex(),1);
  691 + checkModel.setHeadEvaluate(value);
  692 +
  693 + }
  694 + String head = checkModel.getHead();
  695 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(head)) {
  696 + String value = babyCheckFacade.getGrowthValue(birth,Double.parseDouble(head),babyModel.getSex(),1);
  697 + checkModel.setHeadEvaluate(value);
  698 + }
  699 +
  700 + String weight = checkModel.getWeight();
  701 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(weight)) {
  702 + String value = babyCheckFacade.getGrowthValue(birth,Double.parseDouble(weight),babyModel.getSex(),1);
  703 + checkModel.setHeadEvaluate(value);
  704 + }
  705 +
  706 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(height) &&
  707 + com.lyms.platform.common.utils.StringUtils.isNotEmpty(weight))
  708 + {
  709 + //发育评价
  710 + List<String> growthEvaluate = babyCheckFacade.getBabyGrowthEvaluate(Double.parseDouble(height), babyModel.getSex(), birth, Double.parseDouble(weight));
  711 + if (CollectionUtils.isNotEmpty(growthEvaluate))
  712 + {
  713 + checkModel.setGrowthEvaluate(JsonUtil.array2JsonString(growthEvaluate));
  714 + }
  715 +
  716 + String hw = babyCheckFacade.getBabyHW(Double.parseDouble(height),Double.parseDouble(weight),babyModel.getSex(),birth);
  717 + checkModel.setHeightWeight(hw);
  718 +
  719 + }
  720 +
  721 + babyCheckService.updateBabyCheck(checkModel,checkModel.getId());
  722 + }
  723 + }
  724 + }
  725 + }
  726 + }
  727 + }
  728 + }).start();
  729 + }
  730 +
  731 + }
  732 +
  733 +
  734 + return "updateBabyGrowth finish";
  735 + }
637 736  
638 737 public static void main(String[] a) {
639 738 try {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java View file @ 6e68044
... ... @@ -94,6 +94,8 @@
94 94 bm.setLastDiagnose(diagnoseNames);
95 95 }
96 96 babyBookbuildingService.updateBabyBuild(bm, request.getBuildId());
  97 + updateLastGrowth(model);
  98 +
97 99 return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功");
98 100 }
99 101  
100 102  
101 103  
102 104  
... ... @@ -294,19 +296,47 @@
294 296 applyOrderService.updateByParentId(referralApplyOrderQuery2, model1);
295 297 }
296 298 }
  299 +
  300 + updateLastGrowth(model);
  301 +
297 302 br.setErrorcode(ErrorCodeConstants.SUCCESS);
298 303 br.setErrormsg("成功");
299 304 br.setData(model.getId());
300 305 return br;
301 306 }
302 307  
  308 +
  309 + public void updateLastGrowth(BabyCheckModel model)
  310 + {
  311 + babyBookbuildingService.updateBabyLastGrowth(model);
  312 + }
  313 +
  314 +
303 315 /**
304 316 * 删除儿保检查
305 317 *
306 318 * @param id
307 319 */
308 320 public void deleteBabyCheckById(String id) {
  321 + BabyCheckModelQuery query = new BabyCheckModelQuery();
  322 + query.setYn(YnEnums.YES.getId());
  323 + query.setId(id);
  324 + //查询儿童的检查记录
  325 + List<BabyCheckModel> checkModels = babyCheckService.queryBabyCheckRecord(query,"checkDate", Sort.Direction.DESC);
  326 +
309 327 babyCheckService.deleteBabyCheckById(id);
  328 + if (CollectionUtils.isNotEmpty(checkModels))
  329 + {
  330 + query.setId(null);
  331 + query.setBuildId(checkModels.get(0).getBuildId());
  332 + checkModels = babyCheckService.queryBabyCheckRecord(query,"checkDate", Sort.Direction.DESC);
  333 + if (CollectionUtils.isNotEmpty(checkModels))
  334 + {
  335 + updateLastGrowth(checkModels.get(0));
  336 + }
  337 + }
  338 +
  339 +
310 340 }
311 341  
312 342 /**
313 343  
... ... @@ -877,8 +907,20 @@
877 907 * @param sex
878 908 * @return
879 909 */
880   - public BaseObjectResponse queryHWByHeight(Double height,Double value, Integer sex,String birth) {
  910 + public BaseObjectResponse queryHWByHeight(Double height,Double weight, Integer sex,String birth) {
881 911  
  912 +
  913 + String res = getBabyHW(height,weight,sex,birth);
  914 + BaseObjectResponse br = new BaseObjectResponse();
  915 + br.setData(res);
  916 + br.setErrorcode(ErrorCodeConstants.SUCCESS);
  917 + br.setErrormsg("成功");
  918 + return br;
  919 + }
  920 +
  921 +
  922 + public String getBabyHW(Double height,Double weight, Integer sex,String birth)
  923 + {
882 924 Double hw = getHw(height);
883 925  
884 926 //计算儿童的月龄
885 927  
886 928  
887 929  
888 930  
889 931  
890 932  
891 933  
... ... @@ -896,41 +938,36 @@
896 938 if (CollectionUtils.isNotEmpty(list)) {
897 939 AwModel model = list.get(0);
898 940  
899   - if (model.getPthreeDs() < value)
  941 + if (model.getPthreeDs() < weight)
900 942 {
901 943 res = "上";
902 944 }
903   - else if (model.getPthreeDs() >=value && value > model.getPtwoDs())
  945 + else if (model.getPthreeDs() >=weight && weight > model.getPtwoDs())
904 946 {
905 947 res = "中上";
906 948 }
907   - else if (model.getPtwoDs() >=value && value > model.getPoneDs())
  949 + else if (model.getPtwoDs() >=weight && weight > model.getPoneDs())
908 950 {
909 951 res = "中+";
910 952 }
911   - else if (model.getPoneDs() >=value && value >= model.getRoneDs())
  953 + else if (model.getPoneDs() >=weight && weight >= model.getRoneDs())
912 954 {
913 955 res = "中";
914 956 }
915   - else if (model.getRoneDs() >value && value >= model.getRtwoDs())
  957 + else if (model.getRoneDs() >weight && weight >= model.getRtwoDs())
916 958 {
917 959 res = "中-";
918 960 }
919   - else if (model.getRtwoDs() >value && value >= model.getRthreeDs())
  961 + else if (model.getRtwoDs() >weight && weight >= model.getRthreeDs())
920 962 {
921 963 res = "中下";
922 964 }
923   - else if (model.getRtwoDs() >value)
  965 + else if (model.getRtwoDs() >weight)
924 966 {
925 967 res = "下";
926 968 }
927 969 }
928   -
929   - BaseObjectResponse br = new BaseObjectResponse();
930   - br.setData(res);
931   - br.setErrorcode(ErrorCodeConstants.SUCCESS);
932   - br.setErrormsg("成功");
933   - return br;
  970 + return res;
934 971 }
935 972  
936 973 /**
... ... @@ -980,6 +1017,16 @@
980 1017 */
981 1018 public BaseObjectResponse queryGrowthEvaluate(Double height, Integer sex, String birth,Double weight) {
982 1019  
  1020 + List<String> list = getBabyGrowthEvaluate(height, sex, birth, weight);
  1021 + BaseObjectResponse br = new BaseObjectResponse();
  1022 + br.setData(list);
  1023 + br.setErrorcode(ErrorCodeConstants.SUCCESS);
  1024 + br.setErrormsg("成功");
  1025 + return br;
  1026 + }
  1027 +
  1028 + public List<String> getBabyGrowthEvaluate(Double height, Integer sex, String birth,Double weight)
  1029 + {
983 1030 List<String> growthEvaluate = new ArrayList<>();
984 1031 Double hw = getHw(height);
985 1032  
986 1033  
... ... @@ -1027,32 +1074,28 @@
1027 1074  
1028 1075 if (value != null)
1029 1076 {
1030   - //中位数百分比
1031   - Double mp = weight/value;
1032   - if (mp < 0.8)
1033   - {
1034   - growthEvaluate.add("重度消瘦");
1035   - }
1036   - else if (0.8 <= mp && mp < 0.9)
1037   - {
1038   - growthEvaluate.add("轻度消瘦");
1039   - }
1040   - else if (1.1 < mp && mp <= 1.2)
1041   - {
1042   - growthEvaluate.add("超重");
1043   - }
1044   - else if ( mp > 1.2)
1045   - {
1046   - growthEvaluate.add("肥胖");
1047   - }
  1077 + //中位数百分比
  1078 + Double mp = weight/value;
  1079 + if (mp < 0.8)
  1080 + {
  1081 + growthEvaluate.add("重度消瘦");
  1082 + }
  1083 + else if (0.8 <= mp && mp < 0.9)
  1084 + {
  1085 + growthEvaluate.add("轻度消瘦");
  1086 + }
  1087 + else if (1.1 < mp && mp <= 1.2)
  1088 + {
  1089 + growthEvaluate.add("超重");
  1090 + }
  1091 + else if ( mp > 1.2)
  1092 + {
  1093 + growthEvaluate.add("肥胖");
  1094 + }
1048 1095 }
1049 1096  
1050 1097 }
1051   - BaseObjectResponse br = new BaseObjectResponse();
1052   - br.setData(growthEvaluate);
1053   - br.setErrorcode(ErrorCodeConstants.SUCCESS);
1054   - br.setErrormsg("成功");
1055   - return br;
  1098 + return growthEvaluate;
1056 1099 }
1057 1100  
1058 1101 public BaseObjectResponse getBaseConfig() {
1059 1102  
... ... @@ -1095,7 +1138,17 @@
1095 1138 }
1096 1139  
1097 1140 public BaseObjectResponse queryBabyHealthStatus(String birth,Double value, Integer sex, Integer type) {
  1141 + String res = getGrowthValue(birth,value,sex,type);
  1142 + BaseObjectResponse objectResponse = new BaseObjectResponse();
  1143 + objectResponse.setData(res);
  1144 + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS);
  1145 + objectResponse.setErrormsg("成功");
  1146 + return objectResponse;
  1147 + }
1098 1148  
  1149 +
  1150 + public String getGrowthValue(String birth,Double value, Integer sex, Integer type)
  1151 + {
1099 1152 //计算儿童的月龄
1100 1153 int monthAge = DateUtil.getBabyAgeMonth(DateUtil.parseYMD(birth), new Date());
1101 1154  
1102 1155  
... ... @@ -1106,40 +1159,38 @@
1106 1159 if (CollectionUtils.isNotEmpty(list)) {
1107 1160 AwModel model = list.get(0);
1108 1161  
1109   - if (model.getPthreeDs() < value)
1110   - {
1111   - res = "上";
1112   - }
1113   - else if (model.getPthreeDs() >=value && value > model.getPtwoDs())
1114   - {
1115   - res = "中上";
1116   - }
1117   - else if (model.getPtwoDs() >=value && value > model.getPoneDs())
1118   - {
1119   - res = "中+";
1120   - }
1121   - else if (model.getPoneDs() >=value && value >= model.getRoneDs())
1122   - {
1123   - res = "中";
1124   - }
1125   - else if (model.getRoneDs() >value && value >= model.getRtwoDs())
1126   - {
1127   - res = "中-";
1128   - }
1129   - else if (model.getRtwoDs() >value && value >= model.getRthreeDs())
1130   - {
1131   - res = "中下";
1132   - }
1133   - else if (model.getRtwoDs() >value)
1134   - {
1135   - res = "下";
1136   - }
  1162 + if (model.getPthreeDs() < value)
  1163 + {
  1164 + res = "上";
  1165 + }
  1166 + else if (model.getPthreeDs() >=value && value > model.getPtwoDs())
  1167 + {
  1168 + res = "中上";
  1169 + }
  1170 + else if (model.getPtwoDs() >=value && value > model.getPoneDs())
  1171 + {
  1172 + res = "中+";
  1173 + }
  1174 + else if (model.getPoneDs() >=value && value >= model.getRoneDs())
  1175 + {
  1176 + res = "中";
  1177 + }
  1178 + else if (model.getRoneDs() >value && value >= model.getRtwoDs())
  1179 + {
  1180 + res = "中-";
  1181 + }
  1182 + else if (model.getRtwoDs() >value && value >= model.getRthreeDs())
  1183 + {
  1184 + res = "中下";
  1185 + }
  1186 + else if (model.getRtwoDs() >value)
  1187 + {
  1188 + res = "下";
  1189 + }
1137 1190 }
1138   - BaseObjectResponse objectResponse = new BaseObjectResponse();
1139   - objectResponse.setData(res);
1140   - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS);
1141   - objectResponse.setErrormsg("成功");
1142   - return objectResponse;
  1191 +
  1192 + return res;
  1193 +
1143 1194 }
1144 1195 }