diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java index 1a71459..a930a11 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java @@ -199,6 +199,13 @@ public class MaternalDeliverModel extends BaseModel { //分娩时间 private String dueTime; + + //儿童诊断 + private String babyDiagnosis; + + //病历号(住院号) + private String blNo; + public Baby(){ } @@ -230,6 +237,22 @@ public class MaternalDeliverModel extends BaseModel { // setDueTime(babyModel.get); } + public String getBabyDiagnosis() { + return babyDiagnosis; + } + + public void setBabyDiagnosis(String babyDiagnosis) { + this.babyDiagnosis = babyDiagnosis; + } + + public String getBlNo() { + return blNo; + } + + public void setBlNo(String blNo) { + this.blNo = blNo; + } + public String getApgarScore() { return apgarScore; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index 9ec336f..2fc38ec 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -211,6 +211,15 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private String queryNo; private String phoneOrCert; + private String[] pc; + + public String[] getPc() { + return pc; + } + + public void setPc(String[] pc) { + this.pc = pc; + } public String getPhoneOrCert() { return phoneOrCert; @@ -1018,6 +1027,18 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } } + + if (null != pc) { + MongoCondition c = MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("phone", pc[0], MongoOper.IS); + MongoCondition con2 = MongoCondition.newInstance("cardNo", pc[1], MongoOper.IS); + if(c1!=null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2}).getCriteria()); + }else { + c1 = c.orCondition(new MongoCondition[]{con1, con2}).getCriteria(); + } + } + if (CollectionUtils.isNotEmpty(fmHospitalQueryList)) { MongoCondition c = MongoCondition.newInstance(); MongoCondition con1 = MongoCondition.newInstance("hospitalId", fmHospitalQueryList, MongoOper.IN); diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/FmPatInfo.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/FmPatInfo.java index ed5aabf..3e4789a 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/FmPatInfo.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/FmPatInfo.java @@ -12,6 +12,15 @@ public class FmPatInfo { private String sex; private String birth; private String phone; + private String blh; + + public String getBlh() { + return blh; + } + + public void setBlh(String blh) { + this.blh = blh; + } public String getSyxh() { return syxh; diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java index 5bd9589..ba34be3 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java @@ -47,6 +47,9 @@ public class QhdfyFmService { @Autowired private BabyBookbuildingFacade babyBookbuildingFacade; + @Autowired + private QhdfyHisService qhdfyHisService; + public void fmTimerWork() { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date end = new Date(); @@ -139,14 +142,17 @@ public class QhdfyFmService { } Date dueDate = fmt.parse(dueDateStr); FmPatInfo patInfo = getFmPatInfoById(item.getSyxh()); - if (patInfo != null && (StringUtils.isNotEmpty(patInfo.getPhone()) || StringUtils.isNotEmpty(patInfo.getCardNo())) ) { + if (patInfo != null && StringUtils.isNotEmpty(patInfo.getPhone())) { PatientsQuery query = new PatientsQuery(); query.setYn(YnEnums.YES.getId()); query.setType(1); //孕妇 query.setDueStatus(0); //未终止妊娠 - query.setPhoneOrCert(StringUtils.isNotEmpty(patInfo.getPhone()) ? patInfo.getPhone() : patInfo.getCardNo()); + 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.getJsz()); @@ -167,6 +173,7 @@ public class QhdfyFmService { deliverAddRequest.setDueDate(DateUtil.getyyyy_MM_dd(dueDate)); deliverAddRequest.setParentId(patient.getId()); deliverAddRequest.setPid(patient.getPid()); + deliverAddRequest.setOperationCause("-"); String week = ""; if (StringUtils.isNotEmpty(item.getRc())) { @@ -180,12 +187,12 @@ public class QhdfyFmService { deliverAddRequest.setDueWeek(week); } - deliverAddRequest.setTireNumber(1);//TODO 胎数 - deliverAddRequest.setPlacenta("1");//TODO 胎盘 + deliverAddRequest.setTireNumber(1);// 胎数 + deliverAddRequest.setPlacenta("1");// 胎盘 - if ("完好".equals(item.getHyqk())) { + if ("完好".equals(item.getHyqk()) || "无".equals(item.getHyqk())) { deliverAddRequest.setPerinealCondition("full"); - } else if ("会阴切开".equals(item.getHyqk())) { + } else if ("会阴切开".equals(item.getHyqk()) || "侧切".equals(item.getHyqk())) { deliverAddRequest.setPerinealCondition("split"); } @@ -201,36 +208,51 @@ public class QhdfyFmService { deliverAddRequest.settHloseBloodL(Double.parseDouble(item.getChexxsxl())); } + Map deliveryMode = new HashMap(); //分娩方式 + + String fmfs = ""; + if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) + { + fmfs = FmTypeEnums.O1.getId(); + } + else + { + fmfs = FmTypeEnums.O.getId(); + } + deliveryMode.put("fmfs",fmfs); + deliveryMode.put("scfs", ""); + deliverAddRequest.setDeliveryMode(deliveryMode); //胎盘信息 List extPlacentas = new ArrayList<>(); MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); - extPlacenta.setMcType(FmTypeEnums.getIdByName(item.getFmfs())); //分娩方式 - String tpmcType = ""; - if ("手术产".equals(item.getTpmcfs())) { + String tpmcType = ""; //胎盘娩出方式 + if ("手术产".equals(item.getTpmcfs()) || "手取胎盘".equals(item.getTpmcfs())) { tpmcType = TpmcTypeEnums.O2.getId(); - } else if ("自然产出".equals(item.getTpmcfs())) { + } else if ("自然产出".equals(item.getTpmcfs()) || "自然娩出".equals(item.getTpmcfs())) { tpmcType = TpmcTypeEnums.O.getId(); } extPlacenta.setTpmcType(tpmcType); extPlacentas.add(extPlacenta); + deliverAddRequest.setExtPlacentas(extPlacentas); + //儿童 - List babies = new ArrayList<>(); - MaternalDeliverModel.Baby baby = new MaternalDeliverModel.Baby(); + List babies = new ArrayList<>(); + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); Map as = new HashMap<>(); as.put("pf1", item.getYfz()); as.put("pf5", item.getWfz()); as.put("pf10", item.getSfz()); - baby.setApgarScore(JsonUtil.obj2JsonString(as)); + baby.setApgarScore(as); baby.setBabyGender("男".equals(item.getYexb()) ? "1" : "0"); baby.setBabyHeight(item.getSc());//新生儿生长 baby.setBabyWeight(item.getTz());//新生儿重量 baby.setDeformity("无".equals(item.getJx()) ? 0 : 1); //畸形 0非畸形 1畸形 baby.setAsphyxiaM(item.getZx()); //窒息分钟 baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(item.getCcqk())); // 妊娠结局 - //baby.setBabyHealthy(item.getYeqk()); //新生儿疾病 baby.setDueTime(fmt1.format(dueDate));//分娩时间 babies.add(baby); + deliverAddRequest.setBabies(babies); deliverAddRequest.setFmHospital("216"); //设置为秦皇岛分娩医院 ExceptionUtils.catchException("deliverAddRequest===" + deliverAddRequest); matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users.get(0).getId()); @@ -244,7 +266,6 @@ public class QhdfyFmService { } else { - //没有找到孕妇建档的基本信息 记录下来 saveFmrecord(item.getSyxh()); } @@ -257,7 +278,7 @@ public class QhdfyFmService { } } - String sql1="select * from JHMK_FMJL where JSZ is not null and SC is not null and TZ is not null and YFZ is not null and CCQK is not null and CCQK <> '' " + + String sql1="select "+cloumns+" from JHMK_FMJL where JSZ is not null and SC is not null and TZ is not null and YFZ is not null and CCQK is not null and CCQK <> '' " + " and SH is not null and (SFFZRSTDT = ' 是 ' or SFSTDT = ' 是 ') and " + " CONVERT(DATETIME,left(SSRQ,8)+' '+RIGHT(SSRQ,8),20) > CONVERT(DATETIME,'"+start+"', 120) and CONVERT(DATETIME,left(SSRQ,8)+' '+RIGHT(SSRQ,8),20) <= CONVERT(DATETIME,'"+end+"', 120)"; @@ -308,13 +329,14 @@ public class QhdfyFmService { } Date dueDate = fmt.parse(dueDateStr); FmPatInfo patInfo = getFmPatInfoById(item.getSyxh()); - if (patInfo != null && (StringUtils.isNotEmpty(patInfo.getPhone()) || StringUtils.isNotEmpty(patInfo.getCardNo()))) + if (patInfo != null && StringUtils.isNotEmpty(patInfo.getPhone())) { PatientsQuery query = new PatientsQuery(); query.setYn(YnEnums.YES.getId()); query.setType(1); //孕妇 query.setDueStatus(0); //未终止妊娠 - query.setPhoneOrCert(StringUtils.isNotEmpty(patInfo.getPhone()) ? patInfo.getPhone() : patInfo.getCardNo()); + String[] strs = new String[]{patInfo.getPhone(),patInfo.getCardNo()}; + query.setPc(strs); List patientses = patientsService.queryPatient(query); if (CollectionUtils.isNotEmpty(patientses)) { @@ -342,6 +364,7 @@ public class QhdfyFmService { deliverAddRequest.setDueDate(DateUtil.getyyyy_MM_dd(dueDate)); deliverAddRequest.setParentId(patient.getId()); deliverAddRequest.setPid(patient.getPid()); + deliverAddRequest.setOperationCause("-"); if (StringUtils.isNotEmpty(item.getRc())) { String week = ""; @@ -358,8 +381,11 @@ public class QhdfyFmService { deliverAddRequest.setDueWeek(week); } +// deliverAddRequest.setTireNumber(items.size()); +// deliverAddRequest.setPlacenta(items.size()+""); + deliverAddRequest.setTireNumber(items.size()); - deliverAddRequest.setPlacenta(items.size()+""); + deliverAddRequest.setPlacenta("1"); if ("完好".equals(item.getHyqk())) { @@ -390,8 +416,8 @@ public class QhdfyFmService { //胎盘信息 List extPlacentas = new ArrayList<>(); - //儿童 - List babies = new ArrayList<>(); + List babies = new ArrayList<>(); + for (FmItem item1 : items) { @@ -403,26 +429,40 @@ public class QhdfyFmService { } Date dueDate1 = fmt.parse(dueDateStr1); - MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); - extPlacenta.setMcType(FmTypeEnums.getIdByName(item1.getFmfs())); //分娩方式 - String tpmcType = ""; - if ("手术产".equals(item1.getTpmcfs())) + + + Map deliveryMode = new HashMap(); //分娩方式 + + String fmfs = ""; + if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) { - tpmcType = TpmcTypeEnums.O2.getId(); + fmfs = FmTypeEnums.O1.getId(); } - else if ("自然产出".equals(item1.getTpmcfs())) + else { + fmfs = FmTypeEnums.O.getId(); + } + deliveryMode.put("fmfs",fmfs); + deliveryMode.put("scfs", ""); + deliverAddRequest.setDeliveryMode(deliveryMode); + + MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); + String tpmcType = ""; + if ("手术产".equals(item.getTpmcfs()) || "手取胎盘".equals(item.getTpmcfs())) { + tpmcType = TpmcTypeEnums.O2.getId(); + } else if ("自然产出".equals(item.getTpmcfs()) || "自然娩出".equals(item.getTpmcfs())) { tpmcType = TpmcTypeEnums.O.getId(); } extPlacenta.setTpmcType(tpmcType); extPlacentas.add(extPlacenta); + deliverAddRequest.setExtPlacentas(extPlacentas); - MaternalDeliverModel.Baby baby = new MaternalDeliverModel.Baby(); + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); Map as = new HashMap<>(); as.put("pf1",item1.getYfz()); as.put("pf5",item1.getWfz()); as.put("pf10", item1.getSfz()); - baby.setApgarScore(JsonUtil.obj2JsonString(as)); + baby.setApgarScore(as); baby.setBabyGender("男".equals(item1.getYexb()) ? "1" : "0"); baby.setBabyHeight(item1.getSc());//新生儿生长 baby.setBabyWeight(item1.getTz());//新生儿重量 @@ -436,6 +476,7 @@ public class QhdfyFmService { babies.add(baby); } + deliverAddRequest.setBabies(babies); deliverAddRequest.setFmHospital("216"); ExceptionUtils.catchException("double deliverAddRequest===" + deliverAddRequest); matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users.get(0).getId()); @@ -493,6 +534,7 @@ public class QhdfyFmService { public void buildBaby(FmItem item,FmPatInfo patInfo, Date dueDate) { try{ + ExceptionUtils.catchException("buildBaby===="); // O("活产", "0"),O1("死胎", "1"),O2("浸软胎", "2"),O3("死产", "3"); if (!"活产".equals(item.getCcqk())) { @@ -557,14 +599,17 @@ public class QhdfyFmService { } } - String tpmcType = ""; - if ("手术产".equals(item.getTpmcfs())) { - tpmcType = FmTypeEnums.O1.getId(); - } else if ("自然产出".equals(item.getTpmcfs())) { - tpmcType = FmTypeEnums.O.getId(); + String fmfs = ""; + if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) + { + fmfs = FmTypeEnums.O1.getId(); + } + else + { + fmfs = FmTypeEnums.O.getId(); } - request.setDueType(tpmcType);//分娩方式 + request.setDueType(fmfs);//分娩方式 request.setFetusCount(item.getDjt()); //第几胎 request.setDueCount(item.getCjc());//第几产 DecimalFormat df = new DecimalFormat("#.00"); @@ -580,13 +625,24 @@ public class QhdfyFmService { request.setBuildDoctor(users.get(0).getId() + ""); request.setBuildDate(DateUtil.getyyyy_MM_dd(dueDate)); - request.setHighRisk("是".equals(item.getSfgw()) ? 1 : 0); + request.setHighRisk("是".equals(item.getSfgw()) ? 1 : 0); ////是否高危 0 非高危 1高危 request.setMalformation("无".equals(item.getJx()) ? 0 : 1); //畸形 0非畸形 1畸形 request.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId()); //标准服务 request.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); //开通 babyBookbuildingFacade.addBabyBookbuilding(request, users.get(0).getId()); + + if (patInfo != null && StringUtils.isNotEmpty(patInfo.getBlh())) + { + Map diags = qhdfyHisService.queryHisBabyDiagnosis(patInfo.getBlh()); + if (diags != null && diags.size() > 0) + { + request.setBlNo(patInfo.getBlh()); + request.setBabyDiagnosis(diags.get("diagnosisItem") == null ? "" : diags.get("diagnosisItem").toString()); + } + } + }catch (Exception e) { ExceptionUtils.catchException(e, "buildBaby exception"); @@ -607,19 +663,22 @@ public class QhdfyFmService { Connection conn = ConnTools.makeFmConnection(); QueryRunner queryRunner = new QueryRunner(); try { + FmPatInfo patInfo = null; - List list = queryRunner.query(conn, "SELECT syxh,hzxm as name,sfzh as cardNo,sex as sex,birth,lxrdh as phone FROM THIS4_BASY WHERE lxrdh <> '' and hzxm is not null and hzxm <> '' and len(lxrdh) = 11 and syxh = '"+syxh+"'", new BeanListHandler(FmPatInfo.class)); + List list = queryRunner.query(conn, "SELECT syxh,hzxm as name,sfzh as cardNo,sex as sex,birth,lxrdh as phone, blh FROM THIS4_BASY WHERE lxrdh <> '' and hzxm is not null and hzxm <> '' and len(lxrdh) = 11 and syxh = '"+syxh+"'", new BeanListHandler(FmPatInfo.class)); if (CollectionUtils.isNotEmpty(list)) { - return list.get(0); + 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 FROM JHMK_BASY WHERE len(LXDH) = 11 and SYXH = '"+syxh+"'", new BeanListHandler(FmPatInfo.class)); + 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)) { - return list1.get(0); + patInfo = list1.get(0); } } DbUtils.closeQuietly(conn); + return patInfo; + } catch (SQLException e) { DbUtils.closeQuietly(conn); e.printStackTrace(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 0755d47..8c1625d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -593,6 +593,9 @@ public class MatDeliverFacade { personModel.setName(babyModel.getName()); personModel.setCreated(new Date()); babyModel.setPid(personService.addPerson(personModel).getId()); + //add lqy start 2017-03-01 + babyModel.setBlNo(baby.getBlNo()); + babyModel.setBabyDiagnosis(baby.getBabyDiagnosis()); } babyIds.add(babyService.addOneBaby(babyModel).getId()); baby1.setId(babyModel.getId()); @@ -601,6 +604,8 @@ public class MatDeliverFacade { //儿童建档 babyBookbuildingFacade.createBuildSms(babyModel); } + + i++; } maternalDeliverModel.setBaby(babyList); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverAddRequest.java index e975188..6e9df6d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverAddRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverAddRequest.java @@ -470,6 +470,12 @@ public class MatDeliverAddRequest implements IBasicRequestConvert