package edu.harvard.i2b2.crc.dao.pdo;
import java.util.List;
import edu.harvard.i2b2.common.exception.I2B2DAOException;
import edu.harvard.i2b2.crc.dao.pdo.input.IInputOptionListHandler;
import edu.harvard.i2b2.crc.datavo.pdo.ParamType;
import edu.harvard.i2b2.crc.datavo.pdo.PatientSet;
import edu.harvard.i2b2.crc.datavo.pdo.query.EventListType;
import edu.harvard.i2b2.crc.datavo.pdo.query.PatientListType;
public interface IPdoQueryPatientDao {
public void setMetaDataParamList(List<ParamType> metaDataParamList);
/**
* Get Patient set based on the fact's filter
*
* @param panelSqlList
* @param sqlParamCountList
* @param inputOptionListHandler
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return
* @throws I2B2DAOException
*/
public PatientSet getPatientByFact(List<String> panelSqlList,
List<Integer> sqlParamCountList,
IInputOptionListHandler inputOptionListHandler, boolean detailFlag,
boolean blobFlag, boolean statusFlag) throws I2B2DAOException;
/**
* Function to return patient dimension data for given list of patient num
*
* @param patientNumList
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return PatientDataType.PatientDimensionSet
* @throws Exception
*/
public PatientSet getPatientByPatientNum(List<String> patientNumList,
boolean detailFlag, boolean blobFlag, boolean statusFlag)
throws I2B2DAOException;
/**
* Get Patient dimension data based on patientlist present in input option
* list
*
* @param patientListType
* {@link PatientListType}
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return PatientDataType.PatientDimensionSet
* @throws I2B2DAOException
*/
public PatientSet getPatientFromPatientSet(PatientListType patientListType,
boolean detailFlag, boolean blobFlag, boolean statusFlag)
throws I2B2DAOException;
/**
* Get Patient dimension data based on visitlist present in input option
* list
*
* @param eventListType
* {@link EventListType}
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return PatientDataType.PatientDimensionSet
* @throws I2B2DAOException
*/
public PatientSet getPatientFromVisitSet(EventListType visitListType,
boolean detailFlag, boolean blobFlag, boolean statusFlag)
throws I2B2DAOException;
}