Commit e40dcda336649cafc7c3284866f084f9cbfd1360
1 parent
31f84a1cc0
Exists in
master
and in
6 other branches
同步数据
Showing 3 changed files with 88 additions and 89 deletions
platform-common/src/main/java/com/lyms/platform/common/utils/HttpClientUtil.java
View file @
e40dcda
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java
View file @
e40dcda
| ... | ... | @@ -125,7 +125,24 @@ |
| 125 | 125 | private BabyBookbuildingService babyBookbuildingService; |
| 126 | 126 | |
| 127 | 127 | |
| 128 | + static Map<String,String> highRisks = new HashMap<>(); | |
| 129 | + static { | |
| 130 | + highRisks.put("f3a1c08f-a2c1-4e93-8ffd-398af9e2d8c9","5a40c763422b03d4ad2bf7c1"); // 流产≥2次---------> 不良孕产史(各类流产≥3次、早产、围产儿死亡、出生缺陷、异位妊娠、滋养细胞疾病等) | |
| 131 | + highRisks.put("ee3ba99e-64c0-4aab-b0a4-71dec0d61ca6","5a40c772422b03d4ad2bf7c4"); //人工受精------->辅助生殖妊娠 | |
| 132 | + highRisks.put("a8094bd6-de5d-4b95-9a1a-59ae376bb2a6","9310676a-9482-4da5-9ba8-e2a302843ea0"); //高血压------> 妊娠期高血压疾病(除外红、橙色) | |
| 133 | + highRisks.put("3be742b2-ed07-425e-a435-8a19fc8ba86e","52986b9e-5a44-4613-9af5-07564f15b703"); //臀位 -------->≥36周胎位不正 | |
| 134 | + highRisks.put("cbeb4447-f4cb-4c2e-96f3-973a0c701fc3","8856c4da-57e3-42af-820a-25c991dde3f0"); //BMI≥32------>BMI≥28 | |
| 135 | + highRisks.put("251833c7-7ac1-410f-a6e7-c50f4008d5ed","5a41f715422b03d4ad2bf7f7"); // 中度贫血 ------>妊娠合并贫血(Hb 60-110g/L) | |
| 136 | + highRisks.put("2adbce90-4066-4980-b7a0-14012cbfea52","d7ceb752-ce2a-4901-a94e-51b73ccefc52"); // 心律失常-----需药物治疗的心肌炎后遗症、心律失常等 | |
| 137 | + highRisks.put("8745081d-1f37-45f7-b5be-94a208686bd2","ecb2fd70-1e85-455c-8f62-ee7b9c71e48c"); // 甲减---------需药物治疗的甲状腺疾病 | |
| 138 | + highRisks.put("5cba13c2-5cb5-46c9-905a-41708d13d45e","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发心脏病 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等 | |
| 139 | + highRisks.put("0b51b328-1c8f-41de-90de-ef3b76341c1b","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发蛋白尿 ----糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等 | |
| 140 | + highRisks.put("80587d8a-009e-46aa-87e5-57996b0708b1","d6cfcad8-c674-4624-b50d-8797d217f10c"); //糖尿病并发肾功能不全 ---糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等 | |
| 128 | 141 | |
| 142 | + } | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 129 | 146 | @ResponseBody |
| 130 | 147 | @RequestMapping("/init/patient/weight") |
| 131 | 148 | public BaseResponse initPatientWeight() { |
| ... | ... | @@ -1437,18 +1454,6 @@ |
| 1437 | 1454 | @RequestMapping(value = "/upateNewHighRisk", method = RequestMethod.GET) |
| 1438 | 1455 | @ResponseBody |
| 1439 | 1456 | 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 | 1457 | |
| 1453 | 1458 | OrganizationQuery organizationQuery = new OrganizationQuery(); |
| 1454 | 1459 | organizationQuery.setYn(YnEnums.YES.getId()); |
| ... | ... | @@ -1486,16 +1491,7 @@ |
| 1486 | 1491 | for (Patients pat : tempList) { |
| 1487 | 1492 | List<String> patientRisk = pat.getRiskFactorId(); |
| 1488 | 1493 | 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 | - } | |
| 1494 | + int modCount = doRiskHandle(patientRisk); | |
| 1499 | 1495 | if (modCount > 0) |
| 1500 | 1496 | { |
| 1501 | 1497 | pat.setRiskFactorId(patientRisk); |
| ... | ... | @@ -1515,16 +1511,7 @@ |
| 1515 | 1511 | |
| 1516 | 1512 | List<String> highrisks = JsonUtil.toList(highriskStr, String.class); |
| 1517 | 1513 | 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 | - } | |
| 1514 | + int modCount = doRiskHandle(highrisks); | |
| 1528 | 1515 | if (modCount > 0) |
| 1529 | 1516 | { |
| 1530 | 1517 | cmodel.setHighrisk(JsonUtil.array2JsonString(highrisks)); |
| ... | ... | @@ -1550,16 +1537,7 @@ |
| 1550 | 1537 | if (CollectionUtils.isNotEmpty(highrisks)) |
| 1551 | 1538 | { |
| 1552 | 1539 | 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 | - } | |
| 1540 | + int modCount = doRiskHandle(highrisks); | |
| 1563 | 1541 | if (modCount > 0) |
| 1564 | 1542 | { |
| 1565 | 1543 | fmodel.setRiskFactor(JsonUtil.array2JsonString(highrisks)); |
| ... | ... | @@ -1587,16 +1565,7 @@ |
| 1587 | 1565 | { |
| 1588 | 1566 | if (CollectionUtils.isNotEmpty(highrisks)) |
| 1589 | 1567 | { |
| 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 | - } | |
| 1568 | + int modCount = doRiskHandle(highrisks); | |
| 1600 | 1569 | if (modCount > 0) |
| 1601 | 1570 | { |
| 1602 | 1571 | model.sethRisk(highrisks); |
| ... | ... | @@ -1617,6 +1586,24 @@ |
| 1617 | 1586 | } |
| 1618 | 1587 | } |
| 1619 | 1588 | return "upateNewHighRisk finish"; |
| 1589 | + } | |
| 1590 | + | |
| 1591 | + private int doRiskHandle(List<String> patientRisk) | |
| 1592 | + { | |
| 1593 | + int modCount = 0; | |
| 1594 | + for (String key : highRisks.keySet()) | |
| 1595 | + { | |
| 1596 | + if (patientRisk.contains(key)) | |
| 1597 | + { | |
| 1598 | + patientRisk.remove(key); | |
| 1599 | + if (!patientRisk.contains(highRisks.get(key))) | |
| 1600 | + { | |
| 1601 | + patientRisk.add(highRisks.get(key)); | |
| 1602 | + modCount++; | |
| 1603 | + } | |
| 1604 | + } | |
| 1605 | + } | |
| 1606 | + return modCount; | |
| 1620 | 1607 | } |
| 1621 | 1608 | |
| 1622 | 1609 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java
View file @
e40dcda
| ... | ... | @@ -37,6 +37,8 @@ |
| 37 | 37 | import javax.print.attribute.standard.DateTimeAtCompleted; |
| 38 | 38 | import java.io.File; |
| 39 | 39 | import java.util.*; |
| 40 | +import java.util.concurrent.Executor; | |
| 41 | +import java.util.concurrent.Executors; | |
| 40 | 42 | |
| 41 | 43 | /** |
| 42 | 44 | * Created by riecard on 16/9/26. |
| ... | ... | @@ -98,6 +100,8 @@ |
| 98 | 100 | @Qualifier("commonThreadPool") |
| 99 | 101 | private ThreadPoolTaskExecutor commonThreadPool; |
| 100 | 102 | |
| 103 | + private Executor pool = Executors.newFixedThreadPool(5); | |
| 104 | + | |
| 101 | 105 | /** |
| 102 | 106 | * 该方法是区域或者单体医院部署的把数据定时往某个环境上传 |
| 103 | 107 | * (如往线上环境上传,mongo_sync_url就配置相应的线上的接收地址) |
| 104 | 108 | |
| 105 | 109 | |
| 106 | 110 | |
| 107 | 111 | |
| ... | ... | @@ -127,49 +131,52 @@ |
| 127 | 131 | { |
| 128 | 132 | for (final String url : urls.keySet()) |
| 129 | 133 | { |
| 130 | - try{ | |
| 131 | - String json = HttpClientUtil.doPost("https://"+url+"/findSyncData", new HashMap<String, String>(), "utf-8"); | |
| 132 | - if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json)) | |
| 133 | - { | |
| 134 | - List<SyncDataModel> list = JsonUtil.toList(json, SyncDataModel.class); | |
| 135 | - System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date())+url+" ; syncdata size = "+ list.size()); | |
| 136 | - int batchSize = 200; | |
| 137 | - int end = 0; | |
| 138 | - for (int i = 0; i < list.size(); i += batchSize) { | |
| 139 | - end = (end + batchSize); | |
| 140 | - if (end > list.size()) { | |
| 141 | - end = list.size(); | |
| 142 | - } | |
| 143 | - final List<SyncDataModel> tempList = list.subList(i, end); | |
| 144 | - commonThreadPool.execute(new Runnable() { | |
| 145 | - @Override | |
| 146 | - public void run() { | |
| 147 | - if (CollectionUtils.isNotEmpty(tempList)) | |
| 148 | - { | |
| 149 | - StringBuffer ids = new StringBuffer(); | |
| 150 | - for (SyncDataModel model : tempList) { | |
| 151 | - boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); | |
| 152 | - if (boo) { | |
| 153 | - ids.append(model.getId()); | |
| 154 | - ids.append(","); | |
| 134 | + pool.execute(new Runnable() { | |
| 135 | + @Override | |
| 136 | + public void run() { | |
| 137 | + try{ | |
| 138 | + String json = HttpClientUtil.doPost("https://"+url+"/findSyncData", new HashMap<String, String>(), "utf-8"); | |
| 139 | + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json)) | |
| 140 | + { | |
| 141 | + List<SyncDataModel> list = JsonUtil.toList(json, SyncDataModel.class); | |
| 142 | + System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date())+url+" ; syncdata size = "+ list.size()); | |
| 143 | + int batchSize = 200; | |
| 144 | + int end = 0; | |
| 145 | + for (int i = 0; i < list.size(); i += batchSize) { | |
| 146 | + end = (end + batchSize); | |
| 147 | + if (end > list.size()) { | |
| 148 | + end = list.size(); | |
| 149 | + } | |
| 150 | + final List<SyncDataModel> tempList = list.subList(i, end); | |
| 151 | + commonThreadPool.execute(new Runnable() { | |
| 152 | + @Override | |
| 153 | + public void run() { | |
| 154 | + if (CollectionUtils.isNotEmpty(tempList)) | |
| 155 | + { | |
| 156 | + StringBuffer ids = new StringBuffer(); | |
| 157 | + for (SyncDataModel model : tempList) { | |
| 158 | + boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); | |
| 159 | + if (boo) { | |
| 160 | + ids.append(model.getId()); | |
| 161 | + ids.append(","); | |
| 162 | + } | |
| 163 | + } | |
| 164 | + if (ids.length() > 0) { | |
| 165 | + Map<String,String> params = new HashMap<String, String>(); | |
| 166 | + params.put("ids", ids.toString()); | |
| 167 | + HttpClientUtil.doPost("https://" + url + "/updateSyncData", params, "utf-8"); | |
| 168 | + } | |
| 155 | 169 | } |
| 156 | 170 | } |
| 157 | - if (ids.length() > 0) { | |
| 158 | - Map<String,String> params = new HashMap<String, String>(); | |
| 159 | - params.put("ids", ids.toString()); | |
| 160 | - HttpClientUtil.doPost("https://" + url + "/updateSyncData", params, "utf-8"); | |
| 161 | - } | |
| 162 | - } | |
| 171 | + }); | |
| 163 | 172 | } |
| 164 | - }); | |
| 173 | + } | |
| 174 | + }catch(Exception ex){ | |
| 175 | + ExceptionUtils.catchException(ex, url+": syncData Error."); | |
| 165 | 176 | } |
| 166 | 177 | } |
| 167 | - }catch(Exception ex){ | |
| 168 | - ExceptionUtils.catchException(ex, url+": syncData Error."); | |
| 169 | - continue; | |
| 170 | - } | |
| 178 | + }); | |
| 171 | 179 | } |
| 172 | - | |
| 173 | 180 | } |
| 174 | 181 | |
| 175 | 182 |