From 085dbc759b8e26b3a4c75371670698c2e8dfc53a Mon Sep 17 00:00:00 2001 From: yangfei Date: Tue, 10 Apr 2018 17:22:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=84=BF=E7=AB=A5=E6=98=BE=E7=A4=BA=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E6=A3=80=E6=9F=A5=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/controller/LisController.java | 6 +- .../platform/operate/web/facade/LisFacade.java | 756 +++++++++------------ 2 files changed, 323 insertions(+), 439 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java index cc3b564..edc934a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java @@ -16,8 +16,6 @@ import com.lyms.platform.permission.model.LisReportItemModel; import com.lyms.platform.permission.model.LisReportModel; import com.lyms.platform.permission.service.LisService; import org.apache.commons.collections.CollectionUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -124,6 +122,7 @@ public class LisController extends BaseController { * @param sortType 排序类型(1,根据日期分类;2,根据检查项目分类) * @param phone 手机号码 * @param cardNo 身份证号码 + * @param perType 2-儿童 * @return */ @RequestMapping(method = RequestMethod.GET, value = "/getLisAndRisData") @@ -133,9 +132,10 @@ public class LisController extends BaseController { @RequestParam("sortType") Integer sortType, @RequestParam(required = false) String phone, @RequestParam(required = false) String cardNo, + @RequestParam(defaultValue = "1") Integer perType,//默认孕妇 HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return lisFacade.getLisAndRisData(vcCardNo, phone,cardNo, sortType, loginState.getId()); + return lisFacade.getLisAndRisData(vcCardNo, phone,cardNo, sortType,perType, loginState.getId()); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java index f713313..944cee5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java @@ -1,43 +1,39 @@ package com.lyms.platform.operate.web.facade; import com.lyms.hospitalapi.Cdfy.CdfyHisService; -import com.lyms.hospitalapi.Nczxyy.NczxyyLisService; import com.lyms.hospitalapi.dzfy.DzfyHisService; -import com.lyms.hospitalapi.zcfy.ZcfyHisService; import com.lyms.hospitalapi.pojo.CheckByDate; import com.lyms.hospitalapi.pojo.CheckItemResponse; import com.lyms.hospitalapi.pojo.CheckResponse; import com.lyms.hospitalapi.pojo.CheckType; import com.lyms.hospitalapi.qhdfy.QhdfyHisService; import com.lyms.hospitalapi.wxrmyy.WxHisService; -import com.lyms.platform.biz.service.*; +import com.lyms.hospitalapi.zcfy.ZcfyHisService; +import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.constants.ErrorCodeConstants; -import com.lyms.platform.common.enums.*; +import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; -import com.lyms.platform.common.utils.*; -import com.lyms.platform.operate.web.request.*; -import com.lyms.platform.operate.web.result.*; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.ExceptionUtils; +import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.PropertiesUtils; import com.lyms.platform.operate.web.utils.LisHandleTask; import com.lyms.platform.permission.model.*; -import com.lyms.platform.permission.model.LisReportQuery; import com.lyms.platform.permission.service.LisService; import com.lyms.platform.permission.service.OrganizationService; -import com.lyms.platform.permission.service.UsersService; -import com.lyms.platform.pojo.*; -import com.lyms.platform.query.*; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.PatientsQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.data.domain.Sort; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; -import javax.servlet.http.HttpServletRequest; import java.util.*; -import java.util.concurrent.*; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; /** * @@ -82,22 +78,24 @@ public class LisFacade { /** * 获取lis和ris检验报告 + * * @param vcCardNo 就诊卡号 * @param sortType 排序类型(1,根据日期分类;2,根据检查项目分类) + * @param perType 2-儿童,其他是孕妇 * @return */ - public BaseResponse getLisAndRisData(String vcCardNo,String phone,String cardNo,Integer sortType,Integer userId) { + public BaseResponse getLisAndRisData(String vcCardNo, String phone, String cardNo, Integer sortType, int perType, Integer userId) { - List checkByDate=new ArrayList(); + List checkByDate = new ArrayList(); //根据用户id获取医院ID String hospitalId = autoMatchFacade.getHospitalId(userId); - List result = queryLisCheckList(vcCardNo,phone,hospitalId,cardNo); + List result = queryLisCheckList(vcCardNo, phone, hospitalId, cardNo, perType); //排序检查大项 sortLis(result); - if(1 == sortType){ + if (1 == sortType) { List keyList = new ArrayList<>(); for (CheckResponse check : result) { //明细项排序 @@ -109,16 +107,16 @@ public class LisFacade { } } - for(String time : keyList){ - List CheckType=new ArrayList(); - List result2=new ArrayList<>();//存放所有检验报告(type=1) + for (String time : keyList) { + List CheckType = new ArrayList(); + List result2 = new ArrayList<>();//存放所有检验报告(type=1) CheckType jianyan = new CheckType(); jianyan.setType("检验报告"); - for(CheckResponse chre : result){ - if(time.equals(DateUtil.getyyyy_MM_dd(chre.getApplyDate()))){ - if(chre.getType() == 1){ + for (CheckResponse chre : result) { + if (time.equals(DateUtil.getyyyy_MM_dd(chre.getApplyDate()))) { + if (chre.getType() == 1) { result2.add(chre); } } @@ -127,12 +125,12 @@ public class LisFacade { jianyan.setTypeName(result2); CheckType.add(jianyan); - CheckByDate CheckByDate1=new CheckByDate(); + CheckByDate CheckByDate1 = new CheckByDate(); CheckByDate1.setTime(time); CheckByDate1.setTypes(CheckType); checkByDate.add(CheckByDate1); } - }else{ + } else { CheckByDate checkByItem = new CheckByDate(); checkByItem.setTime("检验报告"); checkByDate.add(checkByItem); @@ -146,14 +144,11 @@ public class LisFacade { CheckType CheckType1 = new CheckType(); result2.add(check); - if(result2.size() > 0){ + if (result2.size() > 0) { //秦皇岛显示检验报告类别名称 - if ("216".equals(hospitalId)) - { + if ("216".equals(hospitalId)) { CheckType1.setType(check.getLisTypeName() + " " + DateUtil.getyyyy_MM_dd(check.getApplyDate())); - } - else - { + } else { CheckType1.setType(check.getTitle()); } CheckType1.setTypeName(result2); @@ -166,19 +161,17 @@ public class LisFacade { } // 排序 - private void sortLis(List result) - { - if (CollectionUtils.isNotEmpty(result)) - { + private void sortLis(List result) { + if (CollectionUtils.isNotEmpty(result)) { Collections.sort(result, new Comparator() { public int compare(Object a, Object b) { - if (((CheckResponse)a).getApplyDate() == null) { + if (((CheckResponse) a).getApplyDate() == null) { return -1; } - if (((CheckResponse)b).getApplyDate() == null) { + if (((CheckResponse) b).getApplyDate() == null) { return -1; } - if (((CheckResponse)a).getApplyDate().before(((CheckResponse)b).getApplyDate())) { + if (((CheckResponse) a).getApplyDate().before(((CheckResponse) b).getApplyDate())) { return 1; } return -1; @@ -189,13 +182,12 @@ public class LisFacade { /** * 排序检查详情 + * * @param check */ - private void sortLisItems(CheckResponse check) - { - List items = check.getItemList(); - if (CollectionUtils.isNotEmpty(items)) - { + private void sortLisItems(CheckResponse check) { + List items = check.getItemList(); + if (CollectionUtils.isNotEmpty(items)) { Collections.sort(items, new Comparator() { public int compare(Object a, Object b) { String orderA = ((CheckItemResponse) a).getPrintOrder(); @@ -208,8 +200,7 @@ public class LisFacade { return -1; } if (com.lyms.platform.common.utils.StringUtils.isNum(orderA) && - com.lyms.platform.common.utils.StringUtils.isNum(orderB)) - { + com.lyms.platform.common.utils.StringUtils.isNum(orderB)) { int sortNum1 = Integer.parseInt(orderA); int sortNum2 = Integer.parseInt(orderB); return sortNum1 - sortNum2; @@ -229,138 +220,136 @@ public class LisFacade { * 2、再根据pid查询到这个孕妇在区域所有的建档记录 * 3、分别取每个建档中的医院id和就诊卡号在lis记录表中查询数据 * 4、封装lis数据 - * @param vcCardNo 就诊卡号 - * @param phone 手机号码 + * + * @param vcCardNo 就诊卡号 + * @param phone 手机号码 * @param hospitalId 用户ID - * @param cardNo 身份证号码 + * @param cardNo 身份证号码 + * @param perType 2-儿童 * @return */ - public List queryLisCheckList(String vcCardNo,String phone,String hospitalId,String cardNo) { + public List queryLisCheckList(String vcCardNo, String phone, String hospitalId, String cardNo, int perType) { //保存这个人在所有医院的lis记录 List result = new ArrayList<>(); //缓存查询到的医院 - Map hIdNames = new HashMap<>(); - - + Map hIdNames = new HashMap<>(); + List lises = Collections.EMPTY_LIST; + String hospitalName = ""; OrganizationQuery organizationQuery = new OrganizationQuery(); organizationQuery.setYn(YnEnums.YES.getId()); - PatientsQuery patientsQuery=new PatientsQuery(); - String[] strs = new String[]{phone, vcCardNo,cardNo}; - patientsQuery.setPv(strs); - patientsQuery.setHospitalId(hospitalId); - patientsQuery.setYn(YnEnums.YES.getId()); - //通过医院id和就诊卡号或者手机号码查询到孕妇信息 - List list= patientsService.queryPatient(patientsQuery); - if(CollectionUtils.isNotEmpty(list)){ - - Patients patients = list.get(0); - patientsQuery.setPid(patients.getPid()); - patientsQuery.setVcCardNo(null); - patientsQuery.setHospitalId(null); - patientsQuery.setPv(null); - - //通过上面就诊号查询到的人的所有建档记录 包括其他医院的建档记录 - list= patientsService.queryPatient(patientsQuery); - if(CollectionUtils.isNotEmpty(list)){ - for(Patients pat : list) - { - if (pat != null && StringUtils.isNotEmpty(pat.getHospitalId())) - { - - if (StringUtils.isEmpty(pat.getVcCardNo()) && StringUtils.isEmpty(pat.getPhone()) && StringUtils.isEmpty(pat.getCardNo())) - { - continue; - } - - //获取医院的名称 - String hospitalName = hIdNames.get(pat.getHospitalId()); - if (!StringUtils.isNotEmpty(hospitalName)) - { - organizationQuery.setId(Integer.parseInt(pat.getHospitalId())); - List hospitals = organizationService.queryOrganization(organizationQuery); - if (CollectionUtils.isNotEmpty(hospitals)) - { - hospitalName = hospitals.get(0).getName(); - hIdNames.put(hospitals.get(0).getId()+"",hospitalName); + LisReportQuery model = new LisReportQuery(); + + + if (perType == 2) {//儿童 + model.setHospitalId(hospitalId); + //通过就诊卡号和医院id查询到医院下面的lis记录 + lises = queryLisData(vcCardNo, "", "",perType, model); + } else { + PatientsQuery patientsQuery = new PatientsQuery(); + String[] strs = new String[]{phone, vcCardNo, cardNo}; + patientsQuery.setPv(strs); + patientsQuery.setHospitalId(hospitalId); + patientsQuery.setYn(YnEnums.YES.getId()); + //通过医院id和就诊卡号或者手机号码查询到孕妇信息 + List list = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(list)) { + Patients patients = list.get(0); + patientsQuery.setPid(patients.getPid()); + patientsQuery.setVcCardNo(null); + patientsQuery.setHospitalId(null); + patientsQuery.setPv(null); + + //通过上面就诊号查询到的人的所有建档记录 包括其他医院的建档记录 + list = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(list)) { + for (Patients pat : list) { + if (pat != null && StringUtils.isNotEmpty(pat.getHospitalId())) { + + if (StringUtils.isEmpty(pat.getVcCardNo()) && StringUtils.isEmpty(pat.getPhone()) && StringUtils.isEmpty(pat.getCardNo())) { + continue; } - } - LisReportQuery model = new LisReportQuery(); - model.setHospitalId(pat.getHospitalId()); - //通过就诊卡号和医院id查询到医院下面的lis记录 - List lises = queryLisData(pat.getVcCardNo(), pat.getPhone(),pat.getCardNo(), model); - if (CollectionUtils.isNotEmpty(lises)) - { - for (LisReportModel lis : lises) - { - CheckResponse check = new CheckResponse(); - - check.setLisTypeName(lis.getType()); - check.setModified(lis.getModified()); - check.setType(1); /* 1:检验报告,2:影像报告 */ - check.setName(lis.getName()); - check.setTitle(lis.getTitle()); - check.setHospitalName(hospitalName); - if (lis.getAge() != null) { - check.setAge(lis.getAge().toString()); - } - //聊城显示修改 - check.setApplyDate(lis.getPublishTime() != null ? lis.getPublishTime() : - lis.getCheckTime()); - check.setApplyDateStr(lis.getPublishTime() != null ? DateUtil.getyyyy_MM_dd(lis.getPublishTime()) : - DateUtil.getyyyy_MM_dd(lis.getCheckTime())); - check.setCheckDept(lis.getApplyDept()); - check.setDoctor(lis.getApplyDoctor()); - check.setSex(lis.getSex()); - - - List itemList = new ArrayList<>(); - - LisReportItemModel query = new LisReportItemModel(); - query.setLisId(lis.getLisId()); - query.setHospitalId(lis.getHospitalId()); - //查询lis每项详情 - List items = null; - if (StringUtils.isNotEmpty(lis.getItemJson())) - { - items = JsonUtil.toList(lis.getItemJson(),LisReportItemModel.class); + //获取医院的名称 + hospitalName = hIdNames.get(pat.getHospitalId()); + if (!StringUtils.isNotEmpty(hospitalName)) { + organizationQuery.setId(Integer.parseInt(pat.getHospitalId())); + List hospitals = organizationService.queryOrganization(organizationQuery); + if (CollectionUtils.isNotEmpty(hospitals)) { + hospitalName = hospitals.get(0).getName(); + hIdNames.put(hospitals.get(0).getId() + "", hospitalName); } - - //排序 - sortLisReportItems(items); - - if (CollectionUtils.isNotEmpty(items)) - { - for (LisReportItemModel checkItem : items) - { - CheckItemResponse item = new CheckItemResponse(); - item.setName(checkItem.getName()); - item.setCode(checkItem.getCode()); - item.setRefer(checkItem.getRef()); - if (StringUtils.isNotBlank(checkItem.getNumberResult())) { - item.setResult(checkItem.getNumberResult()); - } else if (StringUtils.isNotBlank(checkItem.getCharResult())) { - item.setResult(checkItem.getCharResult()); - } else { - item.setResult(checkItem.getResult()); - } - item.setUnit(checkItem.getUnit()); - item.setSpecial(checkItem.getResultFlag()); - item.setPrintOrder(checkItem.getPrintOrder()); - itemList.add(item); - } - check.setItemList(itemList); - } - result.add(check); } + model.setHospitalId(pat.getHospitalId()); + //通过就诊卡号和医院id查询到医院下面的lis记录 + lises = queryLisData(pat.getVcCardNo(), pat.getPhone(), pat.getCardNo(),perType, model); + } + } + } + } + } + if (CollectionUtils.isNotEmpty(lises)) { + for (LisReportModel lis : lises) { + CheckResponse check = new CheckResponse(); + + check.setLisTypeName(lis.getType()); + check.setModified(lis.getModified()); + check.setType(1); /* 1:检验报告,2:影像报告 */ + check.setName(lis.getName()); + check.setTitle(lis.getTitle()); + check.setHospitalName(hospitalName); + if (lis.getAge() != null) { + check.setAge(lis.getAge().toString()); + } + + //聊城显示修改 + check.setApplyDate(lis.getPublishTime() != null ? lis.getPublishTime() : + lis.getCheckTime()); + check.setApplyDateStr(lis.getPublishTime() != null ? DateUtil.getyyyy_MM_dd(lis.getPublishTime()) : + DateUtil.getyyyy_MM_dd(lis.getCheckTime())); + check.setCheckDept(lis.getApplyDept()); + check.setDoctor(lis.getApplyDoctor()); + check.setSex(lis.getSex()); + + + List itemList = new ArrayList<>(); + + LisReportItemModel query = new LisReportItemModel(); + query.setLisId(lis.getLisId()); + query.setHospitalId(lis.getHospitalId()); + //查询lis每项详情 + List items = null; + if (StringUtils.isNotEmpty(lis.getItemJson())) { + items = JsonUtil.toList(lis.getItemJson(), LisReportItemModel.class); + } + //排序 + sortLisReportItems(items); + + if (CollectionUtils.isNotEmpty(items)) { + for (LisReportItemModel checkItem : items) { + CheckItemResponse item = new CheckItemResponse(); + item.setName(checkItem.getName()); + item.setCode(checkItem.getCode()); + item.setRefer(checkItem.getRef()); + if (StringUtils.isNotBlank(checkItem.getNumberResult())) { + item.setResult(checkItem.getNumberResult()); + } else if (StringUtils.isNotBlank(checkItem.getCharResult())) { + item.setResult(checkItem.getCharResult()); + } else { + item.setResult(checkItem.getResult()); } + item.setUnit(checkItem.getUnit()); + item.setSpecial(checkItem.getResultFlag()); + item.setPrintOrder(checkItem.getPrintOrder()); + itemList.add(item); } + check.setItemList(itemList); } + result.add(check); } } return result; @@ -368,87 +357,68 @@ public class LisFacade { /** * 历史检验检查的查看页面 + * * @param vcCardNo * @param phone * @param model * @return */ - private List queryLisData(String vcCardNo, String phone,String cardNo,LisReportQuery model) { - + private List queryLisData(String vcCardNo, String phone, String cardNo,int perType, LisReportQuery model) { List reportModelList = new ArrayList<>(); //通过就诊卡号和医院id查询到医院下面的lis记录 - if (StringUtils.isNotEmpty(vcCardNo)) - { + if (StringUtils.isNotEmpty(vcCardNo)) { //德州 - if ("6".equals(HIS_VERSION)) - { + if ("6".equals(HIS_VERSION)) { model.setVcCardNos(dzfyHisService.getDzVcCardNos(vcCardNo)); } //承德查询lis - else if ("2100001291".equals(model.getHospitalId())) - { + else if ("2100001291".equals(model.getHospitalId())) { //model.setVcCardNo(vcCardNo); model.setVcCardNo(cdfyHisService.getIdByVcCardNo(vcCardNo)); } //威县人民医院lis - else if ("20".equals(HIS_VERSION)) - { + else if ("20".equals(HIS_VERSION)) { model.setVcCardNo(wxrmyyHisService.findId(vcCardNo)); } //诸城 - else if ("21".equals(HIS_VERSION)) - { + else if ("21".equals(HIS_VERSION)) { //model.setVcCardNo(getZcVcardNo(vcCardNo)); model.setVcCardNos(zcfyHisService.getZcVcCardNos(vcCardNo)); } //威海市妇幼 因为威海市妇幼有些孕妇没有就诊卡直接用身份证,lis把身份证号码存在就诊卡号字段的 - else if ("22".equals(HIS_VERSION)) - { + else if ("22".equals(HIS_VERSION)&&perType==1) { model.setVcCardNo(cardNo); - } - else - { + } else { model.setVcCardNo(vcCardNo); } List lises = lisService.queryLisDataByModel(model); - if (CollectionUtils.isNotEmpty(lises)) - { + if (CollectionUtils.isNotEmpty(lises)) { reportModelList.addAll(lises); } } - if (StringUtils.isNotEmpty(phone)) - { + if (StringUtils.isNotEmpty(phone)) { model.setVcCardNo(null); model.setPhone(phone); List lises = lisService.queryLisDataByModel(model); - if (CollectionUtils.isNotEmpty(lises)) - { + if (CollectionUtils.isNotEmpty(lises)) { List noExists = new ArrayList<>(); - for(LisReportModel lis : lises) - { + for (LisReportModel lis : lises) { boolean isExist = false; - if (CollectionUtils.isNotEmpty(reportModelList)) - { - for(LisReportModel reportModel : reportModelList) - { - if (lis != null && reportModel != null) - { - if (StringUtils.isNotEmpty(lis.getLisId()) && lis.getLisId().equals(reportModel.getLisId()) && lis.getTitle().equals(reportModel.getTitle())) - { + if (CollectionUtils.isNotEmpty(reportModelList)) { + for (LisReportModel reportModel : reportModelList) { + if (lis != null && reportModel != null) { + if (StringUtils.isNotEmpty(lis.getLisId()) && lis.getLisId().equals(reportModel.getLisId()) && lis.getTitle().equals(reportModel.getTitle())) { isExist = true; break; } } } - if (!isExist) - { + if (!isExist) { noExists.add(lis); } - } - else - { + } else { noExists.add(lis); } @@ -462,13 +432,13 @@ public class LisFacade { /** * 诸城就诊卡号处理 + * * @param vcCardNo * @return */ private String getZcVcardNo(String vcCardNo) { - if (StringUtils.isNotEmpty(vcCardNo) && vcCardNo.length() > 7) - { - String no = "0000"+vcCardNo.substring(0,8); + if (StringUtils.isNotEmpty(vcCardNo) && vcCardNo.length() > 7) { + String no = "0000" + vcCardNo.substring(0, 8); System.out.println(no); return no; } @@ -478,28 +448,25 @@ public class LisFacade { /** * lis辅助检查的查询 + * * @param vcCardNo * @param phone * @param model * @return */ - private List queryCheckLis(String vcCardNo, String phone,LisReportQuery model) { + private List queryCheckLis(String vcCardNo, String phone, LisReportQuery model) { List reportModelList = new ArrayList<>(); //通过就诊卡号和医院id查询到医院下面的lis记录 - if (StringUtils.isNotEmpty(vcCardNo)) - { + if (StringUtils.isNotEmpty(vcCardNo)) { model.setVcCardNo(vcCardNo); List lises = lisService.queryLisDataByModel(model); - if (CollectionUtils.isNotEmpty(lises)) - { + if (CollectionUtils.isNotEmpty(lises)) { reportModelList.addAll(lises); } - } - else if (StringUtils.isNotEmpty(phone)) - { + } else if (StringUtils.isNotEmpty(phone)) { model.setVcCardNo(null); model.setPhone(phone); List lises = lisService.queryLisDataByModel(model); @@ -511,68 +478,57 @@ public class LisFacade { } - /** - * 返回小程序查询个人的lis报告 - * 该接口由app服务器端调用 + * 返回小程序查询个人的lis报告 + * 该接口由app服务器端调用 + * * @param patientIds 院内系统孕妇建档id * @return */ - public List getAppLisList(String patientIds,Integer status,Integer page,Integer limit) { + public List getAppLisList(String patientIds, Integer status, Integer page, Integer limit) { List ids = new ArrayList<>(); - if (StringUtils.isNotEmpty(patientIds)) - { + if (StringUtils.isNotEmpty(patientIds)) { CollectionUtils.addAll(ids, patientIds.split(",")); } - PatientsQuery patientsQuery=new PatientsQuery(); + PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setIds(ids); patientsQuery.setYn(YnEnums.YES.getId()); - List list= patientsService.queryPatient(patientsQuery); + List list = patientsService.queryPatient(patientsQuery); List lises = null; - if (CollectionUtils.isNotEmpty(list)) - { + if (CollectionUtils.isNotEmpty(list)) { List vcCardNos = new ArrayList<>(); List hosptalIds = new ArrayList<>(); List phones = new ArrayList<>(); - for(Patients pat : list) - { - if (pat != null && StringUtils.isNotEmpty(pat.getHospitalId())) - { - if (StringUtils.isNotEmpty(pat.getVcCardNo())) - { + for (Patients pat : list) { + if (pat != null && StringUtils.isNotEmpty(pat.getHospitalId())) { + if (StringUtils.isNotEmpty(pat.getVcCardNo())) { //德州市妇幼保健院 解决德州妇幼孕妇换卡的问题 - if ("6".equals(HIS_VERSION) && "1000000114".equals(pat.getHospitalId())) - { + if ("6".equals(HIS_VERSION) && "1000000114".equals(pat.getHospitalId())) { vcCardNos.addAll(dzfyHisService.getDzVcCardNos(pat.getVcCardNo())); } //承德查询lis - else if ("2100001291".equals(pat.getHospitalId())) - { + else if ("2100001291".equals(pat.getHospitalId())) { // vcCardNos.add(pat.getVcCardNo()); vcCardNos.add(cdfyHisService.getIdByVcCardNo(pat.getVcCardNo())); } //威海市妇幼 因为威海市妇幼有些孕妇没有就诊卡直接用身份证,lis把身份证号码存在就诊卡号字段的 - else if ("22".equals(HIS_VERSION)) - { + else if ("22".equals(HIS_VERSION)) { vcCardNos.add(pat.getCardNo()); - } - else - { + } else { vcCardNos.add(pat.getVcCardNo()); } } - if (StringUtils.isNotEmpty(pat.getPhone())) - { + if (StringUtils.isNotEmpty(pat.getPhone())) { phones.add(pat.getPhone()); } hosptalIds.add(pat.getHospitalId()); } } - LisReportQuery query = new LisReportQuery(); + LisReportQuery query = new LisReportQuery(); query.setPage(page); query.setLimit(limit); query.setNeed("true"); @@ -583,20 +539,17 @@ public class LisFacade { query.setStatus(status); query.setHospitalIds(hosptalIds); - Map hospitalNames = getHospitalNames(hosptalIds); + Map hospitalNames = getHospitalNames(hosptalIds); lises = lisService.queryLisDataByQuery(query); System.out.println("patientIds==" + patientIds + "; lies size = " + lises.size()); - if (CollectionUtils.isNotEmpty(lises)) - { - for(LisReportModel lisReportModel : lises) - { + if (CollectionUtils.isNotEmpty(lises)) { + for (LisReportModel lisReportModel : lises) { lisReportModel.setHospitalName(hospitalNames.get(lisReportModel.getHospitalId())); String json = lisReportModel.getItemJson(); - if (StringUtils.isNotEmpty(json)) - { + if (StringUtils.isNotEmpty(json)) { List items = JsonUtil.toList(json, LisReportItemModel.class); - lisReportModel.setItems(items.size() > 3 ? items.subList(0, 4) : items.subList(0,items.size())); + lisReportModel.setItems(items.size() > 3 ? items.subList(0, 4) : items.subList(0, items.size())); lisReportModel.setItemJson(null); } } @@ -607,24 +560,21 @@ public class LisFacade { /** * 更新状态为已推送 + * * @param ids * @return */ public BaseResponse updateAppLisStatus(String ids) { try { - if (StringUtils.isNotEmpty(ids)) - { - String[] arrs = ids.split(","); - if (arrs != null && arrs.length > 0) - { + if (StringUtils.isNotEmpty(ids)) { + String[] arrs = ids.split(","); + if (arrs != null && arrs.length > 0) { List list = new ArrayList<>(); CollectionUtils.addAll(list, arrs); lisService.updateAppLisStatus(list); } } - } - catch (Exception e) - { + } catch (Exception e) { return new BaseResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); } return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); @@ -632,29 +582,25 @@ public class LisFacade { /** * 通过id查询到lis检查报告详情 + * * @param id * @return */ - public List getAppLisById(Integer id) { + public List getAppLisById(Integer id) { - LisReportQuery query = new LisReportQuery(); + LisReportQuery query = new LisReportQuery(); query.setId(id); List lises = lisService.queryLisDataByQuery(query); - if (CollectionUtils.isNotEmpty(lises)) - { - for(LisReportModel lisReportModel : lises) - { + if (CollectionUtils.isNotEmpty(lises)) { + for (LisReportModel lisReportModel : lises) { Organization organization = null; - if (StringUtils.isNotEmpty(lisReportModel.getHospitalId())) - { + if (StringUtils.isNotEmpty(lisReportModel.getHospitalId())) { organization = organizationService.getOrganization(Integer.parseInt(lisReportModel.getHospitalId())); } String json = lisReportModel.getItemJson(); - if (StringUtils.isNotEmpty(json)) - { - if (organization != null) - { + if (StringUtils.isNotEmpty(json)) { + if (organization != null) { lisReportModel.setHospitalName(organization.getName()); } List items = JsonUtil.toList(json, LisReportItemModel.class); @@ -670,12 +616,11 @@ public class LisFacade { /** * 排序 + * * @param items */ - private void sortLisReportItems(List items) - { - if (CollectionUtils.isNotEmpty(items)) - { + private void sortLisReportItems(List items) { + if (CollectionUtils.isNotEmpty(items)) { Collections.sort(items, new Comparator() { public int compare(Object a, Object b) { String orderA = ((LisReportItemModel) a).getPrintOrder(); @@ -688,8 +633,7 @@ public class LisFacade { return -1; } if (com.lyms.platform.common.utils.StringUtils.isNum(orderA) && - com.lyms.platform.common.utils.StringUtils.isNum(orderB)) - { + com.lyms.platform.common.utils.StringUtils.isNum(orderB)) { int sortNum1 = Integer.parseInt(orderA); int sortNum2 = Integer.parseInt(orderB); return sortNum1 - sortNum2; @@ -705,17 +649,15 @@ public class LisFacade { /** * 查询医院名称 + * * @param hospitalIds * @return */ - private Map getHospitalNames(List hospitalIds) - { - Map hospitalNames = new HashMap<>(); + private Map getHospitalNames(List hospitalIds) { + Map hospitalNames = new HashMap<>(); List ids = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(hospitalIds)) - { - for(String hId : hospitalIds) - { + if (CollectionUtils.isNotEmpty(hospitalIds)) { + for (String hId : hospitalIds) { ids.add(Integer.parseInt(hId)); } } @@ -724,18 +666,17 @@ public class LisFacade { query.setIdList(ids); List organizations = organizationService.queryHospitals(query); - if (CollectionUtils.isNotEmpty(organizations)) - { - for (Organization organization : organizations){ - hospitalNames.put(organization.getId()+"",organization.getName()); + if (CollectionUtils.isNotEmpty(organizations)) { + for (Organization organization : organizations) { + hospitalNames.put(organization.getId() + "", organization.getName()); } } return hospitalNames; } - public Map getNoSendLis(Integer page, Integer limit) { + public Map getNoSendLis(Integer page, Integer limit) { - LisReportQuery query = new LisReportQuery(); + LisReportQuery query = new LisReportQuery(); query.setPublishTime(DateUtil.getyyyy_MM_dd(new Date())); query.setPage(page); query.setLimit(limit); @@ -743,21 +684,19 @@ public class LisFacade { query.setSort(" APPLY_TIME DESC "); query.setStatus(0); //未推送状态 - Map result = new HashMap<>(); - List> lists = new ArrayList<>(); + Map result = new HashMap<>(); + List> lists = new ArrayList<>(); - List lises = lisService.queryLisDataByStatus(query); - if (CollectionUtils.isNotEmpty(lises)) - { + List lises = lisService.queryLisDataByStatus(query); + if (CollectionUtils.isNotEmpty(lises)) { Map map = new HashMap<>(); OrganizationQuery organizationQuery = new OrganizationQuery(); organizationQuery.setYn(YnEnums.YES.getId()); List organizations = organizationService.queryOrganization(organizationQuery); if (organizations != null) { - for(Organization organization : organizations) - { - map.put(organization.getId() + "", organization.getName()); - } + for (Organization organization : organizations) { + map.put(organization.getId() + "", organization.getName()); + } } organizations.clear(); @@ -771,17 +710,15 @@ public class LisFacade { end = lises.size(); } final List models = lises.subList(i, end); - Callable c = new LisHandleTask(patientsService,models,map,dzfyHisService,cdfyHisService); + Callable c = new LisHandleTask(patientsService, models, map, dzfyHisService, cdfyHisService); Future f = commonThreadPool.submit(c); futures.add(f); } - if (CollectionUtils.isNotEmpty(futures)) - { - for (Future f : futures) - { + if (CollectionUtils.isNotEmpty(futures)) { + for (Future f : futures) { try { - lists.addAll((List>) f.get()); + lists.addAll((List>) f.get()); } catch (Exception e) { ExceptionUtils.catchException(e, "getNoSendLis list error."); } @@ -790,32 +727,30 @@ public class LisFacade { } result.put("list", lists); - result.put("hasNext",CollectionUtils.isNotEmpty(lises) && lises.size() >= limit ? "true" : "false"); + result.put("hasNext", CollectionUtils.isNotEmpty(lises) && lises.size() >= limit ? "true" : "false"); return result; } - public BaseResponse getBabyLisAssistCheckInfo(String vcCardNo, String phone, String checkTime,Integer userId) { + public BaseResponse getBabyLisAssistCheckInfo(String vcCardNo, String phone, String checkTime, Integer userId) { //根据用户id获取医院ID String hospitalId = autoMatchFacade.getHospitalId(userId); - LisReportQuery query = new LisReportQuery(); + LisReportQuery query = new LisReportQuery(); List titles = new ArrayList<>(); - Map> map = new HashMap<>(); + Map> map = new HashMap<>(); - boolean isQuery = false; + boolean isQuery = false; //秦皇岛 - if ("216".equals(hospitalId)) - { + if ("216".equals(hospitalId)) { titles.add("尿常规"); titles.add("[丙]血常规(24项)"); titles.add("血常规(24项)"); isQuery = true; } //青龙满族自治县医院 - else if ("204".equals(hospitalId)) - { + else if ("204".equals(hospitalId)) { titles.add("尿常规30"); titles.add("尿常规检查"); @@ -827,8 +762,7 @@ public class LisFacade { //德州市妇幼保健院 //如果不为上面的医院就直接返回 - if (!isQuery || "2".equals(run_mode)) - { + if (!isQuery || "2".equals(run_mode)) { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(map); } @@ -836,162 +770,112 @@ public class LisFacade { query.setHospitalId(hospitalId); query.setCheckTime(checkTime); List lises = null; - if ("216".equals(hospitalId)) - { - lises = qhdfyHisService.queryQhdCheckLisInfo(vcCardNo,phone,"('尿常规','[丙]血常规(24项)','血常规(24项)','血细胞分析(末梢)')", checkTime); - } - else - { - lises = queryCheckLis(vcCardNo,phone,query); + if ("216".equals(hospitalId)) { + lises = qhdfyHisService.queryQhdCheckLisInfo(vcCardNo, phone, "('尿常规','[丙]血常规(24项)','血常规(24项)','血细胞分析(末梢)')", checkTime); + } else { + lises = queryCheckLis(vcCardNo, phone, query); } - if (CollectionUtils.isNotEmpty(lises)) - { - for(LisReportModel model : lises) - { - if ("216".equals(hospitalId)) - { - if ("尿常规".equals(model.getTitle())) - { - Map map1 = new HashMap<>(); - map1.put("ndb",""); //尿蛋白 - map1.put("nt",""); //尿糖 - map1.put("ntt",""); //尿酮体 - map1.put("nqx",""); //尿潜血 + if (CollectionUtils.isNotEmpty(lises)) { + for (LisReportModel model : lises) { + if ("216".equals(hospitalId)) { + if ("尿常规".equals(model.getTitle())) { + Map map1 = new HashMap<>(); + map1.put("ndb", ""); //尿蛋白 + map1.put("nt", ""); //尿糖 + map1.put("ntt", ""); //尿酮体 + map1.put("nqx", ""); //尿潜血 String itemJson = model.getItemJson(); - List items = JsonUtil.toList(itemJson,LisReportItemModel.class); - if (CollectionUtils.isNotEmpty(items)) - { - for(LisReportItemModel item : items) - { - if (item == null) - { + List items = JsonUtil.toList(itemJson, LisReportItemModel.class); + if (CollectionUtils.isNotEmpty(items)) { + for (LisReportItemModel item : items) { + if (item == null) { continue; } - if ("尿蛋白".equals(item.getName())) - { - map1.put("ndb",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); - } - else if ("尿糖".equals(item.getName()) || "尿葡萄糖".equals(item.getName())) - { - map1.put("nt",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); - } - else if ("尿酮体".equals(item.getName())) - { - map1.put("ntt",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); - } - else if ("尿潜血".equals(item.getName()) || "尿隐血".equals(item.getName())) - { - map1.put("nqx",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + if ("尿蛋白".equals(item.getName())) { + map1.put("ndb", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + } else if ("尿糖".equals(item.getName()) || "尿葡萄糖".equals(item.getName())) { + map1.put("nt", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + } else if ("尿酮体".equals(item.getName())) { + map1.put("ntt", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + } else if ("尿潜血".equals(item.getName()) || "尿隐血".equals(item.getName())) { + map1.put("nqx", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); } } } - map.put("ncg",map1); - } - else if ("[丙]血常规(24项)".equals(model.getTitle()) || "血常规(24项)".equals(model.getTitle())) - { - Map map1 = new HashMap<>(); - map1.put("xhdb",""); //血红蛋白 - map1.put("bxbjs","");//白细胞计数 - map1.put("xxbjs",""); //血小板计数 + map.put("ncg", map1); + } else if ("[丙]血常规(24项)".equals(model.getTitle()) || "血常规(24项)".equals(model.getTitle())) { + Map map1 = new HashMap<>(); + map1.put("xhdb", ""); //血红蛋白 + map1.put("bxbjs", "");//白细胞计数 + map1.put("xxbjs", ""); //血小板计数 String itemJson = model.getItemJson(); List items = JsonUtil.toList(itemJson, LisReportItemModel.class); - if (CollectionUtils.isNotEmpty(items)) - { - for(LisReportItemModel item : items) - { - if (item == null) - { + if (CollectionUtils.isNotEmpty(items)) { + for (LisReportItemModel item : items) { + if (item == null) { continue; } - if ("血红蛋白".equals(item.getName())) - { - map1.put("xhdb",item.getNumberResult()); - } - else if ("白细胞计数".equals(item.getName())) - { - map1.put("bxbjs",item.getNumberResult()); - } - else if ("血小板计数".equals(item.getName()) || "血小板".equals(item.getName())) - { - map1.put("xxbjs",item.getNumberResult()); + if ("血红蛋白".equals(item.getName())) { + map1.put("xhdb", item.getNumberResult()); + } else if ("白细胞计数".equals(item.getName())) { + map1.put("bxbjs", item.getNumberResult()); + } else if ("血小板计数".equals(item.getName()) || "血小板".equals(item.getName())) { + map1.put("xxbjs", item.getNumberResult()); } } } - map.put("xcg",map1); + map.put("xcg", map1); } - } - else if ("204".equals(hospitalId)) - { - if ("尿常规30".equals(model.getTitle()) || "尿常规检查".equals(model.getTitle())) - { - Map map1 = new HashMap<>(); - map1.put("ndb",""); //尿蛋白 - map1.put("nt",""); //尿糖 - map1.put("ntt",""); //尿酮体 - map1.put("nqx",""); //尿潜血 + } else if ("204".equals(hospitalId)) { + if ("尿常规30".equals(model.getTitle()) || "尿常规检查".equals(model.getTitle())) { + Map map1 = new HashMap<>(); + map1.put("ndb", ""); //尿蛋白 + map1.put("nt", ""); //尿糖 + map1.put("ntt", ""); //尿酮体 + map1.put("nqx", ""); //尿潜血 String itemJson = model.getItemJson(); - List items = JsonUtil.toList(itemJson,LisReportItemModel.class); - if (CollectionUtils.isNotEmpty(items)) - { - for(LisReportItemModel item : items) - { - if (item == null) - { + List items = JsonUtil.toList(itemJson, LisReportItemModel.class); + if (CollectionUtils.isNotEmpty(items)) { + for (LisReportItemModel item : items) { + if (item == null) { continue; } - if ("尿蛋白".equals(item.getName())) - { - map1.put("ndb",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); - } - else if ("葡萄糖".equals(item.getName())) - { - map1.put("nt",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); - } - else if ("酮体".equals(item.getName())) - { - map1.put("ntt",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); - } - else if ("隐血".equals(item.getName())) - { - map1.put("nqx",item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + if ("尿蛋白".equals(item.getName())) { + map1.put("ndb", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + } else if ("葡萄糖".equals(item.getName())) { + map1.put("nt", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + } else if ("酮体".equals(item.getName())) { + map1.put("ntt", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); + } else if ("隐血".equals(item.getName())) { + map1.put("nqx", item.getCharResult() == null ? item.getNumberResult() : item.getCharResult()); } } } - map.put("ncg",map1); - } - else if ("血常规、血型".equals(model.getTitle()) || "血常规5分类".equals(model.getTitle()) || "小儿血常规5分类".equals(model.getTitle())) - { + map.put("ncg", map1); + } else if ("血常规、血型".equals(model.getTitle()) || "血常规5分类".equals(model.getTitle()) || "小儿血常规5分类".equals(model.getTitle())) { - Map map1 = new HashMap<>(); - map1.put("xhdb",""); //血红蛋白 - map1.put("bxbjs","");//白细胞计数 - map1.put("xxbjs",""); //血小板计数 + Map map1 = new HashMap<>(); + map1.put("xhdb", ""); //血红蛋白 + map1.put("bxbjs", "");//白细胞计数 + map1.put("xxbjs", ""); //血小板计数 String itemJson = model.getItemJson(); - List items = JsonUtil.toList(itemJson,LisReportItemModel.class); - if (CollectionUtils.isNotEmpty(items)) - { - for(LisReportItemModel item : items) - { - if (item == null) - { + List items = JsonUtil.toList(itemJson, LisReportItemModel.class); + if (CollectionUtils.isNotEmpty(items)) { + for (LisReportItemModel item : items) { + if (item == null) { continue; } - if ("血红蛋白".equals(item.getName())) - { - map1.put("xhdb",item.getNumberResult()); - } - else if ("白细胞".equals(item.getName())) - { - map1.put("bxbjs",item.getNumberResult()); - } - else if ("血小板计数".equals(item.getName()) || "血小板".equals(item.getName())) - { - map1.put("xxbjs",item.getNumberResult()); + if ("血红蛋白".equals(item.getName())) { + map1.put("xhdb", item.getNumberResult()); + } else if ("白细胞".equals(item.getName())) { + map1.put("bxbjs", item.getNumberResult()); + } else if ("血小板计数".equals(item.getName()) || "血小板".equals(item.getName())) { + map1.put("xxbjs", item.getNumberResult()); } } } - map.put("xcg",map1); + map.put("xcg", map1); } } -- 1.8.3.1