Mercurial > hg > orthanc-databases
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()); |