| | |
| | | import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; |
| | | import cn.lihu.jh.module.ecg.webservice.WebServiceClient; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.dao.DuplicateKeyException; |
| | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | |
| | | String action = "S0405"; |
| | | ApplicationTemplate app = new ApplicationTemplate(); |
| | | String statusName = AppointmentTypeEnum.getByType(appointment.getStatus()); |
| | | String message = app.getXML( |
| | | appointment.getApplyNo(), |
| | | appointment.getStatus(), |
| | | statusName, |
| | | null, |
| | | appointment.getPatDeptCode(), |
| | | appointment.getPatDeptDesc(), |
| | | appointment.getPatWardCode(), |
| | | appointment.getPatWardDesc(), |
| | | appointment.getPatBedNo(), |
| | | appointment.getEpisodeId(), |
| | | String.valueOf(appointment.getBookSrc()), |
| | | appointment.getPatId(), |
| | | appointment.getPatName() |
| | | ); |
| | | String message = app.getXML(appointment.getApplyNo(), appointment.getStatus(), statusName, null, appointment.getPatDeptCode(), appointment.getPatDeptDesc(), appointment.getPatWardCode(), appointment.getPatWardDesc(), appointment.getPatBedNo(), appointment.getEpisodeId(), String.valueOf(appointment.getBookSrc()), appointment.getPatId(), appointment.getPatName()); |
| | | |
| | | try { |
| | | String response = webServiceClient.callJHFWTYRK(action, "", message); |
| | |
| | | @Override |
| | | public List<AppointmentDO> queryAndCreateAppointmentByPatId(String patCode) { |
| | | // 从医院平台查询 |
| | | List<AppointmentDO> appointmentExtermalList = getAppointmentExtermal(patCode); |
| | | List<AppointmentDO> appointmentExtermalList = appointmentMapper.getCurrentCode(patCode); |
| | | |
| | | for (int appointmentIndex = 0; appointmentIndex < appointmentExtermalList.size(); appointmentIndex++) { |
| | | AppointmentDO appointmentExtermal = appointmentExtermalList.get(appointmentIndex); |
| | |
| | | |
| | | @Override |
| | | public PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO) { |
| | | //1. 先根据patId去查 |
| | | PageResult<AppointmentDO> result = appointmentMapper.selectPage(pageReqVO); |
| | | log.info("--------------PATID result的值为:{}", result); |
| | | if (!result.getList().isEmpty()) { |
| | | return result; |
| | | } |
| | | |
| | | if (StringUtils.isNotEmpty(pageReqVO.getPatId())) { |
| | | // 2. 用 applyNo 查询 |
| | | pageReqVO.setApplyNo(pageReqVO.getPatId()); |
| | | pageReqVO.setPatId(null); |
| | | log.info("------------------ApplyNo pageReqVO的值为:{}", pageReqVO); |
| | | result = appointmentMapper.selectPage(pageReqVO); |
| | | if (!result.getList().isEmpty()) { |
| | | return result; |
| | | } |
| | | |
| | | // 3. 用 episodeId 查询 |
| | | pageReqVO.setEpisodeId(pageReqVO.getApplyNo()); |
| | | pageReqVO.setPatId(null); |
| | | pageReqVO.setApplyNo(null); |
| | | log.info("-----------EpisodeId pageReqVO的值为:{}", pageReqVO); |
| | | } |
| | | return appointmentMapper.selectPage(pageReqVO); |
| | | } |
| | | |
| | |
| | | |
| | | Optional.ofNullable(encounter.get("location")).map(location -> (Map<String, Object>) location).map(location -> (Map<String, Object>) location.get("serviceDeliveryLocation")).map(serviceDeliveryLocation -> (Map<String, Object>) serviceDeliveryLocation.get("location")).map(location -> (Map<String, Object>) location.get("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatBedNo); |
| | | |
| | | Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("zdy")).map(zdy -> { |
| | | Object ISDN = zdy.get("ISDN"); |
| | | if (ISDN != null) { |
| | | return ISDN.toString(); |
| | | } |
| | | return null; |
| | | }).ifPresent(appointment::setTolerance); |
| | | |
| | | // 设置患者来源类型 |
| | | Optional.ofNullable(encounter.get("code")).map(code -> (Map<String, Object>) code).map(code -> (String) code.get("code")).map(Integer::parseInt).ifPresent(appointment::setPatSrc); |
| | |
| | | Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("patientPerson")).ifPresent(patientPerson -> { |
| | | // 设置患者ID |
| | | Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatId); |
| | | |
| | | // 设置患者门诊号 |
| | | Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(2)).map(item -> (String) item.get("extension")).ifPresent(appointment::setOutpatientNo); |
| | | |
| | | // 设置患者住院号 |
| | | Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(2)).map(item -> (String) item.get("extension")).ifPresent(appointment::setHospitalNo); |
| | | |
| | | // 设置患者姓名 |
| | | Optional.ofNullable(patientPerson.get("name")).map(name -> (Map<String, Object>) name).map(name -> (Map<String, Object>) name.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setPatName); |
| | |
| | | |
| | | // 设置患者身份证号 |
| | | Optional.ofNullable(patientPerson.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> !items.isEmpty()).map(items -> (Map<String, Object>) items.get(0)).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatIdentityId); |
| | | |
| | | //患者医保卡 |
| | | Optional.ofNullable(patientPerson.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> !items.isEmpty()).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setMedicalCard); |
| | | }); |
| | | |
| | | // 设置科室和病区信息 |
| | |
| | | String status = Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("placerGroup")).map(placerGroup -> (Map<String, Object>) placerGroup.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("component1")).map(component1 -> (Map<String, Object>) component1.get("processStep")).map(processStep -> (Map<String, Object>) processStep.get("code")).map(code -> (String) code.get("code")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); |
| | | |
| | | existingAppointment.setStatus(status); |
| | | if ("3".equals(status)) { |
| | | existingAppointment.setRegisterDate(new Date()); |
| | | } |
| | | // 将AppointmentDO转换为AppointmentSaveReqVO并更新 |
| | | AppointmentSaveReqVO updateReqVO = BeanUtils.toBean(existingAppointment, AppointmentSaveReqVO.class); |
| | | updateAppointment(updateReqVO); |