Mercurial > hg > orthanc-tests
changeset 814:11068aac2270 default tip
new dicomweb test
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Mon, 12 May 2025 11:41:02 +0200 (3 days ago) |
parents | dda2e32299cf |
children | |
files | Plugins/DicomWeb/Run.py |
diffstat | 1 files changed, 72 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/Plugins/DicomWeb/Run.py Mon May 12 11:00:15 2025 +0200 +++ b/Plugins/DicomWeb/Run.py Mon May 12 11:41:02 2025 +0200 @@ -312,56 +312,85 @@ def test_server_stow(self): - UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') + # UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') + + # self.assertRaises(Exception, lambda: + # DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + # { 'Resources' : [ 'nope' ], + # 'Synchronous' : True })) # inexisting resource - self.assertRaises(Exception, lambda: - DoPost(ORTHANC, '/dicom-web/servers/sample/stow', - { 'Resources' : [ 'nope' ], - 'Synchronous' : True })) # inexisting resource + # if IsPluginVersionAtLeast(ORTHANC, "dicom-web", 1, 18, 0): + # l = 4 # "Server" has been added + # else: + # l = 3 # For >= 1.10.1 + + # # study + # r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + # { 'Resources' : [ '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' ], + # 'Synchronous' : True }) - if IsPluginVersionAtLeast(ORTHANC, "dicom-web", 1, 18, 0): - l = 4 # "Server" has been added - else: - l = 3 # For >= 1.10.1 + # self.assertEqual(l, len(r)) + # self.assertEqual("0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918", r['Resources']['Studies'][0]) + # if IsPluginVersionAtLeast(ORTHANC, "dicom-web", 1, 18, 0): + # self.assertEqual("sample", r['Server']) - # study - r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', - { 'Resources' : [ '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' ], - 'Synchronous' : True }) + # # series + # r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + # { 'Resources' : [ '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' ], + # 'Synchronous' : True }) + # self.assertEqual(l, len(r)) + # self.assertEqual("6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285", r['Resources']['Series'][0]) - self.assertEqual(l, len(r)) - self.assertEqual("0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918", r['Resources']['Studies'][0]) - if IsPluginVersionAtLeast(ORTHANC, "dicom-web", 1, 18, 0): - self.assertEqual("sample", r['Server']) + # # instances + # r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + # { 'Resources' : [ 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], + # 'Synchronous' : True }) + # self.assertEqual(l, len(r)) + # self.assertEqual("c8df6478-d7794217-0f11c293-a41237c9-31d98357", r['Resources']['Instances'][0]) - # series - r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', - { 'Resources' : [ '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' ], - 'Synchronous' : True }) - self.assertEqual(l, len(r)) - self.assertEqual("6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285", r['Resources']['Series'][0]) + # # altogether + # r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + # { 'Resources' : [ + # 'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17', + # '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918', + # '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285', + # 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], + # 'Synchronous' : True }) + # # pprint.pprint(r) + # self.assertEqual(l, len(r)) + # self.assertEqual("ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17", r['Resources']['Patients'][0]) + # self.assertEqual("0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918", r['Resources']['Studies'][0]) + # self.assertEqual("6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285", r['Resources']['Series'][0]) + # self.assertEqual("c8df6478-d7794217-0f11c293-a41237c9-31d98357", r['Resources']['Instances'][0]) - # instances - r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', - { 'Resources' : [ 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], - 'Synchronous' : True }) - self.assertEqual(l, len(r)) - self.assertEqual("c8df6478-d7794217-0f11c293-a41237c9-31d98357", r['Resources']['Instances'][0]) + + if IsPluginVersionAtLeast(ORTHANC, "dicom-web", 1, 20, 0): + a = UploadInstance(ORTHANC, 'Brainix/Epi/IM-0001-0001.dcm') + b = UploadInstance(ORTHANC, 'Brainix/Epi/IM-0001-0002.dcm') - # altogether - r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', - { 'Resources' : [ - 'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17', - '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918', - '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285', - 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], - 'Synchronous' : True }) - # pprint.pprint(r) - self.assertEqual(l, len(r)) - self.assertEqual("ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17", r['Resources']['Patients'][0]) - self.assertEqual("0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918", r['Resources']['Studies'][0]) - self.assertEqual("6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285", r['Resources']['Series'][0]) - self.assertEqual("c8df6478-d7794217-0f11c293-a41237c9-31d98357", r['Resources']['Instances'][0]) + # study + r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + { 'Resources' : [ a['ParentStudy'] ], + 'Synchronous' : True }) + + self.assertEqual(1, len(r['Resources']['Studies'])) + self.assertNotIn('Series', r['Resources']) + self.assertEqual(2, len(r['Resources']['Instances'])) + self.assertEqual(a['ParentStudy'], r['Resources']['Studies'][0]) + self.assertIn(a['ID'], r['Resources']['Instances']) + self.assertIn(b['ID'], r['Resources']['Instances']) + + # series + r = DoPost(ORTHANC, '/dicom-web/servers/sample/stow', + { 'Resources' : [ a['ParentSeries'] ], + 'Synchronous' : True }) + + self.assertEqual(1, len(r['Resources']['Series'])) + self.assertNotIn('Studies', r['Resources']) + self.assertEqual(2, len(r['Resources']['Instances'])) + self.assertEqual(a['ParentSeries'], r['Resources']['Series'][0]) + self.assertIn(a['ID'], r['Resources']['Instances']) + self.assertIn(b['ID'], r['Resources']['Instances'])