Mercurial > hg > orthanc-tests
comparison Plugins/DicomWeb/Run.py @ 559:87fc87897e7e
test_accept_negotiation for multipart DICOM
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 28 Jun 2023 11:18:45 +0200 |
parents | 0ad170c7b6c8 |
children | 2db7a9041507 |
comparison
equal
deleted
inserted
replaced
558:0ad170c7b6c8 | 559:87fc87897e7e |
---|---|
35 | 35 |
36 import argparse | 36 import argparse |
37 import copy | 37 import copy |
38 import os | 38 import os |
39 import pprint | 39 import pprint |
40 import pydicom | |
40 import re | 41 import re |
41 import sys | 42 import sys |
42 import unittest | 43 import unittest |
43 import xml.dom.minidom | 44 import xml.dom.minidom |
44 from PIL import ImageChops | 45 from PIL import ImageChops |
1750 self.assertEqual(1, len(response)) | 1751 self.assertEqual(1, len(response)) |
1751 self.assertEqual(2, len(response[0])) | 1752 self.assertEqual(2, len(response[0])) |
1752 self.assertEqual('application/dicom+xml', response[0][1]['Content-Type']) | 1753 self.assertEqual('application/dicom+xml', response[0][1]['Content-Type']) |
1753 xml.dom.minidom.parseString(response[0][0]) | 1754 xml.dom.minidom.parseString(response[0][0]) |
1754 | 1755 |
1756 def CheckIsDicom(uri, accept): | |
1757 if accept != None: | |
1758 response = DoGetMultipart(ORTHANC, uri, headers = { | |
1759 'accept': accept | |
1760 }, returnHeaders = True) | |
1761 else: | |
1762 response = DoGetMultipart(ORTHANC, uri, returnHeaders = True) | |
1763 self.assertEqual(1, len(response)) | |
1764 self.assertEqual(2, len(response[0])) | |
1765 self.assertEqual('application/dicom', response[0][1]['Content-Type']) | |
1766 pydicom.dcmread(BytesIO(response[0][0]), force=True) | |
1767 | |
1755 study = UploadInstance(ORTHANC, 'ColorTestImageJ.dcm')['ParentStudy'] | 1768 study = UploadInstance(ORTHANC, 'ColorTestImageJ.dcm')['ParentStudy'] |
1756 studyUid = DoGet(ORTHANC, '/studies/%s' % study)['MainDicomTags']['StudyInstanceUID'] | 1769 studyUid = DoGet(ORTHANC, '/studies/%s' % study)['MainDicomTags']['StudyInstanceUID'] |
1757 | 1770 |
1758 CheckIsJson('/dicom-web/studies/%s/metadata' % studyUid, None) | 1771 CheckIsJson('/dicom-web/studies/%s/metadata' % studyUid, None) |
1759 CheckBadRequest('/dicom-web/studies/%s/metadata' % studyUid, 'application/nope') | 1772 CheckBadRequest('/dicom-web/studies/%s/metadata' % studyUid, 'application/nope') |
1763 CheckIsXml('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type=application/dicom+xml') | 1776 CheckIsXml('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type=application/dicom+xml') |
1764 CheckIsXml('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type="application/dicom+xml"') | 1777 CheckIsXml('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type="application/dicom+xml"') |
1765 CheckBadRequest('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type="application/nope"') | 1778 CheckBadRequest('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type="application/nope"') |
1766 CheckBadRequest('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type=application/dicom+xml; transfer-syntax=nope') | 1779 CheckBadRequest('/dicom-web/studies/%s/metadata' % studyUid, 'multipart/related; type=application/dicom+xml; transfer-syntax=nope') |
1767 | 1780 |
1781 CheckBadRequest('/dicom-web/studies/%s' % studyUid, 'multipart/nope') | |
1782 CheckIsDicom('/dicom-web/studies/%s' % studyUid, None) | |
1783 CheckIsDicom('/dicom-web/studies/%s' % studyUid, 'multipart/related') | |
1784 CheckIsDicom('/dicom-web/studies/%s' % studyUid, 'multipart/related; type=application/dicom') | |
1785 CheckIsDicom('/dicom-web/studies/%s' % studyUid, 'multipart/related; type="application/dicom"') | |
1786 CheckBadRequest('/dicom-web/studies/%s' % studyUid, 'multipart/related; type=application/nope') | |
1787 CheckIsDicom('/dicom-web/studies/%s' % studyUid, 'multipart/related; transfer-syntax=*') | |
1788 CheckIsDicom('/dicom-web/studies/%s' % studyUid, 'multipart/related; type=application/dicom; transfer-syntax=*') | |
1789 CheckBadRequest('/dicom-web/studies/%s' % studyUid, 'multipart/related; transfer-syntax=nope') | |
1790 CheckIsDicom('/dicom-web/studies/%s' % studyUid, 'multipart/related; type=application/dicom; transfer-syntax=1.2.840.10008.1.2.1') | |
1791 | |
1768 | 1792 |
1769 try: | 1793 try: |
1770 print('\nStarting the tests...') | 1794 print('\nStarting the tests...') |
1771 unittest.main(argv = [ sys.argv[0] ] + args.options) | 1795 unittest.main(argv = [ sys.argv[0] ] + args.options) |
1772 | 1796 |