Mercurial > hg > orthanc-tests
diff Tests/Tests.py @ 113:3e5934363e76
test_rest_find_limitĀµ
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 11 Jul 2017 17:24:06 +0200 |
parents | 9d09f6f21b60 |
children | 45ebfab035b7 |
line wrap: on
line diff
--- a/Tests/Tests.py Mon Jul 10 21:11:12 2017 +0200 +++ b/Tests/Tests.py Tue Jul 11 17:24:06 2017 +0200 @@ -3193,4 +3193,72 @@ '{"Replace":{"PatientID":"Hello","PatientName":"Sample patient name"}}', 'application/json') self.assertTrue('PatientID' in modified) + + + def test_rest_find_limit(self): + # Check the "Since" and "Limit" parameters in URI "/tools/find" + # Related to issue 53: https://bitbucket.org/sjodogne/orthanc/issues/53 + # Upload 6 instances + brainix = [] + knee = [] + for i in range(2): + brainix.append(UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) ['ID']) + brainix.append(UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-000%d.dcm' % (i + 1)) ['ID']) + knee.append(UploadInstance(_REMOTE, 'Knee/T1/IM-0001-000%d.dcm' % (i + 1)) ['ID']) + + # Check using BRAINIX + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'B*' }, + 'Limit' : 10 }) + self.assertEqual(4, len(a)) + + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'B*' }, + 'Limit' : 4 }) + self.assertEqual(4, len(a)) + + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'B*' }, + 'Since' : 2, + 'Limit' : 4 }) + self.assertEqual(2, len(a)) + + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'B*' }, + 'Limit' : 3 }) + self.assertEqual(3, len(a)) + + b = [] + for i in range(4): + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'B*' }, + 'Limit' : 1, + 'Since' : i }) + self.assertEqual(1, len(a)) + b.append(a[0]) + + # Check whether the two sets are equal through symmetric difference + self.assertEqual(0, len(set(b) ^ set(brainix))) + + # Check using KNEE + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'K*' }, + 'Limit' : 10 }) + self.assertEqual(2, len(a)) + + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'K*' }, + 'Limit' : 2 }) + self.assertEqual(2, len(a)) + + b = [] + for i in range(2): + a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', + 'Query' : { 'PatientName' : 'K*' }, + 'Limit' : 1, + 'Since' : i }) + self.assertEqual(1, len(a)) + b.append(a[0]) + + self.assertEqual(0, len(set(b) ^ set(knee)))