Commit db7c77a01345ce6ca20e28b9ea3bcbf5c70b12b1

Authored by yangfei

Merge remote-tracking branch 'origin/master'

Showing 2 changed files

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ db7c77a
... ... @@ -124,6 +124,8 @@
124 124 @Autowired
125 125 private BabyBookbuildingService babyBookbuildingService;
126 126  
  127 +
  128 +
127 129 @ResponseBody
128 130 @RequestMapping("/init/patient/weight")
129 131 public BaseResponse initPatientWeight() {
... ... @@ -1424,5 +1426,198 @@
1424 1426  
1425 1427 @Autowired
1426 1428 private SieveFacade sieveFacade;
  1429 +
  1430 +
  1431 + /**
  1432 + * 更新新版高危因素
  1433 + * @param hospitalId
  1434 + * @param patientId
  1435 + * @return
  1436 + */
  1437 + @RequestMapping(value = "/upateNewHighRisk", method = RequestMethod.GET)
  1438 + @ResponseBody
  1439 + public String upateNewHighRisk(@RequestParam(required = false) String hospitalId, @RequestParam(required = false) String patientId) {
  1440 + final Map<String,String> highRisks = new HashMap<>();
  1441 + highRisks.put("f3a1c08f-a2c1-4e93-8ffd-398af9e2d8c9","5a40c763422b03d4ad2bf7c1"); // 流产≥2次---------> 不良孕产史(各类流产≥3次、早产、围产儿死亡、出生缺陷、异位妊娠、滋养细胞疾病等)
  1442 + highRisks.put("ee3ba99e-64c0-4aab-b0a4-71dec0d61ca6","5a40c772422b03d4ad2bf7c4"); //人工受精------->辅助生殖妊娠
  1443 + highRisks.put("a8094bd6-de5d-4b95-9a1a-59ae376bb2a6","9310676a-9482-4da5-9ba8-e2a302843ea0"); //高血压------> 妊娠期高血压疾病(除外红、橙色)
  1444 + highRisks.put("3be742b2-ed07-425e-a435-8a19fc8ba86e","52986b9e-5a44-4613-9af5-07564f15b703"); //臀位 -------->≥36周胎位不正
  1445 + highRisks.put("cbeb4447-f4cb-4c2e-96f3-973a0c701fc3","8856c4da-57e3-42af-820a-25c991dde3f0"); //BMI≥32------>BMI≥28
  1446 + highRisks.put("251833c7-7ac1-410f-a6e7-c50f4008d5ed","5a41f715422b03d4ad2bf7f7"); // 中度贫血 ------>妊娠合并贫血(Hb 60-110g/L)
  1447 + highRisks.put("2adbce90-4066-4980-b7a0-14012cbfea52","d7ceb752-ce2a-4901-a94e-51b73ccefc52"); // 心律失常-----需药物治疗的心肌炎后遗症、心律失常等
  1448 + highRisks.put("8745081d-1f37-45f7-b5be-94a208686bd2","ecb2fd70-1e85-455c-8f62-ee7b9c71e48c"); // 甲减---------需药物治疗的甲状腺疾病
  1449 + highRisks.put("5cba13c2-5cb5-46c9-905a-41708d13d45e","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发心脏病 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
  1450 + highRisks.put("0b51b328-1c8f-41de-90de-ef3b76341c1b","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发蛋白尿 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
  1451 + highRisks.put("80587d8a-009e-46aa-87e5-57996b0708b1","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发肾功能不全 ---糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等
  1452 +
  1453 + OrganizationQuery organizationQuery = new OrganizationQuery();
  1454 + organizationQuery.setYn(YnEnums.YES.getId());
  1455 + if (StringUtils.isNotEmpty(hospitalId)) {
  1456 + organizationQuery.setId(Integer.parseInt(hospitalId));
  1457 + }
  1458 + List<Organization> organizationList = organizationService.queryOrganization(organizationQuery);
  1459 +
  1460 + PatientsQuery patientsQuery1 = new PatientsQuery();
  1461 + patientsQuery1.setYn(YnEnums.YES.getId());
  1462 + if (StringUtils.isNotEmpty(patientId))
  1463 + {
  1464 + patientsQuery1.setId(patientId);
  1465 + }
  1466 +
  1467 + if (CollectionUtils.isNotEmpty(organizationList)) {
  1468 + for (Organization organization : organizationList) {
  1469 +
  1470 + patientsQuery1.setHospitalId(organization.getId() + "");
  1471 + List<Patients> pats = patientsService.queryPatient(patientsQuery1);
  1472 +
  1473 + int batchSize = 5000;
  1474 + int end = 0;
  1475 + for (int i = 0; i < pats.size(); i += batchSize) {
  1476 + end = (end + batchSize);
  1477 + if (end > pats.size()) {
  1478 + end = pats.size();
  1479 + }
  1480 + System.out.println("start:" + i + ",end:" + end);
  1481 + final List<Patients> tempList = pats.subList(i, end);
  1482 + commonThreadPool.execute(new Runnable() {
  1483 + @Override
  1484 + public void run() {
  1485 + if (CollectionUtils.isNotEmpty(tempList)) {
  1486 + for (Patients pat : tempList) {
  1487 + List<String> patientRisk = pat.getRiskFactorId();
  1488 + if (CollectionUtils.isNotEmpty(patientRisk)) {
  1489 + int modCount = 0;
  1490 + for (String key : highRisks.keySet())
  1491 + {
  1492 + if (patientRisk.contains(key))
  1493 + {
  1494 + patientRisk.remove(key);
  1495 + patientRisk.add(highRisks.get(key));
  1496 + modCount++;
  1497 + }
  1498 + }
  1499 + if (modCount > 0)
  1500 + {
  1501 + pat.setRiskFactorId(patientRisk);
  1502 + patientsService.updatePatient(pat);
  1503 + }
  1504 + }
  1505 +
  1506 + AntExChuQuery antExChuQuery = new AntExChuQuery();
  1507 + antExChuQuery.setYn(YnEnums.YES.getId());
  1508 + antExChuQuery.setParentId(pat.getId());
  1509 + antExChuQuery.setHospitalId(pat.getHospitalId());
  1510 + List<AntExChuModel> antExChuModelList = antenatalExaminationService.queryAntExChu(antExChuQuery);
  1511 + if (CollectionUtils.isNotEmpty(antExChuModelList)) {
  1512 + for (AntExChuModel cmodel : antExChuModelList) {
  1513 + String highriskStr = cmodel.getHighrisk();
  1514 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(highriskStr)) {
  1515 +
  1516 + List<String> highrisks = JsonUtil.toList(highriskStr, String.class);
  1517 + if (CollectionUtils.isNotEmpty(highrisks)) {
  1518 + int modCount = 0;
  1519 + for (String key : highRisks.keySet())
  1520 + {
  1521 + if (highrisks.contains(key))
  1522 + {
  1523 + highrisks.remove(key);
  1524 + highrisks.add(highRisks.get(key));
  1525 + modCount++;
  1526 + }
  1527 + }
  1528 + if (modCount > 0)
  1529 + {
  1530 + cmodel.setHighrisk(JsonUtil.array2JsonString(highrisks));
  1531 + antenatalExaminationService.updateAntExChu(cmodel, cmodel.getId());
  1532 + }
  1533 + }
  1534 + }
  1535 + }
  1536 +
  1537 + antExChuModelList.clear();
  1538 +
  1539 + // 查询复诊
  1540 + AntExQuery antExQuery = new AntExQuery();
  1541 + antExQuery.setYn(YnEnums.YES.getId());
  1542 + antExQuery.setParentId(pat.getId());
  1543 + antExQuery.setHospitalId(pat.getHospitalId());
  1544 + List<AntenatalExaminationModel> antenatalExaminationModelList = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery());
  1545 + if (CollectionUtils.isNotEmpty(antenatalExaminationModelList)) {
  1546 + for (AntenatalExaminationModel fmodel : antenatalExaminationModelList) {
  1547 + String highriskStr = fmodel.getRiskFactor();
  1548 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(highriskStr)) {
  1549 + List<String> highrisks = JsonUtil.toList(highriskStr, String.class);
  1550 + if (CollectionUtils.isNotEmpty(highrisks))
  1551 + {
  1552 + if (CollectionUtils.isNotEmpty(highrisks)) {
  1553 + int modCount = 0;
  1554 + for (String key : highRisks.keySet())
  1555 + {
  1556 + if (highrisks.contains(key))
  1557 + {
  1558 + highrisks.remove(key);
  1559 + highrisks.add(highRisks.get(key));
  1560 + modCount++;
  1561 + }
  1562 + }
  1563 + if (modCount > 0)
  1564 + {
  1565 + fmodel.setRiskFactor(JsonUtil.array2JsonString(highrisks));
  1566 + antenatalExaminationService.updateOneAnt(fmodel, fmodel.getId());
  1567 + }
  1568 + }
  1569 + }
  1570 + }
  1571 + }
  1572 + }
  1573 +
  1574 + antenatalExaminationModelList.clear();
  1575 +
  1576 +
  1577 + //初诊复诊冗余记录
  1578 + AntExRecordQuery query = new AntExRecordQuery();
  1579 + query.setParentId(pat.getId());
  1580 + List<AntExRecordModel> antExRecordModels = recordService.queryAntExRecords(query);
  1581 + if (CollectionUtils.isNotEmpty(antExRecordModels))
  1582 + {
  1583 + for (AntExRecordModel model : antExRecordModels)
  1584 + {
  1585 + List<String> highrisks = model.gethRisk();
  1586 + if (CollectionUtils.isNotEmpty(highrisks))
  1587 + {
  1588 + if (CollectionUtils.isNotEmpty(highrisks))
  1589 + {
  1590 + int modCount = 0;
  1591 + for (String key : highRisks.keySet())
  1592 + {
  1593 + if (highrisks.contains(key))
  1594 + {
  1595 + highrisks.remove(key);
  1596 + highrisks.add(highRisks.get(key));
  1597 + modCount++;
  1598 + }
  1599 + }
  1600 + if (modCount > 0)
  1601 + {
  1602 + model.sethRisk(highrisks);
  1603 + recordService.updateOne(model,model.getId());
  1604 + }
  1605 + }
  1606 + }
  1607 + }
  1608 + }
  1609 +
  1610 + antExRecordModels.clear();
  1611 + }
  1612 + }
  1613 + }
  1614 + }
  1615 + });
  1616 + }
  1617 + }
  1618 + }
  1619 + return "upateNewHighRisk finish";
  1620 + }
  1621 +
1427 1622 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ db7c77a
... ... @@ -250,7 +250,7 @@
250 250 Map<String, Integer> temp = new HashMap<>();
251 251 for (Map<String, Date> dateMap : range) {
252 252 if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime()
253   - && patient.getBookbuildingDate().getTime() < dateMap.get("end").getTime()) {
  253 + && patient.getBookbuildingDate().getTime() <= dateMap.get("end").getTime()) {
254 254 temp.put(DateUtil.getyyyy_mm(dateMap.get("cname")), 1);
255 255 break;
256 256 }
257 257  
... ... @@ -601,12 +601,16 @@
601 601 public BaseObjectResponse health(String parentId, Integer userId) {
602 602 String hospitalId = autoMatchFacade.getHospitalId(userId);
603 603 List<Map<String, Object>> restList = new ArrayList<>();
604   - Patients p = mongoTemplate.findById(parentId, Patients.class);
  604 + Patients patients = mongoTemplate.findById(parentId, Patients.class);
  605 + if(patients == null) {
  606 + return RespBuilder.buildSuccess();
  607 + }
  608 + Patients p = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patients.getPid()).and("type").is(1)), Patients.class);
605 609 if(p == null) {
606 610 return RespBuilder.buildSuccess();
607 611 }
608 612 AntExChuModel antExChuModel = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(p.getId()).and("yn").is(1).and("hospitalId").is(hospitalId)).with(new Sort(Sort.Direction.DESC, "checkTime")), AntExChuModel.class);
609   - List<AntenatalExaminationModel> antexModels = mongoTemplate.find(Query.query(Criteria.where("parentId").is(p.getId()).and("yn").is(1).and("hospitalId").is(hospitalId)).with(new Sort(Sort.Direction.ASC, "checkDate")), AntenatalExaminationModel.class);
  613 + List<AntenatalExaminationModel> antexModels = mongoTemplate.find(Query.query(Criteria.where("parentId").is(p.getId()).and("yn").is(1).and("hospitalId").is(hospitalId)).with(new Sort(Sort.Direction.DESC, "checkDate")), AntenatalExaminationModel.class);
610 614  
611 615 Map<String, Object> xyMap = new HashMap<>();
612 616 List<Integer> szyMin = new ArrayList<>();
613 617  
... ... @@ -631,46 +635,7 @@
631 635 Map<Integer, String> weights = new LinkedHashMap<>();
632 636 boolean tzFlag = antExChuModel == null || StringUtils.isEmpty(antExChuModel.getYqWeight()) || StringUtils.isEmpty(antExChuModel.getHeight()) ? false : true;
633 637  
634   - // 添加初诊list
635   - if(antExChuModel != null) {
636   - Map<String, Object> temp = new HashMap<>();
637   - temp.put("checkTime", DateUtil.getyyyy_MM_dd(antExChuModel.getCheckTime()));
638   - Integer week = DateUtil.getWeek2(p.getLastMenses(), antExChuModel.getCheckTime());
639   - temp.put("week", DateUtil.getWeekDesc(p.getLastMenses(), antExChuModel.getCheckTime()));
640   - temp.put("weight", antExChuModel.getWeight());
641   - temp.put("bp", parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("ssy"), "--") + "/" + parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("szy"), "--"));
642   - temp.put("gonggao", antExChuModel.getGonggao());
643   - temp.put("abdominalCircumference", antExChuModel.getFuwei());// 腹围
644 638  
645   - List<Map> tireData = antExChuModel.getPlacentas();
646   - String fetalPosition = "";
647   - String heartRate = "";
648   - String fetalPresentation = "";
649   - if(CollectionUtils.isNotEmpty(tireData)) {
650   - for (Map tireDatum : tireData) {
651   - fetalPosition = fetalPosition.length() > 0 ? fetalPosition + "/" + tireDatum.get("fetalPosition") : tireDatum.get("fetalPosition") + "";
652   - heartRate = heartRate.length() > 0 ? heartRate + "/" + tireDatum.get("heartRate") : tireDatum.get("heartRate") + "";
653   - fetalPresentation = fetalPresentation.length() > 0 ? fetalPresentation + "/" + FetalEnums.getTitle2((String) tireDatum.get("fetalPosition")) : FetalEnums.getTitle2((String) tireDatum.get("fetalPosition"));
654   - }
655   - } else {
656   - fetalPosition = "--";
657   - heartRate = "--";
658   - fetalPresentation = "--";
659   - }
660   -
661   - temp.put("fetalPosition", fetalPosition); // 胎位
662   - temp.put("heartRate", heartRate); // 胎心
663   - temp.put("fetalPresentation", fetalPresentation); // 先露
664   - temp.put("edema",FuZhongEnums.getName(antExChuModel.getEdema())); // 水肿
665   - temp.put("urineProtein", antExChuModel.getNdb()); // 尿蛋白
666   - temp.put("hemoglobin", antExChuModel.getXhdb()); // 血红素
667   -
668   - ssy.set(week, parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("ssy"), 0));
669   - szy.set(week, parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("szy"), 0));
670   -
671   - restList.add(temp);
672   - }
673   -
674 639 for (AntenatalExaminationModel antexModel : antexModels) {
675 640 Map<String, Object> temp = new HashMap<>();
676 641 Integer week = DateUtil.getWeek2(p.getLastMenses(), antexModel.getCheckDate());
... ... @@ -711,6 +676,47 @@
711 676  
712 677 restList.add(temp);
713 678 }
  679 +
  680 + // 添加初诊list\
  681 + if(antExChuModel != null) {
  682 + Map<String, Object> temp = new HashMap<>();
  683 + temp.put("checkTime", DateUtil.getyyyy_MM_dd(antExChuModel.getCheckTime()));
  684 + Integer week = DateUtil.getWeek2(p.getLastMenses(), antExChuModel.getCheckTime());
  685 + temp.put("week", DateUtil.getWeekDesc(p.getLastMenses(), antExChuModel.getCheckTime()));
  686 + temp.put("weight", antExChuModel.getWeight());
  687 + temp.put("bp", parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("ssy"), "--") + "/" + parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("szy"), "--"));
  688 + temp.put("gonggao", antExChuModel.getGonggao());
  689 + temp.put("abdominalCircumference", antExChuModel.getFuwei());// 腹围
  690 +
  691 + List<Map> tireData = antExChuModel.getPlacentas();
  692 + String fetalPosition = "";
  693 + String heartRate = "";
  694 + String fetalPresentation = "";
  695 + if(CollectionUtils.isNotEmpty(tireData)) {
  696 + for (Map tireDatum : tireData) {
  697 + fetalPosition = fetalPosition.length() > 0 ? fetalPosition + "/" + tireDatum.get("fetalPosition") : tireDatum.get("fetalPosition") + "";
  698 + heartRate = heartRate.length() > 0 ? heartRate + "/" + tireDatum.get("heartRate") : tireDatum.get("heartRate") + "";
  699 + fetalPresentation = fetalPresentation.length() > 0 ? fetalPresentation + "/" + FetalEnums.getTitle2((String) tireDatum.get("fetalPosition")) : FetalEnums.getTitle2((String) tireDatum.get("fetalPosition"));
  700 + }
  701 + } else {
  702 + fetalPosition = "--";
  703 + heartRate = "--";
  704 + fetalPresentation = "--";
  705 + }
  706 +
  707 + temp.put("fetalPosition", fetalPosition); // 胎位
  708 + temp.put("heartRate", heartRate); // 胎心
  709 + temp.put("fetalPresentation", fetalPresentation); // 先露
  710 + temp.put("edema",FuZhongEnums.getName(antExChuModel.getEdema())); // 水肿
  711 + temp.put("urineProtein", antExChuModel.getNdb()); // 尿蛋白
  712 + temp.put("hemoglobin", antExChuModel.getXhdb()); // 血红素
  713 +
  714 + ssy.set(week, parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("ssy"), 0));
  715 + szy.set(week, parseNull(JSONObject.parseObject(antExChuModel.getBp()).getString("szy"), 0));
  716 +
  717 + restList.add(temp);
  718 + }
  719 +
714 720  
715 721  
716 722