package com.hxhq.business.service;

import java.util.List;
import com.hxhq.business.domain.StudyFormFill;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.dto.study.StudyFormFillListDto;
import com.hxhq.business.form.study.*;

/**
 * 试验-填报单Service接口
 *
 * @author hxhq
 * @date 2025-12-29
 */
public interface IStudyFormFillService extends IService<StudyFormFill>
{
    /**
     * 前序表单列表
     * @param form
     * @return
     */
    public List<StudyFormFill> queryQxList(StudyFormFill form);

    /**
     * 查询试验-填报单列表
     *
     * @param form 试验-填报单
     * @return 试验-填报单集合
     */
    public List<StudyFormFillListDto> queryList(StudyFormFillSearchForm form);


    /**
     * 开始配置
     * @param form
     * @return
     */
    public void startConfiguration(StudyFormConfigurationForm form);


    /**
     * 配置完成
     * @param form
     * @return
     */
    public void configurationCompleted(StudyFormConfigurationForm form);


    /**
     * 分装
     * @param form
     * @return
     */
    public void subpackage(StudyFormFillSubpackageForm form);

    /**
     * 详情
     *
     * @param id
     * @return 详情
     */
    public StudyFormFill queryInfo(Long id);

    /**
     * 加签
     * @param studyFormFill
     * @return
     */
    public void jq(StudyFormFill studyFormFill);

    /**
     * 废止
     * @param studyFormFill
     * @return
     */
    public void fz(StudyFormFill studyFormFill);


    /**
     * 确认废止
     * @param form
     * @return
     */
    public void qrfz(StudyFormFillShfzForm form);


    /**
     * 更换归属人
     * @param studyFormFill
     * @return
     */
    public void ghgsr(StudyFormFill studyFormFill);

    /**
     * 保存
     * @param studyFormFill
     * @return
     */
    public StudyFormFill bc(StudyFormFill studyFormFill);

    /**
     * 预填填报
     * @param studyFormFill
     * @return
     */
    public void bcAuto(StudyFormFill studyFormFill);

    /**
     * 仅保存
     * @param studyFormFill
     * @return
     */
    public StudyFormFill bcOnly(StudyFormFill studyFormFill);

    /**
     * 提交
     * @param studyFormFill
     * @return
     */
    public void tj(StudyFormFill studyFormFill);

    /**
     * 提交病理学家审核
     * @param studyFormFill
     * @return
     */
    public void tjblxjsh(StudyFormFill studyFormFill);

    /**
     * 药剂存储
     * @param studyFormFill
     * @return
     */
    public void yjcc(StudyFormFill studyFormFill);

    /**
     * 药剂存储过滤
     * @param studyFormFill
     * @return
     */
    public String yjccFilter(StudyFormFill studyFormFill);


    /**
     * 观察
     * @param form
     * @return
     */
    public void gc(StudyFormFillGcForm form);


    /**
     * 病理学家审核通过
     * @param studyFormFill
     * @return
     */
    public void blxjshtg(StudyFormFill studyFormFill);


    /**
     * 病理学家审核拒绝
     * @param studyFormFill
     */
    public void blxjshjj(StudyFormFill studyFormFill);


    /**
     * 复核通过
     * @param studyFormFill
     * @return
     */
    public void fhtg(StudyFormFill studyFormFill);


    /**
     * 复核拒绝
     * @param studyFormFill
     */
    public void fhjj(StudyFormFill studyFormFill);

    /**
     * 通过
     * @param studyFormFill
     */
    public void tg(StudyFormFill studyFormFill);

    /**
     * 审阅
     * @param studyFormFill
     * @return
     */
    public void sy(StudyFormFill studyFormFill);

    /**
     * 更新表单内容
     * @param form
     * @return
     */
    public void updateBdnr(StudyFormUpdateForm form);

    /**
     * 更新复核意见
     * @param form
     * @return
     */
    public void updateFhyjjl(StudyFormUpdateForm form);

    /**
     * 更新字段勾选记录
     * @param form
     * @return
     */
    public void updateZdgxjl(StudyFormUpdateForm form);

}
