diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java index 06b184f..05e2e3a 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java @@ -1,9 +1,12 @@ package com.lyms.platform.biz; import com.lyms.platform.common.enums.*; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.common.utils.SystemConfig; import com.lyms.platform.pojo.*; +import org.apache.commons.collections.CollectionUtils; import org.apache.velocity.anakia.Escape; import org.bson.types.ObjectId; import org.springframework.context.ApplicationContext; @@ -169,38 +172,86 @@ public class JdbcUtil { public static void syncPatientData(String hospitalId) { List> list = getListDataBySql(" SELECT * FROM ( SELECT A.*, ROWNUM RN FROM " + - "(select replace(mp.P_NO,'-','') as PID,mp.*,p_birthday from MOMMY_PATIENT mp left join Plat_Patient pp" + - " on mp.p_platpatientid=pp.p_id where mp.p_hospitalid = '"+hospitalId+"') A WHERE ROWNUM <= 10 ) WHERE RN >= 0 "); + "(select replace(mp.P_NO,'-','') as PID,mp.*,p_birthday,p_name,floor((trunc(sysdate) - trunc(mp.P_LASTMENSTRUALPERIOD)+1) /7) as weeks from MOMMY_PATIENT mp left join Plat_Patient pp" + + " on mp.p_platpatientid=pp.p_id where mp.p_hospitalid = '"+hospitalId+"') A WHERE ROWNUM <= 30 and weeks < 42) WHERE RN >= 0 "); MongoTemplate mongoTemplate = getMongoTemplate(); for(Map map : list) { + Patients patients = new Patients(); PersonModel person = new PersonModel(); + + + int type = 1; + Integer weeks = getInteger(map.get("WEEKS")); + List> chanList = null; + if (StringUtils.isNotEmpty(getString(map.get("P_ID")))) + { + chanList = getListDataBySql("select * from MOMMY_PREGDELIVERYRECORD p where p.pdr_patientid = '"+getString(map.get("p_id"))+"' order by p.PDR_CHILDBIRTHDAY desc "); + } + if (weeks >= 42 || CollectionUtils.isNotEmpty(chanList)) + { + Date fmDate = null; + if (CollectionUtils.isNotEmpty(chanList)) + { + fmDate = getDate(chanList.get(0).get("PDR_CHILDBIRTHDAY")); + } + else + { + fmDate = DateUtil.addDay(getDate(map.get("P_LASTMENSTRUALPERIOD")),42*7); + } + patients.setFmDate(fmDate); + + type = 3; + } + + patients.setDueDate(DateUtil.addDay(getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7)); person.setCreated(new Date()); - person.setType(getInteger(map.get("P_PATIENTTYPE"))); + + + person.setType(type); person.setYn(YnEnums.YES.getId()); - person.setBirth(map.get("P_BIRTHDAY") == null ? new Date() : getDate(map.get("P_BIRTHDAY"))); + person.setBirth(getDate(map.get("P_BIRTHDAY"))); person.setCardNo(getString(map.get("P_CARDNO"))); - person.setName(getString(map.get("P_MOTHERNAME"))); + person.setName(getString(map.get("P_NAME"))); person.setPhone(getString(map.get("P_MOBILEPHONE"))); - + person.setCreated(getDate(map.get("P_FILINGTIME"))); + person.setModified(getDate(map.get("P_OPERTIME"))); mongoTemplate.save(person); - Patients patients = new Patients(); + patients.setPid(person.getId()); patients.setId(String.valueOf(map.get("PID"))); patients.setYn(getInteger(map.get("P_ISVALID"))); //是否有效 + patients.setBuildType(0); + patients.setBirth(getDate(map.get("P_BIRTHDAY"))); + patients.setCreated(getDate(map.get("P_FILINGTIME"))); + patients.setModified(getDate(map.get("P_OPERTIME"))); + patients.setDueStatus(0); + + + - String cardType = getString(map.get("P_CARDTYPE")); //证件类型 - String cardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + cardType + "'")); - if (cardTypeName != null && !"".equals(cardTypeName)) + + if (StringUtils.isNotEmpty(getString(map.get("P_CARDNO")))) + { + String cardType = getString(map.get("P_CARDTYPE")); //证件类型 + String cardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + cardType + "'")); + if (cardTypeName != null && !"".equals(cardTypeName)) + { + String id = getMongoBasicConfig(cardTypeName, SystemConfig.CERTE_TYPE_ID); + patients.setPcerteTypeId(id); + } + + patients.setCardNo(getString(map.get("P_CARDNO"))); //证件号码 + } + else { - String id = getMongoBasicConfig(cardTypeName, SystemConfig.CERTE_TYPE_ID); - patients.setPcerteTypeId(id); + patients.setCardNo(getString(map.get("P_MOBILEPHONE"))); //证件号码 + patients.setPcerteTypeId("57e0a21c0cf209b410a82cda"); } - patients.setCardNo(getString(map.get("P_CARDNO"))); //证件号码 //---------------------居住地址 String proviceId = getString(map.get("P_ADDRESSPROVINCE")); @@ -247,7 +298,7 @@ public class JdbcUtil { } patients.setPhone(getString(map.get("P_MOBILEPHONE"))); //孕妇手机号码 - patients.setUsername(getString(map.get("P_MOTHERNAME"))); //孕妇姓名 + patients.setUsername(getString(map.get("P_NAME"))); //孕妇姓名 patients.setBookbuildingDate(getDate(map.get("P_FILINGTIME"))); //建档日期 patients.setLastMenses(getDate(map.get("P_LASTMENSTRUALPERIOD"))); //末次月经 @@ -282,14 +333,14 @@ public class JdbcUtil { patients.setHospitalId(id); } - patients.setType(getInteger(map.get("P_PATIENTTYPE"))); //患者类型 + patients.setType(type); //患者类型 - String doctorId = getString(map.get("P_DOCID")); + String doctorId = getString(map.get("P_FILINGOPER")); if (doctorId != null && !"".equals(doctorId)) { String hname = getString(getOralceSingleObjBySql("select e.e_name from mommy_employee e where e.e_id = '" + doctorId + "'")); String id = getString(getMysqlSingleObjBySql("select id from users where name = '" + hname + "'")); - patients.setBookbuildingDoctor(id); //建档医生 + patients.setBookbuildingDoctor(id); //建档医生(创建者) } Integer isvip = getInteger(map.get("P_ISVIP")); //vip @@ -562,6 +613,8 @@ public class JdbcUtil { chuModel.setUterus(getString(map.get("FE_UTERUS"))); chuModel.setFujian(getString(map.get("FE_ATTACHMENT"))); chuModel.setCreated(getDate(map.get("FE_CREATETIME"))); + chuModel.setNextCheckTime(getDate(map.get("FE_ORDERNEXT"))); + chuModel.setCheckTime(getDate(map.get("FE_ROCTORTIME"))); String hid = getString(map.get("FE_HOSPITALID")); if (hid != null && !"".equals(hid)) @@ -718,9 +771,17 @@ public class JdbcUtil { antxModel.setUrineProtein(getString(map.get("URINEPROTEIN"))); antxModel.setbChao(getString(map.get("BCHAO"))); antxModel.setBloodSugar(getString(map.get("BLOODSUGAR"))); - antxModel.setRiskFactor(getString(map.get("RISKFACTOR"))); + if (StringUtils.isNotEmpty(getString(map.get("RISKFACTOR")))) + { + antxModel.setRiskFactor(getString(map.get("RISKFACTOR"))); + } + else + { + antxModel.setRiskFactor("[]"); + } + antxModel.setRiskScore(getString(map.get("RISKSCORE"))); - antxModel.setOtherRisk(getString(map.get(""))); + antxModel.setOtherRisk("{}"); antxModel.setDiagnosis(getString(map.get(""))); antxModel.setType(getString(map.get(""))); antxModel.setTypeYc(getString(map.get(""))); @@ -739,7 +800,14 @@ public class JdbcUtil { antxModel.setYn(getInteger(map.get("YN"))); antxModel.setCreated(getDate(map.get("CREATED"))); antxModel.setModified(getDate(map.get("MODIFIED"))); - antxModel.setHospitalId(getString(map.get("HOSPITALID"))); + + String hid = getString(map.get("HOSPITALID")); + if (hid != null && !"".equals(hid)) + { + String hname = getString(getOralceSingleObjBySql("select h_name from plat_hospital h where h.h_isvalid=1 and h_id = '" + hid + "'")); + String id = getString(getMysqlSingleObjBySql("select id from organization where name = '" + hname + "'")); + antxModel.setHospitalId(id); + } antxModel.setcDueWeek(getString(map.get("CDUEWEEK"))); @@ -778,7 +846,7 @@ public class JdbcUtil { model.setAddress(getString(map.get("PI_ADDRESS"))); model.setFname(getString(map.get("PI_FATHERNAME"))); - model.setFphone(getString(map.get("PI_FATHERPROFESSION"))); + model.setFphone(getString(map.get("PI_FATHERPHONE"))); model.setFbirth(getDate(map.get(""))); @@ -843,16 +911,21 @@ public class JdbcUtil { Integer yn = getInteger(map.get("PI_ISDELETE")); model.setYn(yn); - model.setDueType(getString(map.get(""))); - model.setFetusCount(getString(map.get(""))); - model.setDueCount(getString(map.get(""))); + String dueTypeId = getString(map.get("PI_FENMIAN")); + if (dueTypeId != null && !"".equals(dueTypeId)) + { + String name = getString(getOralceSingleObjBySql("select pd.dc_name from Plat_Datacontent pd where pd.dc_id='"+dueTypeId+"'")); + model.setDueType(FmTypeEnums.getIdByName(name)); + } + + model.setFetusCount(getString(map.get("PI_FOETUSCOUNT"))); + model.setDueCount(getString(map.get("PI_BIRTHCOUNT"))); model.setBabyWeight(getString(map.get("PI_WEIGHT"))); model.setBabyHeight(getString(map.get("PI_HEIGHT"))); model.setBabyHead(getString(map.get("PI_HEADSIZE"))); - model.setMalformation(getInteger(map.get(""))); - + model.setMalformation(getInteger(map.get("PI_BIRTHDEFORMED"))); - String doctorId = getString(map.get("PI_DOCTORID")); + String doctorId = getString(map.get("PI_CREATEOPER")); if (doctorId != null && !"".equals(doctorId)) { String hname = getString(getOralceSingleObjBySql("select e.e_name from mommy_employee e where e.e_id = '" + doctorId + "'")); String id = getString(getMysqlSingleObjBySql("select id from users where name = '" + hname + "'")); @@ -906,9 +979,18 @@ public class JdbcUtil { } model.setVcCardNo(getString(map.get("PI_CARDNO"))); - model.setApgarScore(getString(map.get(""))); +// String apgar = getString(map.get("PI_APGAR")); +// if (StringUtils.isNotEmpty(apgar)) +// { +// String[] apgars = apgar.split("-"); +// if (apgars) +// { +// +// } +// } +// model.setApgarScore(); model.setAsphyxiaM(getString(map.get(""))); - model.setPregnancyOut(getString(map.get("PI_BIRTHASPHYXIA"))); + model.setPregnancyOut(getString(map.get(""))); model.setBabyHealthy(getString(map.get(""))); model.setContactStartM(getString(map.get(""))); model.setContactM(getString(map.get(""))); @@ -937,9 +1019,9 @@ public class JdbcUtil { { BabyCheckModel checkModel = new BabyCheckModel(); - checkModel.setId(getString(map.get("CER_ID"))); + checkModel.setId(getString(map.get("CER_ID")).replace("-","")); checkModel.setYn(YnEnums.YES.getId()); - checkModel.setBuildId(getString(map.get("CER_PATIENTID"))); + checkModel.setBuildId(parentId); checkModel.setCheckDate(getDate(map.get("CER_EXAMINDATE"))); String hname = getString(map.get("CER_EXAMINHOSPITAL")); @@ -1016,7 +1098,9 @@ public class JdbcUtil { } else if ("体格发育评价".equals(itemName)) { - checkModel.setGrowthEvaluate(result); + List growthEvaluate = new ArrayList<>(); + growthEvaluate.add(result); + checkModel.setGrowthEvaluate(JsonUtil.array2JsonString(growthEvaluate)); } else if ("经皮胆红素".equals(itemName)) { @@ -1042,7 +1126,7 @@ public class JdbcUtil { else if ("前囟".equals(itemName)) { //{"yeaOrNo":"no","wbhcc1":"5","wbhcc2":"5"} - //未闭合|1*1 未闭合|1.5×1.5 + //未闭合|1*1 未闭合|1.5×1.5 未闭合|1×1 Map bregma = new HashMap(); if ("闭合".equals(result)) { @@ -1236,6 +1320,6 @@ public class JdbcUtil { // DBCollection conn = template.getCollection("lyms_patient_test"); // conn.up - syncBabyData("62"); + syncPatientData("62"); } } diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/FmTypeEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/FmTypeEnums.java index d48ba1e..d77e1a7 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/FmTypeEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/FmTypeEnums.java @@ -18,6 +18,18 @@ public enum FmTypeEnums { this.name = name; } + + public static String getIdByName(String name) + { + for (FmTypeEnums e : FmTypeEnums.values()) { + if (e.getName().equals(name)) + { + return e.getId(); + } + } + return null; + } + public static List getFmTypeEnums() { List list = new ArrayList<>(); for (FmTypeEnums e : FmTypeEnums.values()) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 33614c1..584e904 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -1753,7 +1753,7 @@ public class AntenatalExaminationFacade { if (CollectionUtils.isNotEmpty(basicConfigs2)) { for (BasicConfig bc : basicConfigs2) { String name = bc.getName(); - if (name.indexOf("预警") > -1) { + if (name != null && name.indexOf("预警") > -1) { name = name.replace("预警", ""); } map.put("color", "risk_" + RiskDefaultTypeEnum.getColor(name));