diff --git a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java index 59a105b..7e8a2eb 100644 --- a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java +++ b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java @@ -23,6 +23,8 @@ public enum SerialIdEnum { Cookbook("Cookbook", 97231020081L), BabyVisitModel("BabyVisitModel", 97531000090L), BasicConfig("BasicConfig", 97531000100L), + CheckItemOrder("CheckItemOrder", 97531500100L), + CheckItemConfig("CheckItemConfig", 97531320100L), BCInventoryModel("BCInventoryModel", 97531000110L), BCTransferInHistoryModel("BCTransferInHistoryModel", 97531000120L), CommunityConfig("CommunityConfig", 97531000130L), diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemConfig.java b/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemConfig.java new file mode 100644 index 0000000..7e241db --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemConfig.java @@ -0,0 +1,90 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.beans.SerialIdEnum; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + + +/** + * 处方报表基础项配置 + */ +@Document(collection="lyms_check_item_config") +public class CheckItemConfig extends BaseModel { + + private static final long serialVersionUID = SerialIdEnum.CheckItemConfig.getCid(); + + private String id; + private String hospitalId; + private String name; + private Integer startWeek; + private Integer endWeek; + private Integer enable; + private Date created; + private Date modified; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getStartWeek() { + return startWeek; + } + + public void setStartWeek(Integer startWeek) { + this.startWeek = startWeek; + } + + public Integer getEndWeek() { + return endWeek; + } + + public void setEndWeek(Integer endWeek) { + this.endWeek = endWeek; + } + + public Integer getEnable() { + return enable; + } + + public void setEnable(Integer enable) { + this.enable = enable; + } + + 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; + } +} \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java b/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java new file mode 100644 index 0000000..6e83e2b --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/CheckItemOrder.java @@ -0,0 +1,72 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.beans.SerialIdEnum; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + + +/** + * 处方计划内容 + */ +@Document(collection="lyms_check_item_order") +public class CheckItemOrder extends BaseModel { + + private static final long serialVersionUID = SerialIdEnum.CheckItemOrder.getCid(); + + private String id; + private String itemId; + private String patientId; + private Date nextCheckTime; + private String hospitalId; + private Date created; + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public Date getNextCheckTime() { + return nextCheckTime; + } + + public void setNextCheckTime(Date nextCheckTime) { + this.nextCheckTime = nextCheckTime; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } +} \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java index 9014fb8..c43aa02 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java @@ -49,6 +49,9 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery private Date birthEnd; private Date birthStart; + private Date nextCheckTimeStart; + private Date nextCheckTimeEnd; + //户籍地 private String provinceRegisterId; private String cityRegisterId; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java index cdcbf05..9e5e5db 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java @@ -471,4 +471,33 @@ public class AntenatalExaminationController extends BaseController { return antExRecordFacade.zd(); }*/ + /** + *处方计划报表 + * @param orderTime 预约时间 + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getPlanReport") + @ResponseBody + @TokenRequired + public BaseResponse getPlanReport(@RequestParam String orderTime, HttpServletRequest request) { + return antExRecordFacade.getPlanReport(orderTime,getUserId(request)); + } + + /** + * 处方实际报表 + * @param checkTime 产检时间 + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getActualReport") + @ResponseBody + @TokenRequired + public BaseResponse getActualReport(@RequestParam String checkTime, HttpServletRequest request) { + return antExRecordFacade.getActualReport(checkTime,getUserId(request)); + } + + + + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BasicConfigController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BasicConfigController.java index 2f4ed6c..940f043 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BasicConfigController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BasicConfigController.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.result.BaseListResponse; @@ -10,11 +11,13 @@ import com.lyms.platform.operate.web.request.BasicConfigAddRequest; import com.lyms.platform.operate.web.request.BasicConfigQueryRequest; import com.lyms.platform.operate.web.request.BasicConfigUpdateRequest; import com.lyms.platform.operate.web.result.FrontEndResult; +import com.lyms.platform.pojo.CheckItemConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -187,4 +190,41 @@ public class BasicConfigController extends BaseController { public BaseResponse getHighRisk() { return basicConfigFacade.getHighRisk(); }*/ + + + /** + *查询处方计划配置项c + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/queryCheckItemConfig") + @ResponseBody + @TokenRequired + public BaseResponse queryCheckItemConfig( HttpServletRequest request) { + return basicConfigFacade.queryCheckItemConfig(getUserId(request)); + } + + /** + * 添加 + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/addCheckItemConfig") + @ResponseBody + @TokenRequired + public BaseResponse addCheckItemConfig(@Valid CheckItemConfig itemConfig,HttpServletRequest request) { + return basicConfigFacade.addCheckItemConfig(itemConfig,getUserId(request)); + } + + /** + * 删除 + * @param id + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.DELETE, value = "/deleteCheckItemConfig/{id}") + @ResponseBody + @TokenRequired + public BaseResponse addCheckItemConfig(@PathVariable String id,HttpServletRequest request) { + return basicConfigFacade.deleteCheckItemConfig(id); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index 94fb0dc..89dfb27 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -1287,5 +1287,38 @@ public class AntExRecordFacade { return sb.toString().toUpperCase(); } + public BaseResponse getPlanReport(String orderTime, Integer userId) { + Map data = new HashMap<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + if (orderTime != null) + { + String[] arrs = orderTime.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + long count = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), CheckItemOrder.class); + data.put("allCount",String.valueOf(count)); + + List itemConfigs = mongoTemplate.find(Query.query(Criteria.where("hospitalId").is(hospitalId)), CheckItemConfig.class); + if (CollectionUtils.isNotEmpty(itemConfigs)) + { + List list = new ArrayList<>(); + for (CheckItemConfig item : itemConfigs) + { + long itemCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("itemId").is(item.getId())), CheckItemOrder.class); + Map map = new HashMap<>(); + map.put("itemName",item.getName()); + map.put("itemCount",String.valueOf(itemCount)); + list.add(map); + } + data.put("itemList",list); + } + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setErrormsg("成功"); + } + + public BaseResponse getActualReport(String checkTime, Integer userId) { + + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(null).setErrormsg("成功"); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 5651057..35f641f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -410,8 +410,8 @@ public class AntenatalExaminationFacade { commonThreadPool.execute(new Runnable() { @Override public void run() { + Patients patients = patientsService.findOnePatientById(antExamModel.getParentId()); try { - Patients patients = patientsService.findOnePatientById(antExamModel.getParentId()); if (patients != null) { patients.setVcCardNo(antExAddRequest.getVcCardNo()); //发送推送消息 @@ -490,6 +490,16 @@ public class AntenatalExaminationFacade { // zcPrenatalService.saveAntexFu(antExamModel); // } + try { + //处方计划 + if (antExamModel.getNextCheckTime() != null) + { + saveCheckItem(antExamModel.getNextCheckTime(),patients); + } + } catch (Exception e) { + e.printStackTrace(); + } + } }); @@ -1117,10 +1127,40 @@ public class AntenatalExaminationFacade { // { // zcPrenatalService.saveAntexChu(antExChuModel); // } + + + try { + //处方计划 + if (excAddRequest.getNextCheckTime() != null) + { + saveCheckItem(DateUtil.parseYMD(excAddRequest.getNextCheckTime()),patients); + } + } catch (Exception e) { + e.printStackTrace(); + } } }); } - + public void saveCheckItem(Date nextCheckTime,Patients patients) + { + List itemConfigs = mongoTemplate.find(Query.query(Criteria.where("hospitalId").is(patients.getHospitalId())), CheckItemConfig.class); + if (CollectionUtils.isNotEmpty(itemConfigs)) + { + for(CheckItemConfig checkItemConfig : itemConfigs) + { + int currentWeek = DateUtil.getWeek(patients.getLastMenses(),nextCheckTime); + if (checkItemConfig.getStartWeek() <= currentWeek && checkItemConfig.getEndWeek() >= currentWeek) + { + CheckItemOrder order = new CheckItemOrder(); + order.setCreated(new Date()); + order.setNextCheckTime(nextCheckTime); + order.setItemId(checkItemConfig.getId()); + order.setPatientId(patients.getId()); + mongoTemplate.save(order); + } + } + } + } /** * 初诊、复诊添加或更新追访信息 @@ -2358,6 +2398,8 @@ public class AntenatalExaminationFacade { } + + public class SortIn { public SortIn(Patients patients) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BasicConfigFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BasicConfigFacade.java index 0cf9306..ccfdf0e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BasicConfigFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BasicConfigFacade.java @@ -17,12 +17,16 @@ import com.lyms.platform.operate.web.result.BasicConfigResult; import com.lyms.platform.operate.web.result.TreeNode; import com.lyms.platform.operate.web.utils.TreeHelper; import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.pojo.CheckItemConfig; +import com.lyms.platform.pojo.ModularFunctionConfigModel; import com.lyms.platform.query.BasicConfigQuery; import com.mongodb.Mongo; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.authentication.UserCredentials; 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.stereotype.Component; import java.util.*; @@ -33,6 +37,10 @@ public class BasicConfigFacade { private BasicConfigService basicConfigService; private static List mainBasicConfigList; + @Autowired + private AutoMatchFacade autoMatchFacade; + @Autowired + private MongoTemplate mongoTemplate; /** * 获取新版的高危因数 @@ -574,4 +582,27 @@ public class BasicConfigFacade { map.put("towns", towns); return new BaseObjectResponse().setData(map).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } + + public BaseResponse queryCheckItemConfig(Integer userId) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + List itemConfigs = mongoTemplate.find(Query.query(Criteria.where("hospitalId").is(hospitalId)), CheckItemConfig.class); + + return new BaseObjectResponse().setData(itemConfigs).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } + + public BaseResponse addCheckItemConfig(CheckItemConfig itemConfig,Integer userId) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + itemConfig.setHospitalId(hospitalId); + itemConfig.setCreated(new Date()); + itemConfig.setModified(new Date()); + mongoTemplate.save(itemConfig); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } + + + public BaseResponse deleteCheckItemConfig(String id) { + mongoTemplate.remove(Query.query(Criteria.where("_id").is(id)), CheckItemConfig.class); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } + } \ No newline at end of file