Mercurial > hg > orthanc-databases
comparison Framework/Plugins/OrthancCppDatabasePlugin.h @ 71:d40c5fecd160 db-changes
new extension implemented for PostgreSQL: CreateInstance
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 04 Jan 2019 13:51:52 +0100 |
parents | e6c13ddd26d9 |
children | a4e440e65c68 |
comparison
equal
deleted
inserted
replaced
70:e6c13ddd26d9 | 71:d40c5fecd160 |
---|---|
489 virtual void UpgradeDatabase(uint32_t targetVersion, | 489 virtual void UpgradeDatabase(uint32_t targetVersion, |
490 OrthancPluginStorageArea* storageArea) = 0; | 490 OrthancPluginStorageArea* storageArea) = 0; |
491 | 491 |
492 virtual void ClearMainDicomTags(int64_t internalId) = 0; | 492 virtual void ClearMainDicomTags(int64_t internalId) = 0; |
493 | 493 |
494 virtual bool HasCreateInstance() const = 0; | |
495 | |
494 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | 496 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 |
495 virtual void LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup, | 497 virtual void LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup, |
496 OrthancPluginResourceType queryLevel, | 498 OrthancPluginResourceType queryLevel, |
497 uint32_t limit, | 499 uint32_t limit, |
498 bool requestSomeInstance) = 0; | 500 bool requestSomeInstance) = 0; |
501 #endif | |
502 | |
503 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
504 virtual void CreateInstance(OrthancPluginCreateInstanceResult& result, | |
505 const char* hashPatient, | |
506 const char* hashStudy, | |
507 const char* hashSeries, | |
508 const char* hashInstance) | |
509 { | |
510 throw std::runtime_error("Not implemented"); | |
511 } | |
499 #endif | 512 #endif |
500 }; | 513 }; |
501 | 514 |
502 | 515 |
503 | 516 |
1498 | 1511 |
1499 backend->LookupResources(lookup, queryLevel, limit, (requestSomeInstance != 0)); | 1512 backend->LookupResources(lookup, queryLevel, limit, (requestSomeInstance != 0)); |
1500 return OrthancPluginErrorCode_Success; | 1513 return OrthancPluginErrorCode_Success; |
1501 } | 1514 } |
1502 ORTHANC_PLUGINS_DATABASE_CATCH | 1515 ORTHANC_PLUGINS_DATABASE_CATCH |
1516 } | |
1517 #endif | |
1518 | |
1519 | |
1520 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
1521 static OrthancPluginErrorCode CreateInstance(OrthancPluginCreateInstanceResult* output, | |
1522 void* payload, | |
1523 const char* hashPatient, | |
1524 const char* hashStudy, | |
1525 const char* hashSeries, | |
1526 const char* hashInstance) | |
1527 { | |
1528 IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload); | |
1529 | |
1530 try | |
1531 { | |
1532 backend->CreateInstance(*output, hashPatient, hashStudy, hashSeries, hashInstance); | |
1533 return OrthancPluginErrorCode_Success; | |
1534 } | |
1535 ORTHANC_PLUGINS_DATABASE_CATCH | |
1503 } | 1536 } |
1504 #endif | 1537 #endif |
1505 | 1538 |
1506 | 1539 |
1507 public: | 1540 public: |
1583 # endif | 1616 # endif |
1584 #endif | 1617 #endif |
1585 | 1618 |
1586 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | 1619 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 |
1587 extensions.lookupResources = LookupResources; // New in Orthanc 1.5.2 (fast lookup) | 1620 extensions.lookupResources = LookupResources; // New in Orthanc 1.5.2 (fast lookup) |
1621 | |
1622 if (backend.HasCreateInstance()) | |
1623 { | |
1624 extensions.createInstance = CreateInstance; // New in Orthanc 1.5.2 (fast create) | |
1625 } | |
1626 | |
1588 performanceWarning = false; | 1627 performanceWarning = false; |
1589 #endif | 1628 #endif |
1590 | 1629 |
1591 if (performanceWarning) | 1630 if (performanceWarning) |
1592 { | 1631 { |