From 23bd89ff6dc35184ddecf92a42815f29f7b8698f Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 14 Sep 2022 11:52:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=86=E5=8C=96=E5=A9=9A=E6=A3=80=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=92=8C=E8=82=8C=E8=90=8E=E7=BC=A9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/biz/service/PatientsService.java | 67 ++++ .../main/java/com/lyms/platform/pojo/SmnModel.java | 402 +++++++++++++++++++++ .../com/lyms/hospitalapi/lhxfy/LhxfyService.java | 7 + .../operate/web/controller/SmnController.java | 70 ++++ .../operate/web/controller/TestController.java | 56 ++- .../platform/operate/web/facade/SmnFacade.java | 204 +++++++++++ .../operate/web/request/SmnQueryRequest.java | 131 +++++++ .../platform/operate/web/request/SmnRequest.java | 6 + .../web/service/impl/PreEugebicsServiceImpl.java | 7 - 9 files changed, 935 insertions(+), 15 deletions(-) create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnRequest.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java index a2c929a..25d403e 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java @@ -15,8 +15,10 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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.stereotype.Service; @@ -33,6 +35,9 @@ public class PatientsService { public static final String his_version = PropertiesUtils.getPropertyValue("his_version"); @Autowired private MatDeliverService matDeliverService; + + @Autowired + private MongoTemplate mongoTemplate; @Autowired private IPatientDao iPatientDao; @Autowired @@ -195,6 +200,37 @@ public class PatientsService { } /** + * 添加肌萎缩 10 -14周 + */ + public void addSmnJob() { + Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -70); + Date start = DateUtil.addDay(DateUtil.formatDate(new Date()), -98); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setLastMensesEnd(endDate); + patientsQuery.setLastMensesStart(start); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setDueStatus(0); + patientsQuery.setType(1); + List patientses = iPatientDao.queryPatient(patientsQuery.convertToQuery()); + int batchSize = 200; + if (CollectionUtils.isNotEmpty(patientses)) { + + int end = 0; + List patient; + for (int i = 0; i < patientses.size(); ) { + end = i + batchSize; + if (end > patientses.size()) { + end = patientses + .size(); + } + patient = patientses.subList(i, end); + i += batchSize; + new Thread(new PatientSmnWorker(patient)).start(); + } + } + } + + /** * 满足孕15+3至20+6之间和有产筛申请单的数据 */ public void addSieveJob() { @@ -974,7 +1010,38 @@ public class PatientsService { public List predictedStatistics() { return iPatientDao.predictedStatistics(); } + private class PatientSmnWorker extends Thread { + private List patientses; + private long startTime; + + private PatientSmnWorker(List patientses) { + this.patientses = patientses; + startTime = System.currentTimeMillis(); + } + + @Override + public void run() { + if (CollectionUtils.isNotEmpty(patientses)) + { + for (Patients patient : patientses) { + Query query = Query.query(Criteria.where("patientId").is(patient.getId())); + List smnModels = mongoTemplate.find(query, SmnModel.class); + if (CollectionUtils.isEmpty(smnModels)) + { + SmnModel smnModel = new SmnModel(); + BeanUtils.copyProperties(patient,smnModel); + smnModel.setStatus(1); + smnModel.setCreated(new Date()); + smnModel.setPatientId(patient.getId()); + smnModel.setId(null); + smnModel.setYn(YnEnums.YES.getId()); + mongoTemplate.save(smnModel); + } + } + } + } + } private class PatientWorker extends Thread { private List patientses; diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java new file mode 100644 index 0000000..39a2766 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/SmnModel.java @@ -0,0 +1,402 @@ +package com.lyms.platform.pojo; + +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +@Document(collection = "lyms_smn") +public class SmnModel { + + private String id; + private String patientId; + private String pid; + //末次月经 + private Date lastMenses; + private String phone; + private Date birth; + private String vcCardNo; + /** + * 身份证号码 + */ + private String cardNo; + private String username; + /** + * 孕妇户籍地址 + */ + private String address; + private String provinceId; + private String cityId; + private String areaId; + private String streetId; + + /** + * 孕妇居住地 + */ + private String addressRegister; + private String provinceRegisterId; + private String cityRegisterId; + private String areaRegisterId; + private String streetRegisterId; + + + private String mzNum; //门诊号 + private String bedNum;//床号 + private String ybType;//样本类型 外周血 + private String ybNum;//样本号 + private Date sendDate;//送检时间 + private String sendDoctor;//送检医生 + private String diagnose;//诊断 + + private Integer status; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格 + + private String hospitalId;//当前录入机构id + private String sendHospitalId;//送检医院 + + private Double smn7; //基因外显子7 + private Double smn8;//基因外显子8 + + private String smn7Result; //基因外显子7 结果 + private String smn8Result;//基因外显子8 结果 + + private Integer yn; + + + private Integer result; //1 阴性 2 阳性 + + private String suggest;//建议 + private String checker;//检验员 + private String reviewer;//审核人 + private String approver;//批准人 + private Date checkDate;//检查日期 + private Date created;//创建记录时间 + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public Date getLastMenses() { + return lastMenses; + } + + public void setLastMenses(Date lastMenses) { + this.lastMenses = lastMenses; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Date getBirth() { + return birth; + } + + public void setBirth(Date birth) { + this.birth = birth; + } + + public String getVcCardNo() { + return vcCardNo; + } + + public void setVcCardNo(String vcCardNo) { + this.vcCardNo = vcCardNo; + } + + public String getCardNo() { + return cardNo; + } + + public void setCardNo(String cardNo) { + this.cardNo = cardNo; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getProvinceId() { + return provinceId; + } + + public void setProvinceId(String provinceId) { + this.provinceId = provinceId; + } + + public String getCityId() { + return cityId; + } + + public void setCityId(String cityId) { + this.cityId = cityId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getStreetId() { + return streetId; + } + + public void setStreetId(String streetId) { + this.streetId = streetId; + } + + public String getAddressRegister() { + return addressRegister; + } + + public void setAddressRegister(String addressRegister) { + this.addressRegister = addressRegister; + } + + public String getProvinceRegisterId() { + return provinceRegisterId; + } + + public void setProvinceRegisterId(String provinceRegisterId) { + this.provinceRegisterId = provinceRegisterId; + } + + public String getCityRegisterId() { + return cityRegisterId; + } + + public void setCityRegisterId(String cityRegisterId) { + this.cityRegisterId = cityRegisterId; + } + + public String getAreaRegisterId() { + return areaRegisterId; + } + + public void setAreaRegisterId(String areaRegisterId) { + this.areaRegisterId = areaRegisterId; + } + + public String getStreetRegisterId() { + return streetRegisterId; + } + + public void setStreetRegisterId(String streetRegisterId) { + this.streetRegisterId = streetRegisterId; + } + + public String getMzNum() { + return mzNum; + } + + public void setMzNum(String mzNum) { + this.mzNum = mzNum; + } + + public String getBedNum() { + return bedNum; + } + + public void setBedNum(String bedNum) { + this.bedNum = bedNum; + } + + public String getYbType() { + return ybType; + } + + public void setYbType(String ybType) { + this.ybType = ybType; + } + + public String getYbNum() { + return ybNum; + } + + public void setYbNum(String ybNum) { + this.ybNum = ybNum; + } + + public Date getSendDate() { + return sendDate; + } + + public void setSendDate(Date sendDate) { + this.sendDate = sendDate; + } + + public String getSendDoctor() { + return sendDoctor; + } + + public void setSendDoctor(String sendDoctor) { + this.sendDoctor = sendDoctor; + } + + public String getDiagnose() { + return diagnose; + } + + public void setDiagnose(String diagnose) { + this.diagnose = diagnose; + } + + + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getSendHospitalId() { + return sendHospitalId; + } + + public void setSendHospitalId(String sendHospitalId) { + this.sendHospitalId = sendHospitalId; + } + + public Double getSmn7() { + return smn7; + } + + public void setSmn7(Double smn7) { + this.smn7 = smn7; + } + + public Double getSmn8() { + return smn8; + } + + public void setSmn8(Double smn8) { + this.smn8 = smn8; + } + + public String getSmn7Result() { + return smn7Result; + } + + public void setSmn7Result(String smn7Result) { + this.smn7Result = smn7Result; + } + + public String getSmn8Result() { + return smn8Result; + } + + public void setSmn8Result(String smn8Result) { + this.smn8Result = smn8Result; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getResult() { + return result; + } + + public void setResult(Integer result) { + this.result = result; + } + + public String getSuggest() { + return suggest; + } + + public void setSuggest(String suggest) { + this.suggest = suggest; + } + + public String getChecker() { + return checker; + } + + public void setChecker(String checker) { + this.checker = checker; + } + + public String getReviewer() { + return reviewer; + } + + public void setReviewer(String reviewer) { + this.reviewer = reviewer; + } + + public String getApprover() { + return approver; + } + + public void setApprover(String approver) { + this.approver = approver; + } + + public Date getCheckDate() { + return checkDate; + } + + public void setCheckDate(Date checkDate) { + this.checkDate = checkDate; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/LhxfyService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/LhxfyService.java index f709253..846a773 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/LhxfyService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/lhxfy/LhxfyService.java @@ -915,6 +915,13 @@ public class LhxfyService { } } } + /**梅毒***/ + premaritalCheckup.setTp("2"); + /***艾滋病筛查***/ + premaritalCheckup.setLhHiv("2"); + /***乙肝表面抗原***/ + premaritalCheckup.setHbsag("2"); + //检查结果更新到个人档案 Query query2 = Query.query(Criteria.where("id").is(premaritalCheckup.getId())); Update update2 = MongoConvertHelper diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java new file mode 100644 index 0000000..a520b94 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SmnController.java @@ -0,0 +1,70 @@ +package com.lyms.platform.operate.web.controller; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.result.BaseListResponse; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.operate.web.facade.SmnFacade; +import com.lyms.platform.operate.web.request.SmnQueryRequest; +import com.lyms.platform.operate.web.request.SmnRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@Controller +public class SmnController extends BaseController { + + @Autowired + private SmnFacade smnFacade; + + /** + * 保存单个 + * + * @param param + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/addSmnApply") + @ResponseBody + @TokenRequired + public BaseResponse addSmn(@RequestBody SmnRequest param, HttpServletRequest request) { + return smnFacade.addSmn(param, getUserId(request)); + } + + /** + * 编辑单个 + * + * @param param + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/editSmn") + @ResponseBody + @TokenRequired + public BaseResponse editSmn(@RequestBody SmnRequest param, HttpServletRequest request) { + return smnFacade.editSmn(param); + } + + + @RequestMapping(method = RequestMethod.GET, value = "/setSmnStatus/{id}/{status}") + @ResponseBody + @TokenRequired + public BaseResponse setSmnStatus(@PathVariable String id,@PathVariable Integer status, HttpServletRequest request) { + return smnFacade.setSmnStatus(id,status); + } + + /** + * 列表 + * + * @param param + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getSmnList") + @ResponseBody + @TokenRequired + public BaseListResponse getSmnList(@JsonAlias SmnQueryRequest param, HttpServletRequest request) { + return smnFacade.getSmnList(param, getUserId(request)); + } + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 5edee6e..6b5820f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -605,7 +605,12 @@ public class TestController extends BaseController { patientsService.addSieveJob(); return "finish"; } - + @RequestMapping(value = "/addSmnJob", method = RequestMethod.GET) + @ResponseBody + public String addSmnJob() { + patientsService.addSmnJob(); + return "finish"; + } @RequestMapping(value = "/autoMatDeliver", method = RequestMethod.GET) @ResponseBody public String autoMatDeliver() { @@ -5217,14 +5222,49 @@ public class TestController extends BaseController { return "success"; } - @RequestMapping(value = "/lpfy/getFmData", method = RequestMethod.GET) + + @RequestMapping(value = "/syncPreEugebicsToHj", method = RequestMethod.GET) @ResponseBody - public Map getFmData(@RequestParam(required = false)String cardNo) { + public String syncPreEugebicsToHj() { - Map data = new HashMap(); - data.put("130824199802011022","{\"code\":0,\"message\":\"成功\",\"data\":{\"due_week\":\"39\",\"due_day\":\"3\",\"fetus_num\":null,\"placenta_num\":\"1\",\"bhnum\":\"227347\",\"maternal_info\":null,\"chbp\":null,\"ch2bp\":null,\"breath\":null,\"pulse\":null,\"oh_lose_blood\":null,\"th_lose_blood\":null,\"rh_lose_blood\":null,\"sh_lose_blood\":null,\"lose_blood_cause\":null,\"babyList\":[{\"delivery_mode\":\"1\",\"operation_cause\":null,\"prod_process_one\":\"0\",\"prod_process_two\":\"0\",\"prod_process_three\":\"0\",\"total_process\":null,\"perineal_condition\":\"split\",\"silie_level\":\"1\",\"needle_num\":\"0\",\"tmctype\":\"1\",\"tmcside\":null,\"tlong\":null,\"twidth\":null,\"theight\":null,\"tweight\":null,\"um_length\":null,\"um_extype\":null,\"baby_fetal_presentation\":null,\"baby_fetal_position\":\"LOA\",\"baby_sex\":\"1\",\"baby_delivery_time\":\"2022-06-23 10:18:00\",\"baby_pregnancy_out\":\"0\",\"baby_weight\":\"3780\",\"baby_height\":\"54\",\"baby_deformity\":null,\"baby_apgar_score_one\":\"10\",\"baby_apgar_score_five\":\"10\",\"baby_apgar_score_ten\":\"10\",\"baby_asphyxiam\":null,\"baby_sick\":null,\"baby_touch_startm\":null,\"baby_touch_lastm\":null,\"baby_earlysuck\":null}]}}"); - data.put("230183200004020240","{\"code\":0,\"message\":\"成功\",\"data\":{\"due_week\":\"40\",\"due_day\":\"5\",\"fetus_num\":null,\"placenta_num\":\"1\",\"bhnum\":\"227630\",\"maternal_info\":null,\"chbp\":null,\"ch2bp\":null,\"breath\":null,\"pulse\":null,\"oh_lose_blood\":null,\"th_lose_blood\":null,\"rh_lose_blood\":null,\"sh_lose_blood\":null,\"lose_blood_cause\":null,\"babyList\":[{\"delivery_mode\":\"1\",\"operation_cause\":null,\"prod_process_one\":\"0\",\"prod_process_two\":\"0\",\"prod_process_three\":\"0\",\"total_process\":null,\"perineal_condition\":\"split\",\"silie_level\":\"0\",\"needle_num\":\"0\",\"tmctype\":\"1\",\"tmcside\":null,\"tlong\":null,\"twidth\":null,\"theight\":null,\"tweight\":null,\"um_length\":null,\"um_extype\":null,\"baby_fetal_presentation\":null,\"baby_fetal_position\":\"正枕前\",\"baby_sex\":\"0\",\"baby_delivery_time\":\"2022-06-21 23:58:40\",\"baby_pregnancy_out\":\"0\",\"baby_weight\":\"3100\",\"baby_height\":\"50\",\"baby_deformity\":null,\"baby_apgar_score_one\":\"10\",\"baby_apgar_score_five\":\"10\",\"baby_apgar_score_ten\":\"10\",\"baby_asphyxiam\":null,\"baby_sick\":null,\"baby_touch_startm\":null,\"baby_touch_lastm\":null,\"baby_earlysuck\":null}]}}"); - return JsonUtil.getMap(data.get(cardNo)); - } + Query query = Query.query(Criteria.where("hospitalId").is("2100001605").and("wifeBCheck").exists(true)); + //query.addCriteria(Criteria.where("id").is("62e874db9932b2eeb3fe9a6c")); + List modelList = mongoTemplate.find(query,PreEugenicsBaseModel.class); + if (CollectionUtils.isNotEmpty(modelList)) + { + System.out.println("size==="+modelList.size()); + for (PreEugenicsBaseModel model : modelList) + { + String cardNo = model.getWifeCardNo(); + Query query1 = Query.query(Criteria.where("certificateNum").is(cardNo).and("xRay").exists(true)); + List checkupList = mongoTemplate.find(query1,PremaritalCheckup.class); + if (CollectionUtils.isNotEmpty(checkupList)) + { + PremaritalCheckup checkup = checkupList.get(0); + if (model.getWifeBCheck() != null && model.getWifeBCheck().size() > 0 && model.getWifeBCheck().get("bcjc") != null) + { + Object obj = model.getWifeBCheck().get("bcjc"); + List list = (ArrayList)obj; + if (CollectionUtils.isNotEmpty(list)) + { + Integer status = (Integer)list.get(0); + String content = (String)list.get(1); + checkup.setLhbc(String.valueOf(status+1)); + checkup.setLhbcms(content); + if (list.size() == 3) + { + String code = (String)list.get(2); + checkup.setLhbcjch(code); + } + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(checkup)); + mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(checkup.getId())), update, PremaritalCheckup.class); + } + } + } + } + } + return "success"; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java new file mode 100644 index 0000000..7fa0149 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SmnFacade.java @@ -0,0 +1,204 @@ +package com.lyms.platform.operate.web.facade; + +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.result.BaseListResponse; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.MongoConvertHelper; +import com.lyms.platform.common.utils.ReflectionUtils; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.request.SmnQueryRequest; +import com.lyms.platform.operate.web.request.SmnRequest; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.pojo.SmnModel; +import com.lyms.platform.query.PatientsQuery; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +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.stereotype.Component; + +import java.util.Date; +import java.util.List; + +@Component +public class SmnFacade { + + @Autowired + private AutoMatchFacade autoMatchFacade; + + @Autowired + private MongoTemplate mongoTemplate; + + @Autowired + private PatientsService patientsService; + + public BaseResponse addSmn(SmnRequest param, Integer userId) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + + Query query = Query.query(Criteria.where("patientId").is(param.getPatientId()).and("status").is(0)); + SmnModel smnModel = mongoTemplate.findOne(query, SmnModel.class); + if (smnModel != null) + { + BeanUtils.copyProperties(param,smnModel); + param.setHospitalId(hospitalId); + param.setStatus(2); + Query query1 = Query.query(Criteria.where("id").is(smnModel.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(param)); + mongoTemplate.updateFirst(query1, update, SmnModel.class); + return new BaseResponse(); + } + else + { + Patients patients = patientsService.findOnePatientById(param.getPatientId()); + BeanUtils.copyProperties(patients,param); + param.setHospitalId(hospitalId); + param.setStatus(2); + param.setCreated(new Date()); + param.setPatientId(patients.getId()); + param.setId(null); + param.setYn(YnEnums.YES.getId()); + mongoTemplate.save(param); + return new BaseResponse(); + } + + } + + public BaseResponse editSmn(SmnRequest param) { + if (param.getSmn7() != null && param.getSmn8() != null) + { + String smn7Result = "未缺失"; + String smn8Result = "未缺失"; + if (param.getSmn7() > 0.8) + { + smn7Result = "纯合缺失"; + } else if (param.getSmn7() > -0.45 && param.getSmn7() <=0.45) + { + smn7Result = "杂合缺失"; + } + + if (param.getSmn8() > 1.5) + { + smn8Result = "纯合缺失"; + }else if (param.getSmn8() > -0.45 && param.getSmn8() <= 0.45) + { + smn8Result = "杂合缺失"; + } + param.setSmn7Result(smn7Result); + param.setSmn8Result(smn8Result); + if ((param.getSmn7() > -0.45 && param.getSmn7() <=0.45) || (param.getSmn8() > -0.45 && param.getSmn8() <=0.45)) + { + param.setResult(2); + } + else + { + param.setResult(1); + } + } + + Query query = Query.query(Criteria.where("id").is(param.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(param)); + mongoTemplate.updateFirst(query, update, SmnModel.class); + return new BaseResponse(); + } + + public BaseListResponse getSmnList(SmnQueryRequest param, Integer userId) { + + String hospitalId = autoMatchFacade.getHospitalId(userId); + Query query = new Query(); + + if(StringUtils.isNotEmpty(param.getQueryNo())) + { + query.addCriteria(Criteria.where("phone") + .is(param.getQueryNo()).orOperator(Criteria.where("cardNo").is(param.getQueryNo()) + .orOperator(Criteria.where("username").is(param.getQueryNo())))); + } + + if(param.getQueryType() == 1) + { + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); + } + else if (param.getQueryType() == 1) + { + query.addCriteria(Criteria.where("sendHospitalId").is(hospitalId)); + if (StringUtils.isNotEmpty(param.getHospitalId())) + { + query.addCriteria(Criteria.where("hospitalId").is(param.getHospitalId())); + } + } + String pid = param.getPid(); + if (StringUtils.isNotEmpty(pid)) { + query.addCriteria(Criteria.where("pid").is(pid)); + } String patientId = param.getPatientId(); + + if (StringUtils.isNotEmpty(patientId)) { + query.addCriteria(Criteria.where("patientId").is(patientId)); + } + String mzNum = param.getMzNum(); + if (StringUtils.isNotEmpty(mzNum)) { + query.addCriteria(Criteria.where("mzNum").is(mzNum)); + } + String bedNum = param.getBedNum(); + if (StringUtils.isNotEmpty(bedNum)) { + query.addCriteria(Criteria.where("bedNum").is(bedNum)); + } + String ybNum = param.getYbNum(); + if (StringUtils.isNotEmpty(ybNum)) { + query.addCriteria(Criteria.where("ybNum").is(ybNum)); + } + + Integer status = param.getStatus(); + if (status != null) { + query.addCriteria(Criteria.where("status").is(status)); + } + + Integer result = param.getResult(); + if (result != null) { + query.addCriteria(Criteria.where("result").is(result)); + } + + String sendDate = param.getSendDate(); + if (StringUtils.isNotEmpty(sendDate)) { + String[] arrs = sendDate.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + end = DateUtil.getDayLastSecond(end); + query.addCriteria(Criteria.where("sendDate").gte(start).lte(end)); + } + + String checkDate = param.getCheckDate(); + if (StringUtils.isNotEmpty(checkDate)) { + String[] arrs = checkDate.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + end = DateUtil.getDayLastSecond(end); + query.addCriteria(Criteria.where("checkDate").gte(start).lte(end)); + } + query.with(new Sort(Sort.Direction.DESC, "created")); + long count = mongoTemplate.count(query, SmnModel.class); + param.mysqlBuild((int) count); + query.skip(param.getOffset()).limit(param.getLimit()); + List smnModels = mongoTemplate.find(query, SmnModel.class); + BaseListResponse baseListResponse = new BaseListResponse(); + baseListResponse.setData(smnModels); + baseListResponse.setPageInfo(param.getPageInfo()); + return baseListResponse; + } + + public BaseResponse setSmnStatus(String id, Integer status) { + Query query = Query.query(Criteria.where("id").is(id)); + SmnModel smnModel = new SmnModel(); + smnModel.setStatus(status); + smnModel.setId(id); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(smnModel)); + mongoTemplate.updateFirst(query, update, SmnModel.class); + return new BaseResponse(); + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java new file mode 100644 index 0000000..c6c1279 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnQueryRequest.java @@ -0,0 +1,131 @@ +package com.lyms.platform.operate.web.request; + +import com.lyms.platform.common.dao.BaseQuery; + + +public class SmnQueryRequest extends BaseQuery { + private Integer queryType; //1 本机构查询 2 妇幼查询 3 检验机构查询 + private String patientId; + private String pid; + private String queryNo;//查询号 身份证号码,手机号码,姓名 + private String sendDate;//送检时间 + private String mzNum; //门诊号 + private String bedNum;//床号 + private String ybNum;//样本号 + + private String hospitalId;//申请机构id + private String sendHospitalId;//送检医院id + + + private Integer status; //1 未申请 2 已申请 3 已接收 4 已筛查 5 不合格 + + private Integer result; //1 阴性 2 阳性 + + private String checkDate;//检查日期 + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public String getQueryNo() { + return queryNo; + } + + public void setQueryNo(String queryNo) { + this.queryNo = queryNo; + } + + public Integer getQueryType() { + return queryType; + } + + public void setQueryType(Integer queryType) { + this.queryType = queryType; + } + + public String getSendDate() { + return sendDate; + } + + public void setSendDate(String sendDate) { + this.sendDate = sendDate; + } + + public String getMzNum() { + return mzNum; + } + + public void setMzNum(String mzNum) { + this.mzNum = mzNum; + } + + public String getBedNum() { + return bedNum; + } + + public void setBedNum(String bedNum) { + this.bedNum = bedNum; + } + + public String getYbNum() { + return ybNum; + } + + public void setYbNum(String ybNum) { + this.ybNum = ybNum; + } + + + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getSendHospitalId() { + return sendHospitalId; + } + + public void setSendHospitalId(String sendHospitalId) { + this.sendHospitalId = sendHospitalId; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getResult() { + return result; + } + + public void setResult(Integer result) { + this.result = result; + } + + public String getCheckDate() { + return checkDate; + } + + public void setCheckDate(String checkDate) { + this.checkDate = checkDate; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnRequest.java new file mode 100644 index 0000000..9439713 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SmnRequest.java @@ -0,0 +1,6 @@ +package com.lyms.platform.operate.web.request; + +import com.lyms.platform.pojo.SmnModel; + +public class SmnRequest extends SmnModel { +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java index ac8c6d5..8d18e39 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java @@ -3,10 +3,7 @@ package com.lyms.platform.operate.web.service.impl; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.Multimap; import com.lyms.hospitalapi.lcfy.LisService; import com.lyms.platform.biz.service.CancerScreeningService; import com.lyms.platform.biz.service.PremaritalCheckupService; @@ -18,20 +15,16 @@ import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.request.*; -import com.lyms.platform.operate.web.result.PatientRiskSortResult; import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.permission.model.Organization; -import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.CancerScreeningQuery; -import com.lyms.platform.query.PatientsQuery; import com.lyms.platform.query.PremaritalCheckupQuery; import com.lyms.platform.query.ResidentsArchiveQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; -import org.bson.types.ObjectId; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -- 1.8.3.1