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 |