Commit 7afdc6c9ad0fed973e4e77fd47d09b732695bf6e

Authored by shiyang
1 parent 4320a75892

国家出生证对接: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 View file @ 7afdc6c
... ... @@ -46,5 +46,7 @@
46 46 List<Organization> getOrganizationByHospsHs(@Param("hospPermissions") List<String> hospPermissions);
47 47  
48 48 String getAreaCode(String areaName);
  49 +
  50 + String getPlatHosNewCode(String yljgmc);
49 51 }
platform-biz-service/src/main/java/com/lyms/platform/permission/service/OrganizationService.java View file @ 7afdc6c
... ... @@ -50,5 +50,7 @@
50 50 List<Organization> getOrganizationByHospsHs(List<String> hospPermissions);
51 51  
52 52 String getAreaCode(String areaName);
  53 +
  54 + String getPlatHosNewCode(String yljgmc);
53 55 }
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 +}