comparison Framework/Plugins/OrthancCppDatabasePlugin.h @ 75:52c70007bb87 db-changes

new extension implemented for PostgreSQL: SetResourcesContent
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 05 Jan 2019 11:41:15 +0100
parents a4e440e65c68
children a1c6238b26f8
comparison
equal deleted inserted replaced
74:a4e440e65c68 75:52c70007bb87
508 const char* hashInstance) 508 const char* hashInstance)
509 { 509 {
510 throw std::runtime_error("Not implemented"); 510 throw std::runtime_error("Not implemented");
511 } 511 }
512 #endif 512 #endif
513
514
515 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1
516 virtual void SetResourcesContent(
517 uint32_t countIdentifierTags,
518 const OrthancPluginResourcesContentTags* identifierTags,
519 uint32_t countMainDicomTags,
520 const OrthancPluginResourcesContentTags* mainDicomTags,
521 uint32_t countMetadata,
522 const OrthancPluginResourcesContentMetadata* metadata) = 0;
523 #endif
513 }; 524 };
514 525
515 526
516 527
517 /** 528 /**
1533 return OrthancPluginErrorCode_Success; 1544 return OrthancPluginErrorCode_Success;
1534 } 1545 }
1535 ORTHANC_PLUGINS_DATABASE_CATCH 1546 ORTHANC_PLUGINS_DATABASE_CATCH
1536 } 1547 }
1537 #endif 1548 #endif
1549
1550
1551 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1
1552 static OrthancPluginErrorCode SetResourcesContent(
1553 void* payload,
1554 uint32_t countIdentifierTags,
1555 const OrthancPluginResourcesContentTags* identifierTags,
1556 uint32_t countMainDicomTags,
1557 const OrthancPluginResourcesContentTags* mainDicomTags,
1558 uint32_t countMetadata,
1559 const OrthancPluginResourcesContentMetadata* metadata)
1560 {
1561 IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload);
1562
1563 try
1564 {
1565 backend->SetResourcesContent(countIdentifierTags, identifierTags,
1566 countMainDicomTags, mainDicomTags,
1567 countMetadata, metadata);
1568 return OrthancPluginErrorCode_Success;
1569 }
1570 ORTHANC_PLUGINS_DATABASE_CATCH
1571 }
1572 #endif
1538 1573
1539 1574
1540 public: 1575 public:
1541 /** 1576 /**
1542 * Register a custom database back-end written in C++. 1577 * Register a custom database back-end written in C++.
1615 extensions.lookupIdentifierRange = LookupIdentifierRange; // New in Orthanc 1.4.0 1650 extensions.lookupIdentifierRange = LookupIdentifierRange; // New in Orthanc 1.4.0
1616 # endif 1651 # endif
1617 #endif 1652 #endif
1618 1653
1619 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 1654 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1
1620 extensions.lookupResources = LookupResources; // New in Orthanc 1.5.2 (fast lookup) 1655 // Optimizations brought by Orthanc 1.5.2
1656 extensions.lookupResources = LookupResources; // Fast lookup
1657 extensions.setResourcesContent = SetResourcesContent; // Fast setting tags/metadata
1621 1658
1622 if (backend.HasCreateInstance()) 1659 if (backend.HasCreateInstance())
1623 { 1660 {
1624 extensions.createInstance = CreateInstance; // New in Orthanc 1.5.2 (fast create) 1661 extensions.createInstance = CreateInstance; // Fast creation of resources
1625 } 1662 }
1626 1663
1627 performanceWarning = false; 1664 performanceWarning = false;
1628 #endif 1665 #endif
1629 1666