package com.hanyun.hip.mrqc.jms.mapper;

import com.hanyun.hip.mrqc.jms.entity.MrqcEmrConfig;
import com.hanyun.hip.mrqc.jms.entity.ProcessDTO;
import com.hanyun.hip.mrqc.jms.entity.ProcessYWKDTO;
import com.hanyun.hip.mrqc.service.entity.EmrRecord;
import com.hanyun.hip.mrqc.service.entity.MrqcProcess;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子病历规则分配 数据层
 * 
 * @author ruoyi
 * @date 2024-04-22
 */
public interface MrqcEmrConfigMapper {

	/**
	 * 根据key查询电子病历分配信息
	 * @param configKey
	 * @return
	 */
	public MrqcEmrConfig selectMrqcEmrConfigByKey(@Param("configKey") String configKey);

	/**
     * 查询电子病历规则分配信息
     * 
     * @param configId 电子病历规则分配ID
     * @return 电子病历规则分配信息
     */
	public MrqcEmrConfig selectMrqcEmrConfigById(Long configId);
	
	/**
     * 查询电子病历规则分配列表
     * 
     * @param mrqcEmrConfig 电子病历规则分配信息
     * @return 电子病历规则分配集合
     */
	public List<MrqcEmrConfig> selectMrqcEmrConfigList(MrqcEmrConfig mrqcEmrConfig);
	
	/**
     * 新增电子病历规则分配
     * 
     * @param mrqcEmrConfig 电子病历规则分配信息
     * @return 结果
     */
	public int insertMrqcEmrConfig(MrqcEmrConfig mrqcEmrConfig);
	
	/**
     * 修改电子病历规则分配
     * 
     * @param mrqcEmrConfig 电子病历规则分配信息
     * @return 结果
     */
	public int updateMrqcEmrConfig(MrqcEmrConfig mrqcEmrConfig);
	
	/**
     * 删除电子病历规则分配
     * 
     * @param configId 电子病历规则分配ID
     * @return 结果
     */
	public int deleteMrqcEmrConfigById(Long configId);
	
	/**
     * 批量删除电子病历规则分配
     * 
     * @param configIds 需要删除的数据ID
     * @return 结果
     */
	public int deleteMrqcEmrConfigByIds(String[] configIds);

	List<ProcessDTO> getProcessList(MrqcProcess mrqcProcess);

	List<ProcessYWKDTO> getProcessListByYWK(MrqcProcess mrqcProcess);

	List<EmrRecord> selectEmrRecordList(EmrRecord emrRecord);

	List<EmrRecord> selectEmrRecordNotLikeList(EmrRecord emrRecord);

	List<EmrRecord> selectEmrRecordCommitList(EmrRecord emrRecord);
}