Ejemplo n.º 1
0
        protected virtual void FillAdditionalQueryParameters
        (
            IEnumerable <IMatchingCondition> conditions,
            IQueryOptions options,
            IQueryResponseBuilder responseBuilder,
            string queryLevel
        )
        {
            if (queryLevel == ObjectQueryLevelConstants.Study)
            {
                Dictionary <string, StudyAdditionalParams> studyKeyValuePairs = new Dictionary <string, StudyAdditionalParams>();
                var studies = responseBuilder.GetResults(ObjectQueryLevelConstants.Study);


                FillStudyRelatedSeriesParameters(responseBuilder, studyKeyValuePairs);
                FillStudyRelatedInstancesParameters(responseBuilder, studyKeyValuePairs);

                foreach (var studyDs in studies)
                {
                    string studyUid = studyDs.GetSingleValueOrDefault(DicomTag.StudyInstanceUID, "");

                    if (studyKeyValuePairs.ContainsKey(studyUid))
                    {
                        var studyParams = studyKeyValuePairs[studyUid];


                        studyDs.AddOrUpdate(DicomTag.ModalitiesInStudy, studyParams.Modality.ToArray());
                        studyDs.AddOrUpdate(DicomTag.NumberOfStudyRelatedSeries, studyParams.NumberOfSeries);
                        studyDs.AddOrUpdate(DicomTag.NumberOfStudyRelatedInstances, studyParams.NumberOfInstances);
                    }
                }
            }
            else if (queryLevel == ObjectQueryLevelConstants.Series)
            {
                Dictionary <string, SeriesAdditionalParams> seriesKeyValuePairs = new Dictionary <string, SeriesAdditionalParams>();
                var series = responseBuilder.GetResults(ObjectQueryLevelConstants.Series);


                FillSeriesRelatedInstancesParameters(responseBuilder, seriesKeyValuePairs);

                foreach (var seriesDs in series)
                {
                    var seriesUid = seriesDs.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, "");

                    if (seriesKeyValuePairs.ContainsKey(seriesUid))
                    {
                        var seriesParams = seriesKeyValuePairs[seriesUid];


                        seriesDs.AddOrUpdate(DicomTag.NumberOfSeriesRelatedInstances, seriesParams.NumberOfInstances);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private static void FillStudyRelatedSeriesParameters
        (
            IQueryResponseBuilder responseBuilder,
            Dictionary <string, StudyAdditionalParams> studyKeyValuePairs
        )
        {
            var series = responseBuilder.GetResults(ObjectQueryLevelConstants.Series);

            foreach (var seriesDs in series)
            {
                var studyKey  = seriesDs.GetSingleValueOrDefault(DicomTag.StudyInstanceUID, "");
                var seriesKey = seriesDs.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, "");
                var modality  = seriesDs.GetSingleValueOrDefault(DicomTag.Modality, "");
                StudyAdditionalParams studyParams = null;


                if (!studyKeyValuePairs.TryGetValue(studyKey, out studyParams))
                {
                    studyParams = new StudyAdditionalParams();

                    studyKeyValuePairs.Add(studyKey, studyParams);
                }

                studyParams.NumberOfSeries++;

                if (!string.IsNullOrEmpty(modality) && !studyParams.Modality.Contains(modality))
                {
                    studyParams.Modality.Add(modality);
                }
            }
        }
Ejemplo n.º 3
0
        private static void FillSeriesRelatedInstancesParameters
        (
            IQueryResponseBuilder responseBuilder,
            Dictionary <string, SeriesAdditionalParams> seriesKeyValuePairs
        )
        {
            var instances = responseBuilder.GetResults(ObjectQueryLevelConstants.Instance);

            foreach (var instanceDs in instances)
            {
                var seriesKey = instanceDs.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, "");
                SeriesAdditionalParams seriesParams = null;


                if (!seriesKeyValuePairs.TryGetValue(seriesKey, out seriesParams))
                {
                    seriesParams = new SeriesAdditionalParams();

                    seriesKeyValuePairs.Add(seriesKey, seriesParams);
                }

                seriesParams.NumberOfInstances++;
            }
        }
        private static void FillStudyRelatedInstancesParameters
        (
            IQueryResponseBuilder responseBuilder,
            Dictionary <string, StudyAdditionalParams> studyKeyValuePairs
        )
        {
            var instances = responseBuilder.GetResults(ObjectQueryLevelConstants.Instance);

            foreach (var instanceDs in instances)
            {
                var studyKey = instanceDs.Get(DicomTag.StudyInstanceUID, "");
                StudyAdditionalParams studyParams = null;


                if (!studyKeyValuePairs.TryGetValue(studyKey, out studyParams))
                {
                    studyParams = new StudyAdditionalParams();

                    studyKeyValuePairs.Add(studyKey, studyParams);
                }

                studyParams.NumberOfInstances++;
            }
        }