File: TestFind.cxx

package info (click to toggle)
gdcm 3.0.21-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 26,880 kB
  • sloc: cpp: 203,477; ansic: 78,582; xml: 48,129; python: 3,459; cs: 2,308; java: 1,629; lex: 1,290; sh: 334; php: 128; makefile: 117
file content (65 lines) | stat: -rw-r--r-- 2,107 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*=========================================================================
 *
 *  Copyright Insight Software Consortium
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0.txt
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *=========================================================================*/

#include "gdcmCompositeNetworkFunctions.h"
#include "gdcmTag.h"
#include "gdcmQueryFactory.h"
#include "gdcmMovePatientRootQuery.h"


int TestFind(int , char *[])
{
  std::string hostname = "www.dicomserver.co.uk";
  uint16_t port = 11112;
  std::string callaetitle = "GDCM_ROCKS";
  std::string callingaetitle = "ACME1";

  
  gdcm::Tag theTag(0x0010, 0x0010);
  std::string theName = "F*";
  std::pair<gdcm::Tag, std::string> theTagPair =
    std::make_pair(theTag, theName);

  std::vector<std::pair<gdcm::Tag, std::string> > theTags;
  theTags.push_back(theTagPair);

  gdcm::BaseRootQuery* theQuery = gdcm::CompositeNetworkFunctions::ConstructQuery(
    gdcm::ePatientRootType, gdcm::ePatient, theTags);

  if (!theQuery) {
    std::cerr << "Query construction failed!" << std::endl; 
    return 1;
  }    
  
  if (!theQuery->ValidateQuery(false))
    {
    std::cerr << "Find query is not valid.  Please try again." << std::endl;
    delete theQuery;
    return 1;
    }

  std::vector<gdcm::DataSet> theDataSet ;
  bool b =
    gdcm::CompositeNetworkFunctions::CFind(hostname.c_str(), port,
      theQuery, theDataSet , callingaetitle.c_str(), callaetitle.c_str());
  if( !b ) return 1;

  //need to put some kind of validation of theDataSet here

  return (theDataSet.empty() ? 1:0);//shouldn't be a zero-sized dataset
}