package edu.harvard.i2b2.crc.dao.setfinder.querybuilder; import edu.harvard.i2b2.crc.dao.CRCDAO; import edu.harvard.i2b2.crc.datavo.db.DataSourceLookup; public class BuildInvertSql extends CRCDAO { private String tempTableName = null; private DataSourceLookup dataSourceLookup = null; public BuildInvertSql(DataSourceLookup dataSourceLookup, String tempTableName) { this.setDbSchemaName(dataSourceLookup.getFullSchema()); this.dataSourceLookup = dataSourceLookup; this.tempTableName = tempTableName; } public String buildInsertInvertSql(String queryTiming) { String insertInvertSql = ""; String selectEncounterNum = " ", selectPatientNum = " patient_num "; String invertTableName = "patient_dimension pat "; QueryTimingHandler queryTimingHandler = new QueryTimingHandler(); if (queryTimingHandler.isSameVisit(queryTiming)) { selectEncounterNum = " , encounter_num "; invertTableName = "visit_dimension visit "; } insertInvertSql = " insert into " + this.dbSchemaName + this.tempTableName + " ( " + selectPatientNum + selectEncounterNum + ", panel_count ) select distinct " + selectPatientNum + selectEncounterNum + ",1 from " + this.dbSchemaName + invertTableName ; insertInvertSql += "\n<*>\n"; return insertInvertSql; } }