Mercurial > hg > orthanc
comparison OrthancServer/Sources/ServerContext.cpp @ 5682:fd4c5e064cbe find-refactoring
started refactoring of ServerContext::Apply()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 09 Jul 2024 11:17:34 +0200 |
parents | 56859a7ffa99 |
children | 9b3816c21008 |
comparison
equal
deleted
inserted
replaced
5681:77875b51cf95 | 5682:fd4c5e064cbe |
---|---|
40 #include "../../OrthancFramework/Sources/MetricsRegistry.h" | 40 #include "../../OrthancFramework/Sources/MetricsRegistry.h" |
41 #include "../Plugins/Engine/OrthancPlugins.h" | 41 #include "../Plugins/Engine/OrthancPlugins.h" |
42 | 42 |
43 #include "OrthancConfiguration.h" | 43 #include "OrthancConfiguration.h" |
44 #include "OrthancRestApi/OrthancRestApi.h" | 44 #include "OrthancRestApi/OrthancRestApi.h" |
45 #include "ResourceFinder.h" | |
45 #include "Search/DatabaseLookup.h" | 46 #include "Search/DatabaseLookup.h" |
46 #include "ServerJobs/OrthancJobUnserializer.h" | 47 #include "ServerJobs/OrthancJobUnserializer.h" |
47 #include "ServerToolbox.h" | 48 #include "ServerToolbox.h" |
48 #include "StorageCommitmentReports.h" | 49 #include "StorageCommitmentReports.h" |
49 | 50 |
1552 if (hasModalitiesInStudyLookup) | 1553 if (hasModalitiesInStudyLookup) |
1553 { | 1554 { |
1554 fastLookup->RemoveConstraint(DICOM_TAG_MODALITIES_IN_STUDY); | 1555 fastLookup->RemoveConstraint(DICOM_TAG_MODALITIES_IN_STUDY); |
1555 } | 1556 } |
1556 | 1557 |
1557 { | 1558 const size_t lookupLimit = (databaseLimit == 0 ? 0 : databaseLimit + 1); |
1558 const size_t lookupLimit = (databaseLimit == 0 ? 0 : databaseLimit + 1); | 1559 |
1560 if (false) | |
1561 { | |
1562 /** | |
1563 * EXPERIMENTAL VERSION | |
1564 **/ | |
1565 | |
1566 ResourceFinder finder(queryLevel, false /* TODO-FIND: don't expand for now */); | |
1567 finder.SetLimits(0, lookupLimit); | |
1568 finder.SetDatabaseLookup(*fastLookup); | |
1569 finder.SetLabels(lookup.GetLabels()); | |
1570 finder.SetLabelsConstraint(lookup.GetLabelsConstraint()); | |
1571 | |
1572 if (queryLevel != ResourceType_Instance) | |
1573 { | |
1574 finder.SetRetrieveOneInstanceIdentifier(true); | |
1575 } | |
1576 | |
1577 FindResponse response; | |
1578 finder.Execute(response, GetIndex()); | |
1579 | |
1580 resources.resize(response.GetSize()); | |
1581 instances.resize(response.GetSize()); | |
1582 | |
1583 for (size_t i = 0; i < response.GetSize(); i++) | |
1584 { | |
1585 const FindResponse::Resource& resource = response.GetResourceByIndex(i); | |
1586 resources[i] = resource.GetIdentifier(); | |
1587 | |
1588 if (queryLevel == ResourceType_Instance) | |
1589 { | |
1590 instances[i] = resource.GetIdentifier(); | |
1591 } | |
1592 else | |
1593 { | |
1594 instances[i] = resource.GetOneInstanceIdentifier(); | |
1595 } | |
1596 } | |
1597 } | |
1598 else | |
1599 { | |
1600 /** | |
1601 * VERSION IN ORTHANC <= 1.12.4 | |
1602 **/ | |
1603 | |
1559 GetIndex().ApplyLookupResources(resources, &instances, *fastLookup, queryLevel, | 1604 GetIndex().ApplyLookupResources(resources, &instances, *fastLookup, queryLevel, |
1560 lookup.GetLabels(), lookup.GetLabelsConstraint(), lookupLimit); | 1605 lookup.GetLabels(), lookup.GetLabelsConstraint(), lookupLimit); |
1561 } | 1606 } |
1562 | 1607 |
1563 bool complete = (databaseLimit == 0 || | 1608 bool complete = (databaseLimit == 0 || |