comparison OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp @ 5714:2b05428843d2 find-refactoring

removed dangerous overload of ResourceFinder::Execute()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 13 Jul 2024 00:20:33 +0200
parents d851a54e49b7
children 593e110de3d8 56352ae88120
comparison
equal deleted inserted replaced
5713:d851a54e49b7 5714:2b05428843d2
128 } 128 }
129 } 129 }
130 130
131 131
132 static bool ExpandResource(Json::Value& target, 132 static bool ExpandResource(Json::Value& target,
133 ServerIndex& index, 133 ServerContext& context,
134 ResourceType level, 134 ResourceType level,
135 const std::string& identifier, 135 const std::string& identifier,
136 DicomToJsonFormat format, 136 DicomToJsonFormat format,
137 bool retrieveMetadata) 137 bool retrieveMetadata)
138 { 138 {
139 ResourceFinder finder(level, true /* expand */); 139 ResourceFinder finder(level, true /* expand */);
140 finder.SetOrthancId(level, identifier); 140 finder.SetOrthancId(level, identifier);
141 finder.SetRetrieveMetadata(retrieveMetadata); 141 finder.SetRetrieveMetadata(retrieveMetadata);
142 142
143 FindResponse response; 143 return finder.ExecuteOneResource(target, context, format, retrieveMetadata);
144 finder.Execute(response, index);
145
146 if (response.GetSize() != 1)
147 {
148 return false;
149 }
150 else
151 {
152 const FindResponse::Resource& resource = response.GetResourceByIndex(0);
153 finder.Expand(target, resource, index, format, retrieveMetadata);
154 return true;
155 }
156 } 144 }
157 145
158 146
159 // List all the patients, studies, series or instances ---------------------- 147 // List all the patients, studies, series or instances ----------------------
160 148
3799 if (true) 3787 if (true)
3800 { 3788 {
3801 /** 3789 /**
3802 * EXPERIMENTAL VERSION 3790 * EXPERIMENTAL VERSION
3803 **/ 3791 **/
3804 if (ExpandResource(resource, OrthancRestApi::GetIndex(call), currentType, current, format, false)) 3792 if (ExpandResource(resource, OrthancRestApi::GetContext(call), currentType, current, format, false))
3805 { 3793 {
3806 call.GetOutput().AnswerJson(resource); 3794 call.GetOutput().AnswerJson(resource);
3807 } 3795 }
3808 } 3796 }
3809 else 3797 else
4249 { 4237 {
4250 /** 4238 /**
4251 * EXPERIMENTAL VERSION 4239 * EXPERIMENTAL VERSION
4252 **/ 4240 **/
4253 Json::Value item; 4241 Json::Value item;
4254 if (ExpandResource(item, OrthancRestApi::GetIndex(call), level, *it, format, metadata)) 4242 if (ExpandResource(item, OrthancRestApi::GetContext(call), level, *it, format, metadata))
4255 { 4243 {
4256 answer.append(item); 4244 answer.append(item);
4257 } 4245 }
4258 } 4246 }
4259 else 4247 else
4293 { 4281 {
4294 /** 4282 /**
4295 * EXPERIMENTAL VERSION 4283 * EXPERIMENTAL VERSION
4296 **/ 4284 **/
4297 if (index.LookupResourceType(level, *it) && 4285 if (index.LookupResourceType(level, *it) &&
4298 ExpandResource(item, OrthancRestApi::GetIndex(call), level, *it, format, metadata)) 4286 ExpandResource(item, OrthancRestApi::GetContext(call), level, *it, format, metadata))
4299 { 4287 {
4300 answer.append(item); 4288 answer.append(item);
4301 } 4289 }
4302 } 4290 }
4303 else 4291 else