1 #include "vvDicomServerQueryFactory.h"
4 gdcm::SmartPointer<gdcm::BaseRootQuery> vvDicomServerQueryFactory::composeQuerySeries( std::vector< std::pair<gdcm::Tag, std::string> > keys )
6 gdcm::EQueryLevel theLevel = gdcm::eSeries;
7 gdcm::ERootType theRoot = gdcm::ePatientRootType;//ePatientRootType;
8 return gdcm::CompositeNetworkFunctions::ConstructQuery(theRoot, theLevel ,keys);
12 vvQuery vvDicomServerQueryFactory::getQueryforStudy(const std::string patient_id, bool bdisplay)
15 query.keys = getQueryKeysforStudy( patient_id, bdisplay);
16 query.theRoot = gdcm::ePatientRootType;
17 query.theLevel = gdcm::eStudy;
18 m_query = getQueryPatient("",patient_id);
22 std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getQueryKeysforStudy(const std::string patient_id, bool bdisplay)
24 std::vector< std::pair<gdcm::Tag, std::string> > keys;
28 gdcm::Tag tagsdc(0x0008,0x1030);
29 keys.push_back(std::make_pair(tagsdc, ""));
31 gdcm::Tag tagdb(0x0008,0x0020);
32 keys.push_back(std::make_pair(tagdb, ""));
34 gdcm::Tag tagsdh(0x0008,0x0030);
35 keys.push_back(std::make_pair(tagsdh, ""));
38 gdcm::Tag tagsid(0x020,0x000d);
39 keys.push_back(std::make_pair(tagsid, ""));
44 gdcm::Tag tagsd(0x0010,0x0020);
45 keys.push_back(std::make_pair(tagsd, patient_id));
51 vvQuery vvDicomServerQueryFactory::getQueryforImages(const std::string patient_id, const std::string study_id, const std::string series_id,bool bdisplay)
54 query.keys = getQueryKeysforImages( patient_id, study_id, series_id, bdisplay);
55 query.theRoot = gdcm::ePatientRootType;
56 query.theLevel = gdcm::eImage;
61 std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getQueryKeysforImages(const std::string patient_id, const std::string study_id, const std::string series_id,bool bdisplay)
64 std::vector< std::pair<gdcm::Tag, std::string> > keys;
69 keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id));
72 // keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id));
75 keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000e), series_id));
79 keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x0013), ""));
81 keys.push_back(std::make_pair(gdcm::Tag(0x0008,0x0018), ""));
87 vvQuery vvDicomServerQueryFactory::getQueryPatient(const std::string i_patname, const std::string i_patid)
90 query.theRoot = gdcm::ePatientRootType;
91 query.theLevel = gdcm::ePatient;
92 query.keys = getPatientKeys(i_patname, i_patid);
98 std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getPatientKeys(const std::string i_patname, const std::string i_patid)
100 std::vector< std::pair<gdcm::Tag, std::string> > keys;
102 gdcm::Tag tag(0x0010,0x0010);
103 keys.push_back(std::make_pair(tag, i_patname));
106 gdcm::Tag tagpid(0x0010,0x0020);
107 keys.push_back(std::make_pair(tagpid, i_patid));
112 vvQuery vvDicomServerQueryFactory::getQueryforSeries(const std::string patient_id, const std::string series_id, bool bdisplay)
115 query.theRoot = gdcm::ePatientRootType;
116 query.theLevel = gdcm::eSeries;
117 query.keys = getSeriesKeys(patient_id, series_id, bdisplay);
121 std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getSeriesKeys(const std::string patient_id, const std::string study_id, bool bdisplay)
123 std::vector< std::pair<gdcm::Tag, std::string> > keys;
125 keys.push_back(std::make_pair(gdcm::Tag(0x0008,0x0060), ""));
128 keys.push_back(std::make_pair(gdcm::Tag(0x0008,0x103e),""));
129 // Series Instance UID
130 keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000e), ""));
137 keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id));
140 keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id));
141 // Study Instance UID
142 gdcm::Tag tagsid(0x0020,0x1209);
143 // keys.push_back(std::make_pair(tagsid, study_id));
149 void vvDicomServerQueryFactory::setQueryforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id)
152 query.theRoot = gdcm::ePatientRootType;
153 query.theLevel = gdcm::eImage;
154 query.keys = getQueryKeysforImage(patient_id, study_id, series_id, image_id);
158 std::vector< std::pair<gdcm::Tag, std::string> > vvDicomServerQueryFactory::getQueryKeysforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id)
161 std::vector< std::pair<gdcm::Tag, std::string> > keys;
164 keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id));
167 keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id));
170 keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000e), series_id));
173 keys.push_back(std::make_pair(gdcm::Tag(0x0008,0x0018), image_id));