in src/Microsoft.Health.Dicom.SqlServer/Features/Query/SqlQueryGenerator.cs [84:141]
private void AppendFilterTable(string filterAlias)
{
_stringBuilder.AppendLine("( SELECT ");
if (_queryExpression.IsInstanceIELevel())
{
_stringBuilder.AppendLine(VLatest.Study.StudyInstanceUid, InstanceTableAlias);
_stringBuilder.Append(",").AppendLine(VLatest.Series.SeriesInstanceUid, InstanceTableAlias);
_stringBuilder.Append(",").AppendLine(VLatest.Instance.SopInstanceUid, InstanceTableAlias);
_stringBuilder.Append(",").AppendLine(VLatest.Instance.Watermark, InstanceTableAlias);
}
else
{
_stringBuilder.AppendLine(VLatest.Study.StudyKey, StudyTableAlias);
if (_queryExpression.IsSeriesIELevel())
{
_stringBuilder.Append(",").AppendLine(VLatest.Series.SeriesKey, SeriesTableAlias);
}
}
_stringBuilder.AppendLine($"FROM {VLatest.Study.TableName} {StudyTableAlias}");
if (_queryExpression.IsSeriesIELevel() || _queryExpression.IsInstanceIELevel())
{
_stringBuilder.AppendLine($"INNER JOIN {VLatest.Series.TableName} {SeriesTableAlias}");
_stringBuilder
.Append("ON ")
.Append(VLatest.Series.StudyKey, SeriesTableAlias)
.Append(" = ")
.AppendLine(VLatest.Study.StudyKey, StudyTableAlias);
AppendPartitionJoinClause(SeriesTableAlias, StudyTableAlias);
}
if (_queryExpression.IsInstanceIELevel())
{
_stringBuilder.AppendLine($"INNER JOIN {VLatest.Instance.TableName} {InstanceTableAlias}");
_stringBuilder
.Append("ON ")
.Append(VLatest.Instance.SeriesKey, InstanceTableAlias)
.Append(" = ")
.AppendLine(VLatest.Series.SeriesKey, SeriesTableAlias);
AppendPartitionJoinClause(InstanceTableAlias, SeriesTableAlias);
AppendStatusClause(InstanceTableAlias);
}
AppendExtendedQueryTagTables();
_stringBuilder.AppendLine("WHERE 1 = 1");
AppendPartitionWhereClause(StudyTableAlias);
using (IndentedStringBuilder.DelimitedScope delimited = _stringBuilder.BeginDelimitedWhereClause())
{
AppendFilterClause();
}
AppendFilterPaging();
_stringBuilder.AppendLine($") {filterAlias}");
}