Beispiel #1
0
        public List <ImageResult> GetImageUids(List <SeriesResult> series)
        {
            List <ImageResult> results = new List <ImageResult>();

            foreach (var ser in series)
            {
                var query = new CFindIOD(QueryLevel.IMAGE)
                {
                    PatientId         = ser.PatientId,
                    StudyInstanceUID  = ser.StudyUid,
                    SeriesInstanceUID = ser.SeriesUid
                };

                var req        = new CFindRequest(query, Root.STUDY);
                var seriesUids = _scu.GetResponse(req, _scp)
                                 .Where(r => r.Status == (ushort)Status.PENDING)
                                 .Where(r => r.HasData)
                                 .Select(r =>
                                         new ImageResult()
                {
                    PatientId      = ser.PatientId,
                    StudyUid       = ser.StudyUid,
                    SeriesUid      = ser.SeriesUid,
                    Modality       = ser.Modality,
                    SopInstanceUid = r.Data.GetSelector().SOPInstanceUID.Data
                }
                                         )
                                 .ToList();
                results.AddRange(seriesUids);
            }
            return(results);
        }
Beispiel #2
0
        public CFindRequest(CFindIOD query, Root root, ushort priority = (ushort)Core.Enums.Priority.MEDIUM, ushort messageId = 1)
        {
            Query     = query;
            MessageID = messageId;
            switch (root)
            {
            case Root.PATIENT:
                AffectedSOPClassUID = AbstractSyntax.PATIENT_FIND;
                break;

            case Root.STUDY:
                AffectedSOPClassUID = AbstractSyntax.STUDY_FIND;
                break;
            }
            Priority     = priority;
            CommandField = (ushort)C.C_FIND_RQ;
            Data         = new DICOMObject(query.Elements);
        }
Beispiel #3
0
        public List <StudyResult> GetStudyUids(string patientId)
        {
            var query = new CFindIOD(QueryLevel.STUDY)
            {
                PatientId = patientId
            };
            var req       = new CFindRequest(query, Root.STUDY);
            var studyUids = _scu.GetResponse(req, _scp) // Studies
                            .Where(r => r.Status == (ushort)Status.PENDING)
                            .Where(r => r.HasData)
                            .ToList();

            return(studyUids.Select(r => new StudyResult()
            {
                PatientId = query.PatientId,
                StudyUid = r.Data.GetSelector().StudyInstanceUID.Data
            })
                   .ToList());
        }