From 84107c1379f3f63f99246199a4be4eeb9db06d5e Mon Sep 17 00:00:00 2001 From: Administrator <184677810@qq.com> Date: Wed, 11 Sep 2019 17:26:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=84=BF=E7=AB=A5=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../permission/model/BabyPatientExtendEarBaby.java | 10 + .../model/BabyPatientExtendEarBabyQuery.java | 10 + .../model/HighriskChangeHospitalQuery.java | 142 ++++++- .../mainOrm/master/BabyPatientExtendEarBaby.xml | 9 + .../mainOrm/master/HighriskChangeHospital.xml | 22 +- .../web/controller/HearingDiagnoseController.java | 436 ++++++++++++++++++++- .../HighriskChangeHospitalController.java | 81 +++- .../web/request/HearingDiagnoseRequest.java | 94 ++++- 8 files changed, 779 insertions(+), 25 deletions(-) diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBaby.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBaby.java index aadcb03..a2f88e8 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBaby.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBaby.java @@ -23,6 +23,16 @@ public class BabyPatientExtendEarBaby { private String babyEarId; private String personId; + private String[] babyPatientIds; + + public String[] getBabyPatientIds() { + return babyPatientIds; + } + + public void setBabyPatientIds(String[] babyPatientIds) { + this.babyPatientIds = babyPatientIds; + } + public String getPersonId() { return personId; } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBabyQuery.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBabyQuery.java index 74b8298..43d7b1e 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBabyQuery.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarBabyQuery.java @@ -28,6 +28,8 @@ public class BabyPatientExtendEarBabyQuery extends BaseQuery { private Integer yn; private Date buildDate; private String babyPatientId; + private String[] babyPatientIds; + private String babyEarId; //儿童姓名、母亲证件号、母亲联系方式 private String queryNo; @@ -41,6 +43,14 @@ public class BabyPatientExtendEarBabyQuery extends BaseQuery { */ private Date birthEnd; + public String[] getBabyPatientIds() { + return babyPatientIds; + } + + public void setBabyPatientIds(String[] babyPatientIds) { + this.babyPatientIds = babyPatientIds; + } + public String[] getHospitalIds() { return hospitalIds; } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/HighriskChangeHospitalQuery.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/HighriskChangeHospitalQuery.java index 0a42c58..325a3e7 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/HighriskChangeHospitalQuery.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/HighriskChangeHospitalQuery.java @@ -6,7 +6,6 @@ import com.lyms.platform.common.dao.BaseQuery; import java.util.Date; - public class HighriskChangeHospitalQuery extends BaseQuery { /** * ID(转诊) @@ -32,6 +31,17 @@ public class HighriskChangeHospitalQuery extends BaseQuery { * 转入医院ID */ private String intoOrgid; + + + /** + * 转出医院ID + */ + private String[] outOrgidArry; + /** + * 转入医院ID + */ + private String[] intoOrgidArry; + /** * 病情描述 */ @@ -91,6 +101,136 @@ public class HighriskChangeHospitalQuery extends BaseQuery { private String pid; //听诊儿童档案集合 private String[] babyIds; + // + private String[] hospitalIds; + + // + private String[] babyPatientId; + + + //省 + private String provinceId; + //城市id + private String cityId; + //县id + private String areaId; + //镇id + private String streetId; + //详细地址 + private String address; + + //省市区查询机构 + private String orgProvinceId; + //城市id + private String orgCityId; + //县id + private String orgAreaId; + //医院id + private String hospitalId; + + public String[] getOutOrgidArry() { + return outOrgidArry; + } + + public String[] getBabyPatientId() { + return babyPatientId; + } + + public void setBabyPatientId(String[] babyPatientId) { + this.babyPatientId = babyPatientId; + } + + public void setOutOrgidArry(String[] outOrgidArry) { + this.outOrgidArry = outOrgidArry; + } + + public String[] getIntoOrgidArry() { + return intoOrgidArry; + } + + public void setIntoOrgidArry(String[] intoOrgidArry) { + this.intoOrgidArry = intoOrgidArry; + } + + public String getProvinceId() { + return provinceId; + } + + public void setProvinceId(String provinceId) { + this.provinceId = provinceId; + } + + public String getCityId() { + return cityId; + } + + public void setCityId(String cityId) { + this.cityId = cityId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getStreetId() { + return streetId; + } + + public void setStreetId(String streetId) { + this.streetId = streetId; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getOrgProvinceId() { + return orgProvinceId; + } + + public void setOrgProvinceId(String orgProvinceId) { + this.orgProvinceId = orgProvinceId; + } + + public String getOrgCityId() { + return orgCityId; + } + + public void setOrgCityId(String orgCityId) { + this.orgCityId = orgCityId; + } + + public String getOrgAreaId() { + return orgAreaId; + } + + public void setOrgAreaId(String orgAreaId) { + this.orgAreaId = orgAreaId; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String[] getHospitalIds() { + return hospitalIds; + } + + public void setHospitalIds(String[] hospitalIds) { + this.hospitalIds = hospitalIds; + } public String getPid() { return pid; diff --git a/platform-biz-service/src/main/resources/mainOrm/master/BabyPatientExtendEarBaby.xml b/platform-biz-service/src/main/resources/mainOrm/master/BabyPatientExtendEarBaby.xml index f8cd37a..176cd49 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/BabyPatientExtendEarBaby.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/BabyPatientExtendEarBaby.xml @@ -216,6 +216,15 @@ select id,name,sex,cardNo,birth,mname,mcert_type_id,mcert_no,mphone,vc_card_no,b and baby_patient_id = #{babyPatientId,jdbcType=VARCHAR} + + + and baby_patient_id in + + #{item} + + + + and baby_ear_id = #{babyEarId,jdbcType=VARCHAR} diff --git a/platform-biz-service/src/main/resources/mainOrm/master/HighriskChangeHospital.xml b/platform-biz-service/src/main/resources/mainOrm/master/HighriskChangeHospital.xml index 0f3b96a..7f3d6f5 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/HighriskChangeHospital.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/HighriskChangeHospital.xml @@ -120,7 +120,27 @@ select ID,TARGET_TYPE,TARGET_ID,OUT_ORGID,INTO_ORGID,DESCRIPTION,MUSTDESC,RISK,C ) - + + and INTO_ORGID in ( + + #{item} + + ) + + + and INTO_ORGID in ( + + #{item} + + ) + + + and OUT_ORGID in ( + + #{item} + + ) + and TARGET_ID = #{targetId,jdbcType=VARCHAR} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HearingDiagnoseController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HearingDiagnoseController.java index 6016db4..bf44a9a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HearingDiagnoseController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HearingDiagnoseController.java @@ -12,6 +12,7 @@ import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.operate.web.facade.AreaCountFacade; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.BabyEarFacade; import com.lyms.platform.operate.web.facade.OperateLogFacade; @@ -21,6 +22,7 @@ import com.lyms.platform.operate.web.result.HearingDiagnoseListResult; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.BabyModel; +import com.lyms.platform.query.BabyModelQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -69,6 +71,10 @@ public class HearingDiagnoseController extends BaseController { @Autowired private OperateLogFacade operateLogFacade; + + @Autowired + private AreaCountFacade areaCountFacade; + /** * 根据儿童id获取最后一次确诊结果 * @@ -286,7 +292,7 @@ public class HearingDiagnoseController extends BaseController { BabyPatientExtendEarHearingDiagnoseQuery query = new BabyPatientExtendEarHearingDiagnoseQuery(); - List babyIds = babyEarFacade.getBabyIdsByItemOrg(babyId,hospitalId); + List babyIds = babyEarFacade.getBabyIdsByItemOrg(babyId, hospitalId); query.setBabyIds((String[]) babyIds.toArray(new String[babyIds.size()])); query.setIfdel(0); //查询听力转诊申请 // e、外院:有申请记录则允许进行新增听力筛查 @@ -359,9 +365,9 @@ public class HearingDiagnoseController extends BaseController { } BabyPatientExtendEarBabyQuery babyQuery = new BabyPatientExtendEarBabyQuery(); babyQuery.setHospitalId(hospitalId); - babyQuery.setEnables(new String[]{"0","1","2"}); + babyQuery.setEnables(new String[]{"0", "1", "2"}); List earBabies = earBabyService.queryBabyPatientExtendEarBaby(babyQuery); - for (BabyPatientExtendEarBaby eb:earBabies){ + for (BabyPatientExtendEarBaby eb : earBabies) { pids.add(eb.getPersonId()); } } else if (hdReq.getSource() == 1) {//1.本院 @@ -369,14 +375,13 @@ public class HearingDiagnoseController extends BaseController { babyQuery.setHospitalId(hospitalId); babyQuery.setIsEnable("1"); List earBabies = earBabyService.queryBabyPatientExtendEarBaby(babyQuery); - for (BabyPatientExtendEarBaby eb:earBabies){ + for (BabyPatientExtendEarBaby eb : earBabies) { pids.add(eb.getPersonId()); } } } - BabyPatientExtendEarHearingDiagnoseQuery query = new BabyPatientExtendEarHearingDiagnoseQuery(); @@ -403,10 +408,10 @@ public class HearingDiagnoseController extends BaseController { //是否需要查询听筛数据 boolean isHdScr = true; - if(CollectionUtils.isNotEmpty(pids)){ + if (CollectionUtils.isNotEmpty(pids)) { query.setPids((String[]) pids.toArray(new String[pids.size()])); } - if(CollectionUtils.isEmpty(pids)&&hdReq.getSource()!=null){ + if (CollectionUtils.isEmpty(pids) && hdReq.getSource() != null) { return new FrontEndResult().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("没有找到数据"); } @@ -517,7 +522,7 @@ public class HearingDiagnoseController extends BaseController { List hdrList = new ArrayList<>(); List babyIds = new ArrayList<>(); //需要查询听筛数据 - if(isHdScr){ + if (isHdScr) { // scrQuery.setCreateHospitalId(hospitalId); scrQuery.setCheckHospitalId(hospitalId); //本院听筛数据 复筛未通过-待诊断 @@ -668,19 +673,19 @@ public class HearingDiagnoseController extends BaseController { } result.setData(resList); pageInfo.setCount(confiList.size()); - } else if(hdReq.getConfirmDegree()!=null){ + } else if (hdReq.getConfirmDegree() != null) { for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { resList.add(confiList.get(i)); } result.setData(resList); pageInfo.setCount(confiList.size()); - }else if(StringUtils.isNotEmpty(hdReq.getDiagnDoctorId())){ - for (int i = (hdReq.getPage() - 1) * hdReq.getLimit();i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + } else if (StringUtils.isNotEmpty(hdReq.getDiagnDoctorId())) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { resList.add(confiList.get(i)); } result.setData(resList); pageInfo.setCount(confiList.size()); - }else { + } else { for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { resList.add(hdrList.get(i)); } @@ -774,16 +779,15 @@ public class HearingDiagnoseController extends BaseController { obj.setModifyId(String.valueOf(loginState.getId())); obj.setModifyTime(new Date()); //确诊 加入确诊时间 - if(obj.getIsconfirm()==1){ + if (obj.getIsconfirm() == 1) { obj.setConfirmTime(new Date()); } - BabyPatientExtendEarHearingDiagnose before = hearingDiagnoseService.getBabyPatientExtendEarHearingDiagnose(obj.getId()); + BabyPatientExtendEarHearingDiagnose before = hearingDiagnoseService.getBabyPatientExtendEarHearingDiagnose(obj.getId()); hearingDiagnoseService.updateBabyPatientExtendEarHearingDiagnose(obj); - BabyPatientExtendEarHearingDiagnose after = hearingDiagnoseService.getBabyPatientExtendEarHearingDiagnose(obj.getId()); - if (before != null && after != null) - { - operateLogFacade.addModifyOptLog(loginState.getId(), Integer.valueOf(hospitalId), before,after, OptActionEnums.UPDATE.getId(), "修改听力诊断"); + BabyPatientExtendEarHearingDiagnose after = hearingDiagnoseService.getBabyPatientExtendEarHearingDiagnose(obj.getId()); + if (before != null && after != null) { + operateLogFacade.addModifyOptLog(loginState.getId(), Integer.valueOf(hospitalId), before, after, OptActionEnums.UPDATE.getId(), "修改听力诊断"); } BaseResponse response = new BaseResponse(); @@ -821,7 +825,7 @@ public class HearingDiagnoseController extends BaseController { //医院id String hospitalId = autoMatchFacade.getHospitalId(loginState.getId()); //确诊 加入确诊时间未诊断时间 - if(obj.getIsconfirm()==1){ + if (obj.getIsconfirm() == 1) { obj.setConfirmTime(obj.getDiagnoseTime()); } String pid = babyModel.getPid(); @@ -851,12 +855,12 @@ public class HearingDiagnoseController extends BaseController { hch.setReceiveDoctorid(String.valueOf(loginState.getId())); highchangeService.updateHighriskChangeHospital(hch); //调用儿童档案接口,将隐藏档案设置为显示 - babyEarFacade.showBabyEar(obj.getBabyId(),hospitalId); + babyEarFacade.showBabyEar(obj.getBabyId(), hospitalId); } } //听力筛查-当某个儿童在同一院组内某家医院完成了的听筛建档后去院组内其他医院做了听筛、听诊或随访,应该要在对应的医院下创建一个隐藏档案 //建立隐藏档案 - babyEarFacade.addhideBabyEar(obj.getBabyId(), hospitalId,"2"); + babyEarFacade.addhideBabyEar(obj.getBabyId(), hospitalId, "2"); BaseResponse result = new BaseResponse(); result.setErrorcode(ErrorCodeConstants.SUCCESS); @@ -864,4 +868,394 @@ public class HearingDiagnoseController extends BaseController { result.setObject(obj.getId()); return result; } + + @RequestMapping(method = RequestMethod.GET, value = "/queryHearingDiagnoseRegionList") + @ResponseBody + @TokenRequired + public BaseResponse queryHearingDiagnoseRegionList(HearingDiagnoseRequest hdReq, HttpServletRequest request) { + //获取当前登录用户ID + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + if (loginState == null) { + return new BaseResponse().setErrorcode(ErrorCodeConstants.TOKEN_EXPIRE).setErrormsg("请重新登录"); + } + //获取当前用户能看到的那些医院 + List hospitalIds = new ArrayList<>(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(hdReq.getHospitalId())) { + hospitalIds.add(hdReq.getHospitalId()); + } else { + //获取用户拥有的权限医院和条件筛选的医院交集 + hospitalIds = areaCountFacade.getCurrentUserHospPermissions(loginState.getId(), hdReq.getOrgProvinceId(), hdReq.getOrgCityId(), hdReq.getAreaId()); + } + //当前登录人医院Id + // String hospitalId = autoMatchFacade.getHospitalId(loginState.getId()); + String[] hospitalIdArry = new String[hospitalIds.size()]; + + + BabyModelQuery modelQuery = new BabyModelQuery(); + modelQuery.setProvinceId(hdReq.getProvinceId()); + modelQuery.setCityId(hdReq.getCityId()); + modelQuery.setAreaId(hdReq.getAreaId()); + modelQuery.setStreetId(hdReq.getStreetId()); + modelQuery.setAreaId(hdReq.getAreaId()); + List babyModels = babyService.queryBabyWithQuery(modelQuery); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel babyModel : babyModels) { + list.add(babyModel.getId()); + } + } + + List pids = new ArrayList<>(); + if (hdReq.getSource() != null) { + if (hdReq.getSource() == 2) {//2.外院 + //转诊过来的医院id + HighriskChangeHospitalQuery hchQuery = new HighriskChangeHospitalQuery(); + hchQuery.setTargetType(2);//儿童 + hchQuery.setChangeType(1);//听力转诊 + hchQuery.setStatus(2);//已接受 + hchQuery.setHospitalIds(hospitalIds.toArray(hospitalIdArry)); + List hchList = highchangeService.queryHighriskChangeHospital(hchQuery); + if (hchList != null && hchList.size() > 0) { + for (HighriskChangeHospital hch : hchList) {//如果存在则修改转诊记录状态为接收 + pids.add(hch.getPid()); + } + } + BabyPatientExtendEarBabyQuery babyQuery = new BabyPatientExtendEarBabyQuery(); + babyQuery.setHospitalIds(hospitalIds.toArray(hospitalIdArry)); + babyQuery.setEnables(new String[]{"0", "1", "2"}); + List earBabies = earBabyService.queryBabyPatientExtendEarBaby(babyQuery); + for (BabyPatientExtendEarBaby eb : earBabies) { + pids.add(eb.getPersonId()); + } + } else if (hdReq.getSource() == 1) {//1.本院 + BabyPatientExtendEarBabyQuery babyQuery = new BabyPatientExtendEarBabyQuery(); + babyQuery.setHospitalIds(hospitalIds.toArray(hospitalIdArry)); + babyQuery.setIsEnable("1"); + babyQuery.setBabyPatientIds(list.toArray(new String[list.size()])); + + + List earBabies = earBabyService.queryBabyPatientExtendEarBaby(babyQuery); + for (BabyPatientExtendEarBaby eb : earBabies) { + pids.add(eb.getPersonId()); + } + } + } + + + BabyPatientExtendEarHearingDiagnoseQuery query = new BabyPatientExtendEarHearingDiagnoseQuery(); + + + BabyPatientExtendEarScreenQuery scrQuery = new BabyPatientExtendEarScreenQuery(); + //如果查询号不为空,根据查询号查询儿童档案表,获取儿童档案Id + if (StringUtils.isNotEmpty(hdReq.getKeyWord())) {//关键字:姓名、联系方式、就诊卡 查询babyId + BabyPatientExtendEarBabyQuery babyQuery = new BabyPatientExtendEarBabyQuery(); + babyQuery.setQueryNo(hdReq.getKeyWord()); + babyQuery.setHospitalIds(hospitalIds.toArray(hospitalIdArry)); + List models = earBabyService.queryBabyPatientExtendEarBaby(babyQuery); + if (CollectionUtils.isNotEmpty(models)) { + List babyIds = new ArrayList<>(); + for (BabyPatientExtendEarBaby babyModel : models) { + babyIds.add(babyModel.getBabyPatientId()); + } + scrQuery.setBabyIds(babyIds.toArray(new String[babyIds.size()])); + query.setBabyIds(babyIds.toArray(new String[babyIds.size()])); + } else { + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("没有找到数据"); + } + } + + + //是否需要查询听筛数据 + boolean isHdScr = true; + + if (CollectionUtils.isNotEmpty(pids)) { + query.setPids((String[]) pids.toArray(new String[pids.size()])); + } + if (CollectionUtils.isEmpty(pids) && hdReq.getSource() != null) { + return new FrontEndResult().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("没有找到数据"); + } + + if (hdReq.getDiagnoseStartTime() != null) {//诊断开始时间 + query.setDiagnoseStartTime(hdReq.getDiagnoseStartTime()); + isHdScr = false; + } + + if (hdReq.getDiagnoseEndTime() != null) {//诊断结束时间 + query.setDiagnoseEndTime(hdReq.getDiagnoseEndTime()); + isHdScr = false; + } + + if (hdReq.getDiagnDoctorId() != null) {//诊断医生 + query.setDiagnDoctorId(hdReq.getDiagnDoctorId()); + isHdScr = false; + } + + + if (hdReq.getDiagnNextStartTime() != null) {//预约下次开始诊断时间 + query.setDiagnNextStartTime(hdReq.getDiagnNextStartTime()); + isHdScr = false; + } + + if (hdReq.getDiagnNextEndTime() != null) {//预约下次结束诊断时间 + query.setDiagnNextEndTime(hdReq.getDiagnNextEndTime()); + isHdScr = false; + } + + if (hdReq.getIsconfirm() != null) {//是否确诊 0-未确诊 1-确诊 + query.setIsconfirm(hdReq.getIsconfirm()); + isHdScr = false; + } + if (hdReq.getConfirmDegree() != null) {//查询确诊程度 + isHdScr = false; + List cfList = new ArrayList<>(); + if (hdReq.getConfirmDegree() == 1) {//轻度 + cfList.add(",1,"); + cfList.add(",2,"); + cfList.add(",3,"); + } else if (hdReq.getConfirmDegree() == 2) {//中度 + cfList.add(",4,"); + cfList.add(",5,"); + cfList.add(",6,"); + } else if (hdReq.getConfirmDegree() == 3) {//中重度和重度 + cfList.add(",7,"); + cfList.add(",8,"); + cfList.add(",9,"); + cfList.add(",10,"); + cfList.add(",11,"); + cfList.add(",12,"); + } else if (hdReq.getConfirmDegree() == 4) {//极重度 + cfList.add(",13,"); + cfList.add(",14,"); + cfList.add(",15,"); + } + query.setConfirmResults(cfList.toArray(new String[cfList.size()])); + } + + if (hdReq.getConfirmResult() != null) {//确诊程度 + isHdScr = false; + List cfList = new ArrayList<>(); + if (hdReq.getConfirmResult() == 1) {//轻度 + cfList.add(",1,"); + cfList.add(",2,"); + cfList.add(",3,"); + } else if (hdReq.getConfirmResult() == 2) {//中度 + cfList.add(",4,"); + cfList.add(",5,"); + cfList.add(",6,"); + } else if (hdReq.getConfirmResult() == 3) {//中重度和重度 + cfList.add(",7,"); + cfList.add(",8,"); + cfList.add(",9,"); + cfList.add(",10,"); + cfList.add(",11,"); + cfList.add(",12,"); + } else if (hdReq.getConfirmResult() == 4) {//极重度 + cfList.add(",13,"); + cfList.add(",14,"); + cfList.add(",15,"); + } + query.setConfirmResults(cfList.toArray(new String[cfList.size()])); + } + + + if (hdReq.getConfirmStartTime() != null) {//确诊开始时间 + isHdScr = false; + query.setConfirmStartTime(hdReq.getConfirmStartTime()); + } + + if (hdReq.getConfirmEndTime() != null) {//确诊结束时间 + isHdScr = false; + query.setConfirmEndTime(hdReq.getConfirmEndTime()); + } + + query.setCheckHospitalIds(hospitalIds.toArray(hospitalIdArry)); + query.setSort("diagnose_time desc"); + + //已经诊断的数据 + List hearingDiagnoseList = hearingDiagnoseService.getHdAndScreen(query); + + //待诊断 + List waitConfiList = new ArrayList<>(); + //已诊断 + List confiList = new ArrayList<>(); + //全部 + List hdrList = new ArrayList<>(); + List babyIds = new ArrayList<>(); + //需要查询听筛数据 + if (isHdScr) { + // scrQuery.setCreateHospitalId(hospitalId); + scrQuery.setCheckHospitalIds(hospitalIds.toArray(hospitalIdArry)); + //本院听筛数据 复筛未通过-待诊断 + babyIds = screenService.queryScrBabyIds(scrQuery); + } + + //添加已经诊断的数据 + for (BabyPatientExtendEarHearingDiagnose hd : hearingDiagnoseList) { + //删除总数据 + babyIds.remove(hd.getBabyId()); + HearingDiagnoseListResult hea = new HearingDiagnoseListResult(); + BabyModel babyModel = babyService.getOneBabyById(hd.getBabyId()); + if (babyModel != null) { + hea.setBabyName(babyModel.getName()); + hea.setBabyId(hd.getBabyId()); + hea.setMommyName(com.lyms.platform.common.utils.StringUtils.emptyDeal(babyModel.getMname())); + hea.setMommnyPhone(com.lyms.platform.common.utils.StringUtils.emptyDeal(babyModel.getMphone())); + hea.setMommnyEncryptPhone(com.lyms.platform.common.utils.StringUtils.encryPhone(babyModel.getMphone())); + hea.setMonthAge(DateUtil.getBabyMonthAge(babyModel.getBirth(), hd.getDiagnoseTime())); + hea.setBirthday(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(babyModel.getBirth()))); + hea.setSex(com.lyms.platform.common.utils.StringUtils.emptyDeal(SexEnum.getTextById(babyModel.getSex()))); + } + hea.setIsconfirm(hd.getIsconfirm() == null ? "未确诊" : hd.getIsconfirm() == 0 ? "未确诊" : "已确诊"); + hea.setId(hd.getId()); + hea.setDiagnoseTime(DateUtil.getyyyy_MM_dd(hd.getDiagnoseTime())); + String docotorId = hd.getDiagnDoctorId(); + Users users = usersService.getUsers(Integer.parseInt(docotorId == null ? "0" : docotorId)); + if (users != null) { + hea.setDoctorName(users.getName() == null ? "-" : users.getName()); + } + hea.setHdTime(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(hd.getDiagnoseTime()))); + //听力高危因数 + if (hd.getHighFactor() != null) { + String hf[] = hd.getHighFactor().split(","); + StringBuffer hrSb = new StringBuffer(); + for (int b = 0; b < hf.length; b++) { + if (StringUtils.isNotEmpty(hf[b])) { + Map map = new HashMap<>(); + String title = HighRiskEnum.getTitle(Integer.parseInt(hf[b])); + map.put(Integer.parseInt(hf[b]), title); + hrSb.append(title + "、"); + } + } + String hfString = null; + if (hrSb.toString().endsWith("、")) { + hfString = hrSb.substring(0, hrSb.length() - 1); + } else { + hfString = hrSb.toString(); + } + hea.setHighRiskEnums(hfString); + } + //确诊结果 + if (hd.getConfirmResult() != null) { + String cr[] = hd.getConfirmResult().split(","); + StringBuffer hdSb = new StringBuffer(); + for (int b = 0; b < cr.length; b++) { + if (StringUtils.isNotEmpty(cr[b])) { + Map map = new HashMap<>(); + String title = ConfirmedEnums.getTitle(Integer.parseInt(cr[b])); + map.put(Integer.parseInt(cr[b]), title); + hdSb.append(title + "、"); + } + } + String hfString = null; + if (hdSb.toString().endsWith("、")) { + hfString = hdSb.substring(0, hdSb.length() - 1); + } else { + hfString = hdSb.toString(); + } + hea.setConfirmResult(hfString); + } + + //诊断结果 + if (hd.getDiagnResult() != null) { + String cr[] = hd.getDiagnResult().split(","); + StringBuffer hdSb = new StringBuffer(); + for (int b = 0; b < cr.length; b++) { + if (StringUtils.isNotEmpty(cr[b])) { + Map map = new HashMap<>(); + String title = HearingDiagnosisEnums.getTitle(Integer.parseInt(cr[b])); + map.put(Integer.parseInt(cr[b]), title); + hdSb.append(title + "、"); + } + } + String hfString = null; + if (hdSb.toString().endsWith("、")) { + hfString = hdSb.substring(0, hdSb.length() - 1); + } else { + hfString = hdSb.toString(); + } + hea.setDiagnResult(hfString); + } + //已诊断 + confiList.add(hea); + //全部 + hdrList.add(hea); + } + + + Collections.sort(hearingDiagnoseList); + for (int i = 0; i < babyIds.size(); i++) { + HearingDiagnoseListResult hea = new HearingDiagnoseListResult(); + BabyModel babyModel = babyService.getOneBabyById(babyIds.get(i)); + if (babyModel != null) { + hea.setBabyName(babyModel.getName()); + hea.setBabyId(babyIds.get(i)); + hea.setMommyName(com.lyms.platform.common.utils.StringUtils.emptyDeal(babyModel.getMname())); + hea.setMommnyPhone(com.lyms.platform.common.utils.StringUtils.emptyDeal(babyModel.getMphone())); + hea.setMommnyEncryptPhone(com.lyms.platform.common.utils.StringUtils.encryPhone(babyModel.getMphone())); + hea.setMonthAge(DateUtil.getBabyMonthAge(babyModel.getBirth(), new Date())); + hea.setBirthday(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(babyModel.getBirth()))); + hea.setSex(com.lyms.platform.common.utils.StringUtils.emptyDeal(SexEnum.getTextById(babyModel.getSex()))); + } + hea.setDiagnResult("待诊断"); + //全部 + hdrList.add(hea); + //待诊断 + waitConfiList.add(hea); + } + + BaseListResponse result = new BaseListResponse(); + PageInfo pageInfo = new PageInfo(); + List resList = new ArrayList<>(); + if (hdReq.getEnalble() != null) { + if (hdReq.getEnalble() == 1) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(confiList.get(i)); + } + result.setData(resList); + pageInfo.setCount(confiList.size()); + } else if (hdReq.getEnalble() == 2) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(waitConfiList.get(i)); + } + pageInfo.setCount(waitConfiList.size()); + result.setData(resList); + } else if (hdReq.getEnalble() == 3) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(hdrList.get(i)); + } + pageInfo.setCount(hdrList.size()); + result.setData(resList); + } + } else if (hdReq.getIsconfirm() != null) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(confiList.get(i)); + } + result.setData(resList); + pageInfo.setCount(confiList.size()); + } else if (hdReq.getConfirmDegree() != null) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(confiList.get(i)); + } + result.setData(resList); + pageInfo.setCount(confiList.size()); + } else if (StringUtils.isNotEmpty(hdReq.getDiagnDoctorId())) { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(confiList.get(i)); + } + result.setData(resList); + pageInfo.setCount(confiList.size()); + } else { + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); i < hdrList.size() && i < hdReq.getPage() * hdReq.getLimit(); i++) { + resList.add(hdrList.get(i)); + } + pageInfo.setCount(hdrList.size()); + result.setData(resList); + } + + pageInfo.setLimit(hdReq.getLimit()); + pageInfo.setPage(hdReq.getPage()); + result.setPageInfo(pageInfo); + result.setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("查询成功"); + return result; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HighriskChangeHospitalController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HighriskChangeHospitalController.java index 3135d9c..0e61119 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HighriskChangeHospitalController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HighriskChangeHospitalController.java @@ -10,6 +10,7 @@ import com.lyms.platform.common.enums.OptActionEnums; import com.lyms.platform.common.enums.SexEnum; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.operate.web.facade.AreaCountFacade; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.BabyEarFacade; import com.lyms.platform.operate.web.facade.OperateLogFacade; @@ -20,6 +21,7 @@ import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.BabyModel; +import com.lyms.platform.query.BabyModelQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -66,6 +68,9 @@ public class HighriskChangeHospitalController extends BaseController { @Autowired private OperateLogFacade operateLogFacade; + @Autowired + private AreaCountFacade areaCountFacade; + /** * 导出听力转诊列表 * @@ -332,7 +337,7 @@ public class HighriskChangeHospitalController extends BaseController { } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("请传入查询类型"); } - query.setOffset((query.getPage()-1)*query.getLimit()); + query.setOffset((query.getPage() - 1) * query.getLimit()); query.setNeed("1"); query.setSort("CREATE_TIME desc"); @@ -604,5 +609,79 @@ public class HighriskChangeHospitalController extends BaseController { return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } + @RequestMapping(method = RequestMethod.GET, value = "/queryHighriskChangeHospitalRegionList") + @ResponseBody + @TokenRequired + public BaseResponse queryHighriskChangeHospitaRegionlList(HighriskChangeHospitalQuery query, Integer type, HttpServletRequest request) { + //获取当前登录用户ID + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + if (loginState == null) { + return new BaseResponse().setErrorcode(ErrorCodeConstants.TOKEN_EXPIRE).setErrormsg("请重新登录"); + } + //医院id + // String hospitalId = autoMatchFacade.getHospitalId(loginState.getId()); + //获取当前用户能看到的那些医院 + List hospitalIds = new ArrayList<>(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(query.getHospitalId())) { + hospitalIds.add(query.getHospitalId()); + } else { + //获取用户拥有的权限医院和条件筛选的医院交集 + hospitalIds = areaCountFacade.getCurrentUserHospPermissions(loginState.getId(), query.getOrgProvinceId(), query.getOrgCityId(), query.getAreaId()); + } + String[] hospitalIdArry = new String[hospitalIds.size()]; + + //查询省市区 + BabyModelQuery modelQuery = new BabyModelQuery(); + modelQuery.setProvinceId(query.getProvinceId()); + modelQuery.setCityId(query.getCityId()); + modelQuery.setAreaId(query.getAreaId()); + modelQuery.setStreetId(query.getStreetId()); + modelQuery.setAreaId(query.getAreaId()); + List babyModels = babyService.queryBabyWithQuery(modelQuery); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel babyModel : babyModels) { + list.add(babyModel.getId()); + } + } + + if (type != null && type == 1) {//转出 + query.setOutOrgidArry(hospitalIds.toArray(hospitalIdArry)); + } else if (type != null && type == 0) {//转入儿童 + query.setIntoOrgidArry(hospitalIds.toArray(hospitalIdArry)); + } else { + return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("请传入查询类型"); + } + query.setOffset((query.getPage() - 1) * query.getLimit()); + query.setNeed("1"); + query.setSort("CREATE_TIME desc"); + + //如果查询号不为空,根据查询号查询儿童档案表,获取儿童档案Id + //关键字:姓名、联系方式、就诊卡 查询babyId + BabyPatientExtendEarBabyQuery babyQuery = new BabyPatientExtendEarBabyQuery(); + babyQuery.setQueryNo(query.getQueryNo()); + if (type != null && type == 1) {//转出 + babyQuery.setHospitalIds(hospitalIds.toArray(hospitalIdArry)); + } + babyQuery.setBabyPatientIds(list.toArray(new String[babyModels.size()])); + List models = earBabyService.queryBabyPatientExtendEarBaby(babyQuery); + //查询建档记录 + if (CollectionUtils.isNotEmpty(models)) { + List babyIds = new ArrayList<>(); + for (BabyPatientExtendEarBaby babyModel : models) { + babyIds.add(babyModel.getBabyPatientId()); + } + query.setBabyIds(babyIds.toArray(new String[babyIds.size()])); + } else { + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("没有找到数据"); + } + + + //医院id + List hchList = highriskChangeHospitalService.queryHighriskChangeHospital(query); + + List results = disposeHighriskChange(hchList, type); + return FrontEndResult.ini().setData(results).setPageInfo(query.getPageInfo()).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("查询成功"); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/HearingDiagnoseRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/HearingDiagnoseRequest.java index bd4258e..8d3c35f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/HearingDiagnoseRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/HearingDiagnoseRequest.java @@ -7,7 +7,7 @@ import java.util.Date; * @createTime 2017年05月15日 10时10分 * @discription */ -public class HearingDiagnoseRequest extends BasePageQueryRequest{ +public class HearingDiagnoseRequest extends BasePageQueryRequest { /** * 诊断开始时间 */ @@ -62,7 +62,98 @@ public class HearingDiagnoseRequest extends BasePageQueryRequest{ */ private Date confirmEndTime; + //省 + private String provinceId; + //城市id + private String cityId; + //县id + private String areaId; + //镇id + private String streetId; + //详细地址 + private String address; + + //省市区查询机构 + private String orgProvinceId; + //城市id + private String orgCityId; + //县id + private String orgAreaId; + //医院id + private String hospitalId; + + + public String getProvinceId() { + return provinceId; + } + + public void setProvinceId(String provinceId) { + this.provinceId = provinceId; + } + + public String getCityId() { + return cityId; + } + + public void setCityId(String cityId) { + this.cityId = cityId; + } + + public String getAreaId() { + return areaId; + } + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getStreetId() { + return streetId; + } + + public void setStreetId(String streetId) { + this.streetId = streetId; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getOrgProvinceId() { + return orgProvinceId; + } + + public void setOrgProvinceId(String orgProvinceId) { + this.orgProvinceId = orgProvinceId; + } + + public String getOrgCityId() { + return orgCityId; + } + + public void setOrgCityId(String orgCityId) { + this.orgCityId = orgCityId; + } + + public String getOrgAreaId() { + return orgAreaId; + } + + public void setOrgAreaId(String orgAreaId) { + this.orgAreaId = orgAreaId; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } public String getDiagnDoctorId() { return diagnDoctorId; @@ -156,6 +247,7 @@ public class HearingDiagnoseRequest extends BasePageQueryRequest{ public Date getDiagnNextStartTime() { return diagnNextStartTime; } + public void setDiagnNextStartTime(Date diagnNextStartTime) { this.diagnNextStartTime = diagnNextStartTime; } -- 1.8.3.1