From 65fad7360f62cb610707c59ec7a4033bc44ca36d Mon Sep 17 00:00:00 2001 From: liquanyu Date: Thu, 25 Mar 2021 09:31:32 +0800 Subject: [PATCH] update --- .../biz/service/AntenatalExaminationService.java | 2 +- .../lyms/platform/biz/service/PatientsService.java | 19 +- .../dao/master/MasterMysqlAntexcMapper.java | 4 + .../platform/permission/model/ReportPatients.java | 9 + .../lyms/platform/permission/model/ReportRisk.java | 43 ++++ .../platform/permission/model/ReportRiskLevel.java | 52 +++++ .../permission/service/MysqlAntexcService.java | 4 + .../service/impl/MysqlAntexcServiceImpl.java | 12 + .../resources/mainOrm/master/MasterMysqlAntexc.xml | 245 +++++++++++---------- .../java/com/lyms/platform/pojo/PatientWeight.java | 21 ++ .../web/controller/PatientWeightController.java | 5 +- .../operate/web/controller/TestController.java | 91 +++++++- .../operate/web/facade/MatDeliverFacade.java | 19 +- .../platform/operate/web/facade/PatientFacade.java | 14 +- .../operate/web/facade/PatientSyncMysqlFacade.java | 129 ++++++++--- .../web/request/RiskPatientsQueryRequest.java | 10 + .../operate/web/service/PatientWeightService.java | 4 +- .../web/service/impl/PatientWeightServiceImpl.java | 64 +++++- 18 files changed, 592 insertions(+), 155 deletions(-) create mode 100644 platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRisk.java create mode 100644 platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRiskLevel.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java index 6e9c1b5..ca966bd 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java @@ -319,7 +319,7 @@ public class AntenatalExaminationService { antExChuQuery.mysqlBuild(iAntExChuDao.count(query)); query.start(antExChuQuery.getOffset()).end(antExChuQuery.getLimit()); } - return iAntExChuDao.query(antExChuQuery.convertToQuery().addOrder(Sort.Direction.DESC, "created")); + return iAntExChuDao.query(query.addOrder(Sort.Direction.DESC, "created")); } public List queryAntExChu(AntExChuQuery antExChuQuery,Sort.Direction direction,String field) { 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 0662b5b..4934d97 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,6 +15,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.Arrays; @@ -42,14 +44,13 @@ public class PatientsService { private YunBookbuildingService yunBookbuildingService; @Autowired private ApplyScreeningService applyScreeningService; - + @Autowired + private PatientWeightService2 patientWeightService2; @Autowired private PersonService personService; @Autowired private IAntExRecordDao iAntExRecordDao; @Autowired - private TrackDownService trackDownService; - @Autowired private TrackDownRecordService trackDownRecordService; public Patients addPatient(Patients obj) { @@ -503,6 +504,18 @@ public class PatientsService { pm.setType(3);//基本信息更新成产妇 personService.updatePerson(pm, pm.getId()); } + + + //体重记录更新为产妇状态 + List patientWeights = patientWeightService2.queryPatientWeight(Query.query(Criteria.where("pid").is(patients.getPid()))); + if (CollectionUtils.isNotEmpty(patientWeights)) + { + for (PatientWeight weight : patientWeights) + { + weight.setType(3); + patientWeightService2.update(Query.query(Criteria.where("id").is(weight.getId())), weight); + } + } } } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterMysqlAntexcMapper.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterMysqlAntexcMapper.java index 389602b..1c8ea7d 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterMysqlAntexcMapper.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MasterMysqlAntexcMapper.java @@ -68,4 +68,8 @@ public interface MasterMysqlAntexcMapper { void deleteMatdeliverToMysql(ReportMatdeliver reportMatdeliver); void saveMatdeliverToMysql(ReportMatdeliver reportMatdeliver); + + void deleteRiskLevelToMysql(ReportRiskLevel reportRiskLevel); + + void saveRiskLevelToMysql(ReportRiskLevel reportRiskLevel); } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportPatients.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportPatients.java index a75de1f..65206db 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportPatients.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportPatients.java @@ -41,6 +41,15 @@ public class ReportPatients { private String enable; private String riskLevelId; private Integer buildType; + private Integer isAutoFm; + + public Integer getIsAutoFm() { + return isAutoFm; + } + + public void setIsAutoFm(Integer isAutoFm) { + this.isAutoFm = isAutoFm; + } public Integer getId() { return id; diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRisk.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRisk.java new file mode 100644 index 0000000..e3c47c1 --- /dev/null +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRisk.java @@ -0,0 +1,43 @@ +package com.lyms.platform.permission.model; + +/** + * Created by Administrator on 2021-03-23. + */ +public class ReportRisk { + private Integer id; + private String riskId; + private Integer type; + private String foreignId; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getRiskId() { + return riskId; + } + + public void setRiskId(String riskId) { + this.riskId = riskId; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getForeignId() { + return foreignId; + } + + public void setForeignId(String foreignId) { + this.foreignId = foreignId; + } +} diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRiskLevel.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRiskLevel.java new file mode 100644 index 0000000..20727f9 --- /dev/null +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/ReportRiskLevel.java @@ -0,0 +1,52 @@ +package com.lyms.platform.permission.model; + +/** + * Created by Administrator on 2021-03-23. + */ +public class ReportRiskLevel { + private Integer id; + private String riskLevelId; + private Integer riskLevel; + private Integer type;//'1 档案 2 初诊 3 复诊', + private String foreignId; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getRiskLevelId() { + return riskLevelId; + } + + public void setRiskLevelId(String riskLevelId) { + this.riskLevelId = riskLevelId; + } + + public Integer getRiskLevel() { + return riskLevel; + } + + public void setRiskLevel(Integer riskLevel) { + this.riskLevel = riskLevel; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getForeignId() { + return foreignId; + } + + public void setForeignId(String foreignId) { + this.foreignId = foreignId; + } +} diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/MysqlAntexcService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/MysqlAntexcService.java index a1c7f75..52e0d70 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/MysqlAntexcService.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/MysqlAntexcService.java @@ -65,4 +65,8 @@ public interface MysqlAntexcService { void deleteMatdeliverToMysql(ReportMatdeliver reportMatdeliver); void saveMatdeliverToMysql(ReportMatdeliver reportMatdeliver); + + void deleteRiskLevelToMysql(ReportRiskLevel reportRiskLevel); + + void saveRiskLevelToMysql(ReportRiskLevel reportRiskLevel); } \ No newline at end of file diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/MysqlAntexcServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/MysqlAntexcServiceImpl.java index 8d08be0..bccd13b 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/MysqlAntexcServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/MysqlAntexcServiceImpl.java @@ -151,6 +151,18 @@ public class MysqlAntexcServiceImpl implements MysqlAntexcService { } @Override + public void deleteRiskLevelToMysql(ReportRiskLevel reportRiskLevel) + { + masterMysqlAntexcMapper.deleteRiskLevelToMysql(reportRiskLevel); + } + + @Override + public void saveRiskLevelToMysql(ReportRiskLevel reportRiskLevel) + { + masterMysqlAntexcMapper.saveRiskLevelToMysql(reportRiskLevel); + } + + @Override public void addRisk(MysqlRisk model) { masterMysqlAntexcMapper.addRisk(model); } diff --git a/platform-biz-service/src/main/resources/mainOrm/master/MasterMysqlAntexc.xml b/platform-biz-service/src/main/resources/mainOrm/master/MasterMysqlAntexc.xml index 58523a1..2aed92a 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/MasterMysqlAntexc.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/MasterMysqlAntexc.xml @@ -1092,75 +1092,77 @@ INSERT INTO report_patients( - pid, - patientId, - cardNo, - type, - lastMenses, - address, - provinceId, - cityId, - areaId, - streetId, - addressPostRest, - provincePostRestId, - cityPostRestId, - areaPostRestId, - streetPostRestId, - addressRegister, - provinceRegisterId, - cityRegisterId, - areaRegisterId, - streetRegisterId, - hospitalId, - bookbuildingDate, - bookbuildingDoctor, - created, - modified, - birth, - username, - yn, - phone, - pcensusTypeId, - pliveTypeId, - enable, - riskLevelId, - buildType + pid, + patientId, + cardNo, + type, + lastMenses, + address, + provinceId, + cityId, + areaId, + streetId, + addressPostRest, + provincePostRestId, + cityPostRestId, + areaPostRestId, + streetPostRestId, + addressRegister, + provinceRegisterId, + cityRegisterId, + areaRegisterId, + streetRegisterId, + hospitalId, + bookbuildingDate, + bookbuildingDoctor, + created, + modified, + birth, + username, + yn, + phone, + pcensusTypeId, + pliveTypeId, + enable, + riskLevelId, + buildType, + isAutoFm ) VALUES ( - #{pid}, - #{patientId}, - #{cardNo}, - #{type}, - #{lastMenses}, - #{address}, - #{provinceId}, - #{cityId}, - #{areaId}, - #{streetId}, - #{addressPostRest}, - #{provincePostRestId}, - #{cityPostRestId}, - #{areaPostRestId}, - #{streetPostRestId}, - #{addressRegister}, - #{provinceRegisterId}, - #{cityRegisterId}, - #{areaRegisterId}, - #{streetRegisterId}, - #{hospitalId}, - #{bookbuildingDate}, - #{bookbuildingDoctor}, - #{created}, - #{modified}, - #{birth}, - #{username}, - #{yn}, - #{phone}, - #{pcensusTypeId}, - #{pliveTypeId}, - #{enable}, - #{riskLevelId}, - #{buildType} + #{pid}, + #{patientId}, + #{cardNo}, + #{type}, + #{lastMenses}, + #{address}, + #{provinceId}, + #{cityId}, + #{areaId}, + #{streetId}, + #{addressPostRest}, + #{provincePostRestId}, + #{cityPostRestId}, + #{areaPostRestId}, + #{streetPostRestId}, + #{addressRegister}, + #{provinceRegisterId}, + #{cityRegisterId}, + #{areaRegisterId}, + #{streetRegisterId}, + #{hospitalId}, + #{bookbuildingDate}, + #{bookbuildingDoctor}, + #{created}, + #{modified}, + #{birth}, + #{username}, + #{yn}, + #{phone}, + #{pcensusTypeId}, + #{pliveTypeId}, + #{enable}, + #{riskLevelId}, + #{buildType}, + #{isAutoFm} ) @@ -1174,21 +1176,21 @@ INSERT INTO report_antexchu( - cid, - checkTime, - nextCheckTime, - hospitalId, - pid, - parentId, - created + cid, + checkTime, + nextCheckTime, + hospitalId, + pid, + parentId, + created ) VALUES ( - #{cid}, - #{checkTime}, - #{nextCheckTime}, - #{hospitalId}, - #{pid}, - #{parentId}, - #{created} + #{cid}, + #{checkTime}, + #{nextCheckTime}, + #{hospitalId}, + #{pid}, + #{parentId}, + #{created} ) @@ -1201,21 +1203,21 @@ INSERT INTO report_antex( - fid, - parentId, - pid, - checkDate, - nextCheckTime, - yn, - created + fid, + parentId, + pid, + checkDate, + nextCheckTime, + yn, + created ) VALUES ( - #{fid}, - #{parentId}, - #{pid}, - #{checkDate}, - #{nextCheckTime}, - #{yn}, - #{created} + #{fid}, + #{parentId}, + #{pid}, + #{checkDate}, + #{nextCheckTime}, + #{yn}, + #{created} ) @@ -1228,21 +1230,21 @@ INSERT INTO report_matdeliver( - mid, - parentId, - pid, - dueDate1, - created, - fmHospital, - hospitalId + mid, + parentId, + pid, + dueDate1, + created, + fmHospital, + hospitalId ) VALUES ( - #{mid}, - #{parentId}, - #{pid}, - #{dueDate1}, - #{created}, - #{fmHospital}, - #{hospitalId} + #{mid}, + #{parentId}, + #{pid}, + #{dueDate1}, + #{created}, + #{fmHospital}, + #{hospitalId} ) @@ -1251,4 +1253,25 @@ DELETE from report_matdeliver WHERE mid = #{mid} - \ No newline at end of file + + + + INSERT INTO report_risk_level( + riskLevelId, + riskLevel, + type, + foreignId + ) VALUES ( + #{riskLevelId}, + #{riskLevel}, + #{type}, + #{foreignId} + ) + + + + + + DELETE from report_risk_level WHERE foreignId = #{foreignId} + + diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java index 8bdef4e..bd35056 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java @@ -141,6 +141,27 @@ public class PatientWeight extends BaseModel { //是否超过上线值 private String isNormal; + //1孕妇 3产妇 + private Integer type; + private Integer isUp;//是否增长过快 1和空为正常 2 过快 + + + public Integer getIsUp() { + return isUp; + } + + public void setIsUp(Integer isUp) { + this.isUp = isUp; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + public String getIsNormal() { return isNormal; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java index a520194..e5bf4b1 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java @@ -58,8 +58,9 @@ public class PatientWeightController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/query", method = RequestMethod.GET) - public BaseResponse list(String key, String lastname,String vcCardNo, Integer currentWeekStart, Integer currentWeekEnd, Integer age, Integer page, Integer limit, HttpServletRequest request) { - return patientWeightService.list(key, lastname, vcCardNo, currentWeekStart, currentWeekEnd, age, page, limit, getUserId(request)); + public BaseResponse list(String key, String lastname,String vcCardNo, Integer currentWeekStart, + Integer currentWeekEnd, Integer age, Integer page, Integer limit, Integer type, Integer isUp, HttpServletRequest request) { + return patientWeightService.list(key, lastname, vcCardNo, currentWeekStart, currentWeekEnd, age, page, limit, getUserId(request),type,isUp); } /** 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 08815ce..60f303f 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 @@ -3959,7 +3959,7 @@ public class TestController extends BaseController { Patients patients = patientsService.findOnePatientById(weight.getPatientId()); if (patients != null) { - String isNormal = patientWeightService.getWeightRangeIsNormal(patients,weight); + String isNormal = patientWeightService.getWeightRangeIsNormal(patients,weight).get("isNormal"); weight.setIsNormal(isNormal); patientWeightService2.update(Query.query(Criteria.where("id").is(weight.getId())), weight); } @@ -3979,6 +3979,55 @@ public class TestController extends BaseController { @ResponseBody + @RequestMapping(value = "/updateWeightIsUp", method = RequestMethod.GET) + public String updateWeightIsUp(@RequestParam(required = false) String hospitalId, String startDate, String endDate) { + List patientWeights = mongoTemplate.find(Query.query(Criteria.where("yn"). + is("1").and("_id").is("5f0bfd6199329c3fdf92ef28")), PatientWeight.class); + + System.out.println("本次读取了【" + patientWeights.size() + "】条数据"); + int batchSize = 1000; + int end = 0; + for (int i = 0; i < patientWeights.size(); i += batchSize) { + end = (end + batchSize); + if (end > patientWeights.size()) { + end = patientWeights.size(); + } + final List tempList = patientWeights.subList(i, end); + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) { + for (PatientWeight weight : tempList) { + try { + if (weight != null && StringUtils.isNotEmpty(weight.getPatientId())) + { + Patients patients = patientsService.findOnePatientById(weight.getPatientId()); + if (patients != null) + { + Map datas = patientWeightService.getWeightRangeIsNormal(patients,weight); + String isNormal = datas.get("isNormal"); + String isUp = datas.get("isUp"); + weight.setIsNormal(isNormal); + weight.setIsUp(Integer.parseInt(isUp)); + weight.setType(patients.getType()); + patientWeightService2.update(Query.query(Criteria.where("id").is(weight.getId())), weight); + } + } + }catch (Exception e) + { + continue; + } + } + } + } + }); + } + return "updateWeightIsNormal start......"; + } + + + + @ResponseBody @RequestMapping(value = "/updateBabyAfterVisitStatisticsModel", method = RequestMethod.GET) public String updateBabyAfterVisitStatisticsModel(@RequestParam(required = false) String hospitalId) { OrganizationQuery organizationQuery = new OrganizationQuery(); @@ -4177,6 +4226,46 @@ public class TestController extends BaseController { } + + @ResponseBody + @RequestMapping(value = "/syncPatientsToMysql", method = RequestMethod.GET) + public String syncPatientsToMysql(@RequestParam(required = false) Date startDate,@RequestParam(required = false) Date endDate) { + patientSyncMysqlFacade.syncPatientsToMysql(startDate, endDate); + return "syncPatientsToMysql"; + } + + + + @ResponseBody + @RequestMapping(value = "/syncAntexchuToMysql", method = RequestMethod.GET) + public String syncAntexchuToMysql(@RequestParam(required = false) Date startDate,@RequestParam(required = false) Date endDate) { + patientSyncMysqlFacade.syncAntexchuToMysql(startDate, endDate); + return "syncAntexchuToMysql"; + } + + + + + @ResponseBody + @RequestMapping(value = "/syncAntexToMysql", method = RequestMethod.GET) + public String syncAntexToMysql(@RequestParam(required = false) Date startDate,@RequestParam(required = false) Date endDate) { + patientSyncMysqlFacade.syncAntexToMysql(startDate, endDate); + return "syncAntexToMysql"; + } + + + + + @ResponseBody + @RequestMapping(value = "/syncMatdeliverToMysql", method = RequestMethod.GET) + public String syncMatdeliverToMysql(@RequestParam(required = false) Date startDate,@RequestParam(required = false) Date endDate) { + patientSyncMysqlFacade.syncMatdeliverToMysql(startDate, endDate); + return "syncMatdeliverToMysql"; + } + + + + /** * 修改初诊时间冗余到patients * diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 7669ddf..33e3e11 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -75,11 +75,10 @@ import static com.lyms.platform.operate.web.service.BabyAfterVisitService.*; public class MatDeliverFacade { private Logger logger = LoggerFactory.getLogger(MatDeliverFacade.class); - @Autowired - private MatDeliverService matDeliverService; + private PatientWeightService2 patientWeightService2; @Autowired - private BabyAutoDiagnoseRiskFacade babyAutoDiagnoseRiskFacade; + private MatDeliverService matDeliverService; @Autowired private MatDeliverFollowService matDeliverFollowService; @Autowired @@ -628,6 +627,20 @@ public class MatDeliverFacade { new Thread(new Runnable() { @Override public void run() { + + // //体重记录更新为产妇状态 + List patientWeights = patientWeightService2.queryPatientWeight(Query.query(Criteria.where("pid").is(pid))); + + if (CollectionUtils.isNotEmpty(patientWeights)) + { + for (PatientWeight weight : patientWeights) + { + weight.setType(3); + patientWeightService2.update(Query.query(Criteria.where("id").is(weight.getId())), weight); + } + } + + int limt = 1000; int page = 1; PersonModelQuery personModelQuery = new PersonModelQuery(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index 3497ae4..e388f79 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -768,7 +768,19 @@ public class PatientFacade extends BaseServiceImpl { public BaseResponse queryAbnormalWeight(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer userId, String need) { String hospital = autoMatchFacade.getHospitalId(userId); - Query query = Query.query(Criteria.where("hospitalId").is(hospital).and("yn").ne("0")); + Criteria criteria = Criteria.where("hospitalId").is(hospital).and("yn").is("1"); + + if (riskPatientsQueryRequest.getIsUp() != null) + { + criteria.and("isUp").is(riskPatientsQueryRequest.getIsUp()); + } + + if (riskPatientsQueryRequest.getType() != null) + { + criteria.and("type").is(riskPatientsQueryRequest.getType()); + } + + Query query = Query.query(criteria); String formatBmi = ""; if ("1".equals(riskPatientsQueryRequest.getBmi())) { formatBmi = String.format("function () { return this.bmi >= %s && this.bmi < %s; }", "25", "28"); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java index db1e139..9c9bf1b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java @@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.lang.reflect.InvocationTargetException; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -66,6 +67,16 @@ public class PatientSyncMysqlFacade { @Autowired private OrganizationService organizationService; + private static Map levels = new HashMap<>(); + { + levels.put("fb43fd5a-b153-4cb9-9180-c46f5612ba43",1); + levels.put("e637b361-99cf-41eb-84f2-f0dab596e928",1); + levels.put("315107bd-91fe-42a1-9237-752f3c046a40",2); + levels.put("49a36aea-c5b6-4162-87d2-9eb3c6ec00c2",3); + levels.put("eb146c03-b19f-4e28-b85f-fda574b2283b",4); + levels.put("224b2329-cb82-4da3-a071-8527f8283aab",5); + } + /** * 档案 @@ -1268,8 +1279,8 @@ public class PatientSyncMysqlFacade { { PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); - patientsQuery.setCreatedTimeStart(start); - patientsQuery.setCreatedTimeEnd(end); + patientsQuery.setModifiedStart(start); + patientsQuery.setModifiedEnd(end); patientsQuery.setNeed("true"); patientsQuery.setLimit(100); int page = 1; @@ -1277,17 +1288,18 @@ public class PatientSyncMysqlFacade { { patientsQuery.setPage(page); List patientses = patientsService.queryPatient(patientsQuery); - if (CollectionUtils.isNotEmpty(patientses)) + if (CollectionUtils.isEmpty(patientses)) { - System.out.println("同步完成syncPatientsToMysql"); + System.out.println("同步完成syncPatientsToMysql"+page); break; } for(Patients patients : patientses) { ReportPatients reportPatients = new ReportPatients(); - + reportPatients.setPatientId(patients.getId()); try { + ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.copyProperties(reportPatients,patients); } catch (IllegalAccessException e) { e.printStackTrace(); @@ -1300,15 +1312,16 @@ public class PatientSyncMysqlFacade { page++; } } - + @Autowired + private BasicConfigService basicConfigService; public void syncAntexchuToMysql(Date start,Date end) { AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setYn(YnEnums.YES.getId()); - antExChuQuery.setCheckTimeStart(start); - antExChuQuery.setCheckTimeEnd(end); - antExChuQuery.setNext(true); + antExChuQuery.setModifiedStart(start); + antExChuQuery.setModifiedEnd(end); + antExChuQuery.setNeed("true"); antExChuQuery.setLimit(100); int page = 1; @@ -1316,7 +1329,7 @@ public class PatientSyncMysqlFacade { { antExChuQuery.setPage(page); List antExChus = antenatalExaminationService.queryAntExChu(antExChuQuery); - if (CollectionUtils.isNotEmpty(antExChus)) + if (CollectionUtils.isEmpty(antExChus)) { System.out.println("同步完成syncAntexchuToMysql"); break; @@ -1325,9 +1338,42 @@ public class PatientSyncMysqlFacade { for(AntExChuModel antExChu : antExChus) { ReportAntexchu reportAntexchu = new ReportAntexchu(); - + reportAntexchu.setCid(antExChu.getId()); try { - BeanUtils.copyProperties(reportAntexchu,antExChu); + + if (null != antExChu && org.apache.commons.lang.StringUtils.isNotEmpty(antExChu.getHighrisk()) && !"[]".equals(antExChu.getHighrisk())) { + List list2 = JsonUtil.toList(antExChu.getHighrisk(), List.class); + if (CollectionUtils.isNotEmpty(list2)) + { + BasicConfigQuery + basicConfigQuery = new BasicConfigQuery(); + ReportRiskLevel reportRiskLevel1 = new ReportRiskLevel(); + reportRiskLevel1.setForeignId(antExChu.getId()); + mysqlAntexcService.deleteRiskLevelToMysql(reportRiskLevel1); + for (Object key : list2) + { + if (key != null && StringUtils.isNotEmpty(key.toString())) + { + basicConfigQuery.setId(key.toString()); + List basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery); + if (CollectionUtils.isNotEmpty(basicConfigs)) { + BasicConfig basicConfig = basicConfigs.get(0); + String riskLevelId = basicConfig.getParentId(); + Integer level = levels.get(riskLevelId); + + ReportRiskLevel reportRiskLevel = new ReportRiskLevel(); + reportRiskLevel.setForeignId(antExChu.getId()); + reportRiskLevel.setRiskLevel(level); + reportRiskLevel.setRiskLevelId(riskLevelId); + reportRiskLevel.setType(2); + mysqlAntexcService.saveRiskLevelToMysql(reportRiskLevel); + } + } + } + } + } + ConvertUtils.register(new DateLocaleConverter(), Date.class); + BeanUtils.copyProperties(reportAntexchu, antExChu); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { @@ -1345,9 +1391,9 @@ public class PatientSyncMysqlFacade { { AntExQuery antExQuery = new AntExQuery(); antExQuery.setYn(YnEnums.YES.getId()); - antExQuery.setCreatedTimeStart(start); - antExQuery.setCreatedTimeEnd(end); - antExQuery.setNext(true); + antExQuery.setModifiedStart(start); + antExQuery.setModifiedEnd(end); + antExQuery.setNeed("true"); antExQuery.setLimit(100); int page = 1; @@ -1355,7 +1401,7 @@ public class PatientSyncMysqlFacade { { antExQuery.setPage(page); List antexs = antenatalExaminationService.queryLastAntenx(antExQuery); - if (CollectionUtils.isNotEmpty(antexs)) + if (CollectionUtils.isEmpty(antexs)) { System.out.println("同步完成syncAntexToMysql"); break; @@ -1364,9 +1410,42 @@ public class PatientSyncMysqlFacade { for(AntenatalExaminationModel antex : antexs) { ReportAntex reportAntex = new ReportAntex(); - + reportAntex.setFid(antex.getId()); try { - BeanUtils.copyProperties(reportAntex,antex); + + if (null != antex && org.apache.commons.lang.StringUtils.isNotEmpty(antex.getRiskFactor()) && !"[]".equals(antex.getRiskFactor())) { + List list2 = JsonUtil.toList(antex.getRiskFactor(), List.class); + if (CollectionUtils.isNotEmpty(list2)) + { + BasicConfigQuery + basicConfigQuery = new BasicConfigQuery(); + ReportRiskLevel reportRiskLevel1 = new ReportRiskLevel(); + reportRiskLevel1.setForeignId(antex.getId()); + mysqlAntexcService.deleteRiskLevelToMysql(reportRiskLevel1); + for (Object key : list2) + { + if (key != null && StringUtils.isNotEmpty(key.toString())) { + basicConfigQuery.setId(key.toString()); + List basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery); + if (CollectionUtils.isNotEmpty(basicConfigs)) { + BasicConfig basicConfig = basicConfigs.get(0); + String riskLevelId = basicConfig.getParentId(); + Integer level = levels.get(riskLevelId); + + ReportRiskLevel reportRiskLevel = new ReportRiskLevel(); + reportRiskLevel.setForeignId(antex.getId()); + reportRiskLevel.setRiskLevel(level); + reportRiskLevel.setRiskLevelId(riskLevelId); + reportRiskLevel.setType(3); + + mysqlAntexcService.saveRiskLevelToMysql(reportRiskLevel); + } + } + } + } + } + ConvertUtils.register(new DateLocaleConverter(), Date.class); + BeanUtils.copyProperties(reportAntex, antex); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { @@ -1384,17 +1463,16 @@ public class PatientSyncMysqlFacade { { MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); matDeliverQuery.setYn(YnEnums.YES.getId()); - matDeliverQuery.setCreatedTimeStart(start); - matDeliverQuery.setCreatedTimeEnd(end); - matDeliverQuery.setNext(true); - + matDeliverQuery.setModifiedStart(start); + matDeliverQuery.setModifiedEnd(end); + matDeliverQuery.setNeed("true"); matDeliverQuery.setLimit(100); int page = 1; while (true) { matDeliverQuery.setPage(page); - List maternalDeliverModels = matDeliverService.query(matDeliverQuery); - if (CollectionUtils.isNotEmpty(maternalDeliverModels)) + List maternalDeliverModels = matDeliverService.pageQuery(matDeliverQuery); + if (CollectionUtils.isEmpty(maternalDeliverModels)) { System.out.println("同步完成syncMatdeliverToMysql"); break; @@ -1403,8 +1481,9 @@ public class PatientSyncMysqlFacade { for(MaternalDeliverModel maternalDeliverModel : maternalDeliverModels) { ReportMatdeliver reportMatdeliver = new ReportMatdeliver(); - + reportMatdeliver.setMid(maternalDeliverModel.getId()); try { + ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.copyProperties(reportMatdeliver,maternalDeliverModel); } catch (IllegalAccessException e) { e.printStackTrace(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java index 35df083..f811d50 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java @@ -186,6 +186,16 @@ public class RiskPatientsQueryRequest extends BasePageQueryRequest { private String firstCheckId; //初诊时间 private String firstCheckTime; + // 0 全部 1 正常 2 异常 + private Integer isUp; + + public Integer getIsUp() { + return isUp; + } + + public void setIsUp(Integer isUp) { + this.isUp = isUp; + } public String getFirstCheckId() { return firstCheckId; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java index 898f14b..783fb6e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java @@ -28,7 +28,7 @@ public interface PatientWeightService extends IBaseService { BaseResponse addOrUpdate(Integer userId, PatientWeight patientWeight); - BaseResponse list(String key,String lastname, String vcCardNo, Integer currentWeekStart, Integer currentWeekEnd, Integer age, Integer page, Integer limit, Integer userId); + BaseResponse list(String key,String lastname, String vcCardNo, Integer currentWeekStart, Integer currentWeekEnd, Integer age, Integer page, Integer limit, Integer userId,Integer type, Integer isUp); BaseResponse info(String id); @@ -77,7 +77,7 @@ public interface PatientWeightService extends IBaseService { void generateWeightMsg(); - public String getWeightRangeIsNormal(Patients patients,PatientWeight pw); + public Map getWeightRangeIsNormal(Patients patients,PatientWeight pw); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java index 649e86f..c462d1f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java @@ -216,7 +216,9 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } pw.setDayWeights2(dayWeights2); pw.setModified(new Date()); - pw.setIsNormal(getWeightRangeIsNormal(patients,pw)); + Map result = getWeightRangeIsNormal(patients, pw); + pw.setIsNormal(result.get("isNormal")); + pw.setIsUp(Integer.parseInt(result.get("isUp"))); patientWeightService2.update(Query.query(Criteria.where("id").is(pw.getId())), pw); return RespBuilder.buildSuccess(pw.getId()); } @@ -250,7 +252,10 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient dayWeights2.add(m); patientWeight.setDayWeights2(dayWeights2); patientWeight.setModified(new Date()); - patientWeight.setIsNormal(getWeightRangeIsNormal(patients, patientWeight)); + Map result = getWeightRangeIsNormal(patients, patientWeight); + patientWeight.setIsNormal(result.get("isNormal")); + patientWeight.setIsUp(Integer.parseInt(result.get("isUp"))); + patientWeight.setType(1); patientWeightService2.add(patientWeight); operateLogFacade.addAddOptLog(userId, Integer.valueOf(hospitalId), patientWeight, OptActionEnums.ADD.getId(), "添加孕体重"); @@ -274,9 +279,11 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } } /** - * 计算当前测量的体重是否超过上线值 + * 计算当前测量的体重是否超过上线值,同时计算增长率 */ - public String getWeightRangeIsNormal(Patients patients,PatientWeight pw) { + public Map getWeightRangeIsNormal(Patients patients,PatientWeight pw) { + + Map result = new HashMap<>(); Map series = new LinkedHashMap<>(); String isNormal = "true"; @@ -286,15 +293,22 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient double bmiD = Double.parseDouble(pw.getBmi()); String bmiStr = pw.getBmi(); String bregmatic = pw.getBregmatic(); + + double sp = 0; + //空和1表示单胎 if (!StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) { if (bmiD < 18.5) { + sp = 0.51; bmiStr = "BMI<18.5"; } else if (bmiD >= 18.5 && bmiD <= 24.9) { bmiStr = "BMI=18.5-24.9"; + sp = 0.42; } else if (bmiD > 24.9 && bmiD < 30) { + sp = 0.28; bmiStr = "BMI=25-29.9"; } else if (bmiD >= 30) { + sp = 0.22; bmiStr = "BMI≥30"; } } else { @@ -307,6 +321,31 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } } + String isUp = "1"; + Map dayweights = pw.getDayWeights(); + if (dayweights != null && dayweights.size() > 1 && sp > 0) + { + int i = 1; + String lastKey = ""; + String lastSecKey = ""; + for (String key : dayweights.keySet()) + { + if (i == dayweights.size() -1) + { + lastSecKey = key; + } + else if (i == dayweights.size()) + { + lastKey = key; + } + i++; + } + + int startWeek = DateUtil.getWeek(patients.getLastMenses(),DateUtil.parseYMD(lastSecKey)); + int endWeek = DateUtil.getWeek(patients.getLastMenses(),DateUtil.parseYMD(lastKey)); + isUp = (Double.parseDouble(dayweights.get(lastKey)) - Double.parseDouble(dayweights.get(lastSecKey))) /(endWeek - startWeek) > sp ? "2" : isUp; + } + result.put("isUp",isUp); getSeries(series, bmiStr, pw.getBregmatic()); if (series.get("highDataMap") != null) { @@ -319,7 +358,9 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } } } - return isNormal; + + result.put("isNormal",isNormal); + return result; } @@ -449,7 +490,8 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient @Override - public BaseResponse list(String key, String lastname,String vcCardNo, Integer currentWeekStart, Integer currentWeekEnd, Integer age, Integer page, Integer limit, Integer userId) { + public BaseResponse list(String key, String lastname,String vcCardNo, Integer currentWeekStart, Integer currentWeekEnd, + Integer age, Integer page, Integer limit, Integer userId,Integer type, Integer isUp) { boolean flag = false; List hospital = groupsFacade.findGroupHospital(userId, false); Criteria criteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospital); @@ -489,6 +531,16 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient criteria.and("patientId").in(ids); } + if (isUp != null) + { + criteria.and("isUp").is(isUp); + } + + if (type != null) + { + criteria.and("type").is(type); + } + PageResult pageResult = findMongoPage(PatientWeight.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "modified")), page, limit); List patientWeights = (List) pageResult.getGrid(); List> restMap = new ArrayList<>(); -- 1.8.3.1