Commit ae1f14815cc1bfef2f6cad72aea13058147136f0

Authored by litao@lymsh.com
1 parent 758a36f9b5

耳保健相关接口

Showing 6 changed files with 247 additions and 24 deletions

platform-common/src/main/java/com/lyms/platform/common/enums/EyeHighRiskEnums.java View file @ ae1f148
  1 +package com.lyms.platform.common.enums;
  2 +
  3 +import com.lyms.platform.common.utils.StringUtils;
  4 +import org.apache.commons.collections.CollectionUtils;
  5 +
  6 +import java.util.ArrayList;
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * 眼保健高危因素
  11 + */
  12 +public enum EyeHighRiskEnums {
  13 + ONE(1, "新生儿重症监护病房住院超过7议案并有连续吸氧(高浓度)史"),
  14 +// TWO(2, "临床上存在遗传性眼病家庭史或怀疑有眼病有关的综合征,例如先天性白内障、先天性青光眼、视网膜母细胞瘤、先天性小眼球、眼球震颤等"),
  15 + TWO(2, "先天性白内障、先天性青光眼、视网膜母细胞瘤、先天性小眼球、眼球震颤等"),
  16 +// THREE(3, "巨细胞病毒、风疹病毒、疱疹病毒、梅毒或毒浆体原虫(弓形体)等引起的宫内感染"),
  17 + THREE(3, "宫内感染"),
  18 + FOUR(4, "颅面形态畸形、大面积颜面部血管瘤,或者哭闹时眼球外凸"),
  19 + FIVE(5, "出生难产、器械助产"),
  20 + SIX(6, "眼部持续流泪、有大量分泌物"),
  21 + SEVEN(7, "出生体重<2000g的早产儿和低出生体重儿,应当在出生后4-6周或矫正胎龄32周,由眼科医师进行首次眼病变筛查");
  22 +
  23 + private Integer id;
  24 + private String name;
  25 +
  26 + public static EyeHighRiskEnums get(Integer id) {
  27 + EyeHighRiskEnums[] values = EyeHighRiskEnums.values();
  28 + for (EyeHighRiskEnums value : values) {
  29 + if (value.getId() == id) {
  30 + return value;
  31 + }
  32 + }
  33 + return null;
  34 + }
  35 +
  36 + public static String getName(String id) {
  37 + if(StringUtils.isEmpty(id)) {
  38 + return null;
  39 + }
  40 + int i = Integer.parseInt(id);
  41 + EyeHighRiskEnums[] values = EyeHighRiskEnums.values();
  42 + for (EyeHighRiskEnums value : values) {
  43 + if (value.id == i) {
  44 + return value.name;
  45 + }
  46 + }
  47 + return null;
  48 + }
  49 +
  50 + public static List<String> getName(List<String> ids) {
  51 + if(CollectionUtils.isEmpty(ids)) {
  52 + return null;
  53 + } else {
  54 + List<String> list = new ArrayList<>();
  55 + for (String id : ids) {
  56 + list.add(getName(id));
  57 + }
  58 + return list;
  59 + }
  60 + }
  61 +
  62 + EyeHighRiskEnums(Integer id, String name){
  63 + this.id = id;
  64 + this.name = name;
  65 + }
  66 +
  67 + public Integer getId() {
  68 + return id;
  69 + }
  70 +
  71 + public void setId(Integer id) {
  72 + this.id = id;
  73 + }
  74 +
  75 + public String getName() {
  76 + return name;
  77 + }
  78 +
  79 + public void setName(String name) {
  80 + this.name = name;
  81 + }
  82 +
  83 +}
platform-common/src/main/java/com/lyms/platform/common/enums/HandleOpinionsEnums.java View file @ ae1f148
  1 +package com.lyms.platform.common.enums;
  2 +
  3 +import com.lyms.platform.common.utils.StringUtils;
  4 +
  5 +/**
  6 + * 处理意见
  7 + */
  8 +public enum HandleOpinionsEnums {
  9 + ONE(1, "请于0月龄回院进行下次保健"),
  10 + TWO(2, "请于30-42天月龄回院进行下次保健"),
  11 + THREE(3, "请于3个月月龄回院进行下次保健"),
  12 + FOUR(4, "请于6个月月龄回院进行下次保健"),
  13 + FIVE(5, "请于9个月月龄回院进行下次保健"),
  14 + SIX(6, "请于1岁月龄回院进行下次保健"),
  15 + SEVEN(7, "请于1岁半月龄回院进行下次保健"),
  16 + EIGHT(8, "请于2岁月龄回院进行下次保健"),
  17 + NIGHT(9, "请于3岁月龄回院进行下次保健"),
  18 + TEN(10, "请于4岁月龄回院进行下次保健"),
  19 + ELEVEN(11, "请于5岁月龄回院进行下次保健"),
  20 + TWELVE(12, "请于6岁月龄回院进行下次保健");
  21 +
  22 + private Integer id;
  23 + private String name;
  24 +
  25 + public static HandleOpinionsEnums get(Integer id) {
  26 + HandleOpinionsEnums[] values = HandleOpinionsEnums.values();
  27 + for (HandleOpinionsEnums value : values) {
  28 + if (value.getId() == id) {
  29 + return value;
  30 + }
  31 + }
  32 + return null;
  33 + }
  34 +
  35 + public static String getName(String id) {
  36 + if(StringUtils.isEmpty(id)) {
  37 + return null;
  38 + }
  39 + int i = Integer.parseInt(id);
  40 + HandleOpinionsEnums[] values = HandleOpinionsEnums.values();
  41 + for (HandleOpinionsEnums value : values) {
  42 + if (value.id == i) {
  43 + return value.name;
  44 + }
  45 + }
  46 + return null;
  47 + }
  48 +
  49 + HandleOpinionsEnums(Integer id, String name){
  50 + this.id = id;
  51 + this.name = name;
  52 + }
  53 +
  54 + public Integer getId() {
  55 + return id;
  56 + }
  57 +
  58 + public void setId(Integer id) {
  59 + this.id = id;
  60 + }
  61 +
  62 + public String getName() {
  63 + return name;
  64 + }
  65 +
  66 + public void setName(String name) {
  67 + this.name = name;
  68 + }
  69 +
  70 +}
platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java View file @ ae1f148
... ... @@ -99,7 +99,7 @@
99 99 /**
100 100 * 处理意见
101 101 */
102   - private String handleOpinions;
  102 + private String handleOpinionsId;
103 103  
104 104 /**
105 105 * 指导意见
106 106  
... ... @@ -606,12 +606,12 @@
606 606 this.fundusResult = fundusResult;
607 607 }
608 608  
609   - public String getHandleOpinions() {
610   - return handleOpinions;
  609 + public String getHandleOpinionsId() {
  610 + return handleOpinionsId;
611 611 }
612 612  
613   - public void setHandleOpinions(String handleOpinions) {
614   - this.handleOpinions = handleOpinions;
  613 + public void setHandleOpinionsId(String handleOpinionsId) {
  614 + this.handleOpinionsId = handleOpinionsId;
615 615 }
616 616  
617 617 public String getGuidanceOpinions() {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java View file @ ae1f148
... ... @@ -64,10 +64,24 @@
64 64 return babyEyeCheckService.delete(id);
65 65 }
66 66  
  67 + /**
  68 + *
  69 + * @param startDate
  70 + * @param endDate
  71 + * @param doctor
  72 + * @param key 姓名/联系方式/就诊卡
  73 + * @param currentMonth 当前月龄
  74 + * @param chechMonth 检查月龄
  75 + * @param positive 是否是阳性
  76 + * @param page
  77 + * @param limit
  78 + * @param request
  79 + * @return
  80 + */
67 81 @ResponseBody
68 82 @RequestMapping(method = RequestMethod.GET)
69   - public BaseResponse list(Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, HttpServletRequest request) {
70   - return babyEyeCheckService.list(getUserId(request), startDate, endDate, doctor, key, currentMonth, chechMonth);
  83 + public BaseResponse list(Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, boolean positive, Integer page, Integer limit, HttpServletRequest request) {
  84 + return babyEyeCheckService.list(getUserId(request), startDate, endDate, doctor, key, currentMonth, chechMonth, positive, page, limit);
71 85 }
72 86  
73 87 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java View file @ ae1f148
... ... @@ -3,14 +3,13 @@
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
4 4 import com.lyms.platform.common.result.BaseResponse;
5 5 import com.lyms.platform.pojo.BabyEyeCheck;
6   -import com.lyms.platform.pojo.BabyEyePatient;
7 6  
8 7 import java.util.Date;
9 8  
10 9 /**
11 10 * Created by lt on 2017/8/5 0005
12 11 */
13   -public interface BabyEyeCheckService {
  12 +public interface BabyEyeCheckService extends IBaseService {
14 13 BaseObjectResponse init();
15 14  
16 15 BaseResponse addOrUpdate(Integer userId, BabyEyeCheck babyEyeCheck);
... ... @@ -21,7 +20,7 @@
21 20  
22 21 BaseResponse delete(String id);
23 22  
24   - BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth);
  23 + BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, boolean positive, Integer page, Integer limit);
25 24  
26 25 BaseResponse query(Integer userId, String babyId);
27 26 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java View file @ ae1f148
... ... @@ -4,19 +4,19 @@
4 4 import com.lyms.platform.common.enums.*;
5 5 import com.lyms.platform.common.result.BaseObjectResponse;
6 6 import com.lyms.platform.common.result.BaseResponse;
  7 +import com.lyms.platform.common.result.PageResult;
7 8 import com.lyms.platform.common.result.RespBuilder;
8 9 import com.lyms.platform.common.utils.*;
  10 +import com.lyms.platform.common.utils.ReflectionUtils;
  11 +import com.lyms.platform.common.utils.StringUtils;
9 12 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
10 13 import com.lyms.platform.operate.web.facade.BasicConfigFacade;
11 14 import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade;
12   -import com.lyms.platform.operate.web.result.BasicConfigResult;
13 15 import com.lyms.platform.operate.web.service.BabyEyeCheckService;
14 16 import com.lyms.platform.operate.web.utils.CollectionUtils;
15 17 import com.lyms.platform.operate.web.utils.MongoUtil;
16 18 import com.lyms.platform.permission.dao.master.BabyEyeCheckMapper;
17   -import com.lyms.platform.pojo.BabyEyeCheck;
18   -import com.lyms.platform.pojo.BabyModel;
19   -import com.lyms.platform.pojo.NewbornVisit;
  19 +import com.lyms.platform.pojo.*;
20 20 import org.springframework.beans.factory.annotation.Autowired;
21 21 import org.springframework.data.domain.Sort;
22 22 import org.springframework.data.mongodb.core.MongoTemplate;
... ... @@ -31,7 +31,7 @@
31 31 * Created by lt on 2017/8/5 0005
32 32 */
33 33 @Service
34   -public class BabyEyeCheckServiceImpl implements BabyEyeCheckService {
  34 +public class BabyEyeCheckServiceImpl extends BaseServiceImpl implements BabyEyeCheckService {
35 35 @Autowired
36 36 private BabyEyeCheckMapper babyEyeCheckMapper;
37 37  
... ... @@ -57,9 +57,9 @@
57 57 public BaseObjectResponse init() {
58 58 List<Map<String, Object>> addSubtract = EnumUtil.toJson(AddSubtractEnums.class); /** (+) (一) 其他 */
59 59 List<Map<String, Object>> checkMonth = EnumUtil.toJson(CheckMonthEnums.class); /** (检查时间 */
60   - List<BasicConfigResult> highRisk = basicConfigFacade.getBaseicConfigByParentId(SystemConfig.HIGH_RISK_ID); /** 高危因素 */
61   -
62   - return RespBuilder.buildSuccess("addSubtract", addSubtract, "checkMonth", checkMonth, "highRisk", highRisk);
  60 + List<Map<String, Object>> highRisk = EnumUtil.toJson(EyeHighRiskEnums.class); /** 眼保健高危因素 */
  61 + List<Map<String, Object>> handleOpinions = EnumUtil.toJson(HandleOpinionsEnums.class); /** 处理意见 */
  62 + return RespBuilder.buildSuccess("addSubtract", addSubtract, "checkMonth", checkMonth, "highRisk", highRisk, "handleOpinions", handleOpinions);
63 63 }
64 64  
65 65 @Override
66 66  
67 67  
68 68  
69 69  
... ... @@ -77,29 +77,86 @@
77 77 } else {
78 78 babyEyeCheck.setOperaterId(userId.toString());
79 79 Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyEyeCheck));
80   - mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyEyeCheck.getId())), update, NewbornVisit.class);
  80 + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyEyeCheck.getId())), update, BabyEyeCheck.class);
81 81 }
82 82 return RespBuilder.buildSuccess(babyEyeCheck.getId());
83 83 }
84 84  
85 85 @Override
86 86 public BaseResponse info(String id) {
87   - return null;
  87 + BabyEyeCheck babyEyeCheck = mongoTemplate.findById(id, BabyEyeCheck.class);
  88 + Map<String, Object> map = ReflectionUtils.beanToMap(babyEyeCheck);
  89 + map.put("handleOpinionsId", HandleOpinionsEnums.getName(babyEyeCheck.getHandleOpinionsId()));
  90 + map.put("riskFactorId", EyeHighRiskEnums.getName(babyEyeCheck.getRiskFactorId()));
  91 + CollectionUtils.removeNullValue(map);
  92 + return RespBuilder.buildSuccess(map);
88 93 }
89 94  
90 95 @Override
91 96 public BaseResponse edit(String id) {
92   - return null;
  97 + BabyEyeCheck babyEyeCheck = mongoTemplate.findById(id, BabyEyeCheck.class);
  98 + Map<String, Object> map = ReflectionUtils.beanToMap(babyEyeCheck);
  99 + CollectionUtils.removeNullValue(map);
  100 + return RespBuilder.buildSuccess(map);
93 101 }
94 102  
95 103 @Override
96 104 public BaseResponse delete(String id) {
97   - return null;
  105 + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(id)), Update.update("yn", "0"), BabyEyeCheck.class);
  106 + return RespBuilder.buildSuccess();
98 107 }
99 108  
100 109 @Override
101   - public BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth) {
102   - return null;
  110 + public BaseResponse list(Integer userId, Date startDate, Date endDate, String doctor, String key, String currentMonth, String chechMonth, boolean positive, Integer page, Integer limit) {
  111 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  112 + Criteria criteria = Criteria.where("yn").ne("0").and("hospitalId").is(hospitalId);
  113 + if(startDate != null && endDate != null) {
  114 + criteria.and("checkTime").gte(startDate).lt(DateUtil.addDay(endDate, 1));
  115 + }
  116 + if(org.apache.commons.lang.StringUtils.isNotBlank(doctor)) {
  117 + criteria.and("doctor").is(doctor);
  118 + }
  119 + if(org.apache.commons.lang.StringUtils.isNotBlank(key)) {
  120 + Criteria c = new Criteria();
  121 + c.orOperator(Criteria.where("mphone").is(key), Criteria.where("name").regex(key), Criteria.where("mcertNo").is(key)).and("yn").ne(0);
  122 + List<BabyModel> babyModels = mongoUtil.findField(BabyModel.class, c, "id");
  123 + List<String> babyIds = CollectionUtils.getId(babyModels, "id", String.class);
  124 + criteria.and("babyId").in(babyIds);
  125 + }
  126 + if(positive) {
  127 + Query query = new Query(criteria);
  128 + query.with(new Sort(Sort.Direction.DESC, "checkTime"));
  129 + List<BabyEyeCheck> babyEyeChecks = mongoTemplate.find(query, BabyEyeCheck.class);
  130 + }
  131 + PageResult pageResult = findMongoPage(BabyEyeCheck.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "checkTime")), page, limit);
  132 + List<BabyEyeCheck> babyEyeChecks = (List<BabyEyeCheck>) pageResult.getGrid();
  133 + List<Map<String, Object>> restMap = new ArrayList<>();
  134 + for (BabyEyeCheck babyEyeCheck : babyEyeChecks) {
  135 + Map<String, Object> temp = new HashMap<>();
  136 + temp.put("id", babyEyeCheck.getId());
  137 + BabyModel babyModel = mongoTemplate.findById(babyEyeCheck.getBabyId(), BabyModel.class);
  138 + if(babyModel != null) {
  139 + temp.put("name", babyModel.getName());
  140 + if(babyModel.getSex() != null) {
  141 + temp.put("sex", SexEnum.getTextById(babyModel.getSex()));
  142 + }
  143 + String parentId = babyModel.getParentId();
  144 + if(StringUtils.isNotEmpty(parentId)) {
  145 + Patients patients = mongoTemplate.findById(parentId, Patients.class);
  146 + if(patients != null) {
  147 + temp.put("mname", patients.getUsername());
  148 + }
  149 + }
  150 + temp.put("birth", DateUtil.getYyyyMmDd( babyModel.getBirth()));
  151 + }
  152 + if(StringUtils.isNotEmpty(babyEyeCheck.getCheckMonthId())) {
  153 + temp.put("checkMonth", CheckMonthEnums.getName(babyEyeCheck.getCheckMonthId())); /** 检查月龄 */;
  154 + }
  155 + CollectionUtils.removeNullValue(temp);
  156 + restMap.add(temp);
  157 + }
  158 + pageResult.setGrid(restMap);
  159 + return RespBuilder.buildSuccess(pageResult);
103 160 }
104 161  
105 162 @Override