diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartModel.java index 2916941..8f516b2 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartModel.java @@ -17,7 +17,8 @@ public class BabyHeartModel extends BaseModel { private String id; private String babyId; - + // 1 72小时内检查 42天检查 + private Integer type; //心脏听诊 private String heartTz; @@ -54,6 +55,14 @@ public class BabyHeartModel extends BaseModel { private Date created; private Date modified; + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + public Date getSieveDate() { return sieveDate; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartReviewModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartReviewModel.java new file mode 100644 index 0000000..5152475 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyHeartReviewModel.java @@ -0,0 +1,104 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +@Document(collection = "lyms_baby_heart_review") +public class BabyHeartReviewModel extends BaseModel { + //超声心动图 + private String csxdt; + //心电图 + private String xdt; + //X线 + private String xx; + + private String id; + private String babyId; + private String hospitalId; + private Date checkDate; + private Date created; + private Date modified; + private String checkDoctor; + + public String getCsxdt() { + return csxdt; + } + + public void setCsxdt(String csxdt) { + this.csxdt = csxdt; + } + + public String getXdt() { + return xdt; + } + + public void setXdt(String xdt) { + this.xdt = xdt; + } + + public String getXx() { + return xx; + } + + public void setXx(String xx) { + this.xx = xx; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getBabyId() { + return babyId; + } + + public void setBabyId(String babyId) { + this.babyId = babyId; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public Date getCheckDate() { + return checkDate; + } + + public void setCheckDate(Date checkDate) { + this.checkDate = checkDate; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + + public String getCheckDoctor() { + return checkDoctor; + } + + public void setCheckDoctor(String checkDoctor) { + this.checkDoctor = checkDoctor; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHeartSieveController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHeartSieveController.java index 6fbcbe8..7a2f246 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHeartSieveController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHeartSieveController.java @@ -10,6 +10,7 @@ import com.lyms.platform.operate.web.facade.BabySieveFacede; import com.lyms.platform.operate.web.request.BabyHeartSieveRequest; import com.lyms.platform.operate.web.request.BabySieveAddQhdRequest; import com.lyms.platform.operate.web.request.BabySieveAddRequest; +import com.lyms.platform.pojo.BabyHeartReviewModel; import com.lyms.platform.pojo.NewSieveLabModel; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -58,6 +59,14 @@ public class BabyHeartSieveController extends BaseController{ } + + @TokenRequired + @ResponseBody + @RequestMapping(value = "/queryBabyHeartRecords/{babyId}",method = RequestMethod.GET) + public BaseResponse queryBabyHeartRecords(@PathVariable("babyId") String babyId,HttpServletRequest request) { + return babyHeartSieveFacede.queryBabyHeartRecords(babyId); + } + @TokenRequired @ResponseBody @RequestMapping(value = "/queryBabyHeartList",method = RequestMethod.GET) @@ -96,4 +105,35 @@ public class BabyHeartSieveController extends BaseController{ } + @TokenRequired + @ResponseBody + @RequestMapping(value = "/addBabyHeartReview",method = RequestMethod.POST) + public BaseResponse addBabyHeartReview(@RequestBody @Valid BabyHeartReviewModel babyHeartReviewModel, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return babyHeartSieveFacede.addBabyHeartReview(babyHeartReviewModel, loginState.getId()); + } + @TokenRequired + @ResponseBody + @RequestMapping(value = "/queryBabyHeartReviewList",method = RequestMethod.POST) + public BaseResponse queryBabyHeartReviewList(@RequestParam(value = "queryNo", required = false) String queryNo, + @RequestParam(value = "checkDate", required = false) String checkDate, + @RequestParam("page") Integer page, + @RequestParam("limit") Integer limit, + HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return babyHeartSieveFacede.queryBabyHeartReviewList(queryNo,checkDate,page,limit, loginState.getId()); + } + + @TokenRequired + @ResponseBody + @RequestMapping(value = "/queryBabyHeartReviewById/{id}",method = RequestMethod.GET) + public BaseResponse queryBabyHeartReviewById(@PathVariable("id") String id,HttpServletRequest request) { + return babyHeartSieveFacede.queryBabyHeartReviewById(id); + } + @TokenRequired + @ResponseBody + @RequestMapping(value = "/queryBabyHeartReviewView/{id}",method = RequestMethod.GET) + public BaseResponse queryBabyHeartReviewView(@PathVariable("id") String id,HttpServletRequest request) { + return babyHeartSieveFacede.queryBabyHeartReviewView(id); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHeartSieveFacede.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHeartSieveFacede.java index ae0eec1..ab626c8 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHeartSieveFacede.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHeartSieveFacede.java @@ -1,45 +1,30 @@ package com.lyms.platform.operate.web.facade; -import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.dao.BaseQuery; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseListResponse; 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.BabyHeartSieveRequest; -import com.lyms.platform.operate.web.request.BabySieveAddQhdRequest; -import com.lyms.platform.operate.web.request.BabySieveAddRequest; import com.lyms.platform.operate.web.result.*; -import com.lyms.platform.operate.web.utils.BabySieveHandleTask; -import com.lyms.platform.operate.web.utils.BabySieveQhdHandleTask; -import com.lyms.platform.operate.web.utils.CommonsHelper; -import com.lyms.platform.permission.model.Organization; 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 net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; -import java.io.File; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; /** * 新生儿筛查 @@ -47,42 +32,21 @@ import java.util.concurrent.Future; */ @Component public class BabyHeartSieveFacede { - - @Autowired - @Qualifier("commonThreadPool") - private ThreadPoolTaskExecutor commonThreadPool; - @Autowired - private BasicConfigService basicConfigService; @Autowired private AutoMatchFacade autoMatchFacade; - @Autowired - private PatientsService patientsService; - @Autowired - private MatDeliverService matDeliverService; + @Autowired private BabyHeartSieveService babyHeartSieveService; - @Autowired - private BabySieveQhdService babySieveQhdService; - @Autowired - private BabyBookbuildingService babyBookbuildingService; + @Autowired private OrganizationService organizationService; - @Autowired - private OperateLogFacade operateLogFacade; - @Autowired - private AntenatalExaminationFacade antenatalExaminationFacade; + @Autowired private BabyService babyService; @Autowired private MongoTemplate mongoTemplate; @Autowired - private SmsConfigFacade smsConfigFacade; - @Autowired private UsersService usersService; - @Autowired - private LhBabyEyeCheckService lhBabyEyeCheckService; - - public BaseResponse addBabyHeartSieve(BabyHeartSieveRequest babyHeartSieveRequest, Integer userId) { String hospitalId = autoMatchFacade.getHospitalId(userId); @@ -175,6 +139,7 @@ public class BabyHeartSieveFacede { data.put("mommyName",babyModel.getMname()); data.put("mommyPhone",babyModel.getMphone()); data.put("mommyCardNo",babyModel.getMcertNo()); + data.put("type",babyHeartModel.getType() == null ? "" : (babyHeartModel.getType() == 1 ? "72小时内": "42天")); data.put("sieveDate",DateUtil.getyyyy_MM_dd(babyHeartModel.getSieveDate())); data.put("sieveResult",babyHeartModel.getSieveResult() == null ? "" : (babyHeartModel.getSieveResult() == 1 ? "异常": "未见异常")); data.put("diagnoseResult",babyHeartModel.getDiagnoseResult() == null ? "" : (babyHeartModel.getDiagnoseResult() == 1 ? "异常": "未见异常")); @@ -207,7 +172,24 @@ public class BabyHeartSieveFacede { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(datas); } - + public BaseResponse queryBabyHeartRecords(String babyId) { + List datas = new ArrayList<>(); + BabyHeartSieveQuery query = new BabyHeartSieveQuery(); + query.setBabyId(babyId); + List babyHeartModelList = babyHeartSieveService.getBabyHeartQuery(query); + if (CollectionUtils.isNotEmpty(babyHeartModelList)) { + for (BabyHeartModel heartModel : babyHeartModelList) + { + Map data = new HashMap(); + data.put("id",heartModel.getId()); + data.put("sieveDate",DateUtil.getyyyy_MM_dd(heartModel.getSieveDate())); + data.put("type",heartModel.getType() == null ? "" : (heartModel.getType() == 1 ? "72小时内": "42天")); + datas.add(data); + } + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) + .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(datas); + } public BaseResponse queryBabyHeartView(String id) { BabyHeartModel babyHeartModel = babyHeartSieveService.getBabyHeartSieveId(id); BabyHeartModelView view = new BabyHeartModelView(); @@ -225,10 +207,123 @@ public class BabyHeartSieveFacede { hd.append(","); } } + view.setType(babyHeartModel.getType() == null ? "" : (babyHeartModel.getType() == 1 ? "72小时内": "42天")); view.setDiagnoseItem(hd.toString()); view.setCheckDoctor(usersService.getUsers(Integer.parseInt(babyHeartModel.getCheckDoctor())).getName()); view.setHospitalName(organizationService.getOrganizationName(babyHeartModel.getHospitalId())); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(view); } + + public BaseResponse addBabyHeartReview(BabyHeartReviewModel babyHeartReviewModel, Integer userId) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + if (StringUtils.isNotEmpty(babyHeartReviewModel.getId())) + { + Query query = Query.query(Criteria.where("id").is(babyHeartReviewModel.getId())); + babyHeartReviewModel.setModified(new Date()); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(babyHeartReviewModel)); + mongoTemplate.updateFirst(query, update, BabyHeartReviewModel.class); + } + else + { + babyHeartReviewModel.setModified(new Date()); + babyHeartReviewModel.setCreated(new Date()); + babyHeartReviewModel.setHospitalId(hospitalId); + mongoTemplate.insert(babyHeartReviewModel); + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) + .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); + } + + public BaseResponse queryBabyHeartReviewList(String queryNo, String checkDate, Integer page, Integer limit, Integer userId) { + List list = new ArrayList<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + List babyList = new ArrayList<>(); + if (StringUtils.isNotEmpty(queryNo)) + { + BabyModelQuery babyQuery = new BabyModelQuery(); + babyQuery.setHospitalId(hospitalId); + babyQuery.setQueryNo(queryNo); + List babyModels = babyService.queryBabyWithQuery(babyQuery); + if (CollectionUtils.isNotEmpty(babyModels)) + { + for (BabyModel babyModel : babyModels) + { + babyList.add(babyModel.getId()); + } + } + else + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) + .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(list); + } + } + Query query = new Query(); + if (StringUtils.isNotEmpty(checkDate)) + { + String[] arrs = checkDate.split(" - "); + Date startDate = DateUtil.getDayFirstSecond(DateUtil.parseYMD(arrs[0])); + Date endDate = DateUtil.getDayLastSecond(DateUtil.parseYMD(arrs[1])); + query.addCriteria(Criteria.where("checkDate").gte(startDate).lte(endDate)); + } + + if (CollectionUtils.isNotEmpty(babyList)) + { + query.addCriteria(Criteria.where("babyId").in(babyList)); + } + query.with(new Sort(Sort.Direction.DESC, "created")); + long count = mongoTemplate.count(query, BabyHeartReviewModel.class); + BaseQuery baseQuery = new BaseQuery(); + baseQuery.mysqlBuild((int) count); + baseQuery.setPage(page); + baseQuery.setLimit(limit); + query.skip(baseQuery.getOffset()).limit(baseQuery.getLimit()); + List babyHeartModelList = mongoTemplate.find(query, BabyHeartReviewModel.class); + if (CollectionUtils.isNotEmpty(babyHeartModelList)) + { + for (BabyHeartReviewModel model : babyHeartModelList) + { + Map data = new HashMap(); + BabyModel babyModel = babyService.getOneBabyById(model.getBabyId()); + data.put("babyName",babyModel.getName()); + data.put("babyAge",DateUtil.getAge2(babyModel.getBirth(),new Date())); + data.put("mommyName",babyModel.getMname()); + data.put("mommyPhone",babyModel.getMphone()); + data.put("mommyCardNo",babyModel.getMcertNo()); + data.put("xdt",model.getXdt()); + data.put("xx",model.getXx()); + data.put("csxdt",model.getCsxdt()); + data.put("checkDate",DateUtil.getyyyy_MM_dd(model.getCheckDate())); + list.add(data); + } + } + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS) + .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(list).setPageInfo(baseQuery.getPageInfo()); + } + + public BaseResponse queryBabyHeartReviewById(String id) { + Query query = new Query(); + query.addCriteria(Criteria.where("id").is(id)); + BabyHeartReviewModel one = mongoTemplate.findOne(query, BabyHeartReviewModel.class); + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) + .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(one); + } + + public BaseResponse queryBabyHeartReviewView(String id) { + Query query = new Query(); + query.addCriteria(Criteria.where("id").is(id)); + BabyHeartReviewModel one = mongoTemplate.findOne(query, BabyHeartReviewModel.class); + Map data = new HashMap(); + data.put("csxdt",one.getCsxdt()); + data.put("xdt",one.getXdt()); + data.put("xx",one.getXx()); + data.put("checkDate",DateUtil.getyyyy_MM_dd(one.getCheckDate())); + data.put("checkDoctor",usersService.getUsers(Integer.parseInt(one.getCheckDoctor())).getName()); + data.put("hospitalName",organizationService.getOrganizationName(one.getHospitalId())); + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS) + .setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(data); + } + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyHeartSieveRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyHeartSieveRequest.java index 1b473e3..a347889 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyHeartSieveRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyHeartSieveRequest.java @@ -15,6 +15,9 @@ public class BabyHeartSieveRequest implements IBasicRequestConvert