예제 #1
0
        public DemographicExecutionContext BuildDemographicSql(DemographicCompilerContext context, bool restrictPhi)
        {
            executionContext = new DemographicExecutionContext(context.Shape, context.QueryContext);

            var cohort = CteCohortInternals(context.QueryContext);

            new SqlValidator(Dialect.IllegalCommands).Validate(context.DemographicQuery);
            var dataset = CteDemographicInternals(context.DemographicQuery);

            var filter     = CteFilterInternals(context, restrictPhi);
            var select     = SelectFromCTE();
            var parameters = compiler.BuildContextParameterSql();

            executionContext.CompiledQuery = Compose(parameters, cohort, dataset, filter, select);

            return(executionContext);
        }
예제 #2
0
        public DatasetExecutionContext BuildDatasetSql(DatasetCompilerContext compilerContext)
        {
            executionContext = new DatasetExecutionContext(compilerContext.Shape, compilerContext.QueryContext, compilerContext.DatasetQuery.Id.Value);

            var cohort = CteCohortInternals(compilerContext);

            new SqlValidator(Dialect.IllegalCommands).Validate(compilerContext.DatasetQuery.SqlStatement);
            var dataset = CteDatasetInternals(compilerContext.DatasetQuery);

            var filter     = CteFilterInternals(compilerContext);
            var select     = SelectFromCTE(compilerContext);
            var parameters = compiler.BuildContextParameterSql();

            executionContext.DatasetQuery  = compilerContext.DatasetQuery;
            executionContext.CompiledQuery = Compose(parameters, cohort, dataset, filter, select);

            return(executionContext);
        }