Commit efd46798656be6ac5adcbd6f2c3e151712291412
1 parent
add96c3c62
Exists in
dev
#fix:大同lis数据 辅助检查更新
Showing 2 changed files with 163 additions and 32 deletions
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/LisServiceImpl.java
View file @
efd4679
| ... | ... | @@ -2,10 +2,7 @@ |
| 2 | 2 | |
| 3 | 3 | import com.lyms.platform.biz.dal.AssayConfigDao; |
| 4 | 4 | import com.lyms.platform.biz.param.ReferConfigQuery; |
| 5 | -import com.lyms.platform.biz.service.AntenatalExaminationService; | |
| 6 | -import com.lyms.platform.biz.service.LisCrisisItemService; | |
| 7 | -import com.lyms.platform.biz.service.PatientsService; | |
| 8 | -import com.lyms.platform.biz.service.ReferConfigService; | |
| 5 | +import com.lyms.platform.biz.service.*; | |
| 9 | 6 | import com.lyms.platform.common.constants.ErrorCodeConstants; |
| 10 | 7 | import com.lyms.platform.common.dao.operator.MongoCondition; |
| 11 | 8 | import com.lyms.platform.common.dao.operator.MongoOper; |
| ... | ... | @@ -21,10 +18,7 @@ |
| 21 | 18 | import com.lyms.platform.permission.service.LisService; |
| 22 | 19 | import com.lyms.platform.permission.service.OrganizationService; |
| 23 | 20 | import com.lyms.platform.pojo.*; |
| 24 | -import com.lyms.platform.query.AntExChuQuery; | |
| 25 | -import com.lyms.platform.query.AntExQuery; | |
| 26 | -import com.lyms.platform.query.LisCrisisItemQuery; | |
| 27 | -import com.lyms.platform.query.PatientsQuery; | |
| 21 | +import com.lyms.platform.query.*; | |
| 28 | 22 | import net.sf.json.JSONArray; |
| 29 | 23 | import net.sf.json.JSONObject; |
| 30 | 24 | import org.apache.commons.collections.CollectionUtils; |
| ... | ... | @@ -180,6 +174,7 @@ |
| 180 | 174 | |
| 181 | 175 | @Autowired |
| 182 | 176 | private LisCrisisItemService lisCrisisItemService; |
| 177 | + | |
| 183 | 178 | /** |
| 184 | 179 | * 根据Lis数据同步大同高危急值 |
| 185 | 180 | * @param model |
| 186 | 181 | |
| ... | ... | @@ -212,7 +207,16 @@ |
| 212 | 207 | return; |
| 213 | 208 | } |
| 214 | 209 | |
| 210 | + AntExChuQuery antExChuQuery=new AntExChuQuery(); | |
| 211 | + antExChuQuery.setParentId(patients.getId()); | |
| 212 | + antExChuQuery.setYn(1); | |
| 213 | + List<AntExChuModel> antExChuModels= antExService.queryAntExChu(antExChuQuery); | |
| 214 | + AntExChuModel antExChuModel=null; | |
| 215 | + if (CollectionUtils.isNotEmpty(antExChuModels)){ | |
| 216 | + antExChuModel= antExChuModels.get(0); | |
| 217 | + } | |
| 215 | 218 | |
| 219 | + | |
| 216 | 220 | LisCrisisItem crisisItem = new LisCrisisItem(); |
| 217 | 221 | crisisItem.setPid(patients.getPid()); |
| 218 | 222 | crisisItem.setPatientId(patients.getId()); |
| 219 | 223 | |
| 220 | 224 | |
| ... | ... | @@ -247,13 +251,15 @@ |
| 247 | 251 | referValueMap.put(referValue.getCode(), referValue); |
| 248 | 252 | } |
| 249 | 253 | |
| 254 | + Map<String,String> params=new HashMap<>(); | |
| 255 | + | |
| 250 | 256 | List<LisReportItemModel> itemList= JsonUtil.jsonToList(model.getItemJson(),LisReportItemModel.class); |
| 251 | 257 | // crisis init |
| 252 | 258 | for (LisReportItemModel item : itemList) { |
| 253 | - | |
| 254 | - ReferValue referValue = referValueMap.get(item.getCode().trim()); | |
| 259 | + String code= item.getCode().trim(); | |
| 260 | + ReferValue referValue = referValueMap.get(code); | |
| 255 | 261 | if (referValue != null) { |
| 256 | - //TODO 处理危急值逻辑 | |
| 262 | + | |
| 257 | 263 | boolean flag=buildEmergency(item.getResult(),referValue); |
| 258 | 264 | System.out.println("saveLisCrisisItemList flag"+flag); |
| 259 | 265 | if (flag) { |
| 260 | 266 | |
| 261 | 267 | |
| 262 | 268 | |
| 263 | 269 | |
| 264 | 270 | |
| 265 | 271 | |
| 266 | 272 | |
| 267 | 273 | |
| ... | ... | @@ -268,31 +274,157 @@ |
| 268 | 274 | crisisItem.setRef(buildRef(referValue)); |
| 269 | 275 | crisisItem.setUnit(item.getUnit()); |
| 270 | 276 | lisCrisisItemService.addLisCrisisItem(crisisItem); |
| 277 | + } | |
| 278 | + } | |
| 279 | + params.put(code,item.getResult().trim()); | |
| 280 | + } | |
| 271 | 281 | |
| 272 | - //当前孕妇关联的初诊复诊医生危急通知 | |
| 273 | - /* Set<String> sets = antenatalExaminationFacade.getCrisisUnionDoc(patients); | |
| 282 | + if (antExChuModel!=null && (com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getXhdb()) | |
| 283 | + || com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getBxbjs()) || com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getPlatelet()) | |
| 284 | + || com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getNdb()) || com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getNt()) | |
| 285 | + || com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getUrineKetone()) || com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getBld()))){ | |
| 286 | + System.out.println("addAntenatalExamination"); | |
| 287 | + addAntenatalExamination(antExChuModel,patients); | |
| 288 | + }else { | |
| 289 | + if (antExChuModel!=null){ | |
| 290 | + antExChuModel.setXhdb(params.get("HGB")); | |
| 291 | + antExChuModel.setBxbjs(params.get("WBC")); | |
| 292 | + antExChuModel.setPlatelet(params.get("PLT")); | |
| 293 | + antExChuModel.setNdb(params.get("PRO")); | |
| 294 | + antExChuModel.setNt(params.get("GLU1")); | |
| 295 | + antExChuModel.setUrineKetone(params.get("KET")); | |
| 296 | + antExChuModel.setBld(params.get("BLD")); | |
| 297 | + System.out.println("updateAntExChu"); | |
| 298 | + antExService.updateAntExChu(antExChuModel,antExChuModel.getId()); | |
| 299 | + } | |
| 300 | + } | |
| 301 | + System.out.println("saveLisCrisisItemList end"); | |
| 302 | + } | |
| 274 | 303 | |
| 275 | - if (CollectionUtils.isNotEmpty(sets)) { | |
| 276 | - for (String doctorId : sets) { | |
| 277 | - LisCrisisNotify notify = new LisCrisisNotify(); | |
| 278 | - notify.setHospitalId(patients.getHospitalId()); | |
| 279 | - notify.setPatientId(patients.getId()); | |
| 280 | - notify.setStatus(0); | |
| 281 | - notify.setYn(1); | |
| 282 | - notify.setModified(new Date()); | |
| 283 | - notify.setCreated(new Date()); | |
| 284 | - notify.setDoctorId(doctorId); | |
| 304 | + } | |
| 285 | 305 | |
| 286 | - lisCrisisNotifyService.addLisCrisisNotify(notify); | |
| 287 | - } | |
| 288 | - }*/ | |
| 306 | + @Autowired | |
| 307 | + private AntenatalExaminationService antenatalExaminationService; | |
| 308 | + @Autowired | |
| 309 | + private AntExRecordService antExRecordService; | |
| 289 | 310 | |
| 311 | + public void addAntenatalExamination(AntExChuModel antExChuModel,Patients patients){ | |
| 312 | + AntExRecordModel antExRecordModel = new AntExRecordModel(); | |
| 313 | + antExRecordModel.setType(2); | |
| 314 | + antExRecordModel.setHospitalId(patients.getHospitalId()); | |
| 315 | + antExRecordModel.setLastMenses(patients.getLastMenses()); | |
| 316 | + antExRecordModel.setName(patients.getUsername()); | |
| 317 | + antExRecordModel.setNextCheckTime(patients.getNextCheckTime()); | |
| 318 | + antExRecordModel.setBrith(patients.getBirth()); | |
| 319 | + antExRecordModel.setParentId(patients.getId()); | |
| 320 | + antExRecordModel.setPid(patients.getPid()); | |
| 321 | + antExRecordModel.setDueDate(patients.getDueDate()); | |
| 322 | + antExRecordModel.setCardNo(patients.getCardNo()); | |
| 323 | + antExRecordModel.setCheckDoctor(String.valueOf(patients.getOperator())); | |
| 324 | + antExRecordModel.setType(1); | |
| 325 | + antExRecordModel.setCheckTime(patients.getBookbuildingDate()); | |
| 326 | + antExRecordModel.setBuildTime(patients.getBookbuildingDate()); | |
| 327 | + if (antExRecordModel.getDueDate() != null) { | |
| 328 | + antExRecordModel.setStatus(antExRecordModel.getDueDate().compareTo(new Date()) > 0 ? 2 : 1); | |
| 329 | + antExRecordModel.setDueStatus(antExRecordModel.getStatus()); | |
| 330 | + } | |
| 290 | 331 | |
| 291 | - } | |
| 332 | + AntenatalExaminationModel antenatalExaminationModel = new AntenatalExaminationModel(); | |
| 333 | + antenatalExaminationModel.setYn(1); | |
| 334 | + antenatalExaminationModel.setParentId(patients.getId()); | |
| 335 | + antenatalExaminationModel.setPid(patients.getPid()); | |
| 336 | + antenatalExaminationModel.setCheckDoctor(String.valueOf(patients.getOperator())); | |
| 337 | + antenatalExaminationModel.setHospitalId(patients.getHospitalId()); | |
| 338 | + antenatalExaminationModel.setName(patients.getUsername()); | |
| 339 | + antenatalExaminationModel.setRiskScore(antExChuModel.getHighriskSocre()); | |
| 340 | + antenatalExaminationModel.setRiskFactor(antExChuModel.getHighrisk()); | |
| 341 | + antenatalExaminationModel.setLastMenses(patients.getLastMenses()); | |
| 342 | + antenatalExaminationModel.setNextCheckTime(patients.getNextCheckTime()); | |
| 343 | + antenatalExaminationModel.setCurrentDueDate(getBuildingWeek(patients)); | |
| 344 | + antenatalExaminationModel.setCheckDate(patients.getBookbuildingDate()); | |
| 345 | + antenatalExaminationModel=antenatalExaminationService.addOneBabyAnt(antenatalExaminationModel); | |
| 346 | + antExRecordModel.setfId(antenatalExaminationModel.getId()); | |
| 347 | + antExRecordService.addOneRecord(antExRecordModel); | |
| 348 | + //添加复诊时添加追访信息 | |
| 349 | + addTrackDownInfo(patients.getOperator(), patients, patients.getNextCheckTime()); | |
| 350 | + } | |
| 351 | + | |
| 352 | + | |
| 353 | + /** | |
| 354 | + * 查询孕期 | |
| 355 | + * | |
| 356 | + * @param patients | |
| 357 | + * @return | |
| 358 | + */ | |
| 359 | + private String getBuildingWeek(Patients patients) { | |
| 360 | + String weekDay = ""; | |
| 361 | + try { | |
| 362 | + // 徐倩说改的 | |
| 363 | + if (patients.getBookbuildingDate().getTime() - patients.getDueDate().getTime() > 0 && patients.getBuildType() == 2) { | |
| 364 | +// if (patients.getBookbuildingDate().getTime() - patients.getFmDate().getTime() > 0 && patients.getBuildType() == 2) { | |
| 365 | + weekDay = ""; | |
| 366 | + } else { | |
| 367 | + int days = DateUtil.daysBetween(patients.getLastMenses(), patients.getBookbuildingDate()); | |
| 368 | + if (days > 7 * 42 - 1) { | |
| 369 | + weekDay = ""; | |
| 370 | + } else { | |
| 371 | + String week = days / 7 + ""; | |
| 372 | + int day = (days % 7); | |
| 373 | + weekDay = "孕" + week + "周" + (day > 0 ? "+" + day + "天" : ""); | |
| 292 | 374 | } |
| 375 | + } | |
| 376 | + } catch (Exception e) { | |
| 377 | + // 什么都不干 | |
| 378 | + } | |
| 379 | + return weekDay; | |
| 380 | + } | |
| 293 | 381 | |
| 382 | + @Autowired | |
| 383 | + private TrackDownRecordService trackDownRecordService; | |
| 384 | + | |
| 385 | + /** | |
| 386 | + * 初诊、复诊添加或更新追访信息 | |
| 387 | + * | |
| 388 | + * @param userId | |
| 389 | + * @param patient | |
| 390 | + */ | |
| 391 | + public void addTrackDownInfo(Integer userId, Patients patient, Date nextCheckTime) { | |
| 392 | + //添加产后追访信息 | |
| 393 | + TrackDownRecord trackDownRecord = patient.build(); | |
| 394 | + //根据patient查询是否存在追访信息 | |
| 395 | + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 396 | + downRecordQuery.setParentId(patient.getId()); | |
| 397 | + downRecordQuery.setStatus(3); | |
| 398 | + if (nextCheckTime!=null) { | |
| 399 | + trackDownRecord.setAppointmentDate(nextCheckTime); | |
| 400 | + trackDownRecord.setNextCheckTime(nextCheckTime); | |
| 401 | + } else { | |
| 402 | + trackDownRecord.setAppointmentDate(new Date()); | |
| 403 | + } | |
| 404 | + List <TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 405 | + if (CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型 | |
| 406 | + TrackDownRecord trackDownRecord1 = records.get(0); | |
| 407 | + trackDownRecord.setId(trackDownRecord1.getId()); | |
| 408 | + //流程只能往下流转,不能往上回退,,因为9,10,11,12,是后面加入的产筛转出流程所以不做判断 | |
| 409 | + if (trackDownRecord.getTrackType() != null && trackDownRecord1.getTrackType() != 8 && trackDownRecord1.getTrackType() != 9 && trackDownRecord1.getTrackType() != 10 && trackDownRecord1.getTrackType() != 11 && trackDownRecord.getTrackType() < trackDownRecord1.getTrackType().intValue()) { | |
| 410 | + //用以前追访的类型和来源id | |
| 411 | + trackDownRecord.setTrackType(trackDownRecord1.getTrackType()); | |
| 412 | + trackDownRecord.setSource(trackDownRecord1.getSource()); | |
| 294 | 413 | } |
| 295 | - System.out.println("saveLisCrisisItemList end"); | |
| 414 | + //由显示修改成不显示,后期数据更新时,不允许将不显示修改成显示。 | |
| 415 | + if (trackDownRecord1.getStatus() < trackDownRecord.getStatus()) { | |
| 416 | + trackDownRecord.setStatus(trackDownRecord1.getStatus()); | |
| 417 | + } | |
| 418 | + trackDownRecord.setOverTimes(0); | |
| 419 | + trackDownRecordService.updateTrackDown(trackDownRecord, trackDownRecord1.getId()); | |
| 420 | + }else { | |
| 421 | + trackDownRecord.setOverTimes(0); | |
| 422 | + trackDownRecordService.addTrackDown(trackDownRecord); | |
| 423 | + } | |
| 424 | + | |
| 425 | + //把下次预约时间更新为空 | |
| 426 | + if (nextCheckTime == null && StringUtils.isNotEmpty(trackDownRecord.getId())) { | |
| 427 | + trackDownRecordService.updateTrackDownOneCol(trackDownRecord.getId(), null); | |
| 296 | 428 | } |
| 297 | 429 | |
| 298 | 430 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java
View file @
efd4679
| ... | ... | @@ -1594,8 +1594,7 @@ |
| 1594 | 1594 | //根据patient查询是否存在追访信息 |
| 1595 | 1595 | TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); |
| 1596 | 1596 | downRecordQuery.setParentId(patient.getId()); |
| 1597 | - //TODO 不知道这个status是干嘛用的 所以注释了 测试有问题的话再放开 | |
| 1598 | - //downRecordQuery.setStatus(3); | |
| 1597 | + downRecordQuery.setStatus(3); | |
| 1599 | 1598 | List <TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery); |
| 1600 | 1599 | if (CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型 |
| 1601 | 1600 | TrackDownRecord trackDownRecord1 = records.get(0); |