comparison Tests/Tests.py @ 432:f4609c97e995

test_modify_keep_source
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 16 Aug 2021 10:46:56 +0200
parents e665c493e23e
children cb579ad96a6c
comparison
equal deleted inserted replaced
431:e665c493e23e 432:f4609c97e995
8053 8053
8054 result = DoPost(_REMOTE, '/instances', media) 8054 result = DoPost(_REMOTE, '/instances', media)
8055 self.assertEqual(1, len(result)) 8055 self.assertEqual(1, len(result))
8056 self.assertEqual(instance, result[0]['ID']) 8056 self.assertEqual(instance, result[0]['ID'])
8057 self.assertEqual('Success', result[0]['Status']) 8057 self.assertEqual('Success', result[0]['Status'])
8058
8059
8060 def test_modify_keep_source(self):
8061 # https://groups.google.com/g/orthanc-users/c/1lvlBTs2WUY/m/HmYsc2CPBQAJ
8062 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID']
8063 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID']
8064 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8065
8066 a = DoPost(_REMOTE, '/studies/%s/anonymize' % study, {}) ['ID']
8067 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8068 DoDelete(_REMOTE, '/studies/%s' % a)
8069 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8070
8071 a = DoPost(_REMOTE, '/studies/%s/anonymize' % study, { 'KeepSource' : True }) ['ID']
8072 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8073 DoDelete(_REMOTE, '/studies/%s' % a)
8074 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8075
8076 a = DoPost(_REMOTE, '/studies/%s/anonymize' % study, { 'KeepSource' : False }) ['ID']
8077 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8078 DoDelete(_REMOTE, '/studies/%s' % a)
8079 self.assertEqual(0, len(DoGet(_REMOTE, '/instances')))
8080
8081 UploadInstance(_REMOTE, 'DummyCT.dcm')
8082 a = DoPost(_REMOTE, '/studies/%s/modify' % study, { 'Replace' : { } }) ['ID']
8083 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8084 DoDelete(_REMOTE, '/studies/%s' % a)
8085 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8086
8087 a = DoPost(_REMOTE, '/studies/%s/modify' % study, { 'KeepSource' : True }) ['ID']
8088 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8089 DoDelete(_REMOTE, '/studies/%s' % a)
8090 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8091
8092 a = DoPost(_REMOTE, '/studies/%s/modify' % study, { 'KeepSource' : False }) ['ID']
8093 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8094 DoDelete(_REMOTE, '/studies/%s' % a)
8095 self.assertEqual(0, len(DoGet(_REMOTE, '/instances')))
8096
8097 def GetStudy(a):
8098 b = filter(lambda x: x['Type'] == 'Study', a['Resources'])
8099 if len(b) == 1:
8100 return b[0]['ID']
8101 else:
8102 raise Exception()
8103
8104 UploadInstance(_REMOTE, 'DummyCT.dcm')
8105 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-anonymize', { 'Resources' : [ study ]}))
8106 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8107 DoDelete(_REMOTE, '/studies/%s' % a)
8108 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8109
8110 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-anonymize', { 'Resources' : [ study ], 'KeepSource' : True}))
8111 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8112 DoDelete(_REMOTE, '/studies/%s' % a)
8113 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8114
8115 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-anonymize', { 'Resources' : [ study ], 'KeepSource' : False}))
8116 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8117 DoDelete(_REMOTE, '/studies/%s' % a)
8118 self.assertEqual(0, len(DoGet(_REMOTE, '/instances')))
8119
8120 UploadInstance(_REMOTE, 'DummyCT.dcm')
8121 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Resources' : [ study ], 'Replace' : { }}))
8122 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8123 DoDelete(_REMOTE, '/studies/%s' % a)
8124 # No more studies, because "bulk-modify" was not given a
8125 # level, so the modified instance belongs to the same study as
8126 # the original instance
8127 self.assertEqual(0, len(DoGet(_REMOTE, '/instances')))
8128
8129 # The following fails on Orthanc <= 1.9.6 because "Level" was
8130 # introduced in 1.9.7
8131
8132 UploadInstance(_REMOTE, 'DummyCT.dcm')
8133 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Level' : 'Study', 'Resources' : [ study ], 'Replace' : { }}))
8134 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8135 DoDelete(_REMOTE, '/studies/%s' % a)
8136 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8137
8138 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Level' : 'Study', 'Resources' : [ study ], 'KeepSource' : True}))
8139 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
8140 DoDelete(_REMOTE, '/studies/%s' % a)
8141 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8142
8143 a = GetStudy(DoPost(_REMOTE, '/tools/bulk-modify', { 'Level' : 'Study', 'Resources' : [ study ], 'KeepSource' : False}))
8144 self.assertEqual(1, len(DoGet(_REMOTE, '/instances')))
8145 DoDelete(_REMOTE, '/studies/%s' % a)
8146 self.assertEqual(0, len(DoGet(_REMOTE, '/instances')))