From ae1f14815cc1bfef2f6cad72aea13058147136f0 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Wed, 9 Aug 2017 14:28:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=B3=E4=BF=9D=E5=81=A5=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/common/enums/EyeHighRiskEnums.java | 83 +++++++++++++++++++++ .../platform/common/enums/HandleOpinionsEnums.java | 70 ++++++++++++++++++ .../java/com/lyms/platform/pojo/BabyEyeCheck.java | 10 +-- .../web/controller/BabyEyeCheckController.java | 18 ++++- .../operate/web/service/BabyEyeCheckService.java | 5 +- .../web/service/impl/BabyEyeCheckServiceImpl.java | 85 ++++++++++++++++++---- 6 files changed, 247 insertions(+), 24 deletions(-) create mode 100644 platform-common/src/main/java/com/lyms/platform/common/enums/EyeHighRiskEnums.java create mode 100644 platform-common/src/main/java/com/lyms/platform/common/enums/HandleOpinionsEnums.java diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/EyeHighRiskEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/EyeHighRiskEnums.java new file mode 100644 index 0000000..0d85d61 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/EyeHighRiskEnums.java @@ -0,0 +1,83 @@ +package com.lyms.platform.common.enums; + +import com.lyms.platform.common.utils.StringUtils; +import org.apache.commons.collections.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 眼保健高危因素 + */ +public enum EyeHighRiskEnums { + ONE(1, "新生儿重症监护病房住院超过7议案并有连续吸氧(高浓度)史"), +// TWO(2, "临床上存在遗传性眼病家庭史或怀疑有眼病有关的综合征,例如先天性白内障、先天性青光眼、视网膜母细胞瘤、先天性小眼球、眼球震颤等"), + TWO(2, "先天性白内障、先天性青光眼、视网膜母细胞瘤、先天性小眼球、眼球震颤等"), +// THREE(3, "巨细胞病毒、风疹病毒、疱疹病毒、梅毒或毒浆体原虫(弓形体)等引起的宫内感染"), + THREE(3, "宫内感染"), + FOUR(4, "颅面形态畸形、大面积颜面部血管瘤,或者哭闹时眼球外凸"), + FIVE(5, "出生难产、器械助产"), + SIX(6, "眼部持续流泪、有大量分泌物"), + SEVEN(7, "出生体重<2000g的早产儿和低出生体重儿,应当在出生后4-6周或矫正胎龄32周,由眼科医师进行首次眼病变筛查"); + + private Integer id; + private String name; + + public static EyeHighRiskEnums get(Integer id) { + EyeHighRiskEnums[] values = EyeHighRiskEnums.values(); + for (EyeHighRiskEnums value : values) { + if (value.getId() == id) { + return value; + } + } + return null; + } + + public static String getName(String id) { + if(StringUtils.isEmpty(id)) { + return null; + } + int i = Integer.parseInt(id); + EyeHighRiskEnums[] values = EyeHighRiskEnums.values(); + for (EyeHighRiskEnums value : values) { + if (value.id == i) { + return value.name; + } + } + return null; + } + + public static List getName(List ids) { + if(CollectionUtils.isEmpty(ids)) { + return null; + } else { + List list = new ArrayList<>(); + for (String id : ids) { + list.add(getName(id)); + } + return list; + } + } + + EyeHighRiskEnums(Integer id, String name){ + this.id = id; + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/HandleOpinionsEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/HandleOpinionsEnums.java new file mode 100644 index 0000000..c0a63b5 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/HandleOpinionsEnums.java @@ -0,0 +1,70 @@ +package com.lyms.platform.common.enums; + +import com.lyms.platform.common.utils.StringUtils; + +/** + * 处理意见 + */ +public enum HandleOpinionsEnums { + ONE(1, "请于0月龄回院进行下次保健"), + TWO(2, "请于30-42天月龄回院进行下次保健"), + THREE(3, "请于3个月月龄回院进行下次保健"), + FOUR(4, "请于6个月月龄回院进行下次保健"), + FIVE(5, "请于9个月月龄回院进行下次保健"), + SIX(6, "请于1岁月龄回院进行下次保健"), + SEVEN(7, "请于1岁半月龄回院进行下次保健"), + EIGHT(8, "请于2岁月龄回院进行下次保健"), + NIGHT(9, "请于3岁月龄回院进行下次保健"), + TEN(10, "请于4岁月龄回院进行下次保健"), + ELEVEN(11, "请于5岁月龄回院进行下次保健"), + TWELVE(12, "请于6岁月龄回院进行下次保健"); + + private Integer id; + private String name; + + public static HandleOpinionsEnums get(Integer id) { + HandleOpinionsEnums[] values = HandleOpinionsEnums.values(); + for (HandleOpinionsEnums value : values) { + if (value.getId() == id) { + return value; + } + } + return null; + } + + public static String getName(String id) { + if(StringUtils.isEmpty(id)) { + return null; + } + int i = Integer.parseInt(id); + HandleOpinionsEnums[] values = HandleOpinionsEnums.values(); + for (HandleOpinionsEnums value : values) { + if (value.id == i) { + return value.name; + } + } + return null; + } + + HandleOpinionsEnums(Integer id, String name){ + this.id = id; + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java index 929ba1e..396d9d9 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java @@ -99,7 +99,7 @@ public class BabyEyeCheck { /** * 处理意见 */ - private String handleOpinions; + private String handleOpinionsId; /** * 指导意见 @@ -606,12 +606,12 @@ public class BabyEyeCheck { this.fundusResult = fundusResult; } - public String getHandleOpinions() { - return handleOpinions; + public String getHandleOpinionsId() { + return handleOpinionsId; } - public void setHandleOpinions(String handleOpinions) { - this.handleOpinions = handleOpinions; + public void setHandleOpinionsId(String handleOpinionsId) { + this.handleOpinionsId = handleOpinionsId; } public String getGuidanceOpinions() { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java index d16c628..f416be0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java @@ -64,10 +64,24 @@ public class BabyEyeCheckController extends BaseController { return babyEyeCheckService.delete(id); } + /** + * + * @param startDate + * @param endDate + * @param doctor + * @param key 姓名/联系方式/就诊卡 + * @param currentMonth 当前月龄 + * @param chechMonth 检查月龄 + * @param positive 是否是阳性 + * @param page + * @param limit + * @param request + * @return + */ @ResponseBody @RequestMapping(method = RequestMethod.GET) - public BaseResponse list(Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, HttpServletRequest request) { - return babyEyeCheckService.list(getUserId(request), startDate, endDate, doctor, key, currentMonth, chechMonth); + public BaseResponse list(Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, boolean positive, Integer page, Integer limit, HttpServletRequest request) { + return babyEyeCheckService.list(getUserId(request), startDate, endDate, doctor, key, currentMonth, chechMonth, positive, page, limit); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java index f138d0a..e3617ba 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java @@ -3,14 +3,13 @@ package com.lyms.platform.operate.web.service; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.pojo.BabyEyeCheck; -import com.lyms.platform.pojo.BabyEyePatient; import java.util.Date; /** * Created by lt on 2017/8/5 0005 */ -public interface BabyEyeCheckService { +public interface BabyEyeCheckService extends IBaseService { BaseObjectResponse init(); BaseResponse addOrUpdate(Integer userId, BabyEyeCheck babyEyeCheck); @@ -21,7 +20,7 @@ public interface BabyEyeCheckService { BaseResponse delete(String id); - BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth); + BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, boolean positive, Integer page, Integer limit); BaseResponse query(Integer userId, String babyId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java index ee4092f..4eb680d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java @@ -4,19 +4,19 @@ import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.result.PageResult; import com.lyms.platform.common.result.RespBuilder; import com.lyms.platform.common.utils.*; +import com.lyms.platform.common.utils.ReflectionUtils; +import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.BasicConfigFacade; import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade; -import com.lyms.platform.operate.web.result.BasicConfigResult; import com.lyms.platform.operate.web.service.BabyEyeCheckService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.permission.dao.master.BabyEyeCheckMapper; -import com.lyms.platform.pojo.BabyEyeCheck; -import com.lyms.platform.pojo.BabyModel; -import com.lyms.platform.pojo.NewbornVisit; +import com.lyms.platform.pojo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -31,7 +31,7 @@ import java.util.*; * Created by lt on 2017/8/5 0005 */ @Service -public class BabyEyeCheckServiceImpl implements BabyEyeCheckService { +public class BabyEyeCheckServiceImpl extends BaseServiceImpl implements BabyEyeCheckService { @Autowired private BabyEyeCheckMapper babyEyeCheckMapper; @@ -57,9 +57,9 @@ public class BabyEyeCheckServiceImpl implements BabyEyeCheckService { public BaseObjectResponse init() { List> addSubtract = EnumUtil.toJson(AddSubtractEnums.class); /** (+) (一) 其他 */ List> checkMonth = EnumUtil.toJson(CheckMonthEnums.class); /** (检查时间 */ - List highRisk = basicConfigFacade.getBaseicConfigByParentId(SystemConfig.HIGH_RISK_ID); /** 高危因素 */ - - return RespBuilder.buildSuccess("addSubtract", addSubtract, "checkMonth", checkMonth, "highRisk", highRisk); + List> highRisk = EnumUtil.toJson(EyeHighRiskEnums.class); /** 眼保健高危因素 */ + List> handleOpinions = EnumUtil.toJson(HandleOpinionsEnums.class); /** 处理意见 */ + return RespBuilder.buildSuccess("addSubtract", addSubtract, "checkMonth", checkMonth, "highRisk", highRisk, "handleOpinions", handleOpinions); } @Override @@ -77,29 +77,86 @@ public class BabyEyeCheckServiceImpl implements BabyEyeCheckService { } else { babyEyeCheck.setOperaterId(userId.toString()); Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyEyeCheck)); - mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyEyeCheck.getId())), update, NewbornVisit.class); + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyEyeCheck.getId())), update, BabyEyeCheck.class); } return RespBuilder.buildSuccess(babyEyeCheck.getId()); } @Override public BaseResponse info(String id) { - return null; + BabyEyeCheck babyEyeCheck = mongoTemplate.findById(id, BabyEyeCheck.class); + Map map = ReflectionUtils.beanToMap(babyEyeCheck); + map.put("handleOpinionsId", HandleOpinionsEnums.getName(babyEyeCheck.getHandleOpinionsId())); + map.put("riskFactorId", EyeHighRiskEnums.getName(babyEyeCheck.getRiskFactorId())); + CollectionUtils.removeNullValue(map); + return RespBuilder.buildSuccess(map); } @Override public BaseResponse edit(String id) { - return null; + BabyEyeCheck babyEyeCheck = mongoTemplate.findById(id, BabyEyeCheck.class); + Map map = ReflectionUtils.beanToMap(babyEyeCheck); + CollectionUtils.removeNullValue(map); + return RespBuilder.buildSuccess(map); } @Override public BaseResponse delete(String id) { - return null; + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(id)), Update.update("yn", "0"), BabyEyeCheck.class); + return RespBuilder.buildSuccess(); } @Override - public BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth) { - return null; + public BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, boolean positive, Integer page, Integer limit) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + Criteria criteria = Criteria.where("yn").ne("0").and("hospitalId").is(hospitalId); + if(startDate != null && endDate != null) { + criteria.and("checkTime").gte(startDate).lt(DateUtil.addDay(endDate, 1)); + } + if(org.apache.commons.lang.StringUtils.isNotBlank(doctor)) { + criteria.and("doctor").is(doctor); + } + if(org.apache.commons.lang.StringUtils.isNotBlank(key)) { + Criteria c = new Criteria(); + c.orOperator(Criteria.where("mphone").is(key), Criteria.where("name").regex(key), Criteria.where("mcertNo").is(key)).and("yn").ne(0); + List babyModels = mongoUtil.findField(BabyModel.class, c, "id"); + List babyIds = CollectionUtils.getId(babyModels, "id", String.class); + criteria.and("babyId").in(babyIds); + } + if(positive) { + Query query = new Query(criteria); + query.with(new Sort(Sort.Direction.DESC, "checkTime")); + List babyEyeChecks = mongoTemplate.find(query, BabyEyeCheck.class); + } + PageResult pageResult = findMongoPage(BabyEyeCheck.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "checkTime")), page, limit); + List babyEyeChecks = (List) pageResult.getGrid(); + List> restMap = new ArrayList<>(); + for (BabyEyeCheck babyEyeCheck : babyEyeChecks) { + Map temp = new HashMap<>(); + temp.put("id", babyEyeCheck.getId()); + BabyModel babyModel = mongoTemplate.findById(babyEyeCheck.getBabyId(), BabyModel.class); + if(babyModel != null) { + temp.put("name", babyModel.getName()); + if(babyModel.getSex() != null) { + temp.put("sex", SexEnum.getTextById(babyModel.getSex())); + } + String parentId = babyModel.getParentId(); + if(StringUtils.isNotEmpty(parentId)) { + Patients patients = mongoTemplate.findById(parentId, Patients.class); + if(patients != null) { + temp.put("mname", patients.getUsername()); + } + } + temp.put("birth", DateUtil.getYyyyMmDd( babyModel.getBirth())); + } + if(StringUtils.isNotEmpty(babyEyeCheck.getCheckMonthId())) { + temp.put("checkMonth", CheckMonthEnums.getName(babyEyeCheck.getCheckMonthId())); /** 检查月龄 */; + } + CollectionUtils.removeNullValue(temp); + restMap.add(temp); + } + pageResult.setGrid(restMap); + return RespBuilder.buildSuccess(pageResult); } @Override -- 1.8.3.1