Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 548:3933237d1958
more tools/find tests
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 22 Jun 2023 19:56:47 +0200 |
parents | 7de5fd295025 |
children | ede184638961 739cad709a8c |
comparison
equal
deleted
inserted
replaced
547:7de5fd295025 | 548:3933237d1958 |
---|---|
1945 'Query' : { 'StationName' : 'SMR4-MP3' }}) | 1945 'Query' : { 'StationName' : 'SMR4-MP3' }}) |
1946 self.assertEqual(1, len(a)) | 1946 self.assertEqual(1, len(a)) |
1947 | 1947 |
1948 | 1948 |
1949 def test_rest_find(self): | 1949 def test_rest_find(self): |
1950 # Upload 8 instances | 1950 # Upload 12 instances |
1951 for i in range(2): | 1951 for i in range(3): |
1952 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) | 1952 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) |
1953 UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-000%d.dcm' % (i + 1)) | 1953 UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-000%d.dcm' % (i + 1)) |
1954 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-000%d.dcm' % (i + 1)) | 1954 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-000%d.dcm' % (i + 1)) |
1955 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-000%d.dcm' % (i + 1)) | 1955 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-000%d.dcm' % (i + 1)) |
1956 | |
1957 | |
1958 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', | |
1959 'CaseSensitive' : True, | |
1960 'Query' : { | |
1961 'PatientName' : '*NE*', | |
1962 'StudyDate': '20080819' | |
1963 }}) | |
1964 self.assertEqual(1, len(a)) | |
1965 | |
1966 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', | |
1967 'CaseSensitive' : True, | |
1968 'Query' : { | |
1969 'PatientName' : '*NE*', | |
1970 'PatientSex': '0000' | |
1971 }}) | |
1972 self.assertEqual(1, len(a)) | |
1973 | |
1974 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', | |
1975 'CaseSensitive' : True, | |
1976 'Query' : { | |
1977 'StudyInstanceUID' : '2.16.840.1.113669.632.20.121711.10000160881' | |
1978 }}) | |
1979 self.assertEqual(2, len(a)) | |
1980 | |
1981 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', | |
1982 'CaseSensitive' : True, | |
1983 'Query' : { | |
1984 'StudyInstanceUID' : '2.16.840.1.113669.632.20.121711.10000160881', | |
1985 'SeriesInstanceUID': '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' | |
1986 }}) | |
1987 self.assertEqual(3, len(a)) | |
1988 | |
1989 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', | |
1990 'CaseSensitive' : True, | |
1991 'Query' : { | |
1992 'StudyDate' : '20080818-20080820', | |
1993 'Modality': 'MR' | |
1994 }}) | |
1995 self.assertEqual(2, len(a)) | |
1996 | |
1997 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', | |
1998 'CaseSensitive' : True, | |
1999 'Query' : { | |
2000 'StudyDate' : '20080818-', | |
2001 'ModalitiesInStudy': 'MR' | |
2002 }}) | |
2003 self.assertEqual(1, len(a)) | |
2004 | |
1956 | 2005 |
1957 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', | 2006 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', |
1958 'CaseSensitive' : False, | 2007 'CaseSensitive' : False, |
1959 'Query' : { 'PatientName' : 'BRAINIX' }}) | 2008 'Query' : { 'PatientName' : 'BRAINIX' }}) |
1960 self.assertEqual(1, len(a)) | 2009 self.assertEqual(1, len(a)) |
1997 self.assertEqual(2, len(a)) | 2046 self.assertEqual(2, len(a)) |
1998 | 2047 |
1999 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', | 2048 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', |
2000 'CaseSensitive' : True, | 2049 'CaseSensitive' : True, |
2001 'Query' : { 'PatientName' : '*NE*' }}) | 2050 'Query' : { 'PatientName' : '*NE*' }}) |
2002 self.assertEqual(4, len(a)) | 2051 self.assertEqual(6, len(a)) |
2003 | 2052 |
2004 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', 'Query' : { }}) | 2053 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', 'Query' : { }}) |
2005 self.assertEqual(2, len(a)) | 2054 self.assertEqual(2, len(a)) |
2006 | 2055 |
2007 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', 'Query' : { }}) | 2056 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', 'Query' : { }}) |
2009 | 2058 |
2010 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', 'Query' : { }}) | 2059 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', 'Query' : { }}) |
2011 self.assertEqual(4, len(a)) | 2060 self.assertEqual(4, len(a)) |
2012 | 2061 |
2013 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', 'Query' : { }}) | 2062 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', 'Query' : { }}) |
2014 self.assertEqual(8, len(a)) | 2063 self.assertEqual(12, len(a)) |
2015 | 2064 |
2016 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', | 2065 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', |
2017 'Expand' : True, | 2066 'Expand' : True, |
2018 'Query' : { 'StudyDate' : '20061201-20061201' }}) | 2067 'Query' : { 'StudyDate' : '20061201-20061201' }}) |
2019 self.assertEqual(1, len(a)) | 2068 self.assertEqual(1, len(a)) |
9470 | 9519 |
9471 else: | 9520 else: |
9472 print("Your database backend doesn't support labels") | 9521 print("Your database backend doesn't support labels") |
9473 | 9522 |
9474 def test_find_labels(self): | 9523 def test_find_labels(self): |
9475 def Execute(labels, constraint, query = { }): | 9524 def Execute(labels, constraint, query = { }, level='Instance'): |
9476 return DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', | 9525 return DoPost(_REMOTE, '/tools/find', { 'Level' : level, |
9477 'Query' : query, | 9526 'Query' : query, |
9478 'Labels' : labels, | 9527 'Labels' : labels, |
9479 'LabelsConstraint' : constraint, }) | 9528 'LabelsConstraint' : constraint, }) |
9480 | 9529 |
9481 if (IsOrthancVersionAbove(_REMOTE, 1, 12, 0) and | 9530 if (IsOrthancVersionAbove(_REMOTE, 1, 12, 0) and |
9482 DoGet(_REMOTE, '/system') ['HasLabels']): | 9531 DoGet(_REMOTE, '/system') ['HasLabels']): |
9483 u = UploadInstance(_REMOTE, 'DummyCT.dcm')['ID'] | 9532 u = UploadInstance(_REMOTE, 'DummyCT.dcm') |
9533 studyId = u["ParentStudy"] | |
9534 seriesId = u["ParentSeries"] | |
9535 patientId = u["ParentPatient"] | |
9536 u = u["ID"] | |
9537 self.assertEqual(1, len(Execute([ 'a' ], 'None'))) | |
9484 | 9538 |
9485 # The instance has no label | 9539 # The instance has no label |
9486 self.assertEqual(1, len(Execute([], 'All'))) | 9540 self.assertEqual(1, len(Execute([], 'All'))) |
9487 self.assertEqual(1, len(Execute([], 'Any'))) | 9541 self.assertEqual(1, len(Execute([], 'Any'))) |
9488 self.assertEqual(1, len(Execute([], 'None'))) | 9542 self.assertEqual(1, len(Execute([], 'None'))) |
9519 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SeriesInstanceUID' : '' }))) | 9573 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SeriesInstanceUID' : '' }))) |
9520 self.assertEqual(0, len(Execute([ 'a' ], 'All', { 'SOPInstanceUID' : 'nope' }))) | 9574 self.assertEqual(0, len(Execute([ 'a' ], 'All', { 'SOPInstanceUID' : 'nope' }))) |
9521 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SOPInstanceUID' : '' }))) | 9575 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SOPInstanceUID' : '' }))) |
9522 | 9576 |
9523 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'PatientID' : 'ozp00SjY2xG' }))) | 9577 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'PatientID' : 'ozp00SjY2xG' }))) |
9524 return | |
9525 | 9578 |
9526 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' }))) | 9579 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' }))) |
9527 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SeriesInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' }))) | 9580 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SeriesInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' }))) |
9528 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SOPInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7040.1171286242.109' }))) | 9581 self.assertEqual(1, len(Execute([ 'a' ], 'All', { 'SOPInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7040.1171286242.109' }))) |
9529 self.assertEqual(1, len(Execute([ 'a' ], 'All', { | 9582 self.assertEqual(1, len(Execute([ 'a' ], 'All', { |
9601 self.assertEqual(0, len(Execute([ 'b' ], 'Any'))) | 9654 self.assertEqual(0, len(Execute([ 'b' ], 'Any'))) |
9602 self.assertEqual(1, len(Execute([ 'b' ], 'None'))) | 9655 self.assertEqual(1, len(Execute([ 'b' ], 'None'))) |
9603 self.assertEqual(0, len(Execute([ 'a', 'b' ], 'All'))) | 9656 self.assertEqual(0, len(Execute([ 'a', 'b' ], 'All'))) |
9604 self.assertEqual(0, len(Execute([ 'a', 'b' ], 'Any'))) | 9657 self.assertEqual(0, len(Execute([ 'a', 'b' ], 'Any'))) |
9605 self.assertEqual(1, len(Execute([ 'a', 'b' ], 'None'))) | 9658 self.assertEqual(1, len(Execute([ 'a', 'b' ], 'None'))) |
9606 | 9659 |
9660 | |
9661 # tests at series levels (make sure to test only with series levels and with multiple levels) | |
9662 DoPut(_REMOTE, '/series/%s/labels/b' % seriesId) | |
9663 self.assertEqual(1, len(Execute([ 'a' ], 'None', { | |
9664 'SeriesInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' | |
9665 }, 'Series'))) | |
9666 self.assertEqual(0, len(Execute([ 'a' ], 'Any', { | |
9667 'SeriesInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' | |
9668 }, 'Series'))) | |
9669 self.assertEqual(1, len(Execute([ 'b' ], 'Any', { | |
9670 'SeriesInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' | |
9671 }, 'Series'))) | |
9672 self.assertEqual(1, len(Execute([ 'b' ], 'All', { | |
9673 'SeriesInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' | |
9674 }, 'Series'))) | |
9675 self.assertEqual(1, len(Execute([ 'a' ], 'None', { | |
9676 'PatientID' : 'ozp00SjY2xG', | |
9677 }, 'Series'))) | |
9678 self.assertEqual(0, len(Execute([ 'a' ], 'Any', { | |
9679 'PatientID' : 'ozp00SjY2xG', | |
9680 }, 'Series'))) | |
9681 self.assertEqual(1, len(Execute([ 'b' ], 'Any', { | |
9682 'PatientID' : 'ozp00SjY2xG', | |
9683 }, 'Series'))) | |
9684 self.assertEqual(1, len(Execute([ 'b' ], 'All', { | |
9685 'PatientID' : 'ozp00SjY2xG', | |
9686 }, 'Series'))) | |
9687 | |
9688 # tests at study levels (make sure to test only with study levels and with multiple levels) | |
9689 DoPut(_REMOTE, '/studies/%s/labels/b' % studyId) | |
9690 self.assertEqual(1, len(Execute([ 'a' ], 'None', { | |
9691 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' | |
9692 }, 'Study'))) | |
9693 self.assertEqual(0, len(Execute([ 'a' ], 'Any', { | |
9694 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' | |
9695 }, 'Study'))) | |
9696 self.assertEqual(1, len(Execute([ 'b' ], 'Any', { | |
9697 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' | |
9698 }, 'Study'))) | |
9699 self.assertEqual(1, len(Execute([ 'b' ], 'All', { | |
9700 'StudyInstanceUID' : '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' | |
9701 }, 'Study'))) | |
9702 self.assertEqual(1, len(Execute([ 'a' ], 'None', { | |
9703 'PatientID' : 'ozp00SjY2xG', | |
9704 }, 'Study'))) | |
9705 self.assertEqual(0, len(Execute([ 'a' ], 'Any', { | |
9706 'PatientID' : 'ozp00SjY2xG', | |
9707 }, 'Study'))) | |
9708 self.assertEqual(1, len(Execute([ 'b' ], 'Any', { | |
9709 'PatientID' : 'ozp00SjY2xG', | |
9710 }, 'Study'))) | |
9711 self.assertEqual(1, len(Execute([ 'b' ], 'All', { | |
9712 'PatientID' : 'ozp00SjY2xG', | |
9713 }, 'Study'))) | |
9714 | |
9715 # tests at patient levels | |
9716 DoPut(_REMOTE, '/patients/%s/labels/b' % patientId) | |
9717 self.assertEqual(1, len(Execute([ 'a' ], 'None', { | |
9718 'PatientID' : 'ozp00SjY2xG', | |
9719 }, 'Patient'))) | |
9720 self.assertEqual(0, len(Execute([ 'a' ], 'Any', { | |
9721 'PatientID' : 'ozp00SjY2xG', | |
9722 }, 'Patient'))) | |
9723 self.assertEqual(1, len(Execute([ 'b' ], 'Any', { | |
9724 'PatientID' : 'ozp00SjY2xG', | |
9725 }, 'Patient'))) | |
9726 self.assertEqual(1, len(Execute([ 'b' ], 'All', { | |
9727 'PatientID' : 'ozp00SjY2xG', | |
9728 }, 'Patient'))) | |
9729 | |
9607 else: | 9730 else: |
9608 print("Your database backend doesn't support labels") | 9731 print("Your database backend doesn't support labels") |
9609 | 9732 |
9610 | 9733 |
9611 def test_numeric_metadata(self): | 9734 def test_numeric_metadata(self): |