package com.openhis.web.ybmanage.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.openhis.yb.dto.*;

/**
 * 医保Mapper
 *
 * @author Thanking
 */
@Repository
public interface YbMapper {

    /**
     * 【3101】查询就诊患者信息
     * 
     * @param encounterId 就诊ID
     * @param encounterFlag 是否为就诊登记使用
     * @param participantType 参与者类型
     * @param deleteFlag 删除状态
     * @return 就诊患者信息
     */
    Yb3101AdapterEncounterPatientInfo yb3101SelectEncounterPatientInfo(@Param("encounterId") Long encounterId,
        @Param("encounterFlag") Integer encounterFlag, @Param("participantType") String participantType,
        @Param("deleteFlag") String deleteFlag);

    /**
     * 【3101】查询就诊诊断信息
     *
     * @param encounterId 就诊ID
     * @param deleteFlag 删除状态
     * @return 就诊诊断信息
     */
    List<Yb3101AdapterEncounterDiagnoseInfo> yb3101SelectEncounterDiagnoseInfo(@Param("encounterId") Long encounterId,
        @Param("deleteFlag") String deleteFlag);

    /**
     * 【3101】查询处方（医嘱）信息
     *
     * @param encounterId 就诊ID
     * @param deleteFlag 删除状态
     * @param ybMedChrgItmTypeWest 医疗收费项目类别-西药费
     * @param ybMedChrgItmTypeChineseSlices 医疗收费项目类别-中药饮片费
     * @param ybMedChrgItmTypeChinese 医疗收费项目类别-中成药费
     * @return 处方（医嘱）信息
     */
    List<Yb3101AdapterOrderInfo> yb3101SelectOrderInfo(@Param("encounterId") Long encounterId,
        @Param("deleteFlag") String deleteFlag, @Param("ybMedChrgItmTypeWest") String ybMedChrgItmTypeWest,
        @Param("ybMedChrgItmTypeChineseSlices") String ybMedChrgItmTypeChineseSlices,
        @Param("ybMedChrgItmTypeChinese") String ybMedChrgItmTypeChinese);

    /**
     * 【4101A】查询结算清单信息
     * 
     * @param paymentId 付款ID
     * @return 结算清单信息
     */
    List<Yb4101AAdapterSettleInfo> yb4101aSelectSettleInfo(@Param("paymentId") Long paymentId);

    /**
     * 【4101A】查询门诊慢特病诊断信息
     *
     * @param paymentId 付款ID
     * @return 门诊慢特病诊断信息
     */
    List<Yb4101AInputOpspdiseinfo> yb4101aSelectOpspdiseinfo(@Param("paymentId") Long paymentId);

}
