Mercurial > hg > orthanc
comparison OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp @ 5772:093a8693ba16 find-refactoring
replaced SetRetrieveOneInstanceIdentifier() by SetRetrieveOneInstanceMetadataAndAttachments()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 11 Sep 2024 20:49:34 +0200 |
parents | 1b0e67be3c15 |
children | de33982a0bf4 |
comparison
equal
deleted
inserted
replaced
5771:4db9f897df58 | 5772:093a8693ba16 |
---|---|
1435 dbRequest.mutable_find()->set_retrieve_main_dicom_tags(request.IsRetrieveMainDicomTags()); | 1435 dbRequest.mutable_find()->set_retrieve_main_dicom_tags(request.IsRetrieveMainDicomTags()); |
1436 dbRequest.mutable_find()->set_retrieve_metadata(request.IsRetrieveMetadata()); | 1436 dbRequest.mutable_find()->set_retrieve_metadata(request.IsRetrieveMetadata()); |
1437 dbRequest.mutable_find()->set_retrieve_labels(request.IsRetrieveLabels()); | 1437 dbRequest.mutable_find()->set_retrieve_labels(request.IsRetrieveLabels()); |
1438 dbRequest.mutable_find()->set_retrieve_attachments(request.IsRetrieveAttachments()); | 1438 dbRequest.mutable_find()->set_retrieve_attachments(request.IsRetrieveAttachments()); |
1439 dbRequest.mutable_find()->set_retrieve_parent_identifier(request.IsRetrieveParentIdentifier()); | 1439 dbRequest.mutable_find()->set_retrieve_parent_identifier(request.IsRetrieveParentIdentifier()); |
1440 dbRequest.mutable_find()->set_retrieve_at_least_one_instance(request.IsRetrieveOneInstanceIdentifier()); | 1440 dbRequest.mutable_find()->set_retrieve_one_instance_metadata_and_attachments(request.IsRetrieveOneInstanceMetadataAndAttachments()); |
1441 | 1441 |
1442 if (request.GetLevel() == ResourceType_Study || | 1442 if (request.GetLevel() == ResourceType_Study || |
1443 request.GetLevel() == ResourceType_Series || | 1443 request.GetLevel() == ResourceType_Series || |
1444 request.GetLevel() == ResourceType_Instance) | 1444 request.GetLevel() == ResourceType_Instance) |
1445 { | 1445 { |
1537 if (request.GetLevel() == ResourceType_Patient || | 1537 if (request.GetLevel() == ResourceType_Patient || |
1538 request.GetLevel() == ResourceType_Study || | 1538 request.GetLevel() == ResourceType_Study || |
1539 request.GetLevel() == ResourceType_Series) | 1539 request.GetLevel() == ResourceType_Series) |
1540 { | 1540 { |
1541 Convert(*target, ResourceType_Series, source.children_instances_content()); | 1541 Convert(*target, ResourceType_Series, source.children_instances_content()); |
1542 } | |
1543 | |
1544 if (request.IsRetrieveOneInstanceMetadataAndAttachments()) | |
1545 { | |
1546 std::map<MetadataType, std::string> metadata; | |
1547 for (int i = 0; i < source.one_instance_metadata().size(); i++) | |
1548 { | |
1549 MetadataType key = static_cast<MetadataType>(source.one_instance_metadata(i).key()); | |
1550 if (metadata.find(key) == metadata.end()) | |
1551 { | |
1552 metadata[key] = source.one_instance_metadata(i).value(); | |
1553 } | |
1554 else | |
1555 { | |
1556 throw OrthancException(ErrorCode_DatabasePlugin); | |
1557 } | |
1558 } | |
1559 | |
1560 std::map<FileContentType, FileInfo> attachments; | |
1561 | |
1562 for (int i = 0; i < source.one_instance_attachments().size(); i++) | |
1563 { | |
1564 FileInfo info(Convert(source.attachments(i))); | |
1565 if (attachments.find(info.GetContentType()) == attachments.end()) | |
1566 { | |
1567 attachments[info.GetContentType()] = info; | |
1568 } | |
1569 else | |
1570 { | |
1571 throw OrthancException(ErrorCode_DatabasePlugin); | |
1572 } | |
1573 } | |
1574 | |
1575 target->SetOneInstanceMetadataAndAttachments(source.one_instance_public_id(), metadata, attachments); | |
1542 } | 1576 } |
1543 | 1577 |
1544 response.Add(target.release()); | 1578 response.Add(target.release()); |
1545 } | 1579 } |
1546 | 1580 |