X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvDicomServerQueryFactory.cxx;h=1e31f241e6122c9c2ce4579ce33217e564a439b9;hb=e2e07b38fd3916b7e26991b19cb2ce7342408c73;hp=9ae656f8c5e7133d5f4bda3e8c9d18533fc29d21;hpb=0f73e36c9f3ba0d458dbcf68af9236399a7d3657;p=clitk.git diff --git a/vv/vvDicomServerQueryFactory.cxx b/vv/vvDicomServerQueryFactory.cxx index 9ae656f..1e31f24 100644 --- a/vv/vvDicomServerQueryFactory.cxx +++ b/vv/vvDicomServerQueryFactory.cxx @@ -15,7 +15,7 @@ vvQuery vvDicomServerQueryFactory::getQueryforStudy(const std::string patient_i query.keys = getQueryKeysforStudy( patient_id, bdisplay); query.theRoot = gdcm::ePatientRootType; query.theLevel = gdcm::eStudy; - m_query = query; + m_query = getQueryPatient("",patient_id); return query; } @@ -133,10 +133,43 @@ std::vector< std::pair > vvDicomServerQueryFactory::getS if(!bdisplay) { + //Patient UID + keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id)); + + //Study UID + keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id)); // Study Instance UID gdcm::Tag tagsid(0x0020,0x1209); - keys.push_back(std::make_pair(tagsid, study_id)); + // keys.push_back(std::make_pair(tagsid, study_id)); } + return keys; +} + +void vvDicomServerQueryFactory::setQueryforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id) +{ + vvQuery query; + query.theRoot = gdcm::ePatientRootType; + query.theLevel = gdcm::eImage; + query.keys = getQueryKeysforImage(patient_id, study_id, series_id, image_id); + m_query = query; +} + +std::vector< std::pair > vvDicomServerQueryFactory::getQueryKeysforImage(const std::string patient_id, const std::string study_id, const std::string series_id,const std::string image_id) +{ + + std::vector< std::pair > keys; + + //Patient UID + keys.push_back(std::make_pair(gdcm::Tag (0x0010,0x0020), patient_id)); + + //Study UID + keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000d), study_id)); + + //Series UID + keys.push_back(std::make_pair(gdcm::Tag(0x0020,0x000e), series_id)); + + //SOP Instance UID + keys.push_back(std::make_pair(gdcm::Tag(0x0008,0x0018), image_id)); return keys; } \ No newline at end of file