comparison OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp @ 5592:1e2631b8b9af find-refactoring

GenericFind::Execute() is working for a basic request
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 03 May 2024 21:26:06 +0200
parents 8b32213af23e
children 862b54b4cfe2
comparison
equal deleted inserted replaced
5591:043c8016ed6a 5592:1e2631b8b9af
1186 response.Add(new FindResponse::Resource(request.GetLevel(), resourceId)); 1186 response.Add(new FindResponse::Resource(request.GetLevel(), resourceId));
1187 } 1187 }
1188 } 1188 }
1189 1189
1190 // request Each response content through INNER JOIN with the temporary table 1190 // request Each response content through INNER JOIN with the temporary table
1191 if (request.IsRetrieveTagsAtLevel(request.GetLevel())) 1191 if (request.IsRetrieveMainDicomTags())
1192 { 1192 {
1193 // TODO-FIND: handle the case where we request tags from multiple levels 1193 // TODO-FIND: handle the case where we request tags from multiple levels
1194 SQLite::Statement statement(db_, SQLITE_FROM_HERE, 1194 SQLite::Statement statement(db_, SQLITE_FROM_HERE,
1195 "SELECT publicId, tagGroup, tagElement, value FROM MainDicomTags AS tags " 1195 "SELECT publicId, tagGroup, tagElement, value FROM MainDicomTags AS tags "
1196 " INNER JOIN FilteredResourcesIds ON tags.id = FilteredResourcesIds.internalId"); 1196 " INNER JOIN FilteredResourcesIds ON tags.id = FilteredResourcesIds.internalId");
1198 1198
1199 while (statement.Step()) 1199 while (statement.Step())
1200 { 1200 {
1201 const std::string& resourceId = statement.ColumnString(0); 1201 const std::string& resourceId = statement.ColumnString(0);
1202 assert(response.HasResource(resourceId)); 1202 assert(response.HasResource(resourceId));
1203 response.GetResource(resourceId).AddStringDicomTag(request.GetLevel(), 1203 response.GetResource(resourceId).AddStringDicomTag(statement.ColumnInt(1),
1204 statement.ColumnInt(1),
1205 statement.ColumnInt(2), 1204 statement.ColumnInt(2),
1206 statement.ColumnString(3)); 1205 statement.ColumnString(3));
1207 } 1206 }
1208 } 1207 }
1209 1208