package edu.harvard.i2b2.crc.dao.pdo.input;
import java.util.List;
import java.util.Map;
import edu.harvard.i2b2.common.exception.I2B2DAOException;
import edu.harvard.i2b2.crc.datavo.ontology.XmlValueType;
import edu.harvard.i2b2.crc.datavo.pdo.ObservationSet;
import edu.harvard.i2b2.crc.datavo.pdo.query.PanelType;
public interface IFactRelatedQueryHandler {
/**
* Function to build and execute pdo sql and build plain pdo's observation
* fact
*
* @return
* @throws Exception
*/
public List<ObservationSet> getPdoObservationFact() throws I2B2DAOException;
/**
* Function to build and execute pdo sql and build table pdo's observation
* fact
*
* @return ObservationSet list
* @throws I2B2DAOException
*/
public List<ObservationSet> getTablePdoObservationFact()
throws I2B2DAOException;
/**
* Returns provider id, belong to the facts
*
* @return list of provider/observer id
*/
public List<String> getProviderFactList();
/**
* Returns concept code belong to the facts
*
* @return
*/
public List<String> getConceptFactList();
/**
* Returns modifier code belong to the facts
*
* @return
*/
public List<String> getModifierFactList();
/**
* Returns patient number belong to the facts
*
* @return
*/
public List<String> getPatientFactList();
/**
* Returns encounter number belong to the facts
*
* @return list of encounter number
*/
public List<String> getVisitFactList();
/**
* This is the main function to build query for plain and table pdo request
*
* @param pdoType
* @return String
* @throws I2B2DAOException
*/
public String buildQuery(PanelType panel, String pdoType)
throws I2B2DAOException;
public String buildTotalQuery(PanelType panel, String pdoType)
throws I2B2DAOException;
public List<String> getPanelSqlList();
public void setProjectParamMap(Map projectParamMap);
public void setModifierMetadataXmlMap(Map<String,XmlValueType> modifierMetadataXmlMap) ;
public void setRequestVersion(String requestVersion);
}