diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/llfy/LlfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/llfy/LlfyHisService.java index 6375171..12013ea 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/llfy/LlfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/llfy/LlfyHisService.java @@ -2,11 +2,14 @@ package com.lyms.hospitalapi.llfy; import com.lyms.hospitalapi.pojo.LcfyPatient; import com.lyms.platform.pojo.Patients; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.map.HashedMap; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.springframework.stereotype.Service; import java.sql.Connection; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -17,14 +20,23 @@ import java.util.Map; */ @Service("llfyHisService") public class LlfyHisService { - public Map getPatientInfo(Patients ps,String startDate,String endDate) { + public List> getPatientInfo(Patients ps,String startDate,String endDate) { Connection conn = com.lyms.hospitalapi.llfy.ConnTools.makeHisConnection(); QueryRunner queryRunner = new QueryRunner(); + List> resultList = new ArrayList<>(); + Map map = new HashedMap(); try { List list = queryRunner.query(conn, "select 入院日期 as inHospDate,入院诊断 as inHospDiagn from fvw_住院病人档案 where (姓名= '"+ps.getUsername()+"' and 证件号 ='"+ps.getCardNo()+"') or (姓名='"+ps.getUsername()+"' and 手机号 ='"+ps.getPhone()+"') or (姓名='"+ps.getUsername()+"' and 就诊卡='"+ps.getVcCardNo()+"') and 入院日期 is not null and 入院日期 between '"+startDate+"' and '"+endDate+"'", new BeanListHandler(LcfyPatient.class)); + if(CollectionUtils.isNotEmpty(list)){ + for(LcfyPatient lp:list){ + map.put("inHospDate",lp.getInHospDate()); + map.put("inHospDiagn",lp.getInHospDiagn()); + resultList.add(map); + } + } } catch (Exception e) { - + e.printStackTrace(); } - return null; + return resultList; } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java index 0e02165..a212aeb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientMarkHospServiceFacade.java @@ -334,7 +334,10 @@ public class PatientMarkHospServiceFacade { public void synUpdateHisData(PatientMarkHospital ps){ Patients patients = patientsService.findOnePatientById(ps.getPatientId()); if (null != patients) { - llfyHisService.getPatientInfo(patients,DateUtil.getyyyy_MM_dd(ps.getMakeDate()),DateUtil.getyyyy_MM_dd(new Date())); + List> makePatients = llfyHisService.getPatientInfo(patients,DateUtil.getyyyy_MM_dd(ps.getMakeDate()),DateUtil.getyyyy_MM_dd(new Date())); + if(ps.getHospitType()==null){ + + } } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java index f35100c..d9185e8 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java @@ -1,5 +1,8 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.biz.service.AntExRecordService; +import com.lyms.platform.biz.service.AntenatalExaminationService; +import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.PatientSerEnums; @@ -16,7 +19,11 @@ import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.PatientServiceService; import com.lyms.platform.permission.service.UsersService; +import com.lyms.platform.pojo.AntExChuModel; +import com.lyms.platform.pojo.AntExRecordModel; +import com.lyms.platform.pojo.AntenatalExaminationModel; import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.AntExRecordQuery; import com.lyms.platform.query.PatientsQuery; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +49,12 @@ public class PatientServiceFacade { private UsersService usersService; @Autowired private PatientsService patientsService; + @Autowired + private AntExRecordService recordService; + @Autowired + private CommonService commonService; + @Autowired + private AntenatalExaminationService antenatalExaminationService; public BaseResponse patientServiceInit() { Map map = new HashMap(); @@ -185,7 +198,7 @@ public class PatientServiceFacade { result.setId(ps.getId()); Patients patients = patientsService.findOnePatientById(ps.getParentid()); if (null != patients) { - String weekDesc = DateUtil.getWeekDesc(patients.getLastMenses(),new Date()); + String weekDesc = DateUtil.getWeekDesc(patients.getLastMenses(), new Date()); result.setcDueWeek(weekDesc); if (null != patients.getDueStatus() && 1 == patients.getDueStatus()) result.setcDueWeek("终止妊娠"); @@ -195,6 +208,15 @@ public class PatientServiceFacade { result.setAge(DateUtil.getAge(patients.getBirth()) + "岁"); result.setName(patients.getUsername()); } + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + antExRecordQuery.setParentId(ps.getParentid()); + List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery); + if(CollectionUtils.isNotEmpty(antExRecordModelList)){ + AntExRecordModel antExRecordModel = antExRecordModelList.get(0); + handleRisk(antExRecordModel,result); + result.setDueDate(DateUtil.getyyyy_MM_dd(antExRecordModel.getDueDate())); + } + result.setParentid(ps.getParentid()); result.setCreateDate(DateUtil.getyyyy_MM_dd(ps.getCreateDate())); result.setPid(ps.getPid()); @@ -206,9 +228,11 @@ public class PatientServiceFacade { result.setSerStatusStr(serStatus); result.setSerDoct(ps.getSerDoct()); result.setStatus(ps.getStatus()); - result.setStatusStr(ps.getStatus()==1?"待领取":"已领取"); + result.setStatusStr(ps.getStatus() == 1 ? "待领取" : "已领取"); result.setSerCode(ps.getSerCode()); result.setCreateUser(ps.getCreateUser()); + result.setUpdateDate(DateUtil.getyyyy_MM_dd(ps.getUpdateDate())); + Users users = usersService.getUsers(Integer.parseInt(ps.getSerDoct())); if (users != null) { result.setSerDoctStr(users.getName()); @@ -228,6 +252,49 @@ public class PatientServiceFacade { } /** + * 处理高危 + * + * @param e + * @param patientSerResult + */ + private void handleRisk(AntExRecordModel e, PatientSerResult patientSerResult) { + if (StringUtils.isNotEmpty(e.getfId())) { + String risk = null; + if (e.getType() == 2) { + AntExChuModel model = antenatalExaminationService.findOne(e.getfId()); + if (null != model) { + risk = model.getOtherHighRisk(); + } + } else if (e.getType() == 1) { + AntenatalExaminationModel model = antenatalExaminationService.findOneById(e.getfId()); + if (null != model) { + risk = model.getOtherRisk(); + } + } + Map result = commonService.resolveOtherRisk(risk); + String name = null, level = null, score = null; + if (!result.isEmpty()) { + //高危因素名字 + name = result.get("name").toString(); + level = result.get("levelId").toString(); + score = result.get("score").toString(); + + if (org.apache.commons.lang.StringUtils.isNotEmpty(level) && !"null".equals(level)) { + e.gethLevel().add(level); + } + } + //高危因素 + patientSerResult.setrLevel(commonService.findRiskLevel(e.gethLevel())); + String ri = commonService.resloveFactor(e.gethRisk()); + if (ri.isEmpty()) { + ri = name; + } else if (StringUtils.isNotEmpty(name)) { + ri += "," + name; + } + patientSerResult.setRiskFactor(ri); + } + } + /** * 根据条件查询开通服务记录 * * @param serType 服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询) @@ -286,14 +353,14 @@ public class PatientServiceFacade { PatientsQuery patientsQuery = new PatientsQuery(); List patientses = null; //根据查询号、当前孕周进行查询 - if (StringUtils.isNotEmpty(queryNo)||null != cDueWeekStart||null != cDueWeekEnd) { + if (StringUtils.isNotEmpty(queryNo) || null != cDueWeekStart || null != cDueWeekEnd) { if (null != cDueWeekStart) { patientsQuery.setLastMensesEnd(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(cDueWeekStart * 7))); } if (null != cDueWeekEnd) { patientsQuery.setLastMensesStart(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(cDueWeekEnd * 7) - 6)); } - if(StringUtils.isNotEmpty(queryNo)){ + if (StringUtils.isNotEmpty(queryNo)) { patientsQuery.setQueryNo(queryNo); } patientsQuery.setHospitalId(hospitalId); @@ -306,7 +373,7 @@ public class PatientServiceFacade { parentIds.add(pa.getId()); } patientQuery.setParentIds((String[]) parentIds.toArray(new String[parentIds.size()])); - } else if (StringUtils.isNotEmpty(queryNo)||null != cDueWeekStart||null != cDueWeekEnd) { + } else if (StringUtils.isNotEmpty(queryNo) || null != cDueWeekStart || null != cDueWeekEnd) { return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(patientQuery.getPageInfo()); } @@ -330,20 +397,20 @@ public class PatientServiceFacade { * 修改状态为领取 * * @param psId 服务记录Id - * @param id 用户id + * @param id 用户id * @return */ public BaseResponse receivePatientService(String psId, Integer id) { PatientService ps = patientServiceService.getPatientService(psId); - if(ps==null){ + if (ps == null) { BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.NO_DATA); baseResponse.setErrormsg("没有找到对应的数据"); return baseResponse; } //已经领取 - if(ps.getStatus()==2){ + if (ps.getStatus() == 2) { BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); baseResponse.setErrormsg("已经领取,请勿重复领取"); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientSerResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientSerResult.java index 2fc4e05..8beb5c5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientSerResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PatientSerResult.java @@ -1,5 +1,8 @@ package com.lyms.platform.operate.web.result; +import java.util.List; +import java.util.Map; + /** * @auther yangfei * @createTime 2017年09月11日 15时56分 @@ -29,6 +32,14 @@ public class PatientSerResult { */ private String cDueWeek; /** + * 预产期 + */ + private String dueDate; + //风险等级 + private List rLevel; + //高危因素 + private String riskFactor; + /** * 服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询) */ private Integer serType; @@ -50,6 +61,10 @@ public class PatientSerResult { */ private String createUser; /** + * 修改时间 + */ + private String updateDate; + /** * 开通医生名称 */ private String createUserStr; @@ -77,6 +92,30 @@ public class PatientSerResult { */ private String backUser; + public List getrLevel() { + return rLevel; + } + + public String getDueDate() { + return dueDate; + } + + public void setDueDate(String dueDate) { + this.dueDate = dueDate; + } + + public void setrLevel(List rLevel) { + this.rLevel = rLevel; + } + + public String getRiskFactor() { + return riskFactor; + } + + public void setRiskFactor(String riskFactor) { + this.riskFactor = riskFactor; + } + public String getCreateUser() { return createUser; } @@ -85,6 +124,14 @@ public class PatientSerResult { this.createUser = createUser; } + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + public String getCreateUserStr() { return createUserStr; }