Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp @ 5586:fc3914c07dd3 find-refactoring
refactoring FindResponse
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 03 May 2024 17:02:02 +0200 |
parents | 74cc31c8db2b |
children | 1b0fc6685f57 |
comparison
equal
deleted
inserted
replaced
5583:74cc31c8db2b | 5586:fc3914c07dd3 |
---|---|
1171 SQLite::Statement statement(db_, SQLITE_FROM_HERE_DYNAMIC(sqlLookup), sqlLookup); | 1171 SQLite::Statement statement(db_, SQLITE_FROM_HERE_DYNAMIC(sqlLookup), sqlLookup); |
1172 formatter.Bind(statement); | 1172 formatter.Bind(statement); |
1173 | 1173 |
1174 while (statement.Step()) | 1174 while (statement.Step()) |
1175 { | 1175 { |
1176 OrthancIdentifiers id; | 1176 response.Add(new FindResponse::Item(request.GetLevel(), statement.ColumnString(0))); |
1177 id.SetLevel(request.GetLevel(), statement.ColumnString(0)); | |
1178 | |
1179 FindResponse::Item* item = new FindResponse::Item(id); | |
1180 response.Add(item); | |
1181 } | 1177 } |
1182 } | 1178 } |
1183 else | 1179 else |
1184 { | 1180 { |
1185 std::map<std::string, FindResponse::Item*> items; // cache to the response items | 1181 std::map<std::string, FindResponse::Item*> items; // cache to the response items |
1199 | 1195 |
1200 while (statement.Step()) | 1196 while (statement.Step()) |
1201 { | 1197 { |
1202 const std::string resourceId = statement.ColumnString(0); | 1198 const std::string resourceId = statement.ColumnString(0); |
1203 | 1199 |
1204 OrthancIdentifiers id; | 1200 FindResponse::Item* item = new FindResponse::Item(request.GetLevel(), resourceId); |
1205 id.SetLevel(request.GetLevel(), resourceId); | |
1206 | |
1207 FindResponse::Item* item = new FindResponse::Item(id); | |
1208 items[resourceId] = item; | 1201 items[resourceId] = item; |
1209 response.Add(item); | 1202 response.Add(item); |
1210 } | 1203 } |
1211 } | 1204 } |
1212 | 1205 |
1220 formatter.Bind(statement); | 1213 formatter.Bind(statement); |
1221 | 1214 |
1222 while (statement.Step()) | 1215 while (statement.Step()) |
1223 { | 1216 { |
1224 const std::string& resourceId = statement.ColumnString(0); | 1217 const std::string& resourceId = statement.ColumnString(0); |
1225 items[resourceId]->AddDicomTag(statement.ColumnInt(1), | 1218 items[resourceId]->AddStringDicomTag(request.GetLevel(), |
1226 statement.ColumnInt(2), | 1219 statement.ColumnInt(1), |
1227 statement.ColumnString(3), false); | 1220 statement.ColumnInt(2), |
1221 statement.ColumnString(3)); | |
1228 } | 1222 } |
1229 } | 1223 } |
1230 | 1224 |
1231 if (request.HasResponseContent(FindRequest::ResponseContent_Children)) | 1225 if (request.HasResponseContent(FindRequest::ResponseContent_Children)) |
1232 { | 1226 { |
1238 formatter.Bind(statement); | 1232 formatter.Bind(statement); |
1239 | 1233 |
1240 while (statement.Step()) | 1234 while (statement.Step()) |
1241 { | 1235 { |
1242 const std::string& resourceId = statement.ColumnString(0); | 1236 const std::string& resourceId = statement.ColumnString(0); |
1243 items[resourceId]->AddChild(statement.ColumnString(1)); | 1237 items[resourceId]->AddChildIdentifier(GetChildResourceType(request.GetLevel()), statement.ColumnString(1)); |
1244 } | 1238 } |
1245 } | 1239 } |
1246 | 1240 |
1247 if (request.HasResponseContent(FindRequest::ResponseContent_Parent)) | 1241 if (request.HasResponseContent(FindRequest::ResponseContent_Parent)) |
1248 { | 1242 { |
1253 " INNER JOIN Resources parentLevel ON currentLevel.parentId = parentLevel.internalId"); | 1247 " INNER JOIN Resources parentLevel ON currentLevel.parentId = parentLevel.internalId"); |
1254 | 1248 |
1255 while (statement.Step()) | 1249 while (statement.Step()) |
1256 { | 1250 { |
1257 const std::string& resourceId = statement.ColumnString(0); | 1251 const std::string& resourceId = statement.ColumnString(0); |
1258 items[resourceId]->SetIdentifier(GetParentResourceType(request.GetLevel()), statement.ColumnString(1)); | 1252 const std::string& parentId = statement.ColumnString(1); |
1253 items[resourceId]->SetParentIdentifier(parentId); | |
1259 } | 1254 } |
1260 } | 1255 } |
1261 | 1256 |
1262 if (request.HasResponseContent(FindRequest::ResponseContent_Metadata)) | 1257 if (request.HasResponseContent(FindRequest::ResponseContent_Metadata)) |
1263 { | 1258 { |