diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyFmService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyFmService.java index 00608ac..76ba937 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyFmService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyFmService.java @@ -58,6 +58,9 @@ public class DzfyFmService { @Autowired private QhdfyHisService qhdfyHisService; + @Autowired + private DzfyHisService dzfyHisService; + private static Map ONE_ENUMS = new HashMap<>(); private static Map babyMap = new HashMap<>(); @@ -177,47 +180,44 @@ public class DzfyFmService { } public void queryFmPatient(String start,String end,String syxh) { - List IDlist=new ArrayList(); + String cloumns = " ID as ID,\n" + " BHNUM as BHNUM,\n" + " VCCARDNO as VCCARDNO,\n" + " PHONE as PHONE,\n" + - " NAME as NAME,\n" + + " NAME as NAME,\n" + " IDCARD as IDCARD,\n" + - // " YEXH as yexh,\n" + " CREATED as CREATED,\t\n" + " BABY_DELIVERY_TIME as BABY_DELIVERY_TIME,\n" + - // " SSJ as ssj,\n" + " BABY_SEX as BABY_SEX,\n" + " DUE_WEEK as DUE_WEEK,\n" + " DUE_DAY as DUE_DAY,\n" + " FETUS_NUM as FETUS_NUM,\n" + - // " CJC as cjc,\n" + " BABY_ASPHYXIAM as BABY_ASPHYXIAM,\n" + " BABY_WEIGHT as BABY_WEIGHT,\n" + " BABY_HEIGHT as BABY_HEIGHT,\n" + - // " SH as sh,\n" + " BABY_DEFORMITY as BABY_DEFORMITY,\n" + " BABY_APGAR_SCORE_ONE as BABY_APGAR_SCORE_ONE,\n" + " BABY_APGAR_SCORE_FIVE as BABY_APGAR_SCORE_FIVE,\n" + " BABY_APGAR_SCORE_TEN as BABY_APGAR_SCORE_TEN,\n" + - // " PFZ as pfz,\n" + " BABY_PREGNANCY_OUT as BABY_PREGNANCY_OUT,\n" + " TMCSIDE as TMCSIDE,\n" + " TMCTYPE as TMCTYPE,\n" + - // " YEQK as yeqk,\n" + " MATERNAL_INFO as MATERNAL_INFO,\n" + - // " SFFQ as sffq,\n" + - // " FQYY as fqyy,\n" + " PERINEAL_CONDITION as PERINEAL_CONDITION,\n" + - // " HYQK1 as hyqk1,\n" + - // " YC as yc,\n" + - // " SFGW as sfgw,\n" + " SH_LOSE_BLOOD as SH_LOSE_BLOOD,\n" + " TH_LOSE_BLOOD as TH_LOSE_BLOOD,\n" + - // " QJQK as qjqk,\n" + - // " SRKS as srks,\n" + - " DELIVER_DOCTOR as DELIVER_DOCTOR"; + " DELIVER_DOCTOR as DELIVER_DOCTOR,\n" + + " PROD_PROCESS_ONE as PROD_PROCESS_ONE,\n" + + " PROD_PROCESS_TWO as PROD_PROCESS_TWO,\n" + + " PROD_PROCESS_THREE as PROD_PROCESS_THREE,\n" + + " TOTAL_PROCESS as TOTAL_PROCESS,\n" + + " PLACENTA_NUM as PLACENTA_NUM,\n" + + " DELIVER_HOSPITAL as DELIVER_HOSPITAL,\n" + + " DELIVER_DOCTOR as DELIVER_DOCTOR"; + + + String idSql = " ID as ID"; Connection conn = com.lyms.hospitalapi.dzfy.ConnTools.makeHisConnection(); QueryRunner queryRunner = new QueryRunner(); @@ -225,14 +225,8 @@ public class DzfyFmService { SimpleDateFormat fmt2 = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat fmt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); try { - String sql ="select "+cloumns+" from zlhis.v_deliveryinfo where " + - " to_date(CREATED,'yyyy-mm-dd hh24:mm:ss') > to_date('"+start+"', 'yyyy-mm-dd hh24:mm:ss') and to_date(CREATED,'yyyy-mm-dd hh24:mm:ss') <= to_date('"+end+"', 'yyyy-mm-dd hh24:mm:ss')" + - " and ID not in (select id from zlhis.v_deliveryinfo where DELIVER_DOCTOR is not null and BABY_HEIGHT is not null and BABY_WEIGHT is not null and BABY_APGAR_SCORE_ONE is not null and BABY_PREGNANCY_OUT is not null ) " ; - - if (StringUtils.isNotEmpty(syxh)) - { - sql+= " and ID='"+syxh+"'"; - } + String sql ="select "+idSql+" from zlhis.v_deliveryinfo where " + + " to_date(BABY_DELIVERY_TIME,'yyyy-mm-dd hh24:mm:ss') > to_date('"+start+"', 'yyyy-mm-dd hh24:mm:ss') and to_date(BABY_DELIVERY_TIME,'yyyy-mm-dd hh24:mm:ss') <= to_date('"+end+"', 'yyyy-mm-dd hh24:mm:ss')" ; List list = queryRunner.query(conn, sql, new BeanListHandler(Fm.class)); ExceptionUtils.catchException("size====" + list.size()); @@ -260,277 +254,233 @@ public class DzfyFmService { fm.setBABY_APGAR_SCORE_TEN(10); list.add(fm);*/ + if(CollectionUtils.isNotEmpty(list)){ + for(Fm fm:list){ + List users = new ArrayList(); + String id = fm.getID();//获取所有的孕妇ID,方便孕妇产下双胞胎而用 + String allSql = "select "+cloumns+" from zlhis.v_deliveryinfo where " + + " to_date(BABY_DELIVERY_TIME,'yyyy-mm-dd hh24:mm:ss') > to_date('"+start+"', 'yyyy-mm-dd hh24:mm:ss') and to_date(BABY_DELIVERY_TIME,'yyyy-mm-dd hh24:mm:ss') <= to_date('"+end+"', 'yyyy-mm-dd hh24:mm:ss')" + + " and ID='"+id+"'" ; + //查出这个ID对应孕妇在这个时间段的分娩记录 + List allList = queryRunner.query(conn, allSql, new BeanListHandler(Fm.class)); - - if (CollectionUtils.isNotEmpty(list)) { - - for(Fm f:list){ - String id=f.getID(); - if(!IDlist.contains(id)){ - IDlist.add(id); - } - } - - for(String id:IDlist){ Date dueDate = null; - List users=new ArrayList(); List babies = new ArrayList<>(); MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest(); + for(Fm allFm:allList){ + + if ("死胎".equals(allFm.getBABY_PREGNANCY_OUT())) + { + continue; + } - for (Fm item : list) { - if(item.getID().equals(id)){ - try{ - - if ("死胎".equals(item.getBABY_PREGNANCY_OUT())) - { - continue; - } - ExceptionUtils.catchException("item===" + item); - dueDate = item.getBABY_DELIVERY_TIME(); - if (!StringUtils.isNotEmpty(dueDate.toString())) { - continue; - } - - //根据患者ID查询分娩记录的基本信息 - FmPatInfo patInfo = getFmPatInfoById(item.getID()); - /*FmPatInfo patInfo = new FmPatInfo(); - patInfo.setSyxh("33299"); - patInfo.setName("小香香"); - patInfo.setCardNo("123654"); - patInfo.setPhone("18613211129");*/ - - if (patInfo != null && StringUtils.isNotEmpty(patInfo.getPhone())) { - PatientsQuery query = new PatientsQuery(); - query.setYn(YnEnums.YES.getId()); - query.setType(1); //孕妇 - query.setDueStatus(0); //未终止妊娠 - ExceptionUtils.catchException("phone="+patInfo.getPhone()+" cardNo="+ patInfo.getCardNo()); - String[] strs = new String[]{patInfo.getPhone(),patInfo.getCardNo()}; - query.setPc(strs); - - //查询该孕妇是否在孕产婴系统中建档 - List patientses = patientsService.queryPatient(query); - if (CollectionUtils.isNotEmpty(patientses)) { - - ExceptionUtils.catchException("patientses"+patientses); - Patients patient = patientses.get(0); - UsersQuery usersQuery = new UsersQuery(); - usersQuery.setName(item.getDELIVER_DOCTOR()); - usersQuery.setYn(YnEnums.YES.getId()); - usersQuery.setOrgId(1000000114); - users = usersService.queryUsers(usersQuery); - if (!CollectionUtils.isNotEmpty(users)) { - usersQuery.setName("产房"); - users = usersService.queryUsers(usersQuery); - } - - if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) { - - - if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(item.getBABY_DELIVERY_TIME().toString())) { - continue; - } - Map map = new HashMap<>(); - Map totalMap = new HashMap<>(); - - Integer prod_Process_One = item.getPROD_PROCESS_ONE(); - Integer prod_Process_Two = item.getPROD_PROCESS_TWO(); - Integer prod_Process_Three = item.getPROD_PROCESS_THREE(); - if(prod_Process_One!=null){ - map.put("cc1",item.getPROD_PROCESS_ONE().toString()); - } - if(prod_Process_Two!=null){ - map.put("cc2",item.getPROD_PROCESS_TWO().toString()); - } - if(prod_Process_Three!=null){ - map.put("cc2",item.getPROD_PROCESS_THREE().toString()); - } - totalMap.put("zcc",item.getTOTAL_PROCESS()); - deliverAddRequest.setTotalprocess(totalMap); - deliverAddRequest.setProdprocess(map); - deliverAddRequest.setDeliverDoctor(item.getDELIVER_DOCTOR()); - deliverAddRequest.setDueDate(DateUtil.getyyyy_MM_dd(dueDate)); - deliverAddRequest.setParentId(patient.getId()); - deliverAddRequest.setPid(patient.getPid()); - deliverAddRequest.setOperationCause("-"); - String week = ""; - if (StringUtils.isNotEmpty(item.getDUE_WEEK())) { - - week = item.getDUE_WEEK() + "周"; - if (StringUtils.isNotEmpty(item.getDUE_WEEK()) && StringUtils.isNotEmpty(item.getDUE_DAY())) - { - week += item.getDUE_DAY() + "天"; - } - - deliverAddRequest.setDueWeek(week); - } - - deliverAddRequest.setTireNumber(item.getFETUS_NUM());// 胎数(之前赋值为死值1) - Integer placenta_Num = item.getPLACENTA_NUM(); - if(placenta_Num!=null){ - deliverAddRequest.setPlacenta(item.getPLACENTA_NUM().toString());// 胎盘(之前赋值为死值1) - } - if ("完好".equals(item.getPERINEAL_CONDITION()) || "无".equals(item.getPERINEAL_CONDITION())) { - deliverAddRequest.setPerinealCondition("full"); - } else if ("会阴切开".equals(item.getPERINEAL_CONDITION()) || "侧切".equals(item.getPERINEAL_CONDITION())) { - deliverAddRequest.setPerinealCondition("split"); - } - - if ("一度裂伤".equals(item.getPERINEAL_CONDITION())) { - deliverAddRequest.setSiLielevel(1); - } else if ("二度裂伤".equals(item.getPERINEAL_CONDITION())) { - deliverAddRequest.setSiLielevel(2); - } else if ("三度裂伤".equals(item.getPERINEAL_CONDITION())) { - deliverAddRequest.setSiLielevel(3); - } - - Integer th_Lose = item.getTH_LOSE_BLOOD(); - if(th_Lose!=null){ - if (StringUtils.isNotEmpty(item.getTH_LOSE_BLOOD().toString())) { - deliverAddRequest.settHloseBloodL(Double.parseDouble(item.getTH_LOSE_BLOOD().toString())); - } - } - - Map deliveryMode = new HashMap(); //分娩方式 - - String fmfs = ""; - if (item.getTMCSIDE() != null && "剖宫产".equals(item.getTMCSIDE())) - { - fmfs = FmTypeEnums.O1.getId(); - } - else - { - fmfs = FmTypeEnums.O.getId(); - } - deliveryMode.put("fmfs",fmfs); - deliverAddRequest.setDeliveryMode(deliveryMode); - //胎盘信息 - List extPlacentas = new ArrayList<>(); - MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); - String tpmcType = ""; //胎盘娩出方式 - if ("手术产".equals(item.getTMCTYPE()) || "手取胎盘".equals(item.getTMCTYPE())) { - tpmcType = TpmcTypeEnums.O2.getId(); - } else if ("自然产出".equals(item.getTMCTYPE()) || "自然娩出".equals(item.getTMCTYPE())) { - tpmcType = TpmcTypeEnums.O.getId(); - } - extPlacenta.setTpmcType(tpmcType); - extPlacentas.add(extPlacenta); - deliverAddRequest.setExtPlacentas(extPlacentas); - - - //儿童 - MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); - Map as = new HashMap<>(); - Integer pf1 = item.getBABY_APGAR_SCORE_ONE(); - Integer pf5 = item.getBABY_APGAR_SCORE_FIVE(); - Integer pf10 = item.getBABY_APGAR_SCORE_TEN(); - if(pf1!=null){ - as.put("pf1", item.getBABY_APGAR_SCORE_ONE().toString()); - } - if(pf5!=null){ - as.put("pf5", item.getBABY_APGAR_SCORE_FIVE().toString()); - } - if(pf10!=null){ - as.put("pf10", item.getBABY_APGAR_SCORE_TEN().toString()); - } - - - baby.setApgarScore(as); - baby.setBabyGender("男".equals(item.getBABY_SEX()) ? "1" : "0"); - Integer babyHeight = item.getBABY_HEIGHT(); - Integer babyWeight = item.getBABY_WEIGHT(); - Integer baby_Asphyxiam = item.getBABY_ASPHYXIAM(); - if(babyHeight!=null){ - baby.setBabyHeight(item.getBABY_HEIGHT().toString());//新生儿生长 - } - if(babyWeight!=null){ - baby.setBabyWeight(item.getBABY_WEIGHT().toString());//新生儿重量 - } - if(baby_Asphyxiam!=null){ - baby.setAsphyxiaM(item.getBABY_ASPHYXIAM().toString()); //窒息分钟 - } - - baby.setDeformity("".equals(item.getBABY_DEFORMITY()) ? 0 : 1); //畸形 0非畸形 1畸形 - - String baby_Pregnancy_Out = item.getBABY_PREGNANCY_OUT(); - if(baby_Pregnancy_Out!=null && StringUtils.isNotEmpty(baby_Pregnancy_Out)){ - baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(item.getBABY_PREGNANCY_OUT())); // 妊娠结局 - } - - baby.setDueTime(fmt.format(dueDate));//分娩时间 - babies.add(baby); - - } - - - - - }else{ - //德州服务器有分娩记录,但是在这边系统没有对应孕妇 取分娩信息建档儿童数据 - String babyName = patInfo.getName()+("男".equals(item.getBABY_SEX()) ? "之子" : "之女"); - FmItem fmitem=new FmItem(); - fmitem.setCcqk(item.getBABY_PREGNANCY_OUT()); - fmitem.setYexb(item.getBABY_SEX()); - fmitem.setRc(item.getDUE_WEEK()); - fmitem.setFmfs(item.getDELIVERY_MODE()); - Integer fetus_Num = item.getFETUS_NUM(); - if(fetus_Num!=null){ - fmitem.setDjt(item.getFETUS_NUM().toString()); - } - fmitem.setCjc(""); - Integer babyHeight = item.getBABY_HEIGHT(); - Integer babyWeight = item.getBABY_WEIGHT(); - if(babyHeight!=null){ - fmitem.setSc(item.getBABY_HEIGHT().toString()); - } - if(babyWeight!=null){ - fmitem.setTz(item.getBABY_WEIGHT().toString()); - } - Integer pf1 = item.getBABY_APGAR_SCORE_ONE(); - Integer pf5 = item.getBABY_APGAR_SCORE_FIVE(); - Integer pf10 = item.getBABY_APGAR_SCORE_TEN(); - if(pf1!=null){ - fmitem.setYfz(item.getBABY_APGAR_SCORE_ONE().toString()); - } - if(pf5!=null){ - fmitem.setWfz(item.getBABY_APGAR_SCORE_FIVE().toString()); - } - if(pf10!=null){ - fmitem.setSfz(item.getBABY_APGAR_SCORE_TEN().toString()); - } - fmitem.setSfgw(""); - Integer baby_Deformity = item.getBABY_DEFORMITY(); - if(baby_Deformity!=null){ - fmitem.setJx(item.getBABY_DEFORMITY().toString()); - } - buildBaby(fmitem, patInfo, dueDate, babyName); - - } - - - }else{ - //没有找到孕妇建档的基本信息 记录下来 - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH:mm:ss"); - String nowDate = format.format(new Date()); - Date date = item.getCREATED(); - if(date==null){ - saveFmrecord(item.getID(), format.parse(nowDate)); - }else { - saveFmrecord(item.getID(), format.parse(item.getCREATED().toString())); - } - } - - - - }catch (Exception e){ - ExceptionUtils.catchException(e, "数据异常"); - continue; - } + PatientsQuery query = new PatientsQuery(); + + //查询该孕妇是否在孕产婴系统中建档 + List patientses = patientsService.queryPatient(query); + Patients patient = new Patients(); + if(CollectionUtils.isNotEmpty(patientses)){ + ExceptionUtils.catchException("patientses"+patientses); + patient = patientses.get(0); + UsersQuery usersQuery = new UsersQuery(); + usersQuery.setYn(YnEnums.YES.getId()); + usersQuery.setOrgId(1000000114); + usersQuery.setName("产房"); + users = usersService.queryUsers(usersQuery); + + if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) { + + Date dateTime = allFm.getBABY_DELIVERY_TIME(); + if(dateTime!=null){ + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(allFm.getBABY_DELIVERY_TIME().toString())) { + continue; + } + }else{ + continue; + } + + Map map = new HashMap<>(); + Map totalMap = new HashMap<>(); + + Integer prod_Process_One = allFm.getPROD_PROCESS_ONE(); + Integer prod_Process_Two = allFm.getPROD_PROCESS_TWO(); + Integer prod_Process_Three = allFm.getPROD_PROCESS_THREE(); + if(prod_Process_One!=null){ + map.put("one",allFm.getPROD_PROCESS_ONE().toString()); + } + if(prod_Process_Two!=null){ + map.put("two",allFm.getPROD_PROCESS_TWO().toString()); + } + if(prod_Process_Three!=null){ + map.put("three",allFm.getPROD_PROCESS_THREE().toString()); + } + + int hProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())/60;//总产程小时数 + int mProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())%60;//总产程分钟数 + totalMap.put("h",String.valueOf(hProcess)); + totalMap.put("m",String.valueOf(mProcess)); + + deliverAddRequest.setProdprocess(map); + deliverAddRequest.setTotalprocess(totalMap); + deliverAddRequest.setDeliverDoctor(allFm.getDELIVER_DOCTOR()); + deliverAddRequest.setDueDate(DateUtil.getyyyy_MM_dd(dueDate)); + deliverAddRequest.setParentId(patient.getId()); + deliverAddRequest.setPid(patient.getPid()); + deliverAddRequest.setOperationCause("-"); + String week = ""; + if (StringUtils.isNotEmpty(allFm.getDUE_WEEK())) { + + week = allFm.getDUE_WEEK() + "周"; + if (StringUtils.isNotEmpty(allFm.getDUE_WEEK()) && StringUtils.isNotEmpty(allFm.getDUE_DAY())) + { + week += allFm.getDUE_DAY() + "天"; + } + + deliverAddRequest.setDueWeek(week); + } + + deliverAddRequest.setTireNumber(allFm.getFETUS_NUM());// 胎数(之前赋值为死值1) + Integer placenta_Num = allFm.getPLACENTA_NUM(); + if(placenta_Num!=null){ + deliverAddRequest.setPlacenta(allFm.getPLACENTA_NUM().toString());// 胎盘(之前赋值为死值1) + } + if ("完好".equals(allFm.getPERINEAL_CONDITION()) || "".equals(allFm.getPERINEAL_CONDITION())) { + deliverAddRequest.setPerinealCondition("full"); + } else if ("会阴切开".equals(allFm.getPERINEAL_CONDITION()) || "侧切".equals(allFm.getPERINEAL_CONDITION())) { + deliverAddRequest.setPerinealCondition("split"); + } + + if ("一度裂伤".equals(allFm.getPERINEAL_CONDITION())) { + deliverAddRequest.setSiLielevel(1); + } else if ("二度裂伤".equals(allFm.getPERINEAL_CONDITION())) { + deliverAddRequest.setSiLielevel(2); + } else if ("三度裂伤".equals(allFm.getPERINEAL_CONDITION())) { + deliverAddRequest.setSiLielevel(3); + } + + Integer th_Lose = allFm.getTH_LOSE_BLOOD(); + if(th_Lose!=null){ + if (StringUtils.isNotEmpty(allFm.getTH_LOSE_BLOOD().toString())) { + deliverAddRequest.settHloseBloodL(Double.parseDouble(allFm.getTH_LOSE_BLOOD().toString())); + } + } + + Map deliveryMode = new HashMap(); //分娩方式 + + String fmfs = ""; + if (allFm.getDELIVERY_MODE() != null && "剖宫产".equals(allFm.getDELIVERY_MODE())) + { + fmfs = FmTypeEnums.O1.getId(); + } + else + { + fmfs = FmTypeEnums.O.getId(); + } + deliveryMode.put("fmfs",fmfs); + deliverAddRequest.setDeliveryMode(deliveryMode); + //胎盘信息 + List extPlacentas = new ArrayList<>(); + MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); + String tpmcType = ""; //胎盘娩出方式 + if ("手术产".equals(allFm.getTMCTYPE()) || "手取胎盘".equals(allFm.getTMCTYPE())) { + tpmcType = TpmcTypeEnums.O2.getId(); + } else if ("自然产出".equals(allFm.getTMCTYPE()) || "自然娩出".equals(allFm.getTMCTYPE())) { + tpmcType = TpmcTypeEnums.O.getId(); + } + extPlacenta.setTpmcType(tpmcType); + extPlacentas.add(extPlacenta); + deliverAddRequest.setExtPlacentas(extPlacentas); + + + //儿童 + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); + Map as = new HashMap<>(); + Integer pf1 = allFm.getBABY_APGAR_SCORE_ONE(); + Integer pf5 = allFm.getBABY_APGAR_SCORE_FIVE(); + Integer pf10 = allFm.getBABY_APGAR_SCORE_TEN(); + if(pf1!=null){ + as.put("pf1", allFm.getBABY_APGAR_SCORE_ONE().toString()); + } + if(pf5!=null){ + as.put("pf5", allFm.getBABY_APGAR_SCORE_FIVE().toString()); + } + if(pf10!=null){ + as.put("pf10", allFm.getBABY_APGAR_SCORE_TEN().toString()); + } + + + baby.setApgarScore(as); + baby.setBabyGender("男".equals(allFm.getBABY_SEX()) ? "1" : "0"); + Integer babyHeight = allFm.getBABY_HEIGHT(); + Integer babyWeight = allFm.getBABY_WEIGHT(); + Integer baby_Asphyxiam = allFm.getBABY_ASPHYXIAM(); + if(babyHeight!=null){ + baby.setBabyHeight(allFm.getBABY_HEIGHT().toString());//新生儿生长 + } + if(babyWeight!=null){ + baby.setBabyWeight(allFm.getBABY_WEIGHT().toString());//新生儿重量 + } + if(baby_Asphyxiam!=null){ + baby.setAsphyxiaM(allFm.getBABY_ASPHYXIAM().toString()); //窒息分钟 + } + + baby.setDeformity((allFm.getBABY_DEFORMITY()==null?0:1)); //畸形 0非畸形 1畸形 + + String baby_Pregnancy_Out = allFm.getBABY_PREGNANCY_OUT(); + if(baby_Pregnancy_Out!=null && StringUtils.isNotEmpty(baby_Pregnancy_Out)){ + baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(allFm.getBABY_PREGNANCY_OUT())); // 妊娠结局 + } + + baby.setDueTime(fmt.format(dueDate));//分娩时间 + babies.add(baby); + + } + }else{ + + //德州服务器有分娩记录,但是在这边系统没有对应孕妇 取分娩信息建档儿童数据 + String babyName = allFm.getNAME()+("男".equals(allFm.getBABY_SEX()) ? "之子" : "之女"); + FmItem fmitem=new FmItem(); + fmitem.setCcqk(allFm.getBABY_PREGNANCY_OUT()); + fmitem.setYexb(allFm.getBABY_SEX()); + fmitem.setRc(allFm.getDUE_WEEK()); + fmitem.setFmfs(allFm.getDELIVERY_MODE()); + Integer fetus_Num = allFm.getFETUS_NUM(); + if(fetus_Num!=null){ + fmitem.setDjt(allFm.getFETUS_NUM().toString()); + } + fmitem.setCjc(""); + Integer babyHeight = allFm.getBABY_HEIGHT(); + Integer babyWeight = allFm.getBABY_WEIGHT(); + if(babyHeight!=null){ + fmitem.setSc(allFm.getBABY_HEIGHT().toString()); + } + if(babyWeight!=null){ + fmitem.setTz(allFm.getBABY_WEIGHT().toString()); + } + Integer pf1 = allFm.getBABY_APGAR_SCORE_ONE(); + Integer pf5 = allFm.getBABY_APGAR_SCORE_FIVE(); + Integer pf10 = allFm.getBABY_APGAR_SCORE_TEN(); + if(pf1!=null){ + fmitem.setYfz(allFm.getBABY_APGAR_SCORE_ONE().toString()); + } + if(pf5!=null){ + fmitem.setWfz(allFm.getBABY_APGAR_SCORE_FIVE().toString()); + } + if(pf10!=null){ + fmitem.setSfz(allFm.getBABY_APGAR_SCORE_TEN().toString()); + } + fmitem.setSfgw(""); + Integer baby_Deformity = allFm.getBABY_DEFORMITY(); + if(baby_Deformity!=null){ + fmitem.setJx(allFm.getBABY_DEFORMITY().toString()); + } + buildBaby(fmitem, patient,allFm, dueDate, babyName); } + } deliverAddRequest.setBabies(babies); @@ -540,23 +490,21 @@ public class DzfyFmService { matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users.get(0).getId()); } - } } - - - //DbUtils.closeQuietly(conn); + DbUtils.closeQuietly(conn); } catch (Exception e) { ExceptionUtils.catchException(e, "sql执行异常"); e.printStackTrace(); } finally { - //DbUtils.closeQuietly(conn); + DbUtils.closeQuietly(conn); } } + private List buildBabyName(List items) { String id = ""; if (items.size() > 2) { @@ -603,12 +551,13 @@ public class DzfyFmService { babyBookbuildingFacade.saveFmrecord(fmRecordModel); } - public void buildBaby(FmItem item,FmPatInfo patInfo, Date dueDate, String babyName) + public void buildBaby(FmItem item,Patients patInfo,Fm fm, Date dueDate, String babyName) { try{ + ExceptionUtils.catchException("buildBaby===="); - // O("活产", "0"),O1("死胎", "1"),O2("浸软胎", "2"),O3("死产", "3"); - if (!"活产".equals(item.getCcqk())) + + if ("死胎".equals(fm.getBABY_PREGNANCY_OUT())) { return; } @@ -616,54 +565,52 @@ public class DzfyFmService { UsersQuery usersQuery = new UsersQuery(); usersQuery.setYn(YnEnums.YES.getId()); usersQuery.setName("产房"); - usersQuery.setOrgId(216); + usersQuery.setOrgId(1000000114); List users = usersService.queryUsers(usersQuery); BabyBookbuildingAddRequest request = new BabyBookbuildingAddRequest(); - request.setHospitalId("216"); - - request.setMommyName(patInfo.getName()); //母亲姓名 + request.setHospitalId("1000000114"); - if (StringUtils.isNotEmpty(patInfo.getBirth())) - { + request.setMommyName(fm.getNAME()); //母亲姓名 + Date bir = patInfo.getBirth(); + if(bir!=null){ try { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); - Date birth = format.parse(patInfo.getBirth()); + Date birth = format.parse(bir.toString()); format = new SimpleDateFormat("yyyy-MM-dd"); request.setMommyBirthday(format.format(birth)); }catch (ParseException e) { ExceptionUtils.catchException(e,"孕妇生日解析异常"); } - } - if (org.apache.commons.lang.StringUtils.isNotEmpty(patInfo.getCardNo())) + + + + + if (org.apache.commons.lang.StringUtils.isNotEmpty(fm.getIDCARD())) { request.setMommyCertificateTypeId("70ae1d93-2964-46bc-83fa-bec9ff605b1c"); //证件类型 (身份证号码) - request.setMommyCertificateNum(patInfo.getCardNo()); //证件号 + request.setMommyCertificateNum(fm.getIDCARD()); //证件号 } - else if (StringUtils.isNotEmpty(patInfo.getPhone())) + else if (StringUtils.isNotEmpty(fm.getPHONE())) { request.setMommyCertificateTypeId("57e1dcd3f0f02e7ca519d6c6"); //证件类型 (手机号码) - request.setMommyCertificateNum(patInfo.getPhone()); //证件号 + request.setMommyCertificateNum(fm.getPHONE()); //证件号 } - request.setMommyPhone(patInfo.getPhone()); + request.setMommyPhone(fm.getPHONE()); request.setBabyName(babyName); request.setSex("男".equals(item.getYexb()) ? 1 : 0); request.setBabyBirthday(DateUtil.getyyyy_MM_dd(dueDate)); //生日 - if (StringUtils.isNotEmpty(item.getRc())) { - String week = ""; - if (item.getRc().split("\\u002B").length > 1) { - week = item.getRc().split("\\u002B")[0]; - } else { - week = item.getRc(); - } + if (StringUtils.isNotEmpty(fm.getDUE_WEEK())) { + String week = fm.getDUE_WEEK(); + try { request.setDueWeek(Integer.parseInt(week)); //分娩孕周 }catch (Exception e) @@ -673,7 +620,7 @@ public class DzfyFmService { } String fmfs = ""; - if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) + if (fm.getDELIVERY_MODE() != null && "剖宫产".equals(fm.getDELIVERY_MODE())) { fmfs = FmTypeEnums.O1.getId(); } @@ -683,38 +630,56 @@ public class DzfyFmService { } request.setDueType(fmfs);//分娩方式 - request.setFetusCount(item.getDjt()); //第几胎 - request.setDueCount(item.getCjc());//第几产 - DecimalFormat df = new DecimalFormat("#.00"); - double w = Double.parseDouble(item.getTz()); - request.setBabyWeight(df.format(w/1000)); //体重 - request.setBabyHeight(item.getSc()); //身长 + //request.setFetusCount(item.getDjt()); //第几胎 + //request.setDueCount(item.getCjc());//第几产 + Integer weight = fm.getBABY_WEIGHT(); + Integer height = fm.getBABY_HEIGHT(); + if(weight!=null){ + DecimalFormat df = new DecimalFormat("#.00"); + double w = Double.parseDouble(weight.toString()); + request.setBabyWeight(df.format(w/1000)); //体重 + } + if(height!=null){ + request.setBabyHeight(height.toString()); //身长 + } + Map map = new HashMap<>(); - map.put("pf1",item.getYfz()); - map.put("pf5", item.getWfz()); - map.put("pf10", item.getSfz()); + Integer pf1 = fm.getBABY_APGAR_SCORE_ONE(); + Integer pf5 = fm.getBABY_APGAR_SCORE_FIVE(); + Integer pf10 = fm.getBABY_APGAR_SCORE_TEN(); + if(pf1!=null){ + map.put("pf1", pf1.toString()); + } + if(pf5!=null){ + map.put("pf5", pf5.toString()); + } + if(pf10!=null){ + map.put("pf10", pf10.toString()); + } + request.setApgarScore(map); - request.setDeliverOrg("216"); + request.setDeliverOrg("1000000114"); request.setBuildDoctor(users.get(0).getId() + ""); request.setBuildDate(DateUtil.getyyyy_MM_dd(dueDate)); - request.setHighRisk("是".equals(item.getSfgw()) ? 1 : 0); ////是否高危 0 非高危 1高危 - request.setMalformation("无".equals(item.getJx()) ? 0 : 1); //畸形 0非畸形 1畸形 + //request.setHighRisk("是".equals(item.getSfgw()) ? 1 : 0); ////是否高危 0 非高危 1高危 + request.setMalformation((fm.getBABY_DEFORMITY() == null ? 0 : 1)); //畸形 0非畸形 1畸形 + //request.setMalformation("无".equals(item.getJx()) ? 0 : 1); //畸形 0非畸形 1畸形 request.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId()); //标准服务 request.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); //开通 - if (patInfo != null && StringUtils.isNotEmpty(patInfo.getBlh())) + if (patInfo != null && StringUtils.isNotEmpty(fm.getBHNUM())) { - Map diags = qhdfyHisService.queryHisBabyDiagnosis(patInfo.getBlh()); + Map diags = dzfyHisService.queryHisBabyDiagnosis(fm.getBHNUM()); if (diags != null && diags.size() > 0) { - request.setBlNo(patInfo.getBlh()); + request.setBlNo(fm.getBHNUM()); request.setBabyDiagnosis(diags.get("diagnosisItem") == null ? "" : diags.get("diagnosisItem").toString()); } } babyBookbuildingFacade.addBabyBookbuilding(request, users.get(0).getId()); - //deleteFmHistoryRecord(item.getSyxh()); + }catch (Exception e) { ExceptionUtils.catchException(e, "buildBaby exception"); @@ -740,13 +705,7 @@ public class DzfyFmService { if (CollectionUtils.isNotEmpty(list)) { patInfo = list.get(0); } - /*else - { - List list1 = queryRunner.query(conn, "SELECT SYXH as syxh, BRXM as name,'' as cardNo,BRXB as sex,'' as birth,LXDH as phone,ZYHM as blh FROM JHMK_BASY WHERE len(LXDH) = 11 and SYXH = '"+syxh+"'", new BeanListHandler(FmPatInfo.class)); - if (CollectionUtils.isNotEmpty(list1)) { - patInfo = list1.get(0); - } - }*/ + DbUtils.closeQuietly(conn); return patInfo; diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java index b8cfddc..6494614 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java @@ -604,10 +604,7 @@ public class DzfyHisService { // List list = queryRunner.query(conn, "select cyzdmc as diagnosisItem from ZY_BRSYK where blh= '"+blNo+"'", new BeanListHandler(DiagnosisInfo.class)); List list = queryRunner.query(conn, "select DIAGNOSE as diagnosisItem from zlhis.v_kids_hdiagnose where BHNUM = '"+blNo+"'", new BeanListHandler(DiagnosisInfo.class)); if (CollectionUtils.isNotEmpty(list)) { -// for (DiagnosisInfo info:list) { -// map.put("diagnosisItem", info.getDiagnosisItem()); -// break; -// } +// for (int i = 0 ; i < list.size() ; i++) {