Commit 7afdc6c9ad0fed973e4e77fd47d09b732695bf6e
1 parent
4320a75892
Exists in
master
and in
6 other branches
国家出生证对接:d201 接口/getMatDeliverData
Showing 13 changed files with 468 additions and 25 deletions
- platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterOrganizationMapper.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/service/OrganizationService.java
- platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java
- platform-biz-service/src/main/resources/mainOrm/master/MasterOrganization.xml
- platform-common/src/main/java/com/lyms/platform/common/enums/CdGwPcountryEnums.java
- platform-common/src/main/java/com/lyms/platform/common/enums/RenShenJieJuEnums.java
- platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java
- platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java
- platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/model/enums/NationEnums.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/FmListWorker.java
platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterOrganizationMapper.java
View file @
7afdc6c
platform-biz-service/src/main/java/com/lyms/platform/permission/service/OrganizationService.java
View file @
7afdc6c
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java
View file @
7afdc6c
... | ... | @@ -338,6 +338,10 @@ |
338 | 338 | String code = masterOrganizationMapper.getAreaCode(areaName); |
339 | 339 | return StringUtils.isNotEmpty(code) ? code : "110100"; |
340 | 340 | } |
341 | - | |
341 | + @Override | |
342 | + public String getPlatHosNewCode(String yljgmc) { | |
343 | + String code = masterOrganizationMapper.getPlatHosNewCode(yljgmc); | |
344 | + return StringUtils.isNotEmpty(code) ? code : ""; | |
345 | + } | |
342 | 346 | } |
platform-biz-service/src/main/resources/mainOrm/master/MasterOrganization.xml
View file @
7afdc6c
... | ... | @@ -307,5 +307,10 @@ |
307 | 307 | <select id="getAreaCode" resultType="String" parameterType="String"> |
308 | 308 | select code from area a where a.name=#{areaName} limit 0,1 |
309 | 309 | </select> |
310 | + | |
311 | + <select id="getPlatHosNewCode" resultType="java.lang.String" parameterType="java.lang.String"> | |
312 | + select code from plat_hos_new p where p.name=#{yljgmc} | |
313 | + </select> | |
314 | + | |
310 | 315 | </mapper> |
platform-common/src/main/java/com/lyms/platform/common/enums/CdGwPcountryEnums.java
View file @
7afdc6c
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | Career148("148", "乍得"), |
52 | 52 | Career152("152", "智利"), |
53 | 53 | Career156("156", "中国"), |
54 | - Career158("158", "台湾"), | |
54 | + Career158("158", "中国台湾"), | |
55 | 55 | Career162("162", "圣诞岛"), |
56 | 56 | Career166("166", "科科斯(基林)群岛"), |
57 | 57 | Career170("170", "哥伦比亚"), |
... | ... | @@ -105,7 +105,7 @@ |
105 | 105 | Career334("334", "赫德岛和麦克唐纳岛"), |
106 | 106 | Career336("336", "梵蒂冈"), |
107 | 107 | Career340("340", "洪都拉斯"), |
108 | - Career344("344", "香港"), | |
108 | + Career344("344", "中国香港"), | |
109 | 109 | Career348("348", "匈牙利"), |
110 | 110 | Career352("352", "冰岛"), |
111 | 111 | Career356("356", "印度"), |
... | ... | @@ -245,7 +245,9 @@ |
245 | 245 | Career882("882", "萨摩亚"), |
246 | 246 | Career887("887", "也门"), |
247 | 247 | Career891("891", "南斯拉夫"), |
248 | - Career894("894", "赞比亚"); | |
248 | + Career894("894", "赞比亚"), | |
249 | + Career998("998", "塞尔维亚共和国"), | |
250 | + Career999("999", "黑山共和国"); | |
249 | 251 | |
250 | 252 | CdGwPcountryEnums(String id, String name) { |
251 | 253 | this.id = id; |
252 | 254 | |
253 | 255 | |
254 | 256 | |
255 | 257 | |
... | ... | @@ -254,24 +256,24 @@ |
254 | 256 | |
255 | 257 | |
256 | 258 | public static String getName(String id) { |
257 | - if(StringUtils.isEmpty(id)) return "中国"; | |
259 | + if(StringUtils.isEmpty(id)) return ""; | |
258 | 260 | CdGwPcountryEnums[] values = CdGwPcountryEnums.values(); |
259 | 261 | for (CdGwPcountryEnums value : values) { |
260 | 262 | if (value.getId().equals(id)) { |
261 | 263 | return value.getName(); |
262 | 264 | } |
263 | 265 | } |
264 | - return "中国"; | |
266 | + return ""; | |
265 | 267 | } |
266 | 268 | public static String getId(String name) { |
267 | - if(StringUtils.isEmpty(name)) return "156"; | |
269 | + if(StringUtils.isEmpty(name)) return ""; | |
268 | 270 | CdGwPcountryEnums[] values = CdGwPcountryEnums.values(); |
269 | 271 | for (CdGwPcountryEnums value : values) { |
270 | - if (value.getName().contains(name)) { | |
272 | + if (value.getName().equals(name)) { | |
271 | 273 | return value.getId(); |
272 | 274 | } |
273 | 275 | } |
274 | - return "156";//没有匹配到,默认中国 | |
276 | + return ""; | |
275 | 277 | } |
276 | 278 | private String id; |
277 | 279 | private String name; |
platform-common/src/main/java/com/lyms/platform/common/enums/RenShenJieJuEnums.java
View file @
7afdc6c
... | ... | @@ -4,7 +4,11 @@ |
4 | 4 | * Created by Administrator on 2016/6/24 0024. |
5 | 5 | */ |
6 | 6 | public enum RenShenJieJuEnums { |
7 | - O("活产", "0"),O1("死胎", "1"),O2("浸软胎", "2"),O3("死产", "3"); | |
7 | + O("活产", "0"), | |
8 | + O1("死胎", "1"), | |
9 | + O2("浸软胎", "2"), | |
10 | + O3("死产", "3"), | |
11 | + O4("新生儿死亡","4"); | |
8 | 12 | |
9 | 13 | private RenShenJieJuEnums(String name, String id) { |
10 | 14 | this.name = name; |
platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java
View file @
7afdc6c
... | ... | @@ -44,10 +44,11 @@ |
44 | 44 | private String fmType; |
45 | 45 | //外院地址 |
46 | 46 | private String fmAddr; |
47 | + //分娩时间 date类型 | |
47 | 48 | private Date dueDate1; |
48 | 49 | //分娩孕周 |
49 | 50 | private String dueWeek; |
50 | - //台数 | |
51 | + //胎数 | |
51 | 52 | private Integer tireNumber; |
52 | 53 | //胎盘 |
53 | 54 | private String placenta; |
54 | 55 | |
... | ... | @@ -205,12 +206,77 @@ |
205 | 206 | private String cityPostRestId; |
206 | 207 | private String areaPostRestId; |
207 | 208 | private String streetRegisterId; |
209 | + /** | |
210 | + * 产妇住院病案号 | |
211 | + */ | |
208 | 212 | private String inHospitalNo; |
209 | 213 | |
210 | 214 | //产后复查评估 状态 1 出院前评估 2 产后7天评估 3 产后14天评估 4 产后28天评估 5 产后42天评估 |
211 | 215 | |
212 | 216 | private List<Integer> status; |
213 | 217 | |
218 | + /** | |
219 | + *本次是否属于高危妊娠 | |
220 | + */ | |
221 | + private String gwrs; | |
222 | + | |
223 | + /** | |
224 | + *妊娠风险评估分级代码 | |
225 | + */ | |
226 | + private String rsfxdm; | |
227 | + /** | |
228 | + *孕次 | |
229 | + */ | |
230 | + private String cfyc; | |
231 | + /** | |
232 | + *分娩地点类别代码 | |
233 | + */ | |
234 | + private String fmddlb; | |
235 | + /** | |
236 | + *分娩地点类型代码 | |
237 | + */ | |
238 | + private String fmddlx; | |
239 | + | |
240 | + public String getFmddlb() { | |
241 | + return fmddlb; | |
242 | + } | |
243 | + | |
244 | + public void setFmddlb(String fmddlb) { | |
245 | + this.fmddlb = fmddlb; | |
246 | + } | |
247 | + | |
248 | + public String getFmddlx() { | |
249 | + return fmddlx; | |
250 | + } | |
251 | + | |
252 | + public void setFmddlx(String fmddlx) { | |
253 | + this.fmddlx = fmddlx; | |
254 | + } | |
255 | + | |
256 | + public String getCfyc() { | |
257 | + return cfyc; | |
258 | + } | |
259 | + | |
260 | + public void setCfyc(String cfyc) { | |
261 | + this.cfyc = cfyc; | |
262 | + } | |
263 | + | |
264 | + public String getRsfxdm() { | |
265 | + return rsfxdm; | |
266 | + } | |
267 | + | |
268 | + public void setRsfxdm(String rsfxdm) { | |
269 | + this.rsfxdm = rsfxdm; | |
270 | + } | |
271 | + | |
272 | + public String getGwrs() { | |
273 | + return gwrs; | |
274 | + } | |
275 | + | |
276 | + public void setGwrs(String gwrs) { | |
277 | + this.gwrs = gwrs; | |
278 | + } | |
279 | + | |
214 | 280 | public List<Integer> getStatus() { |
215 | 281 | return status; |
216 | 282 | } |
... | ... | @@ -737,6 +803,28 @@ |
737 | 803 | |
738 | 804 | //儿童出生序列号 |
739 | 805 | private String babySeq; |
806 | + //胎次 该新生儿在本次分娩中出生的次序 | |
807 | + private String cftc; | |
808 | + /** | |
809 | + * 新生儿姓名 | |
810 | + */ | |
811 | + private String xsexm; | |
812 | + | |
813 | + public String getXsexm() { | |
814 | + return xsexm; | |
815 | + } | |
816 | + | |
817 | + public void setXsexm(String xsexm) { | |
818 | + this.xsexm = xsexm; | |
819 | + } | |
820 | + | |
821 | + public String getCftc() { | |
822 | + return cftc; | |
823 | + } | |
824 | + | |
825 | + public void setCftc(String cftc) { | |
826 | + this.cftc = cftc; | |
827 | + } | |
740 | 828 | |
741 | 829 | public String getBabySeq() { |
742 | 830 | return babySeq; |
platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java
View file @
7afdc6c
... | ... | @@ -175,6 +175,10 @@ |
175 | 175 | private String cityRegisterId; |
176 | 176 | private String areaRegisterId; |
177 | 177 | private String streetRegisterId; |
178 | + /** | |
179 | + * 村 | |
180 | + */ | |
181 | + private String villageRegister; | |
178 | 182 | |
179 | 183 | /** |
180 | 184 | * 社区id |
181 | 185 | |
... | ... | @@ -456,7 +460,16 @@ |
456 | 460 | this.cesareanTimeType = cesareanTimeType; |
457 | 461 | } |
458 | 462 | |
463 | + public String getVillageRegister() { | |
464 | + return villageRegister; | |
465 | + } | |
466 | + | |
467 | + public void setVillageRegister(String villageRegister) { | |
468 | + this.villageRegister = villageRegister; | |
469 | + } | |
470 | + | |
459 | 471 | /****************************************************/ |
472 | + | |
460 | 473 | |
461 | 474 | public String getIsYyzyfmHospital() { |
462 | 475 | return isYyzyfmHospital; |
platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/model/enums/NationEnums.java
View file @
7afdc6c
... | ... | @@ -62,7 +62,9 @@ |
62 | 62 | Nation53("53", "赫哲族"), |
63 | 63 | Nation54("54", "门巴族"), |
64 | 64 | Nation55("55", "珞巴族"), |
65 | - Nation56("56", "基诺族"); | |
65 | + Nation56("56", "基诺族"), | |
66 | + Nation97("97", "其他"), | |
67 | + Nation98("98", "外国血统中国籍人士"); | |
66 | 68 | |
67 | 69 | NationEnums(String id, String name) { |
68 | 70 | this.id = id; |
69 | 71 | |
70 | 72 | |
71 | 73 | |
72 | 74 | |
... | ... | @@ -71,24 +73,24 @@ |
71 | 73 | |
72 | 74 | |
73 | 75 | public static String getName(String id) { |
74 | - if(StringUtils.isEmpty(id)) return "汉族"; | |
76 | + if(StringUtils.isEmpty(id)) return ""; | |
75 | 77 | NationEnums[] values = NationEnums.values(); |
76 | 78 | for (NationEnums value : values) { |
77 | 79 | if (value.getId().equals(id)) { |
78 | 80 | return value.getName(); |
79 | 81 | } |
80 | 82 | } |
81 | - return "汉族"; | |
83 | + return ""; | |
82 | 84 | } |
83 | 85 | public static String getId(String name) { |
84 | - if(StringUtils.isEmpty(name)) return "01"; | |
86 | + if(StringUtils.isEmpty(name)) return ""; | |
85 | 87 | NationEnums[] values = NationEnums.values(); |
86 | 88 | for (NationEnums value : values) { |
87 | - if (value.getName().contains(name)) { | |
89 | + if (value.getName().equals(name)) { | |
88 | 90 | return value.getId(); |
89 | 91 | } |
90 | 92 | } |
91 | - return "01"; | |
93 | + return ""; | |
92 | 94 | } |
93 | 95 | private String id; |
94 | 96 | private String name; |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java
View file @
7afdc6c
... | ... | @@ -765,5 +765,18 @@ |
765 | 765 | LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); |
766 | 766 | return matDeliverFacade.getLhByFmManageCount(startTime,endTime,loginState.getId()); |
767 | 767 | } |
768 | + | |
769 | + /** | |
770 | + * 国家出生证明数据对接-分娩记录 | |
771 | + * @param startDate | |
772 | + * @param endDate | |
773 | + * @return | |
774 | + */ | |
775 | + @RequestMapping(value = "/getMatDeliverData", method = RequestMethod.GET) | |
776 | + @ResponseBody | |
777 | + public BaseObjectResponse getMatDeliverData(@RequestParam(required = false) String startDate, | |
778 | + @RequestParam(required = false) String endDate) { | |
779 | + return matDeliverFacade.getMatDeliverData(startDate,endDate); | |
780 | + } | |
768 | 781 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
View file @
7afdc6c
... | ... | @@ -4018,5 +4018,46 @@ |
4018 | 4018 | objectResponse.setData(mapCount); |
4019 | 4019 | return objectResponse; |
4020 | 4020 | } |
4021 | + | |
4022 | + public BaseObjectResponse getMatDeliverData(String startDate, String endDate) { | |
4023 | + | |
4024 | + Query query=new Query(); | |
4025 | + query.addCriteria(Criteria.where("yn").is(1)); | |
4026 | + if(StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate)){ | |
4027 | + query.addCriteria(Criteria.where("dueDate1").gte(DateUtil.getDayFirstSecond(DateUtil.parseYMD(startDate))) | |
4028 | + .lte(DateUtil.getDayLastSecond(DateUtil.parseYMD(endDate)))); | |
4029 | + }else { | |
4030 | + //当天的数据 | |
4031 | + query.addCriteria(Criteria.where("dueDate1").gte(DateUtil.getDayFirstSecond(new Date())) | |
4032 | + .lte(DateUtil.getDayLastSecond(new Date()))); | |
4033 | + } | |
4034 | + List<MaternalDeliverModel> fmList = mongoTemplate.find(query, MaternalDeliverModel.class); | |
4035 | + List <Map> data = new ArrayList <>(); | |
4036 | + if(CollectionUtils.isNotEmpty(fmList)){ | |
4037 | + int batchSize = 4; | |
4038 | + int end = 0; | |
4039 | + List <Future> listFuture = new ArrayList <>(); | |
4040 | + for (int i = 0; i < fmList.size(); i += batchSize) { | |
4041 | + end = (end + batchSize); | |
4042 | + if (end > fmList.size()) { | |
4043 | + end = fmList.size(); | |
4044 | + } | |
4045 | + listFuture.add(commonThreadPool.submit(new FmListWorker(fmList.subList(i, end), patientsService, | |
4046 | + basicConfigService,organizationService,usersService))); | |
4047 | + } | |
4048 | + for (Future f : listFuture) { | |
4049 | + try { | |
4050 | + data.addAll((List <Map>) f.get(30, TimeUnit.SECONDS)); | |
4051 | + } catch (Exception e) { | |
4052 | + ExceptionUtils.catchException(e, "convertToQuanWeight get result Future error."); | |
4053 | + } | |
4054 | + } | |
4055 | + } | |
4056 | + BaseObjectResponse objectResponse = new BaseObjectResponse(); | |
4057 | + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); | |
4058 | + objectResponse.setErrormsg("成功"); | |
4059 | + objectResponse.setData(data); | |
4060 | + return objectResponse; | |
4061 | + } | |
4021 | 4062 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java
View file @
7afdc6c
... | ... | @@ -4675,8 +4675,8 @@ |
4675 | 4675 | Criteria c1= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"1\\\""); |
4676 | 4676 | Criteria c2= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"2\\\""); |
4677 | 4677 | c.orOperator(c1,c2); |
4678 | - Criteria criteria11 = Criteria.where("dueDate") | |
4679 | - .gte(DateUtil.getyyyy_MM_dd(startDate)).lte(DateUtil.getyyyy_MM_dd(endDate)) | |
4678 | + Criteria criteria11 = Criteria.where("dueDate1") | |
4679 | + .gte(startDate).lte(DateUtil.getDayLastSecond(endDate)) | |
4680 | 4680 | .andOperator(c) |
4681 | 4681 | .and("hospitalId").is(hospitalId) |
4682 | 4682 | .and("yn").is(1); |
... | ... | @@ -4989,8 +4989,8 @@ |
4989 | 4989 | Criteria c1= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"1\\\""); |
4990 | 4990 | Criteria c2= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"2\\\""); |
4991 | 4991 | c.orOperator(c1,c2); |
4992 | - Criteria criteria = Criteria.where("dueDate") | |
4993 | - .gte(DateUtil.getyyyy_MM_dd(startDate)).lte(DateUtil.getyyyy_MM_dd(endDate)) | |
4992 | + Criteria criteria = Criteria.where("dueDate1") | |
4993 | + .gte(startDate).lte(DateUtil.getDayLastSecond(endDate)) | |
4994 | 4994 | .andOperator(c) |
4995 | 4995 | .and("hospitalId").is(hospitalId) |
4996 | 4996 | .and("yn").is(1); |
... | ... | @@ -5012,8 +5012,8 @@ |
5012 | 5012 | } |
5013 | 5013 | map.put("name", doctor); |
5014 | 5014 | //按医生查询,得到医生的接生信息 |
5015 | - Criteria criteria2 = Criteria.where("dueDate") | |
5016 | - .gte(DateUtil.getyyyy_MM_dd(startDate)).lte(DateUtil.getyyyy_MM_dd(endDate)) | |
5015 | + Criteria criteria2 = Criteria.where("dueDate1") | |
5016 | + .gte(startDate).lte(DateUtil.getDayLastSecond(endDate)) | |
5017 | 5017 | .andOperator(c) |
5018 | 5018 | .and("hospitalId").is(hospitalId) |
5019 | 5019 | .and("yn").is(1) |
... | ... | @@ -5044,8 +5044,8 @@ |
5044 | 5044 | public BaseResponse getFmAfterEvaluate(String hospitalId,String startDate,String endDate) { |
5045 | 5045 | BaseResponse br = new BaseResponse(); |
5046 | 5046 | List <Map <String, Object>> listMap=new ArrayList<>(); |
5047 | - Criteria criteria11 = Criteria.where("dueDate") | |
5048 | - .gte(startDate).lte(endDate) | |
5047 | + Criteria criteria11 = Criteria.where("dueDate1") | |
5048 | + .gte(DateUtil.parseYMD(startDate)).lte(DateUtil.getDayLastSecond(DateUtil.parseYMD(endDate))) | |
5049 | 5049 | .and("hospitalId").is(hospitalId) |
5050 | 5050 | .and("yn").is(1); |
5051 | 5051 | List<MaternalDeliverModel> mDlList = mongoTemplate.find(Query.query(criteria11), MaternalDeliverModel.class); |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/FmListWorker.java
View file @
7afdc6c
1 | +package com.lyms.platform.operate.web.worker; | |
2 | + | |
3 | +import com.lyms.hospitalapi.lhxfy.model.enums.NationEnums; | |
4 | +import com.lyms.platform.biz.service.AntenatalExaminationService; | |
5 | +import com.lyms.platform.biz.service.BasicConfigService; | |
6 | +import com.lyms.platform.biz.service.PatientsService; | |
7 | +import com.lyms.platform.common.enums.*; | |
8 | +import com.lyms.platform.common.utils.*; | |
9 | +import com.lyms.platform.operate.web.facade.MatDeliverFacade; | |
10 | +import com.lyms.platform.operate.web.facade.PatientFacade; | |
11 | +import com.lyms.platform.operate.web.result.HighScoreResult; | |
12 | +import com.lyms.platform.operate.web.result.QuanPatientsResult; | |
13 | +import com.lyms.platform.operate.web.utils.CommonsHelper; | |
14 | +import com.lyms.platform.permission.model.Organization; | |
15 | +import com.lyms.platform.permission.model.Users; | |
16 | +import com.lyms.platform.permission.service.OrganizationService; | |
17 | +import com.lyms.platform.permission.service.UsersService; | |
18 | +import com.lyms.platform.pojo.*; | |
19 | +import com.lyms.platform.query.AntExChuQuery; | |
20 | +import com.lyms.platform.query.AntExQuery; | |
21 | +import org.apache.commons.collections.CollectionUtils; | |
22 | +import org.apache.commons.collections.MapUtils; | |
23 | +import org.apache.commons.lang.math.NumberUtils; | |
24 | +import org.slf4j.Logger; | |
25 | +import org.slf4j.LoggerFactory; | |
26 | +import org.springframework.util.StopWatch; | |
27 | + | |
28 | +import java.util.*; | |
29 | +import java.util.concurrent.Callable; | |
30 | + | |
31 | +public class FmListWorker implements Callable<List<MaternalDeliverModel>> { | |
32 | + private static final Logger logger = LoggerFactory.getLogger(MatDeliverFacade.class); | |
33 | + | |
34 | + private List<MaternalDeliverModel> maternalDeliverModelList; | |
35 | + private PatientsService patientsService; | |
36 | + private BasicConfigService basicConfigService; | |
37 | + private OrganizationService organizationService; | |
38 | + private UsersService usersService; | |
39 | + public FmListWorker(List<MaternalDeliverModel> maternalDeliverModelList, | |
40 | + PatientsService patientsService, | |
41 | + BasicConfigService basicConfigService, | |
42 | + OrganizationService organizationService, | |
43 | + UsersService usersService) { | |
44 | + this.maternalDeliverModelList = maternalDeliverModelList; | |
45 | + this.patientsService = patientsService; | |
46 | + this.basicConfigService = basicConfigService; | |
47 | + this.organizationService = organizationService; | |
48 | + this.usersService = usersService; | |
49 | + } | |
50 | + | |
51 | + @Override | |
52 | + public List<MaternalDeliverModel> call() throws Exception { | |
53 | + List data = new ArrayList<>(); | |
54 | + for (MaternalDeliverModel model : maternalDeliverModelList) { | |
55 | + try { | |
56 | + Map result=new HashMap(); | |
57 | + final Patients patient = patientsService.findOnePatientById(model.getParentId()); | |
58 | + if (null==patient) { | |
59 | + continue; | |
60 | + } | |
61 | + result.put("MQXM", StringUtils.isEmpty(patient.getUsername())?"":patient.getUsername());//母亲姓名 | |
62 | + int MQNL=0; | |
63 | + if (null!= DateUtil.getAge(patient.getBirth(),model.getDueDate1())) { | |
64 | + MQNL=DateUtil.getAge(patient.getBirth(),model.getDueDate1()).intValue(); | |
65 | + } | |
66 | + result.put("MQNL", MQNL);//新生儿出生时母亲的年龄 | |
67 | + String MQZJLB="99"; | |
68 | + if(StringUtils.isNotEmpty(patient.getPcerteTypeId())) { | |
69 | + switch (patient.getPcerteTypeId()) { | |
70 | + case "70ae1d93-2964-46bc-83fa-bec9ff605b1c": | |
71 | + MQZJLB = "01"; | |
72 | + break; | |
73 | + case "5797135b0cf2dd415ca09fe1": | |
74 | + MQZJLB = "03"; | |
75 | + break; | |
76 | + default: | |
77 | + MQZJLB = "99"; | |
78 | + break; | |
79 | + } | |
80 | + } | |
81 | + result.put("MQZJLB",MQZJLB );//母亲身份证件的类别代码 | |
82 | + result.put("MQZJHM",StringUtils.isEmpty(patient.getCardNo())?"": patient.getCardNo());//母亲身份证件上唯一的法定标识符 | |
83 | + Date MQCSRQ=null; | |
84 | + if (null!=patient.getBirth()) { | |
85 | + MQCSRQ=DateUtil.parseYMD(DateUtil.y_m_d.format(patient.getBirth())); | |
86 | + } | |
87 | + result.put("MQCSRQ",MQCSRQ);//母亲出生日期 | |
88 | + | |
89 | + String MQGJ=CdGwPcountryEnums.getId(getBasicConfig(patient.getPcountryId())); | |
90 | + result.put("MQGJ",StringUtils.isEmpty(MQGJ)?"": MQGJ);//母亲国籍 | |
91 | + String MQMZ=NationEnums.getId(getBasicConfig(patient.getPnationId())); | |
92 | + result.put("MQMZ",StringUtils.isEmpty(MQMZ)?"":MQMZ );//母亲民族 | |
93 | + result.put("MQHJDZSZ",CommonsHelper.getName1(patient.getProvinceId(), basicConfigService) );//产妇户籍地址-省 | |
94 | + result.put("MQHJDZSD", CommonsHelper.getName1(patient.getCityId(), basicConfigService));//产妇户籍地址-市 | |
95 | + String MQHJDZXQ=CommonsHelper.getName1(patient.getAreaId(), basicConfigService); | |
96 | + result.put("MQHJDZXQ", MQHJDZXQ);//产妇户籍地址 - 县 | |
97 | + result.put("MQHJDZDM", organizationService.getAreaCode(MQHJDZXQ));//产妇户籍地址-行政区 划代码 | |
98 | + result.put("MQZZSZ", CommonsHelper.getName1(patient.getProvinceRegisterId(), basicConfigService));//母亲住址- 省 | |
99 | + result.put("MQZZSD",CommonsHelper.getName1(patient.getCityRegisterId(), basicConfigService) );//母亲住址-市 | |
100 | + String MQZZXQ=CommonsHelper.getName1(patient.getAreaRegisterId(), basicConfigService); | |
101 | + result.put("MQZZXQ",MQZZXQ );//母亲住址- 县 | |
102 | + result.put("MQZZXZ", CommonsHelper.getName1(patient.getStreetRegisterId(), basicConfigService));//母亲住址-乡 | |
103 | + result.put("MQZZCL", StringUtils.isEmpty(patient.getVillageRegister())?"":patient.getVillageRegister());//母亲住址- 村 | |
104 | + result.put("MQZZMPH", StringUtils.isEmpty(patient.getAddressRegister())?"":patient.getAddressRegister());//母亲住址-门牌号码 | |
105 | + result.put("MQZZQHDM", organizationService.getAreaCode(MQZZXQ));//产妇现住地址-行政区划代码 | |
106 | + String YLJGMC=""; | |
107 | + String YLJGDZSZ=""; | |
108 | + String YLJGDZSD=""; | |
109 | + String YLJGDZXQ=""; | |
110 | + if (StringUtils.isNotEmpty(model.getHospitalId())) { | |
111 | + Organization organization = organizationService.getOrganization(Integer.parseInt(model.getHospitalId())); | |
112 | + if (organization != null && organization.getYn() == YnEnums.YES.getId()) { | |
113 | + YLJGMC = organization.getName(); | |
114 | + YLJGDZSZ=CommonsHelper.getName1(organization.getProvinceId(), basicConfigService); | |
115 | + YLJGDZSD=CommonsHelper.getName1(organization.getCityId(), basicConfigService); | |
116 | + YLJGDZXQ=CommonsHelper.getName1(organization.getAreaId(), basicConfigService); | |
117 | + } | |
118 | + } | |
119 | + result.put("YLJGMC",YLJGMC );//医疗机构名称 | |
120 | + String YLJGDM=""; | |
121 | + if(StringUtils.isNotEmpty(YLJGMC)){ | |
122 | + YLJGDM =organizationService.getPlatHosNewCode(YLJGMC); | |
123 | + } | |
124 | + result.put("YLJGDM", YLJGDM);//医疗机构编码 | |
125 | + result.put("YLJGDZSZ", YLJGDZSZ);//医疗机构地址-省 | |
126 | + result.put("YLJGDZSD", YLJGDZSD);//医疗机构地址-市 | |
127 | + result.put("YLJGDZXQ", YLJGDZXQ);//医疗机构地址 - 县 | |
128 | + result.put("YLJGDZQHDM", organizationService.getAreaCode(YLJGDZXQ));//医疗机构地址-行政区划代码 | |
129 | + result.put("ZCJG", "T");//是否助产机构 | |
130 | + result.put("FMDDLB", StringUtils.isEmpty(model.getFmddlb())?"":model.getFmddlb());//分娩地点类别代码 | |
131 | + result.put("FMDDLX", StringUtils.isEmpty(model.getFmddlx())?"":model.getFmddlx());//分娩地点类型代码 | |
132 | + result.put("CFJKDAH", "");//孕产妇健康档案编号(非必填) | |
133 | + result.put("CFZYBAH", StringUtils.isEmpty(model.getInHospitalNo())?"":model.getInHospitalNo());//产妇住院病案号 | |
134 | + Date JDSJ=null; | |
135 | + if (null!=patient.getBookbuildingDate()) { | |
136 | + JDSJ=DateUtil.parseYMD(DateUtil.y_m_d.format(patient.getBookbuildingDate())); | |
137 | + } | |
138 | + result.put("JDSJ", JDSJ);//建档时间 | |
139 | + result.put("GWRS", StringUtils.isEmpty(model.getGwrs())?"":model.getGwrs());//本次是否属于高危妊娠 | |
140 | + result.put("RSBFZ", "");//妊娠合并症/并发症史(非必填) | |
141 | + result.put("RSFXDM", StringUtils.isEmpty(model.getRsfxdm())?"":model.getRsfxdm());//妊娠风险评估分级代码 | |
142 | + String FMFSDM = "9"; | |
143 | + if (StringUtils.isNotEmpty(model.getDeliveryMode())) { | |
144 | + Map m = JsonUtil.str2Obj(model.getDeliveryMode(), Map.class); | |
145 | + if (m != null) { | |
146 | + Object b = m.get("fmfs"); | |
147 | + if (b != null ) { | |
148 | + FMFSDM = b.toString(); | |
149 | + } | |
150 | + } | |
151 | + } | |
152 | + if (StringUtils.isNotEmpty(FMFSDM)) { | |
153 | + switch (FMFSDM){ | |
154 | + case "2": | |
155 | + FMFSDM="3";//剖宫产 | |
156 | + break; | |
157 | + } | |
158 | + } | |
159 | + result.put("FMFSDM", FMFSDM);//分娩方式代码 | |
160 | + | |
161 | + String JSRXM = ""; | |
162 | + String LXDH = ""; | |
163 | + if (StringUtils.isNotEmpty(model.getDeliverDoctor())) { | |
164 | + Users users = usersService.getUsers(Integer.parseInt(model.getDeliverDoctor())); | |
165 | + if (users != null && users.getYn() == YnEnums.YES.getId()) { | |
166 | + JSRXM = users.getName(); | |
167 | + LXDH = users.getPhone(); | |
168 | + } | |
169 | + } | |
170 | + result.put("JSRXM", JSRXM);//接生人员姓名 | |
171 | + result.put("CFYC", StringUtils.isEmpty(model.getCfyc())?0:Integer.parseInt(model.getCfyc()));//孕次(次) | |
172 | + result.put("CFCC", null==model.getDueCount()?0:model.getDueCount().intValue());//产次(次) | |
173 | + int CFYZ=0; | |
174 | + if(StringUtils.isNotEmpty(model.getDueWeek())){ | |
175 | + CFYZ=Integer.parseInt(model.getDueWeek().substring(0,2)); | |
176 | + } | |
177 | + result.put("CFYZ", CFYZ);//出生孕周(d) | |
178 | + result.put("CFTS", null==model.getTireNumber()?0:model.getTireNumber().intValue());//胎数 | |
179 | + | |
180 | + result.put("TBDWMC", YLJGMC);//填报单位名称 | |
181 | + result.put("TBRXM ", JSRXM);//填报人姓名 | |
182 | + result.put("LXDH", LXDH);//填报人联系电话 | |
183 | + Date BSRQ=null; | |
184 | + if (null!=model.getCreated()) { | |
185 | + BSRQ=DateUtil.parseYMD(DateUtil.y_m_d.format(model.getCreated())); | |
186 | + } | |
187 | + result.put("BSRQ", BSRQ);//报出日期 | |
188 | + //新生儿(处理多胎) | |
189 | + for (MaternalDeliverModel.Baby baby : model.getBaby()) { | |
190 | + result.put("XTBM", StringUtils.isEmpty(baby.getId())?"":baby.getId());//省级系统 ID(baby主键) | |
191 | + Date XSECSRQ=null; | |
192 | + if (StringUtils.isNotEmpty(baby.getDueTime())) { | |
193 | + XSECSRQ=DateUtil.parseYMDHMS(baby.getDueTime()); | |
194 | + } | |
195 | + result.put("XSECSRQ", XSECSRQ);//新生儿出生日期时间 | |
196 | + result.put("CFTC", StringUtils.isEmpty(baby.getCftc())?0:Integer.parseInt(baby.getCftc()));//胎次 | |
197 | + String FMJJ=""; | |
198 | + if(StringUtils.isNotEmpty(baby.getPregnancyOut())) { | |
199 | + switch (baby.getPregnancyOut()) { | |
200 | + case "0": | |
201 | + FMJJ="1"; | |
202 | + break; | |
203 | + case "1": | |
204 | + FMJJ="2"; | |
205 | + break; | |
206 | + case "2": | |
207 | + FMJJ="2"; | |
208 | + break; | |
209 | + case "3": | |
210 | + FMJJ="3"; | |
211 | + break; | |
212 | + case "4": | |
213 | + FMJJ="4"; | |
214 | + break; | |
215 | + } | |
216 | + } | |
217 | + result.put("FMJJ", FMJJ);//分娩结局代码 | |
218 | + result.put("RKBM", StringUtils.isEmpty(baby.getBabySeq())?"":baby.getBabySeq());//出生人口编码 | |
219 | + result.put("XSEXM ", StringUtils.isEmpty(baby.getXsexm())?"":baby.getXsexm());//新生儿姓名 | |
220 | + String XSEXB="9"; | |
221 | + if(StringUtils.isNotEmpty(baby.getBabyGender())) { | |
222 | + switch (baby.getBabyGender()){ | |
223 | + case "1": | |
224 | + XSEXB="1";//男 | |
225 | + break; | |
226 | + case "0": | |
227 | + XSEXB="2";//女 | |
228 | + break; | |
229 | + } | |
230 | + } | |
231 | + result.put("XSEXB", XSEXB);//新生儿性别代码 | |
232 | + result.put("XSESC", StringUtils.isEmpty(baby.getBabyHeight())?0:Integer.parseInt(baby.getBabyHeight()));//出生身长(cm) | |
233 | + result.put("XSETZ", StringUtils.isEmpty(baby.getBabyWeight())?0:Integer.parseInt(baby.getBabyWeight()));//出生体重(g) | |
234 | + result.put("APGARDM", "1");//Apgar 评分时间代码(默认1分钟代码) | |
235 | + int APGAR=0; | |
236 | + if (StringUtils.isNotEmpty(baby.getApgarScore())) { | |
237 | + Map m = JsonUtil.str2Obj(baby.getApgarScore(), Map.class); | |
238 | + if (null!=m) { | |
239 | + Object b = m.get("pf1"); | |
240 | + if (null!=b && StringUtils.isNotEmpty(b.toString())) { | |
241 | + APGAR = Integer.parseInt(b.toString()); | |
242 | + } | |
243 | + } | |
244 | + } | |
245 | + result.put("APGAR", APGAR);//Apgar 评分值(分) | |
246 | + data.add(result); | |
247 | + } | |
248 | + } catch (Exception e) { | |
249 | + logger.info(e.getMessage()); | |
250 | + e.printStackTrace(); | |
251 | + } | |
252 | + } | |
253 | + | |
254 | + return data; | |
255 | + } | |
256 | + | |
257 | + private String getBasicConfig(String id) { | |
258 | + if (com.lyms.platform.common.utils.StringUtils.isEmpty(id)) { | |
259 | + return ""; | |
260 | + } | |
261 | + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(id); | |
262 | + if (null != basicConfig) { | |
263 | + return basicConfig.getName(); | |
264 | + } | |
265 | + return ""; | |
266 | + } | |
267 | +} |