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 | +} |