comparison Tests/Tests.py @ 415:fa6c4b82c027

test_bulk_content
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 18 Jun 2021 17:59:10 +0200
parents a2beea45a53d
children 80164728c038
comparison
equal deleted inserted replaced
414:a2beea45a53d 415:fa6c4b82c027
7656 self.assertEqual('SeriesDescription', a[2]['MainDicomTags']['0008,103e']['Name']) 7656 self.assertEqual('SeriesDescription', a[2]['MainDicomTags']['0008,103e']['Name'])
7657 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', 7657 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109',
7658 a[3]['MainDicomTags']['0008,0018']['Value']) 7658 a[3]['MainDicomTags']['0008,0018']['Value'])
7659 self.assertEqual('SOPInstanceUID', a[3]['MainDicomTags']['0008,0018']['Name']) 7659 self.assertEqual('SOPInstanceUID', a[3]['MainDicomTags']['0008,0018']['Name'])
7660 7660
7661
7662 def test_bulk_content(self):
7663 # New in Orthanc 1.9.4
7664 knee1 = UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') ['ID']
7665 knee2 = UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') ['ID']
7666 brainix = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm') ['ID']
7667
7668 brainixHierarchy = [
7669 DoGet(_REMOTE, '/instances/%s/patient' % brainix) ['ID'],
7670 DoGet(_REMOTE, '/instances/%s/study' % brainix) ['ID'],
7671 DoGet(_REMOTE, '/instances/%s/series' % brainix) ['ID'],
7672 brainix,
7673 ]
7674
7675 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : brainixHierarchy })
7676 self.assertEqual(4, len(a))
7677 b = map(lambda x: x['ID'], a)
7678 for i in range(4):
7679 self.assertEqual(brainixHierarchy[i], b[i])
7680
7681 for (level, index) in [
7682 ('Patient', 0),
7683 ('Study', 1),
7684 ('Series', 2),
7685 ('Instance', 3),
7686 ]:
7687 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : brainixHierarchy,
7688 'Level' : level })
7689 self.assertEqual(1, len(a))
7690 self.assertEqual(level, a[0]['Type'])
7691 self.assertEqual(brainixHierarchy[index], a[0]['ID'])
7692
7693 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ brainix ],
7694 'Level' : level })
7695 self.assertEqual(1, len(a))
7696 self.assertEqual(level, a[0]['Type'])
7697 self.assertEqual(brainixHierarchy[index], a[0]['ID'])
7698
7699 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, knee2, brainix ] })
7700 self.assertEqual(3, len(a))
7701 for item in a:
7702 self.assertEqual('Instance', item['Type'])
7703 b = map(lambda x: x['ID'], a)
7704 self.assertTrue(knee1 in b)
7705 self.assertTrue(knee2 in b)
7706 self.assertTrue(brainix in b)
7707
7708 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, knee2 ],
7709 'Level' : 'Series' })
7710 self.assertEqual(2, len(a))
7711 for item in a:
7712 self.assertEqual('Series', item['Type'])
7713 b = map(lambda x: x['ID'], a)
7714 self.assertTrue(DoGet(_REMOTE, '/instances/%s' % knee1) ['ParentSeries'] in b)
7715 self.assertTrue(DoGet(_REMOTE, '/instances/%s' % knee2) ['ParentSeries'] in b)
7716
7717 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, knee2 ],
7718 'Level' : 'Study' })
7719 self.assertEqual(1, len(a))
7720 self.assertEqual(DoGet(_REMOTE, '/instances/%s/study' % knee1) ['ID'], a[0]['ID'])
7721 self.assertEqual('Study', a[0]['Type'])
7722 self.assertEqual('KNEE', a[0]['PatientMainDicomTags']['PatientName'])
7723
7724 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, knee2 ],
7725 'Level' : 'Patient' })
7726 self.assertEqual(1, len(a))
7727 self.assertEqual(DoGet(_REMOTE, '/instances/%s/patient' % knee1) ['ID'], a[0]['ID'])
7728 self.assertEqual('Patient', a[0]['Type'])
7729 self.assertEqual('KNEE', a[0]['MainDicomTags']['PatientName'])
7730
7731 for level in [ 'Instance', 'Series', 'Study', 'Patient' ]:
7732 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, brainix ],
7733 'Level' : level })
7734 self.assertEqual(2, len(a))
7735 for item in a:
7736 self.assertEqual(level, item['Type'])
7737 b = map(lambda x: x['ID'], a)
7738 if level == 'Instance':
7739 self.assertTrue(knee1 in b)
7740 self.assertTrue(brainix in b)
7741 else:
7742 self.assertTrue(DoGet(_REMOTE, '/instances/%s/%s' % (knee1, level.lower())) ['ID'] in b)
7743 self.assertTrue(DoGet(_REMOTE, '/instances/%s/%s' % (brainix, level.lower())) ['ID'] in b)