| | |
| | | package cn.lihu.jh.module.ecg.service.appointment; |
| | | |
| | | import cn.lihu.jh.framework.common.util.date.DateUtils; |
| | | import cn.lihu.jh.framework.common.util.date.LocalDateTimeUtils; |
| | | import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO; |
| | | import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; |
| | | import cn.lihu.jh.module.ecg.feign.RemoteDataService; |
| | | import cn.lihu.jh.module.ecg.feign.RestApiReqBodyVo; |
| | | import cn.lihu.jh.module.ecg.feign.RestApiResult; |
| | |
| | | import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; |
| | | import cn.lihu.jh.framework.common.pojo.PageResult; |
| | | import cn.lihu.jh.framework.common.pojo.PageParam; |
| | | import cn.lihu.jh.framework.common.util.object.BeanUtils; |
| | | |
| | | import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.xml.crypto.Data; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | |
| | | import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.lihu.jh.framework.common.pojo.CommonResult.error; |
| | | import static cn.lihu.jh.framework.common.pojo.CommonResult.success; |
| | | import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; |
| | | |
| | | /** |
| | |
| | | private AppointmentMapper appointmentMapper; |
| | | |
| | | @Override |
| | | public Integer createAppointment(AppointmentSaveReqVO createReqVO) { |
| | | public Long createAppointment(AppointmentSaveReqVO createReqVO) { |
| | | // 插入 |
| | | AppointmentDO appointment = BeanUtils.toBean(createReqVO, AppointmentDO.class); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void deleteAppointment(Integer id) { |
| | | public void deleteAppointment(Long id) { |
| | | // 校验存在 |
| | | validateAppointmentExists(id); |
| | | // 删除 |
| | | appointmentMapper.deleteById(id); |
| | | } |
| | | |
| | | private void validateAppointmentExists(Integer id) { |
| | | private void validateAppointmentExists(Long id) { |
| | | if (appointmentMapper.selectById(id) == null) { |
| | | throw exception(APPOINTMENT_NOT_EXISTS); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public AppointmentDO getAppointment(Integer id) { |
| | | public AppointmentDO getAppointment(Long id) { |
| | | return appointmentMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public AppointmentDO getAppointmentByPatId(String patId) { |
| | | return appointmentMapper.getByPatId( patId ); |
| | | // 先从医院平台查询 |
| | | AppointmentDO appointmentExtermal = getAppointmentExtermal( patId ); |
| | | if (null != appointmentExtermal && null != appointmentExtermal.getBookDate() && appointmentExtermal.getBookDate().isEqual(LocalDate.now()) ) { |
| | | // 查询DB中 是否已经存在 |
| | | AppointmentDO appointmentDO = appointmentMapper.getCurrentPatId( patId ); |
| | | if (null == appointmentDO ) { |
| | | appointmentExtermal.setBookSrc(0); |
| | | appointmentMapper.insert( appointmentExtermal ); |
| | | return appointmentExtermal; |
| | | } |
| | | return appointmentDO; |
| | | } |
| | | |
| | | return appointmentMapper.getCurrentPatId( patId ); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public AppointmentDO getAppointmentExtermal(String mzzyh) { |
| | | public AppointmentDO getAppointmentExtermal(String patId) { |
| | | RestApiReqBodyVo reqBodyVo = new RestApiReqBodyVo(); |
| | | //reqBodyVo.setSfzh(confirmReqVO.getPatId()); |
| | | reqBodyVo.setMzzyh( mzzyh ); |
| | | reqBodyVo.setSfzh(""); |
| | | reqBodyVo.setMzzyh( patId ); |
| | | |
| | | // QueryRisReportList queryEcgRequest |
| | | RestApiResult<AppointmentExternal> result = remoteDataService.httpApi("queryEcgRequest", "ECG", "ECG", reqBodyVo); |
| | | result.getCode(); |
| | | |
| | | AppointmentExternal appointmentExternal = result.getRow().get(0); |
| | | |
| | | AppointmentDO appointmentDO = BeanUtils.toBean( appointmentExternal, AppointmentDO.class ); |
| | | |
| | | appointmentDO.setPatId( appointmentExternal.getPatientID() ); // 内容为 身份证号 或 门诊住院号 |
| | | appointmentDO.setPatName( appointmentExternal.getPatName() ); |
| | | appointmentDO.setPatGender( Byte.valueOf(appointmentExternal.getPatgender()) ); |
| | | appointmentDO.setPatBirthday( appointmentExternal.getEncPatBirthDate() ); |
| | | appointmentDO.setPatBirthday( DateUtils.ofUTC(appointmentExternal.getEncPatBirthDate()).toLocalDate() ); |
| | | appointmentDO.setPatIdentityId( appointmentExternal.getIdentityID() ); |
| | | appointmentDO.setPatAddr( appointmentExternal.getAddress() ); |
| | | appointmentDO.setPatDeptCode( appointmentExternal.getPatLocDeptCode() ); |
| | |
| | | appointmentDO.setPatMobile( appointmentExternal.getPhone() ); |
| | | appointmentDO.setPatBedNo( appointmentExternal.getEnBedno() ); |
| | | appointmentDO.setBookId( appointmentExternal.getReqIdeApplyno() ); |
| | | appointmentDO.setBookDate( appointmentExternal.getReqExtBooktime().toLocalDate() ); |
| | | appointmentDO.setBookDate( DateUtils.ofUTC( appointmentExternal.getReqExtBooktime() ).toLocalDate() ); |
| | | appointmentDO.setBookCheckType( getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode()) ); |
| | | appointmentDO.setBookTime( appointmentExternal.getReqAuthoredOn() ); |
| | | LocalDateTime bookStartTime = appointmentExternal.getReqExtBooktime(); |
| | | appointmentDO.setBookTime( DateUtils.ofUTC( appointmentExternal.getReqAuthoredOn() ) ); |
| | | LocalDateTime bookStartTime = DateUtils.ofUTC( appointmentExternal.getReqExtBooktime() ); |
| | | LocalDateTime bookEndTime = bookStartTime.plusMinutes(30); |
| | | appointmentDO.setBookTimeslot( (bookStartTime.getHour()*100 + bookStartTime.getMinute())*10000 + bookEndTime.getHour()*100 + bookEndTime.getMinute() ); |
| | | appointmentDO.setBookSrc( 0 ); |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public String appoitmentConfirm(AppointmentConfirmReqVO confirmReqVO) { |
| | | AppointmentDO appointment = getAppointmentExtermal(confirmReqVO.getMzzyh()); |
| | | if (null == appointment ) { |
| | | //从预约表取数据,后续对接数据平台查预约数据 |
| | | appointment = getAppointment(confirmReqVO.getId()); |
| | | } |
| | | |
| | | AppointmentDO appointment = getAppointment(confirmReqVO.getId()); |
| | | if (null == appointment) |
| | | throw exception(PATIENT_NOT_EXISTS); |
| | | |
| | | if ( !DateUtils.isToday(appointment.getBookDate()) ) |
| | | throw exception( APPOINTMENT_NOT_TODAY); |
| | | |
| | | appointmentMapper.insert(appointment); |
| | | |
| | | try { |
| | | QueueSaveReqVO queueSaveReqVO = new QueueSaveReqVO(); |