# HG changeset patch # User Alain Mazy # Date 1747731233 -7200 # Node ID 1aa6cfc19cc89f7ec6d4e8c5b491382c17a62457 # Parent 11068aac2270c89f96334bb792b55a8debd37e8a delete cascade multiple instances diff -r 11068aac2270 -r 1aa6cfc19cc8 Tests/Tests.py --- a/Tests/Tests.py Mon May 12 11:41:02 2025 +0200 +++ b/Tests/Tests.py Tue May 20 10:53:53 2025 +0200 @@ -538,6 +538,32 @@ self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) + def test_delete_cascade_with_multiple_instances(self): + # make sure deleting the last instance of a study deletes the series, study and patient + + self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) # make sure orthanc is empty when starting the test + a = UploadInstance(_REMOTE, 'Knix/Loc/IM-0001-0001.dcm') + b = UploadInstance(_REMOTE, 'Knix/Loc/IM-0001-0002.dcm') + + self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) + self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) + self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) + self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) + + DoDelete(_REMOTE, '/instances/%s' % b['ID']) + + self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) + self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) + self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) + self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) + + DoDelete(_REMOTE, '/instances/%s' % a['ID']) + + self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) + self.assertEqual(0, len(DoGet(_REMOTE, '/series'))) + self.assertEqual(0, len(DoGet(_REMOTE, '/studies'))) + self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) + def test_multiframe(self): i = UploadInstance(_REMOTE, 'Multiframe.dcm')['ID'] self.assertEqual(76, len(DoGet(_REMOTE, '/instances/%s/frames' % i)))