From 44730b8f9d419e8eac5d631b2f5802ac7a7dd016 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 15 Apr 2020 15:58:13 +0800 Subject: [PATCH] update --- .../java/com/lyms/hospitalapi/hs/JDBCUtil.java | 15 +- .../lyms/hospitalapi/hs/SyncHsPatientService.java | 240 +++++++++++++++------ .../src/main/resources/config.properties | 4 +- 3 files changed, 191 insertions(+), 68 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/JDBCUtil.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/JDBCUtil.java index b17d5f8..76c8c87 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/JDBCUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/JDBCUtil.java @@ -1,6 +1,7 @@ package com.lyms.hospitalapi.hs; + import java.sql.*; import java.util.ArrayList; import java.util.HashMap; @@ -15,6 +16,9 @@ public class JDBCUtil { static String oracle_url = "jdbc:oracle:thin:@172.16.7.250:1521:prmi"; static String oracle_name = "LYMS_HENGSHUI_ZHENGSHI"; static String oracle_pwd = "lyms2018"; +// static String oracle_url = "jdbc:oracle:thin:@119.90.57.26:1522:orcl"; +// static String oracle_name = "LYMS_ODS"; +// static String oracle_pwd = "Welcome1"; static String mysql_url = "jdbc:mysql://127.0.0.1:3306/platform?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"; static String mysql_name = "lyms_chengdu"; @@ -79,8 +83,10 @@ public class JDBCUtil { while (rs.next()) { Map maps = new HashMap<>(); for (int i = 1; i <= count; i++) { - String columnName = rs.getMetaData().getColumnName(i); - Object obj = rs.getObject(columnName); + ResultSetMetaData resultSetMetaData = rs.getMetaData(); + String columnName = resultSetMetaData.getColumnName(i); + Integer typeId = resultSetMetaData.getColumnType(i); + Object obj = (typeId != null && Types.DATE == typeId) ? rs.getTimestamp(columnName) : rs.getObject(columnName); if (obj != null) { maps.put(columnName, obj); } else { @@ -97,6 +103,11 @@ public class JDBCUtil { return list; } +// public static void main(String[] args) { +// List> list = getOracleListDataBySql("select last_login_time from USERS t where t.id=1"); +// System.out.println(DateUtil.gety_m_dhm(HsDataUtil.getDate(list.get(0).get("LAST_LOGIN_TIME")))); +// } + public static List> getMysqlListDataBySql(String sql) { Connection conn = getMysqlConnection(); diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java index 10c29b4..da4293d 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java @@ -2,8 +2,10 @@ package com.lyms.hospitalapi.hs; import com.lyms.platform.biz.service.CommonService; +import com.lyms.platform.common.enums.RenShenJieJuEnums; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.*; +import com.lyms.platform.operate.web.request.MatDeliverAddRequest; import com.lyms.platform.pojo.*; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.InitializingBean; @@ -39,7 +41,7 @@ public class SyncHsPatientService implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { //初始化数据 - //HsDataUtil.initData(mongoTemplate); + HsDataUtil.initData(mongoTemplate); } /** @@ -51,11 +53,17 @@ public class SyncHsPatientService implements InitializingBean { int pageEnd = 5000; //查询孕妇档案 - String sql = " select * from (select ROWNUM AS rowno, temp.* from (select replace(mp.P_NO, '-', '') as PID, " + - " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp " + - " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, " + - " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc " + - " on vc.VC_PATIENTNO = mp.P_NO order by mp.P_FILINGTIME desc) temp where ROWNUM <=pageEnd) pat where pat.rowno >= pageStart and p_platpatientid='876b5f81-b495-4937-81cc-06219ed25e94'"; +// String sql = " select * from (select ROWNUM AS rowno, temp.* from (select replace(mp.P_NO, '-', '') as PID, " + +// " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp " + +// " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, " + +// " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc " + +// " on vc.VC_PATIENTNO = mp.P_NO order by mp.P_FILINGTIME desc) temp where ROWNUM <=pageEnd) pat where pat.rowno >= pageStart"; + + String sql = " select replace(mp.P_NO, '-', '') as PID, \n" + + " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp \n" + + " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, \n" + + " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc \n" + + " on vc.VC_PATIENTNO = mp.P_NO where p_platpatientid='876b5f81-b495-4937-81cc-06219ed25e94' order by mp.P_FILINGTIME desc"; do { sql = sql.replace("pageEnd",String.valueOf(pageEnd)); sql = sql.replace("pageStart",String.valueOf(pageStart)); @@ -119,69 +127,16 @@ public class SyncHsPatientService implements InitializingBean { Patients patients = new Patients(); - int type = 1; - List> chanList = null; - if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_PLATPATIENTID")))) { - chanList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_PREGDELIVERYRECORD P WHERE P.PDR_PATIENTID = '" + HsDataUtil.getString(map.get("P_PLATPATIENTID")) + "' order by p.PDR_CHILDBIRTHDAY desc "); - } - //分娩孕妇处理 - if ( CollectionUtils.isNotEmpty(chanList)) { - if (CollectionUtils.isNotEmpty(chanList)) { - System.out.println("============"+chanList.size()); - //分娩记录 - Map fmMap = chanList.get(0); - Date fmDate = HsDataUtil.getDate(fmMap.get("PDR_CHILDBIRTHDAY")); - patients.setIsAutoFm(0); - patients.setFmDate(fmDate); - type = 3; - patients.setFmAge(DateUtil.getAge(HsDataUtil.getDate(map.get("P_BIRTHDAY")), fmDate)); - patients.setFmWeek(DateUtil.getWeek(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), fmDate)); - String hname = HsDataUtil.getOraHosptalById(HsDataUtil.getString(map.get("PDR_DELIVERORGANIZATIONID"))); - String id = HsDataUtil.getMysqlHosptalByName(hname); - patients.setFmHospital(id); - if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("PDR_DELIVERYMODE")))) - { - - Map deliveryMode = new HashMap(); - if ("自然娩出".equals(HsDataUtil.getString(map.get("PDR_DELIVERYMODE")))) - { - deliveryMode.put("fmfs","0"); - deliveryMode.put("scfs","0"); - } - else if ("剖宫产".equals(HsDataUtil.getString(map.get("PDR_DELIVERYMODE")))) - { - deliveryMode.put("fmfs","1"); - deliveryMode.put("scfs",""); - } - patients.setFmType(JsonUtil.obj2Str(deliveryMode)); - } - - craeteFm(fmMap,String.valueOf(map.get("PID")),HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), id); - } - } - - PersonModel person = new PersonModel(); - mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(HsDataUtil.getString(map.get("P_CARDNO"))).and("yn").is(1)), PersonModel.class); - person.setId(String.valueOf(map.get("PID"))); - person.setType(type); - person.setYn(YnEnums.YES.getId()); - person.setBirth(HsDataUtil.getDate(map.get("P_BIRTHDAY"))); - person.setCardNo(HsDataUtil.getString(map.get("P_CARDNO"))); - person.setName(HsDataUtil.getString(map.get("P_NAME"))); - person.setPhone(HsDataUtil.getString(map.get("P_MOBILEPHONE"))); - person.setCreated(HsDataUtil.getDate(map.get("P_FILINGTIME"))); - person.setModified(HsDataUtil.getDate(map.get("P_OPERTIME"))); - mongoTemplate.save(person); Date dueDate = DateUtil.addDay(DateUtil.addMonth(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), 9), 7); patients.setDueDate(dueDate); - patients.setBuildDays(DateUtil.getDays(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")),HsDataUtil.getDate(map.get("P_FILINGTIME")))); + patients.setBuildDays(DateUtil.getDays(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), HsDataUtil.getDate(map.get("P_FILINGTIME")))); + - patients.setPid(person.getId()); patients.setId(String.valueOf(map.get("PID"))); patients.setYn(HsDataUtil.getInteger(map.get("P_ISVALID"))); //是否有效 patients.setBuildType(0); @@ -248,7 +203,7 @@ public class SyncHsPatientService implements InitializingBean { patients.setHospitalId(id); } - patients.setType(type); //患者类型 + String doctorId = HsDataUtil.getString(map.get("P_FILINGOPER")); if (doctorId != null && !"".equals(doctorId)) { @@ -485,6 +440,71 @@ public class SyncHsPatientService implements InitializingBean { createCZ(chuList,patients); } + int type = 1; + + + + + + List> chanList = null; + if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_PLATPATIENTID")))) { + chanList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_PREGDELIVERYRECORD P WHERE P.PDR_PATIENTID = '" + HsDataUtil.getString(map.get("P_PLATPATIENTID")) + "' order by p.PDR_CHILDBIRTHDAY desc "); + } + //分娩孕妇处理 + if ( CollectionUtils.isNotEmpty(chanList)) { + if (CollectionUtils.isNotEmpty(chanList)) { + System.out.println("============"+chanList.size()); + //分娩记录 + Map fmMap = chanList.get(0); + Date fmDate = HsDataUtil.getDate(fmMap.get("PDR_CHILDBIRTHDAY")); + patients.setIsAutoFm(0); + patients.setFmDate(fmDate); + type = 3; + patients.setType(type); //患者类型 + patients.setFmAge(DateUtil.getAge(HsDataUtil.getDate(map.get("P_BIRTHDAY")), fmDate)); + patients.setFmWeek(DateUtil.getDays(HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), fmDate)); + + String hname = HsDataUtil.getOraHosptalById(HsDataUtil.getString(fmMap.get("PDR_DELIVERORGANIZATIONID"))); + String id = HsDataUtil.getMysqlHosptalByName(hname); + patients.setFmHospital(id); + if (StringUtils.isNotEmpty(HsDataUtil.getString(fmMap.get("PDR_DELIVERYMODE")))) + { + + Map deliveryMode = new HashMap(); + if ("自然娩出".equals(HsDataUtil.getString(fmMap.get("PDR_DELIVERYMODE")))) + { + deliveryMode.put("fmfs","0"); + deliveryMode.put("scfs","0"); + } + else if ("剖宫产".equals(HsDataUtil.getString(fmMap.get("PDR_DELIVERYMODE")))) + { + deliveryMode.put("fmfs","1"); + deliveryMode.put("scfs",""); + } + patients.setFmType(JsonUtil.obj2Str(deliveryMode)); + } + + craeteFm(fmMap,String.valueOf(map.get("PID")),HsDataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), id, patients); + } + } + + patients.setType(type); //患者类型 + + + PersonModel person = new PersonModel(); + mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(HsDataUtil.getString(map.get("P_CARDNO"))).and("yn").is(1)), PersonModel.class); + person.setId(String.valueOf(map.get("PID"))); + person.setType(type); + + person.setYn(YnEnums.YES.getId()); + person.setBirth(HsDataUtil.getDate(map.get("P_BIRTHDAY"))); + person.setCardNo(HsDataUtil.getString(map.get("P_CARDNO"))); + person.setName(HsDataUtil.getString(map.get("P_NAME"))); + person.setPhone(HsDataUtil.getString(map.get("P_MOBILEPHONE"))); + person.setCreated(HsDataUtil.getDate(map.get("P_FILINGTIME"))); + person.setModified(HsDataUtil.getDate(map.get("P_OPERTIME"))); + mongoTemplate.save(person); + patients.setPid(person.getId()); mongoTemplate.save(patients); count.getAndIncrement(); @@ -642,7 +662,7 @@ public class SyncHsPatientService implements InitializingBean { * @param last * @param fmHospitalId */ - private void craeteFm(Map fmMap,String patientId,Date last,String fmHospitalId) { + private void craeteFm(Map fmMap,String patientId,Date last,String fmHospitalId,Patients patients) { try { MaternalDeliverModel deliverModel = new MaternalDeliverModel(); @@ -729,12 +749,104 @@ public class SyncHsPatientService implements InitializingBean { } deliverModel.setBaby(babies); mongoTemplate.save(deliverModel); - System.out.println("创建分娩完成"+deliverModel.getId()); + System.out.println("创建分娩完成" + deliverModel.getId()); + + createBaby(babies,patients); + }catch (Exception e) { System.out.println(e.getMessage()); } } + private void createBaby(List list,Patients patients) { + + for (MaternalDeliverModel.Baby baby : list) { + //填充小孩基本信息 + BabyModel babyModel = new BabyModel(); + if (null != patients) { + babyModel.setId(baby.getId()); + babyModel.setAreaId(patients.getAreaId()); + babyModel.setProvinceId(patients.getProvinceId()); + babyModel.setCityId(patients.getCityId()); + babyModel.setStreetId(patients.getStreetId()); + babyModel.setAddress(patients.getAddress()); + //母亲信息 + babyModel.setMname(patients.getUsername()); + babyModel.setMjob(patients.getPworkUnit()); + babyModel.setMphone(patients.getPhone()); + babyModel.setMbirth(patients.getBirth()); + babyModel.setMcertNo(patients.getCardNo()); + babyModel.setMcertTypeId(patients.getPcerteTypeId()); + //父亲信息 + babyModel.setFjob(patients.getHworkUnit()); + babyModel.setFname(patients.getHusbandName()); + babyModel.setFphone(patients.getHusbandPhone()); + babyModel.setFproTypeId(patients.getHprofessionTypeId()); + babyModel.setfLevelId(patients.getHlevelTypeId()); + babyModel.setFcertNo(patients.getHcertificateNum()); + babyModel.setFcertTypeId(patients.getPcerteTypeId()); + babyModel.setDueDate(patients.getDueDate()); + babyModel.setDueType(patients.getDueType()); + babyModel.setBuildDoctor("a9e5507f-e7da-4ec6-b8db-9a1e4d1b7c29"); + babyModel.setCreated(new Date()); + babyModel.setModified(new Date()); + if (null != patients.getDueDate()) { + int day = DateUtil.getDays(patients.getLastMenses(), patients.getDueDate()); + babyModel.setDueWeek(day / 7); + int dueDay = day % 7; + babyModel.setDueDay(dueDay == 0 ? null : dueDay); + } + } + // 产妇分娩建档 + babyModel.setBuildType(2); + + + PersonModel personModel = new PersonModel(); + personModel.setType(2); + personModel.setBirth(DateUtil.parseYMD(baby.getDueTime())); + personModel.setModified(new Date()); + personModel.setPhone(babyModel.getMphone()); + personModel.setCardNo(babyModel.getMcertNo()); + personModel.setName(babyModel.getName()); + personModel.setCreated(new Date()); + + + //判断妊娠结局是活产才添加数据 + if ((RenShenJieJuEnums.O.getId() + "").equals(baby.getPregnancyOut())) { + //改成这种是因为需求要求 分娩自动流转儿童信息,建档时间为空,医生确认建档 + babyModel.setYn(YnEnums.NO.getId()); + babyModel.setDataStatus(1); + //add lqy start 2017-03-01 + babyModel.setBlNo(baby.getBlNo()); + babyModel.setBabyDiagnosis(baby.getBabyDiagnosis()); + personModel.setYn(YnEnums.YES.getId()); + } else { + personModel.setYn(YnEnums.NO.getId()); + } + mongoTemplate.save(personModel); + + babyModel.setPid(personModel.getId()); + babyModel.setName(patients.getUsername() + ("1".equals(baby.getBabyGender()) ? "之子" : "之女")); + babyModel.setBabyHealthy(baby.getBabyHealthy()); + babyModel.setBabyWeight(com.lyms.platform.common.utils.StringUtils.cutBabyWeight(baby.getBabyWeight())); + babyModel.setBabyHeight(baby.getBabyHeight()); + babyModel.setMalformation(baby.getDeformity()); + babyModel.setPregnancyOut(baby.getPregnancyOut()); + + babyModel.setContactM(baby.getContactM()); + babyModel.setContactStartM(baby.getContactStartM()); + babyModel.setEarlySuck(baby.getEarlySuck()); + babyModel.setParentId(patients.getId()); + babyModel.setBuildDate(patients.getFmDate()); + babyModel.setHospitalId(patients.getFmHospital()); + + mongoTemplate.save(babyModel); + + + } + + } + } diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index 551dfc2..61bc096 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -5,8 +5,8 @@ center_base_url=https://push.stage.platform.healthbaby.com.cn #区域平台访问短信中心的token center_token=e0c56363-00d6-42ee-bbe0-23c553583062 -#His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院,4:秦皇岛妇幼,5:抚宁妇幼, 6: 德州妇幼,7:南充中心医院 -his_version=21 +#His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院,4:秦皇岛妇幼,5:抚宁妇幼, 6: 德州妇幼,7:南充中心医院 30 衡水 +his_version=30 xt_version= -- 1.8.3.1