comparison OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp @ 5287:c04230962098 am-experimental

wip: 'dicomWeb' json format + 'include' get arguments
author Alain Mazy <am@osimis.io>
date Fri, 28 Apr 2023 10:42:27 +0200
parents 8686476e9d12
children c9ea57d73603
comparison
equal deleted inserted replaced
5286:28f0e38e4082 5287:c04230962098
156 156
157 context.ExpandResource(expanded, *resource, 157 context.ExpandResource(expanded, *resource,
158 *(mainDicomTags->second.get()), 158 *(mainDicomTags->second.get()),
159 instanceId->second, 159 instanceId->second,
160 dicomAsJson->second.get(), 160 dicomAsJson->second.get(),
161 level, format, requestedTags, allowStorageAccess); 161 level, format, requestedTags, ExpandResourceFlags_Default, allowStorageAccess);
162 } 162 }
163 else 163 else
164 { 164 {
165 context.ExpandResource(expanded, *resource, level, format, requestedTags, allowStorageAccess); 165 context.ExpandResource(expanded, *resource, level, format, requestedTags, ExpandResourceFlags_Default, allowStorageAccess);
166 } 166 }
167 167
168 if (expanded.type() == Json::objectValue) 168 if (expanded.type() == Json::objectValue)
169 { 169 {
170 answer.append(expanded); 170 answer.append(expanded);
286 std::set<DicomTag> requestedTags; 286 std::set<DicomTag> requestedTags;
287 OrthancRestApi::GetRequestedTags(requestedTags, call); 287 OrthancRestApi::GetRequestedTags(requestedTags, call);
288 288
289 Json::Value json; 289 Json::Value json;
290 if (OrthancRestApi::GetContext(call).ExpandResource( 290 if (OrthancRestApi::GetContext(call).ExpandResource(
291 json, call.GetUriComponent("id", ""), resourceType, format, requestedTags, true /* allowStorageAccess */)) 291 json, call.GetUriComponent("id", ""), resourceType, format, requestedTags, ExpandResourceFlags_Default, true /* allowStorageAccess */))
292 { 292 {
293 call.GetOutput().AnswerJson(json); 293 call.GetOutput().AnswerJson(json);
294 } 294 }
295 } 295 }
296 296
3353 } 3353 }
3354 3354
3355 Json::Value result = Json::arrayValue; 3355 Json::Value result = Json::arrayValue;
3356 3356
3357 const DicomToJsonFormat format = OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human); 3357 const DicomToJsonFormat format = OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human);
3358 ExpandResourceFlags expandResource = OrthancRestApi::GetResponseContent(call, ExpandResourceFlags_Default);
3358 3359
3359 for (std::list<std::string>::const_iterator 3360 for (std::list<std::string>::const_iterator
3360 it = a.begin(); it != a.end(); ++it) 3361 it = a.begin(); it != a.end(); ++it)
3361 { 3362 {
3362 Json::Value resource; 3363 Json::Value resource;
3363 if (OrthancRestApi::GetContext(call).ExpandResource(resource, *it, end, format, requestedTags, true /* allowStorageAccess */)) 3364 if (OrthancRestApi::GetContext(call).ExpandResource(resource, *it, end, format, requestedTags, expandResource, true /* allowStorageAccess */))
3364 { 3365 {
3365 result.append(resource); 3366 result.append(resource);
3366 } 3367 }
3367 } 3368 }
3368 3369
3477 assert(currentType == end); 3478 assert(currentType == end);
3478 3479
3479 const DicomToJsonFormat format = OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human); 3480 const DicomToJsonFormat format = OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human);
3480 3481
3481 Json::Value resource; 3482 Json::Value resource;
3482 if (OrthancRestApi::GetContext(call).ExpandResource(resource, current, end, format, requestedTags, true /* allowStorageAccess */)) 3483 if (OrthancRestApi::GetContext(call).ExpandResource(resource, current, end, format, requestedTags, ExpandResourceFlags_Default, true /* allowStorageAccess */))
3483 { 3484 {
3484 call.GetOutput().AnswerJson(resource); 3485 call.GetOutput().AnswerJson(resource);
3485 } 3486 }
3486 } 3487 }
3487 3488
3884 it = interest.begin(); it != interest.end(); ++it) 3885 it = interest.begin(); it != interest.end(); ++it)
3885 { 3886 {
3886 Json::Value item; 3887 Json::Value item;
3887 std::set<DicomTag> emptyRequestedTags; // not supported for bulk content 3888 std::set<DicomTag> emptyRequestedTags; // not supported for bulk content
3888 3889
3889 if (OrthancRestApi::GetContext(call).ExpandResource(item, *it, level, format, emptyRequestedTags, true /* allowStorageAccess */)) 3890 if (OrthancRestApi::GetContext(call).ExpandResource(item, *it, level, format, emptyRequestedTags, ExpandResourceFlags_Default, true /* allowStorageAccess */))
3890 { 3891 {
3891 if (metadata) 3892 if (metadata)
3892 { 3893 {
3893 AddMetadata(item[METADATA], index, *it, level); 3894 AddMetadata(item[METADATA], index, *it, level);
3894 } 3895 }
3909 ResourceType level; 3910 ResourceType level;
3910 Json::Value item; 3911 Json::Value item;
3911 std::set<DicomTag> emptyRequestedTags; // not supported for bulk content 3912 std::set<DicomTag> emptyRequestedTags; // not supported for bulk content
3912 3913
3913 if (index.LookupResourceType(level, *it) && 3914 if (index.LookupResourceType(level, *it) &&
3914 OrthancRestApi::GetContext(call).ExpandResource(item, *it, level, format, emptyRequestedTags, true /* allowStorageAccess */)) 3915 OrthancRestApi::GetContext(call).ExpandResource(item, *it, level, format, emptyRequestedTags, ExpandResourceFlags_Default, true /* allowStorageAccess */))
3915 { 3916 {
3916 if (metadata) 3917 if (metadata)
3917 { 3918 {
3918 AddMetadata(item[METADATA], index, *it, level); 3919 AddMetadata(item[METADATA], index, *it, level);
3919 } 3920 }