in src/Microsoft.Health.Dicom.Core/Features/Query/QueryResponseBuilder.cs [119:156]
private void Initialize(QueryExpression queryExpression)
{
switch (queryExpression.QueryResource)
{
case QueryResource.AllStudies:
_tagsToReturn = new HashSet<DicomTag>(queryExpression.IncludeFields.All ? AllStudyTags : DefaultStudyTags);
break;
case QueryResource.AllSeries:
_tagsToReturn = new HashSet<DicomTag>(queryExpression.IncludeFields.All ? AllStudySeriesTags : DefaultStudySeriesTags);
break;
case QueryResource.StudySeries:
_tagsToReturn = new HashSet<DicomTag>(queryExpression.IncludeFields.All ? AllSeriesTags : DefaultSeriesTags);
break;
case QueryResource.AllInstances:
_tagsToReturn = new HashSet<DicomTag>(queryExpression.IncludeFields.All ? AllStudySeriesInstanceTags : DefaultStudySeriesInstanceTags);
break;
case QueryResource.StudyInstances:
_tagsToReturn = new HashSet<DicomTag>(queryExpression.IncludeFields.All ? AllSeriesInstanceTags : DefaultSeriesInstanceTags);
break;
case QueryResource.StudySeriesInstances:
_tagsToReturn = new HashSet<DicomTag>(queryExpression.IncludeFields.All ? AllInstancesTags : DefaultInstancesTags);
break;
default:
Debug.Fail("A newly added queryResource is not implemeted here");
break;
}
foreach (DicomTag tag in queryExpression.IncludeFields.DicomTags)
{
// we will allow any valid include tag. This will allow customers to get any extended query tags in resposne.
_tagsToReturn.Add(tag);
}
foreach (var cond in queryExpression.FilterConditions)
{
_tagsToReturn.Add(cond.QueryTag.Tag);
}
}