eight
2024-11-04 57569f51b379c187b7659a454eddabb0b08e34c9
对接平台接口
已修改4个文件
114 ■■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
@@ -113,10 +113,10 @@
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
    @PreAuthorize("@ss.hasPermission('ecg:appointment:query')")
    public CommonResult<AppointmentRespVO> queryHisByPatient(@RequestParam("patId") String patId) {
        AppointmentDO appointment = appointmentService.getAppointmentExtermal( patId );
        if ( null == appointment)
        List<AppointmentDO> appointmentList = appointmentService.getAppointmentExtermal( patId );
        if ( 0 == appointmentList.size() )
            return error(APPOINTMENT_NOT_BILLING);
        return success(BeanUtils.toBean(appointment, AppointmentRespVO.class));
        return success(BeanUtils.toBean(appointmentList.get(0), AppointmentRespVO.class));
    }
    @GetMapping("/page")
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java
@@ -9,6 +9,8 @@
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * 预约 Mapper
 *
@@ -42,9 +44,9 @@
                .orderByDesc(AppointmentDO::getId));
    }
    @Select("select * from lihu.appointment where pat_id = #{patId} and to_days(book_date) = to_days(Now())")
    List<AppointmentDO> getCurrentPatId(@Param("patId") String patId);
    @Select("select * from lihu.appointment where pat_id = #{patId} and to_days(book_date) = to_days(Now()) limit 1")
    AppointmentDO getCurrentPatId(@Param("patId") String patId);
    @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(Now()) limit 1")
    AppointmentDO getCurrentByPatAndCheckType(@Param("patId") String patId, @Param("checkType") Integer checkType);
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java
@@ -5,6 +5,7 @@
import cn.lihu.jh.framework.common.pojo.PageResult;
import javax.validation.Valid;
import java.util.List;
/**
 * 预约 Service 接口
@@ -67,7 +68,7 @@
     */
    PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO);
    AppointmentDO getAppointmentExtermal(String patId);
    List<AppointmentDO> getAppointmentExtermal(String patId);
    String appoitmentConfirm(AppointmentConfirmReqVO appointmentConfirmReqVO);
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java
@@ -25,6 +25,8 @@
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;
@@ -94,28 +96,33 @@
        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
@@ -124,7 +131,9 @@
    }
    @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 );
@@ -135,34 +144,44 @@
        // 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