package edu.harvard.i2b2.crc.dao.setfinder;
import java.util.Map;
import edu.harvard.i2b2.common.exception.I2B2DAOException;
import edu.harvard.i2b2.common.exception.I2B2Exception;
import edu.harvard.i2b2.common.util.jaxb.JAXBUtilException;
public interface IQueryRequestDao {
/**
* Function to execute the given setfinder sql And creates query instance
* and query result instance
*
* @param generatedSql
* @param queryInstanceId
* @return query result instance id
* @throws I2B2DAOException
*/
// public String getPatientCount(String generatedSql, String
// queryInstanceId,
// String patientSetId) throws I2B2DAOException;
/**
* Function to build sql from given query definition This function uses
* QueryToolUtil class to build sql
*
* @param queryRequestXml
* @return sql string
* @throws I2B2DAOException
* @throws I2B2Exception
* @throws JAXBUtilException
*/
public String[] buildSql(String queryRequestXml, boolean encounterSetFlag)
throws I2B2DAOException, I2B2Exception, JAXBUtilException;
/**
* set the project param flag
* @param Map projectParamMap
*/
public void setProjectParam(Map projectParamMap) ;
/**
* set the large text value constrain
* @param allowLargeTextValueConstrainFlag
*/
public void setAllowLargeTextValueConstrainFlag(boolean allowLargeTextValueConstrainFlag) ;
/**
* set query with temp table optimization
* @param allowLargeTextValueConstrainFlag
*/
public void setQueryWithoutTempTableFlag(boolean queryWithoutTempTableFlag) ;
}