Commit a7237bc87c45d41c546cd27b08fa85ecaa736403

Authored by liquanyu
1 parent 2a8115cf46

高危数据修正

Showing 1 changed file with 195 additions and 0 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ a7237bc
... ... @@ -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 }