diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StopPregnancyController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StopPregnancyController.java index bbb3228..d09c46c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StopPregnancyController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StopPregnancyController.java @@ -6,6 +6,7 @@ import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.StopPregnancyFacade; +import com.lyms.platform.operate.web.request.PatientIdStopPregRequest; import com.lyms.platform.operate.web.request.StopPregRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -44,6 +45,21 @@ public class StopPregnancyController extends BaseController { } /** + * 根据档案id 终止妊娠 + * + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/patientIdStopPreg") + @ResponseBody + @TokenRequired + public BaseResponse patientIdStopPreg(@Valid @RequestBody PatientIdStopPregRequest params, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return stopPregnancyFacade.patientIdStopPreg(params, loginState.getId()); + } + + + /** * 查询终止妊娠记录 * * @param id 孕妇建档Id diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java index feea446..2902bbd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java @@ -8,6 +8,7 @@ import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.request.PatientIdStopPregRequest; import com.lyms.platform.operate.web.request.StopPregRequest; import com.lyms.platform.operate.web.result.AntexListResult; import com.lyms.platform.operate.web.result.StopPregResult; @@ -27,6 +28,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; +import javax.rmi.CORBA.Util; import java.util.*; /** @@ -260,6 +262,106 @@ public class StopPregnancyFacade { objectResponse.setErrormsg("成功"); return objectResponse; } + /** + * 根据档案id 终止妊娠 + * + * @param request + * @return + */ + public BaseResponse patientIdStopPreg(PatientIdStopPregRequest request, Integer userId) { + + String hospital = autoMatchFacade.getHospitalId(userId); + //获取档案信息不区分产妇还是孕妇 + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setId(request.getPatientId()); + Patients pat = null; + List patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + if (CollectionUtils.isNotEmpty(patients)) { + + //判断是否为重复分娩/终止妊娠 + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setParentId(request.getPatientId()); + matDeliverQuery.setYn(YnEnums.YES.getId()); + matDeliverQuery.setDueDate(request.getStopDate()); + List list2 = matDeliverService.query(matDeliverQuery); + StopPregQuery stopPregQuery = new StopPregQuery(); + stopPregQuery.setYn(YnEnums.YES.getId()); + stopPregQuery.setStopDateStart(DateUtil.parseYMD(request.getStopDate())); + stopPregQuery.setStopDateEnd(DateUtil.parseYMDEnd(request.getStopDate())); + stopPregQuery.setPatientId(request.getPatientId()); + List models = stopPregnancyService.queryStopPreg(stopPregQuery); + if (CollectionUtils.isNotEmpty(list2) || CollectionUtils.isNotEmpty(models)) { + return new BaseResponse().setErrorcode(ErrorCodeConstants.DATA_EXIST).setErrormsg("同一天只能建一次分娩/终止妊娠"); + } + String groupId = groupsFacade.findByCurrentUserId(request.getHospitalId()); + List hos = groupsFacade.findGroupHospital(userId, false); + + Patients patient = patients.get(0); + if (patient != null) { + //自动分娩档案不更新PersonModel,1孕妇修改 + if(patient.getType()!=null && patient.getType()==1){ + PersonModel pmodel = new PersonModel(); + pmodel.setType(3); + pmodel.setModified(new Date()); + personService.updatePerson(pmodel, request.getPid()); + } + + String hid = patient.getHospitalId(); + if (StringUtils.isNotEmpty(groupId) && CollectionUtils.isNotEmpty(hos) && hos.contains(hospital)) { + pat = patient; + } else if (StringUtils.isNotEmpty(hid) && hid.equals(request.getHospitalId())) { + pat = patient; + } + patient.setModified(new Date()); + //终止妊娠状态 + patient.setDueStatus(1); + if (patient.getServiceType() != null) { + //更新状态为过期 + //判断其为增值服务还是 标准服务 + if (patient.getServiceType() == ServiceTypeEnums.STANDARD_SERVICE.getId()) { + patient.setServiceStatus(ServiceStatusEnums.STANDARD_OVERDUE.getId()); + } else if (patient.getServiceType() == ServiceTypeEnums.ADD_SERVICE.getId()) { + patient.setServiceStatus(ServiceStatusEnums.ADD_OVERDUE.getId()); + } + } + patient.setFmDate(DateUtil.parseYMD(request.getStopDate())); + patient.setType(3); + sieveService.deleteSieve(pat.getId(), hospital, pat.getLastMenses()); + //分娩状态 0未终止妊娠 1终止妊娠 + yunBookbuildingService.updatePregnant(patient, patient.getId()); + //终止妊娠生成追访信息 + addTrackDownInfo(userId, patient); + } + } + + if (pat == null) { + BaseResponse objectResponse = new BaseResponse(); + objectResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); + objectResponse.setErrormsg("数据异常"); + return objectResponse; + } + + StopPregModel model = getPatientIdStopPregModel(request); + model.setPatientId(pat.getId()); + model.setCreated(new Date()); + model.setModified(new Date()); + + stopPregnancyService.addStopPreg(model); + operateLogFacade.addAddOptLog(userId, Integer.parseInt(hospital), model, OptActionEnums.ADD.getId(), "添加终止妊娠"); + + /** 作废产检劵 */ + //"11=产筛券",其它地方作废优惠劵没有对产筛卷处理这里先使用一段时间(start20201029) + couponService.invalid(pat.getPid(), "2,4,11"); + + //作废产检劵 + patientCheckTicketService.cancelCheckTicket(hospital, pat.getId()); + + BaseResponse objectResponse = new BaseResponse(); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } /** * 初诊、复诊添加或更新追访信息 @@ -305,7 +407,18 @@ public class StopPregnancyFacade { return model; } + private StopPregModel getPatientIdStopPregModel(PatientIdStopPregRequest request) { + StopPregModel model = new StopPregModel(); + model.setPid(request.getPid()); + model.setYn(YnEnums.YES.getId()); + model.setInPerson(request.getInPerson()); + model.setRemark(request.getRemark()); + model.setHospitalId(request.getHospitalId()); + model.setStopDate(DateUtil.parseYMD(request.getStopDate())); + model.setStopReason(JsonUtil.obj2JsonString(request.getStopReason())); + return model; + } /** * 查询终止妊娠 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PatientIdStopPregRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PatientIdStopPregRequest.java new file mode 100644 index 0000000..341f533 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PatientIdStopPregRequest.java @@ -0,0 +1,108 @@ +package com.lyms.platform.operate.web.request; + +import com.lyms.platform.common.core.annotation.form.FormParam; +import org.hibernate.validator.constraints.NotEmpty; + +import java.util.Map; + +/** + * 自动分娩使用,终止妊娠对象 + * + * @Author: 武涛涛 + * @Date: 2020/10/29 15:29 + */ +public class PatientIdStopPregRequest { + private String id; + //孕妇建档基本信息ID + private String pid; + + //档案id + @FormParam + @NotEmpty(message = "patientId不能为空.") + private String patientId; + + + //终止原因 + private Map stopReason; + + //备注 + private String remark; + + //终止妊娠日期 + @FormParam + @NotEmpty(message = "终止妊娠日期不能为空.") + private String stopDate; + + //录入人 + @FormParam + @NotEmpty(message = "录入人不能为空.") + private String inPerson; + + //医院ID + @FormParam + private String hospitalId; + + public String getId() { + return id; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public void setId(String id) { + this.id = id; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public Map getStopReason() { + return stopReason; + } + + public void setStopReason(Map stopReason) { + this.stopReason = stopReason; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getStopDate() { + return stopDate; + } + + public void setStopDate(String stopDate) { + this.stopDate = stopDate; + } + + public String getInPerson() { + return inPerson; + } + + public void setInPerson(String inPerson) { + this.inPerson = inPerson; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } +}