package com.ruoyi.web.work.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.web.work.domain.FollowRecord;
import com.ruoyi.web.work.domain.dto.FollowRecordDto;
import com.ruoyi.web.work.domain.dto.VisitDto;
import com.ruoyi.web.work.domain.vo.FollowRecordVoList;
import com.ruoyi.web.work.domain.vo.VisitVoList;

import java.util.List;

/**
 * @author lsw
 * @date 2024-07-18
 */
public interface IFollowRecordService extends IService<FollowRecord> {
    List<FollowRecord> selectList(FollowRecord followRecord);

    /**
     * 查看详情
     *
     * @param id
     * @return
     */
    AjaxResult detail(Long id);

    /**
     * 患者填写随访内容提交
     *
     * @param dto
     * @return
     */
    AjaxResult push(FollowRecordDto dto);


    /**
     * 当前医生所属的患者记录
     *
     * @param dto
     * @return
     */
    List<VisitVoList> selectVisitList(VisitDto dto);


    /**
     * 当前就诊人的复诊和随访记录
     *
     * @param followRecord
     * @return
     */
    List<FollowRecordVoList> selectAppList(FollowRecord followRecord);

    /**
     * 医生新增随访记录
     *
     * @param followRecord
     * @return
     */
    AjaxResult add(FollowRecord followRecord);

    /**
     * 患者阅读复诊提醒
     *
     * @param id
     * @return
     */
    AjaxResult read(Long id);

    /**
     * 向订阅消息的患者推送提醒
     *
     * @param record
     */
    void sendMessage(FollowRecord record);
}
