Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 482:535e651e70a2
added test for asynchronous cmove
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 21 Jun 2022 11:02:45 +0200 |
parents | 4ee85b016a40 |
children | 6144ef431512 |
comparison
equal
deleted
inserted
replaced
481:e0b502b31a8a | 482:535e651e70a2 |
---|---|
3479 DoPost(_REMOTE, '/modalities/orthanctest/store', p) | 3479 DoPost(_REMOTE, '/modalities/orthanctest/store', p) |
3480 DoDelete(_REMOTE, '/patients/%s' % p) | 3480 DoDelete(_REMOTE, '/patients/%s' % p) |
3481 | 3481 |
3482 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) | 3482 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) |
3483 | 3483 |
3484 # Upload instance Brainix/Flair/IM-0001-0001.dcm | 3484 # Move instance Brainix/Flair/IM-0001-0001.dcm |
3485 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Instance', | 3485 DoPost(_REMOTE, '/modalities/orthanctest/move', { |
3486 'Resources' : [ | 3486 'Level' : 'Instance', |
3487 { | 3487 'Resources' : [ |
3488 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | 3488 { |
3489 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', | 3489 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', |
3490 'SOPInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549', | 3490 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', |
3491 } | 3491 'SOPInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549', |
3492 ]}) | 3492 } |
3493 | 3493 ]}) |
3494 # Upload series Brainix/Flair/* | 3494 |
3495 # Move series Brainix/Flair/* | |
3495 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) | 3496 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) |
3496 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) | 3497 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) |
3497 self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) | 3498 self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) |
3498 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | 3499 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) |
3500 | |
3501 if IsOrthancVersionAbove(_REMOTE, 1, 11, 1): | |
3502 # Reset and test asynchronous C-Move at instance level | |
3503 for p in DoGet(_REMOTE, '/patients'): | |
3504 DoDelete(_REMOTE, '/patients/%s' % p) | |
3505 | |
3506 DoPost(_REMOTE, '/modalities/orthanctest/move', { | |
3507 'Level' : 'Instance', | |
3508 'Resources' : [ | |
3509 { | |
3510 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | |
3511 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', | |
3512 'SOPInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549', | |
3513 } | |
3514 ], | |
3515 'Asynchronous': True | |
3516 }) | |
3517 | |
3518 job = MonitorJob2(_REMOTE, lambda: DoPost | |
3519 (_REMOTE, '/modalities/orthanctest/move', { | |
3520 'Level' : 'Instance', | |
3521 'Resources' : [ | |
3522 { | |
3523 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | |
3524 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', | |
3525 'SOPInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549', | |
3526 } | |
3527 ], | |
3528 'Asynchronous': True | |
3529 })) | |
3530 | |
3531 self.assertNotEqual(None, job) | |
3532 | |
3533 # check the job was successfull | |
3534 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) | |
3535 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) | |
3536 self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) | |
3537 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
3538 | |
3539 # check the job content | |
3540 jobContent = DoGet(_REMOTE, '/jobs/%s' % job)['Content'] | |
3541 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', jobContent['Query'][0]['0020,000d']) | |
3542 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', jobContent['Query'][0]['0020,000e']) | |
3543 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549', jobContent['Query'][0]['0008,0018']) | |
3544 | |
3545 # Reset and test synchronous C-Move at series level | |
3546 for p in DoGet(_REMOTE, '/patients'): | |
3547 DoDelete(_REMOTE, '/patients/%s' % p) | |
3499 | 3548 |
3500 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Series', | 3549 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Series', |
3501 'Resources' : [ | 3550 'Resources' : [ |
3502 { | 3551 { |
3503 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | 3552 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', |
3507 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) | 3556 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) |
3508 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) | 3557 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) |
3509 self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) | 3558 self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) |
3510 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | 3559 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) |
3511 | 3560 |
3512 # Upload series Brainix/Epi/* | 3561 if IsOrthancVersionAbove(_REMOTE, 1, 11, 1): |
3562 # Reset and test asynchronous C-Move at series level with additional PatientID filter | |
3563 for p in DoGet(_REMOTE, '/patients'): | |
3564 DoDelete(_REMOTE, '/patients/%s' % p) | |
3565 | |
3566 job = MonitorJob2(_REMOTE, lambda: DoPost | |
3567 (_REMOTE, '/modalities/orthanctest/move', { | |
3568 'Level' : 'Series', | |
3569 'Resources' : [ | |
3570 { | |
3571 'PatientID' : '5Yp0E', | |
3572 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | |
3573 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', | |
3574 } | |
3575 ], | |
3576 'Asynchronous': True | |
3577 })) | |
3578 | |
3579 self.assertNotEqual(None, job) | |
3580 | |
3581 # check the job was successfull | |
3582 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) | |
3583 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) | |
3584 self.assertEqual(1, len(DoGet(_REMOTE, '/series'))) | |
3585 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
3586 | |
3587 # check the job content | |
3588 jobContent = DoGet(_REMOTE, '/jobs/%s' % job)['Content'] | |
3589 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', jobContent['Query'][0]['0020,000d']) | |
3590 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', jobContent['Query'][0]['0020,000e']) | |
3591 self.assertEqual('5Yp0E', jobContent['Query'][0]['0010,0020']) | |
3592 | |
3593 # Move series Brainix/Epi/* | |
3513 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Series', | 3594 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Series', |
3514 'Resources' : [ | 3595 'Resources' : [ |
3515 { | 3596 { |
3516 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | 3597 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', |
3517 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314125550', | 3598 'SeriesInstanceUID' : '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314125550', |
3520 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) | 3601 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) |
3521 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) | 3602 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) |
3522 self.assertEqual(2, len(DoGet(_REMOTE, '/series'))) | 3603 self.assertEqual(2, len(DoGet(_REMOTE, '/series'))) |
3523 self.assertEqual(3, len(DoGet(_REMOTE, '/instances'))) | 3604 self.assertEqual(3, len(DoGet(_REMOTE, '/instances'))) |
3524 | 3605 |
3525 # Upload study Knee/* | 3606 if IsOrthancVersionAbove(_REMOTE, 1, 11, 1): |
3526 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Study', | 3607 # Move study Knee asynchronously |
3527 'Resources' : [ | 3608 job = MonitorJob2(_REMOTE, lambda: DoPost |
3528 { | 3609 (_REMOTE, '/modalities/orthanctest/move', { |
3529 'StudyInstanceUID' : '2.16.840.1.113669.632.20.121711.10000160881', | 3610 'Level' : 'Study', |
3530 } | 3611 'Resources' : [ |
3531 ]}) | 3612 { |
3532 self.assertEqual(2, len(DoGet(_REMOTE, '/patients'))) | 3613 'StudyInstanceUID' : '2.16.840.1.113669.632.20.121711.10000160881' |
3533 self.assertEqual(2, len(DoGet(_REMOTE, '/studies'))) | 3614 } |
3534 self.assertEqual(3, len(DoGet(_REMOTE, '/series'))) | 3615 ], |
3535 self.assertEqual(4, len(DoGet(_REMOTE, '/instances'))) | 3616 'Asynchronous': True |
3617 })) | |
3618 | |
3619 self.assertNotEqual(None, job) | |
3620 | |
3621 # check the job was successfull | |
3622 self.assertEqual(2, len(DoGet(_REMOTE, '/patients'))) | |
3623 self.assertEqual(2, len(DoGet(_REMOTE, '/studies'))) | |
3624 self.assertEqual(3, len(DoGet(_REMOTE, '/series'))) | |
3625 self.assertEqual(4, len(DoGet(_REMOTE, '/instances'))) | |
3626 | |
3627 # check the job content | |
3628 jobContent = DoGet(_REMOTE, '/jobs/%s' % job)['Content'] | |
3629 self.assertEqual('2.16.840.1.113669.632.20.121711.10000160881', jobContent['Query'][0]['0020,000d']) | |
3536 | 3630 |
3537 # Reset | 3631 # Reset |
3538 for p in DoGet(_REMOTE, '/patients'): | 3632 for p in DoGet(_REMOTE, '/patients'): |
3539 DoDelete(_REMOTE, '/patients/%s' % p) | 3633 DoDelete(_REMOTE, '/patients/%s' % p) |
3540 | 3634 |
3541 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) | 3635 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) |
3542 | 3636 |
3543 | 3637 |
3544 # Upload all at once | 3638 if IsOrthancVersionAbove(_REMOTE, 1, 11, 1): |
3545 DoPost(_REMOTE, '/modalities/orthanctest/move', { 'Level' : 'Study', | 3639 # Move all at once asynchronously at PatientLevel |
3546 'Resources' : [ | 3640 job = MonitorJob2(_REMOTE, lambda: DoPost(_REMOTE, '/modalities/orthanctest/move', |
3547 { | 3641 { |
3548 'StudyInstanceUID' : '2.16.840.1.113669.632.20.121711.10000160881', | 3642 'Level' : 'Patient', |
3643 'Resources' : [ | |
3644 { | |
3645 'PatientID' : '5Yp0E', | |
3549 }, | 3646 }, |
3550 { | 3647 { |
3551 'StudyInstanceUID' : '2.16.840.1.113669.632.20.1211.10000357775', | 3648 'PatientID': '887', |
3649 'PatientName' : 'KNEE', | |
3552 } | 3650 } |
3553 ]}) | 3651 ], |
3554 self.assertEqual(2, len(DoGet(_REMOTE, '/patients'))) | 3652 'Synchronous': False |
3555 self.assertEqual(2, len(DoGet(_REMOTE, '/studies'))) | 3653 })) |
3556 self.assertEqual(3, len(DoGet(_REMOTE, '/series'))) | 3654 |
3557 self.assertEqual(4, len(DoGet(_REMOTE, '/instances'))) | 3655 self.assertEqual(2, len(DoGet(_REMOTE, '/patients'))) |
3656 self.assertEqual(2, len(DoGet(_REMOTE, '/studies'))) | |
3657 self.assertEqual(3, len(DoGet(_REMOTE, '/series'))) | |
3658 self.assertEqual(4, len(DoGet(_REMOTE, '/instances'))) | |
3558 | 3659 |
3559 | 3660 |
3560 | 3661 |
3561 def test_reconstruct_json(self): | 3662 def test_reconstruct_json(self): |
3562 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) | 3663 self.assertEqual(0, len(DoGet(_REMOTE, '/patients'))) |