Esempio n. 1
0
        void onLocalSearchButtonClicked(object a, EventArgs b)
        {
            mainWindow.queryPage.study_ClickEvent -= onStudyClicked;
            mainWindow.queryPage.study_ClickEvent += onLocalStudyClicked;
            //

            StudyQueryIn studyQuery = new StudyQueryIn(mainWindow.queryPage);

            using (var db = new LiteDatabase("./databaseFolder/database.db"))
            {
                // Get a collection (or create, if doesn't exist)
                var col = db.GetCollection <StudyQueryOut>("studies");

                var results = col.Find(x =>
                                       x.StudyInstanceUID.Equals(studyQuery.StudyInstanceUID) ||
                                       x.PatientID.Equals(studyQuery.PatientID) ||
                                       x.PatientName.Contains(studyQuery.PatientName) ||
                                       x.StudyDate.Equals(studyQuery.StudyDate) ||
                                       x.ModalitiesInStudy.Equals(studyQuery.ModalitiesInStudy)
                                       );

                mainWindow.queryPage.listView.Items.Clear();

                foreach (var result in results)
                {
                    mainWindow.queryPage.listView.Items.Add(result);
                }
            }
        }
Esempio n. 2
0
        // extern search---------------------------------------------------------------------

        // search STUDIES-----------------------------------------------
        void onSearchButtonClicked(object a, EventArgs b)
        {
            mainWindow.queryPage.study_ClickEvent -= onLocalStudyClicked;
            mainWindow.queryPage.study_ClickEvent += onStudyClicked;
            //

            StudyQueryIn studyQuery = new StudyQueryIn(mainWindow.queryPage);

            // find studies
            DicomCFindRequest cfind = new DicomCFindRequest(DicomQueryRetrieveLevel.Study);

            cfind.Dataset.Add(DicomTag.PatientName, studyQuery.PatientName);
            cfind.Dataset.Add(DicomTag.StudyDate, studyQuery.StudyDate);
            cfind.Dataset.Add(DicomTag.ModalitiesInStudy, studyQuery.ModalitiesInStudy);
            cfind.Dataset.Add(DicomTag.StudyInstanceUID, "");
            cfind.Dataset.Add(DicomTag.PatientID, studyQuery.PatientID);
            cfind.Dataset.Add(DicomTag.PatientBirthDate, "");
            cfind.Dataset.Add(DicomTag.StudyDescription, "");

            int numResponses = 0;

            cfind.OnResponseReceived = (request, response) =>
            {
                if (response.HasDataset)
                {
                    numResponses++;
                    studyResponses.Add(new StudyQueryOut(response));
                }
                if (!response.HasDataset)
                {
                    Console.WriteLine("got " + numResponses.ToString() + " studies" + Environment.NewLine);
                }
            };

            var client = new DicomClient();

            client.AddRequest(cfind);

            mainWindow.queryPage.listView.Items.Clear();
            studyResponses = new List <StudyQueryOut>();

            try
            {
                Console.WriteLine("Querying server " + configuration.ip + ":" + configuration.port
                                  + " for STUDIES with:" + Environment.NewLine + studyQuery.ToString());
                client.Send(configuration.ip, configuration.port, false, configuration.thisNodeAET, configuration.AET);
            }
            catch (Exception ec)
            {
                Console.WriteLine(ec.Message + Environment.NewLine + ec.StackTrace);
            }
            // arrange results in table
            foreach (StudyQueryOut studyResponse in studyResponses)
            {
                mainWindow.queryPage.listView.Items.Add(studyResponse);
            }
        }