Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 18:16c37933384d
test
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 19 Jun 2015 09:11:29 +0200 |
parents | 7c8500991a12 |
children | 2a29bcff60a7 |
comparison
equal
deleted
inserted
replaced
17:7c8500991a12 | 18:16c37933384d |
---|---|
1719 def test_storescu_rf(self): | 1719 def test_storescu_rf(self): |
1720 i = UploadInstance(_REMOTE, 'KarstenHilbertRF.dcm')['ID'] | 1720 i = UploadInstance(_REMOTE, 'KarstenHilbertRF.dcm')['ID'] |
1721 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) | 1721 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) |
1722 j = DoPost(_REMOTE, '/modalities/orthanctest/store', str(i), 'text/plain') | 1722 j = DoPost(_REMOTE, '/modalities/orthanctest/store', str(i), 'text/plain') |
1723 self.assertEqual(1, len(DoGet(_LOCAL, '/instances'))) | 1723 self.assertEqual(1, len(DoGet(_LOCAL, '/instances'))) |
1724 | |
1725 | |
1726 def test_anonymize_instance(self): | |
1727 def AnonymizeAndUpload(instanceId, parameters): | |
1728 return DoPost(_REMOTE, '/instances', DoPost(_REMOTE, '/instances/%s/anonymize' % instanceId, parameters, | |
1729 'application/json'), 'application/dicom')['ID'] | |
1730 | |
1731 def ModifyAndUpload(instanceId, parameters): | |
1732 return DoPost(_REMOTE, '/instances', DoPost(_REMOTE, '/instances/%s/modify' % instanceId, parameters, | |
1733 'application/json'), 'application/dicom')['ID'] | |
1734 | |
1735 a = UploadInstance(_REMOTE, 'PrivateMDNTags.dcm')['ID'] | |
1736 s1 = DoGet(_REMOTE, '/instances/%s/content/PatientName' % a) | |
1737 s2 = DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % a) # Some private tag | |
1738 s3 = DoGet(_REMOTE, '/instances/%s/content/StudyDescription' % a) | |
1739 s4 = DoGet(_REMOTE, '/instances/%s/content/SeriesDescription' % a) | |
1740 s5 = DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % a) | |
1741 | |
1742 b = AnonymizeAndUpload(a, '{}') | |
1743 self.assertNotEqual(s1, DoGet(_REMOTE, '/instances/%s/content/PatientName' % b)) | |
1744 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | |
1745 | |
1746 # Keep private tag (only OK since Orthanc 0.8.0) | |
1747 b = AnonymizeAndUpload(a, '{"Keep":["00e1-10c2"]}') | |
1748 self.assertNotEqual(s1, DoGet(_REMOTE, '/instances/%s/content/PatientName' % b)) | |
1749 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | |
1750 | |
1751 b = AnonymizeAndUpload(a, '{"Keep":["00e1,10c2","PatientName"]}') | |
1752 self.assertEqual(s1, DoGet(_REMOTE, '/instances/%s/content/PatientName' % b)) | |
1753 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | |
1754 | |
1755 b = AnonymizeAndUpload(a, '{"Keep":["PatientName"],"Replace":{"00e1,10c2":"Hello"}}') | |
1756 self.assertEqual(s1, DoGet(_REMOTE, '/instances/%s/content/PatientName' % b)) | |
1757 self.assertTrue(DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b).startswith('Hello')) | |
1758 | |
1759 # Examples from the Wiki | |
1760 b = AnonymizeAndUpload(a, '{"Replace":{"PatientName":"hello","0010-0020":"world"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": null}') | |
1761 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) | |
1762 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) | |
1763 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) | |
1764 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008,103e' % b)) | |
1765 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008-103E' % b)) | |
1766 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | |
1767 DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % a) | |
1768 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) | |
1769 | |
1770 b = ModifyAndUpload(a, '{"Replace":{"PatientName":"hello","PatientID":"world"},"Remove":["InstitutionName"],"RemovePrivateTags": null}') | |
1771 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) | |
1772 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) | |
1773 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) | |
1774 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008,103e' % b)) | |
1775 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | |
1776 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) | |
1777 | |
1778 b = ModifyAndUpload(a, '{"Replace":{"PatientName":"hello","PatientID":"world"}}') | |
1779 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) | |
1780 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) | |
1781 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1,10c2' % b)) | |
1782 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) | |
1783 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008-103E' % b)) | |
1784 self.assertEqual(s5, DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) | |
1785 | |
1786 | |
1787 # Test modify non-existing | |
1788 i = DoPost(_REMOTE, '/tools/create-dicom', | |
1789 json.dumps({ | |
1790 'PatientName' : 'Jodogne', | |
1791 'Modality' : 'CT', | |
1792 }))['ID'] | |
1793 | |
1794 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i).strip()) | |
1795 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/StudyDescription' % i)) | |
1796 self.assertEqual('CT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i).strip()) | |
1797 | |
1798 b = ModifyAndUpload(i, '{"Replace":{"StudyDescription":"hello","Modality":"world"}}') | |
1799 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % b).strip()) | |
1800 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/StudyDescription' % b).strip()) | |
1801 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/Modality' % b).strip()) | |
1802 |