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.ConceptSet;
import edu.harvard.i2b2.crc.datavo.pdo.PatientDataType;
public interface IPdoQueryConceptDao {
/**
* Get concepts detail from concept code list
*
* @param conceptCdList
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return {@link PatientDataType.ConceptDimensionSet}
* @throws I2B2DAOException
*/
public ConceptSet getConceptByConceptCd(List<String> conceptCdList,
boolean detailFlag, boolean blobFlag, boolean statusFlag)
throws I2B2DAOException;
/**
* Get concept children by item key
*
* @param itemKey
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return
* @throws I2B2DAOException
*/
public ConceptSet getChildrentByItemKey(String itemKey, boolean detailFlag,
boolean blobFlag, boolean statusFlag) throws I2B2DAOException;
/**
* Get Concept set based on the fact's filter
*
* @param panelSqlList
* @param sqlParamCountList
* @param inputOptionListHandler
* @param detailFlag
* @param blobFlag
* @param statusFlag
* @return
* @throws I2B2DAOException
*/
public ConceptSet getConceptByFact(List<String> panelSqlList,
List<Integer> sqlParamCountList,
IInputOptionListHandler inputOptionListHandler, boolean detailFlag,
boolean blobFlag, boolean statusFlag) throws I2B2DAOException;
}