| | |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.lihu.jh.framework.common.pojo.CommonResult.error; |
| | |
| | | return appointmentMapper.selectById(id); |
| | | } |
| | | |
| | | // TODO 尚不支持, 一位患者当天两种检查项目的情况 |
| | | @Override |
| | | public AppointmentDO getCurAppointmentByPatId(String patId) { |
| | | AppointmentDO appointmentDO = appointmentMapper.getCurrentPatId( patId ); |
| | | return appointmentDO; |
| | | List<AppointmentDO> appointmentDOList = appointmentMapper.getCurrentPatId( patId ); |
| | | return 0 == appointmentDOList.size() ? null : appointmentDOList.get(0); |
| | | } |
| | | |
| | | // TODO 尚不支持, 一位患者当天两种检查项目的情况 |
| | | @Override |
| | | public AppointmentDO queryAndCreateAppointmentByPatId(String 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; |
| | | List<AppointmentDO> appointmentExtermalList = getAppointmentExtermal( patId ); |
| | | for ( int appointmentIndex = 0; appointmentIndex < appointmentExtermalList.size(); appointmentIndex++ ) { |
| | | AppointmentDO appointmentExtermal = appointmentExtermalList.get(appointmentIndex); |
| | | if (null != appointmentExtermal && null != appointmentExtermal.getBookDate() && appointmentExtermal.getBookDate().isEqual(LocalDate.now())) { |
| | | // 查到当天的预约后,查询DB中 是否已经存在 |
| | | AppointmentDO appointmentDO = appointmentMapper.getCurrentByPatAndCheckType(patId, appointmentExtermal.getBookCheckType()); |
| | | if (null == appointmentDO) { |
| | | appointmentMapper.insert(appointmentExtermal); |
| | | return appointmentExtermal; |
| | | } |
| | | return appointmentDO; |
| | | } |
| | | return appointmentDO; |
| | | } |
| | | |
| | | return appointmentMapper.getCurrentPatId( patId ); |
| | | List<AppointmentDO> appointmentDOList = appointmentMapper.getCurrentPatId( patId ); |
| | | return 0 == appointmentDOList.size() ? null : appointmentDOList.get(0); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public AppointmentDO getAppointmentExtermal(String patId) { |
| | | public List<AppointmentDO> getAppointmentExtermal(String patId) { |
| | | List<AppointmentDO> curAppointDOList = new ArrayList<AppointmentDO>(); |
| | | |
| | | RestApiReqBodyVo reqBodyVo = new RestApiReqBodyVo(); |
| | | if (18 == patId.length()) { |
| | | reqBodyVo.setSfzh( patId ); |
| | |
| | | // QueryRisReportList queryEcgRequest |
| | | RestApiResult<AppointmentExternal> result = remoteDataService.httpApi("queryEcgRequest", "ECG", "ECG", reqBodyVo); |
| | | if (0 == result.getRow().size()) { |
| | | return null; |
| | | return curAppointDOList; |
| | | } |
| | | |
| | | AppointmentExternal appointmentExternal = result.getRow().get(0); |
| | | AppointmentDO appointmentDO = BeanUtils.toBean( appointmentExternal, AppointmentDO.class ); |
| | | for (int appointIndex=0; appointIndex < result.getRow().size(); appointIndex++ ) { |
| | | AppointmentExternal appointmentExternal = result.getRow().get( appointIndex ); |
| | | |
| | | appointmentDO.setPatId( appointmentExternal.getPatientID() ); // 内容为 身份证号 或 门诊住院号 |
| | | appointmentDO.setPatName( appointmentExternal.getPatName() ); |
| | | appointmentDO.setPatGender( Byte.valueOf(appointmentExternal.getPatgender()) ); |
| | | appointmentDO.setPatBirthday( DateUtils.ofUTC(appointmentExternal.getEncPatBirthDate()).toLocalDate() ); |
| | | appointmentDO.setPatIdentityId( appointmentExternal.getIdentityID() ); |
| | | appointmentDO.setPatAddr( appointmentExternal.getAddress() ); |
| | | appointmentDO.setPatDeptCode( appointmentExternal.getPatLocDeptCode() ); |
| | | appointmentDO.setPatDeptDesc( appointmentExternal.getPatLocDeptDesc() ); |
| | | appointmentDO.setPatWardCode( appointmentExternal.getPatLocWardCode() ); |
| | | appointmentDO.setPatWardDesc( appointmentExternal.getPatLocWardDesc() ); |
| | | appointmentDO.setPatMobile( appointmentExternal.getPhone() ); |
| | | appointmentDO.setPatBedNo( appointmentExternal.getEnBedno() ); |
| | | appointmentDO.setBookId( appointmentExternal.getReqIdeApplyno() ); |
| | | appointmentDO.setBookDate( DateUtils.ofUTC( appointmentExternal.getReqExtBooktime() ).toLocalDate() ); |
| | | appointmentDO.setBookCheckType( getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode()) ); |
| | | 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 ); |
| | | appointmentDO.setPaid( 1 ); |
| | | return appointmentDO; |
| | | AppointmentDO appointmentDO = BeanUtils.toBean(appointmentExternal, AppointmentDO.class); |
| | | appointmentDO.setPatId(appointmentExternal.getPatientID()); // 内容为 身份证号 或 门诊住院号 |
| | | appointmentDO.setPatName(appointmentExternal.getPatName()); |
| | | appointmentDO.setPatGender(Byte.valueOf(appointmentExternal.getPatgender())); |
| | | appointmentDO.setPatBirthday(DateUtils.ofUTC(appointmentExternal.getEncPatBirthDate()).toLocalDate()); |
| | | appointmentDO.setPatIdentityId(appointmentExternal.getIdentityID()); |
| | | appointmentDO.setPatAddr(appointmentExternal.getAddress()); |
| | | appointmentDO.setPatDeptCode(appointmentExternal.getPatLocDeptCode()); |
| | | appointmentDO.setPatDeptDesc(appointmentExternal.getPatLocDeptDesc()); |
| | | appointmentDO.setPatWardCode(appointmentExternal.getPatLocWardCode()); |
| | | appointmentDO.setPatWardDesc(appointmentExternal.getPatLocWardDesc()); |
| | | appointmentDO.setPatMobile(appointmentExternal.getPhone()); |
| | | appointmentDO.setPatBedNo(appointmentExternal.getEnBedno()); |
| | | appointmentDO.setBookId(appointmentExternal.getReqIdeApplyno()); |
| | | appointmentDO.setBookCheckType(getCorrespondingCheckType(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode())); |
| | | appointmentDO.setBookTime(DateUtils.ofUTC(appointmentExternal.getReqAuthoredOn())); // 开单时间 |
| | | |
| | | // 光开单的情况,没有预约时间 |
| | | if (null != appointmentExternal.getReqExtBooktime() ) { |
| | | appointmentDO.setBookDate(DateUtils.ofUTC(appointmentExternal.getReqExtBooktime()).toLocalDate()); |
| | | 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); |
| | | appointmentDO.setPaid(1); |
| | | |
| | | curAppointDOList.add( appointmentDO ); |
| | | } |
| | | |
| | | return curAppointDOList; |
| | | } |
| | | |
| | | @Override |