comparison Framework/Plugins/DatabaseBackendAdapterV3.cpp @ 251:ed12248ad791

implementation of minor api improvements in OrthancCDatabasePlugin.h
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 14 Apr 2021 11:20:51 +0200
parents 35598014f140
children 3bc442765b88
comparison
equal deleted inserted replaced
250:29ac6f4a0f45 251:ed12248ad791
1723 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1723 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());
1724 } 1724 }
1725 1725
1726 1726
1727 static OrthancPluginErrorCode LookupParent(OrthancPluginDatabaseTransaction* transaction, 1727 static OrthancPluginErrorCode LookupParent(OrthancPluginDatabaseTransaction* transaction,
1728 uint8_t* existing /* out */,
1729 int64_t* parentId /* out */,
1728 int64_t id) 1730 int64_t id)
1729 { 1731 {
1730 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction); 1732 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction);
1731 1733
1732 try 1734 try
1733 { 1735 {
1734 t->GetOutput().Clear(); 1736 t->GetOutput().Clear();
1735 1737
1736 int64_t parentId; 1738 if (t->GetBackend().LookupParent(*parentId, t->GetManager(), id))
1737 if (t->GetBackend().LookupParent(parentId, t->GetManager(), id)) 1739 {
1738 { 1740 *existing = 1;
1739 t->GetOutput().AnswerInteger64(parentId); 1741 }
1742 else
1743 {
1744 *existing = 0;
1740 } 1745 }
1741 1746
1742 return OrthancPluginErrorCode_Success; 1747 return OrthancPluginErrorCode_Success;
1743 } 1748 }
1744 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1749 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());
1831 } 1836 }
1832 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1837 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());
1833 } 1838 }
1834 1839
1835 1840
1836 static OrthancPluginErrorCode SelectPatientToRecycle(OrthancPluginDatabaseTransaction* transaction) 1841 static OrthancPluginErrorCode SelectPatientToRecycle(OrthancPluginDatabaseTransaction* transaction,
1837 { 1842 uint8_t* patientAvailable,
1838 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction); 1843 int64_t* patientId)
1839 1844 {
1840 try 1845 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction);
1841 { 1846
1842 t->GetOutput().Clear(); 1847 try
1843 1848 {
1844 int64_t id; 1849 t->GetOutput().Clear();
1845 if (t->GetBackend().SelectPatientToRecycle(id, t->GetManager())) 1850
1846 { 1851 if (t->GetBackend().SelectPatientToRecycle(*patientId, t->GetManager()))
1847 t->GetOutput().AnswerInteger64(id); 1852 {
1853 *patientAvailable = 1;
1854 }
1855 else
1856 {
1857 *patientAvailable = 0;
1848 } 1858 }
1849 1859
1850 return OrthancPluginErrorCode_Success; 1860 return OrthancPluginErrorCode_Success;
1851 } 1861 }
1852 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1862 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());
1853 } 1863 }
1854 1864
1855 1865
1856 static OrthancPluginErrorCode SelectPatientToRecycle2(OrthancPluginDatabaseTransaction* transaction, 1866 static OrthancPluginErrorCode SelectPatientToRecycle2(OrthancPluginDatabaseTransaction* transaction,
1867 uint8_t* patientAvailable,
1868 int64_t* patientId,
1857 int64_t patientIdToAvoid) 1869 int64_t patientIdToAvoid)
1858 { 1870 {
1859 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction); 1871 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction);
1860 1872
1861 try 1873 try
1862 { 1874 {
1863 t->GetOutput().Clear(); 1875 t->GetOutput().Clear();
1864 1876
1865 int64_t id; 1877 if (t->GetBackend().SelectPatientToRecycle(*patientId, t->GetManager(), patientIdToAvoid))
1866 if (t->GetBackend().SelectPatientToRecycle(id, t->GetManager(), patientIdToAvoid)) 1878 {
1867 { 1879 *patientAvailable = 1;
1868 t->GetOutput().AnswerInteger64(id); 1880 }
1881 else
1882 {
1883 *patientAvailable = 0;
1869 } 1884 }
1870 1885
1871 return OrthancPluginErrorCode_Success; 1886 return OrthancPluginErrorCode_Success;
1872 } 1887 }
1873 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1888 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());