本文整理汇总了Python中pydicom.dataset.Dataset.BeamSequence方法的典型用法代码示例。如果您正苦于以下问题:Python Dataset.BeamSequence方法的具体用法?Python Dataset.BeamSequence怎么用?Python Dataset.BeamSequence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pydicom.dataset.Dataset
的用法示例。
在下文中一共展示了Dataset.BeamSequence方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testEqualitySequence
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def testEqualitySequence(self):
"""Dataset: equality returns correct value when dataset has sequences"""
# Test even sequences
d = Dataset()
d.SOPInstanceUID = "1.2.3.4"
d.BeamSequence = []
beam_seq = Dataset()
beam_seq.PatientName = "ANON"
d.BeamSequence.append(beam_seq)
self.assertTrue(d == d)
e = Dataset()
e.SOPInstanceUID = "1.2.3.4"
e.BeamSequence = []
beam_seq = Dataset()
beam_seq.PatientName = "ANON"
e.BeamSequence.append(beam_seq)
self.assertTrue(d == e)
e.BeamSequence[0].PatientName = "ANONY"
self.assertFalse(d == e)
# Test uneven sequences
e.BeamSequence[0].PatientName = "ANON"
self.assertTrue(d == e)
e.BeamSequence.append(beam_seq)
self.assertFalse(d == e)
d.BeamSequence.append(beam_seq)
self.assertTrue(d == e)
d.BeamSequence.append(beam_seq)
self.assertFalse(d == e)
示例2: test_delitem_slice
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_delitem_slice(self):
"""Test Dataset.__delitem__ using slices."""
ds = Dataset()
ds.CommandGroupLength = 120 # 0000,0000
ds.CommandLengthToEnd = 111 # 0000,0001
ds.Overlays = 12 # 0000,51B0
ds.LengthToEnd = 12 # 0008,0001
ds.SOPInstanceUID = '1.2.3.4' # 0008,0018
ds.SkipFrameRangeFlag = 'TEST' # 0008,9460
ds.add_new(0x00090001, 'PN', 'CITIZEN^1')
ds.add_new(0x00090002, 'PN', 'CITIZEN^2')
ds.add_new(0x00090003, 'PN', 'CITIZEN^3')
ds.add_new(0x00090004, 'PN', 'CITIZEN^4')
ds.add_new(0x00090005, 'PN', 'CITIZEN^5')
ds.add_new(0x00090006, 'PN', 'CITIZEN^6')
ds.add_new(0x00090007, 'PN', 'CITIZEN^7')
ds.add_new(0x00090008, 'PN', 'CITIZEN^8')
ds.add_new(0x00090009, 'PN', 'CITIZEN^9')
ds.add_new(0x00090010, 'PN', 'CITIZEN^10')
ds.PatientName = 'CITIZEN^Jan' # 0010,0010
ds.PatientID = '12345' # 0010,0010
ds.ExaminedBodyThickness = 1.223 # 0010,9431
ds.BeamSequence = [Dataset()] # 300A,00B0
ds.BeamSequence[0].PatientName = 'ANON'
# Delete the 0x0009 group
del ds[0x00090000:0x00100000]
self.assertTrue('SkipFrameRangeFlag' in ds)
self.assertFalse(0x00090001 in ds)
self.assertFalse(0x00090010 in ds)
self.assertTrue('PatientName' in ds)
示例3: test_top
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_top(self):
"""Test Dataset.top returns only top level str"""
ds = Dataset()
ds.PatientName = 'CITIZEN^Jan'
ds.BeamSequence = [Dataset()]
ds.BeamSequence[0].PatientID = 'JAN^Citizen'
assert "Patient's Name" in ds.top()
assert "Patient ID" not in ds.top()
示例4: test_data_element
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_data_element(self):
"""Test Dataset.data_element."""
ds = Dataset()
ds.CommandGroupLength = 120
ds.SkipFrameRangeFlag = 'TEST'
ds.add_new(0x00090001, 'PN', 'CITIZEN^1')
ds.BeamSequence = [Dataset()]
ds.BeamSequence[0].PatientName = 'ANON'
assert ds.data_element('CommandGroupLength') == ds[0x00000000]
assert ds.data_element('BeamSequence') == ds[0x300A00B0]
assert ds.data_element('not an element keyword') is None
示例5: test_str
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_str(self):
"""Test string output of the sequence"""
ds = Dataset()
ds.BeamSequence = [Dataset()]
ds.BeamSequence[0].PatientName = 'TEST'
ds.BeamSequence[0].PatientID = '12345'
out = str(ds.BeamSequence)
assert "[(0010, 0010) Patient's Name" in out
assert "PN: 'TEST'" in out
assert "(0010, 0020) Patient ID" in out
assert "LO: '12345']" in out
示例6: test_sequence
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_sequence(self):
"""Test correcting elements in a sequence."""
ref_ds = Dataset()
ref_ds.BeamSequence = [Dataset()]
ref_ds.BeamSequence[0].PixelRepresentation = 0
ref_ds.BeamSequence[0].SmallestValidPixelValue = b'\x00\x01'
ref_ds.BeamSequence[0].BeamSequence = [Dataset()]
ref_ds.BeamSequence[0].BeamSequence[0].PixelRepresentation = 0
ref_ds.BeamSequence[0].BeamSequence[0].SmallestValidPixelValue = b'\x00\x01'
ds = correct_ambiguous_vr(deepcopy(ref_ds), True)
self.assertEqual(ds.BeamSequence[0].SmallestValidPixelValue, 256)
self.assertEqual(ds.BeamSequence[0][0x00280104].VR, 'US')
self.assertEqual(ds.BeamSequence[0].BeamSequence[0].SmallestValidPixelValue, 256)
self.assertEqual(ds.BeamSequence[0].BeamSequence[0][0x00280104].VR, 'US')
示例7: test_iterall
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_iterall(self):
"""Test Dataset.iterall"""
ds = Dataset()
ds.CommandGroupLength = 120
ds.SkipFrameRangeFlag = 'TEST'
ds.add_new(0x00090001, 'PN', 'CITIZEN^1')
ds.BeamSequence = [Dataset()]
ds.BeamSequence[0].PatientName = 'ANON'
elem_gen = ds.iterall()
self.assertEqual(
ds.data_element('CommandGroupLength'), next(elem_gen))
self.assertEqual(
ds.data_element('SkipFrameRangeFlag'), next(elem_gen))
self.assertEqual(ds[0x00090001], next(elem_gen))
self.assertEqual(
ds.data_element('BeamSequence'), next(elem_gen))
self.assertEqual(
ds.BeamSequence[0].data_element('PatientName'),
next(elem_gen))
示例8: test_walk
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_walk(self):
"""Test Dataset.walk iterates through sequences"""
def test_callback(dataset, elem):
if elem.keyword is 'PatientID':
dataset.PatientID = 'FIXED'
ds = Dataset()
ds.PatientName = 'CITIZEN^Jan'
ds.BeamSequence = [Dataset(), Dataset()]
ds.BeamSequence[0].PatientID = 'JAN^Citizen^Snr'
ds.BeamSequence[0].PatientName = 'Some^Name'
ds.BeamSequence[1].PatientID = 'JAN^Citizen^Jr'
ds.BeamSequence[1].PatientName = 'Other^Name'
ds.walk(test_callback, recursive=True)
assert ds.PatientName == 'CITIZEN^Jan'
assert ds.BeamSequence[0].PatientID == 'FIXED'
assert ds.BeamSequence[0].PatientName == 'Some^Name'
assert ds.BeamSequence[1].PatientID == 'FIXED'
assert ds.BeamSequence[1].PatientName == 'Other^Name'
示例9: test_formatted_lines
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_formatted_lines(self):
"""Test Dataset.formatted_lines"""
ds = Dataset()
with pytest.raises(StopIteration):
next(ds.formatted_lines())
ds.PatientName = 'CITIZEN^Jan'
ds.BeamSequence = [Dataset()]
ds.BeamSequence[0].PatientID = 'JAN^Citizen'
elem_format = "%(tag)s"
seq_format = "%(name)s %(tag)s"
indent_format = ">>>" # placeholder for future functionality
line_generator = ds.formatted_lines(element_format=elem_format,
sequence_element_format=seq_format,
indent_format=indent_format)
assert next(line_generator) == "(0010, 0010)"
assert next(line_generator) == "Beam Sequence (300a, 00b0)"
assert next(line_generator) == "(0010, 0020)"
with pytest.raises(StopIteration):
next(line_generator)
示例10: test_getitem_slice
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_getitem_slice(self):
"""Test Dataset.__getitem__ using slices."""
ds = Dataset()
ds.CommandGroupLength = 120 # 0000,0000
ds.CommandLengthToEnd = 111 # 0000,0001
ds.Overlays = 12 # 0000,51B0
ds.LengthToEnd = 12 # 0008,0001
ds.SOPInstanceUID = '1.2.3.4' # 0008,0018
ds.SkipFrameRangeFlag = 'TEST' # 0008,9460
ds.add_new(0x00090001, 'PN', 'CITIZEN^1')
ds.add_new(0x00090002, 'PN', 'CITIZEN^2')
ds.add_new(0x00090003, 'PN', 'CITIZEN^3')
ds.add_new(0x00090004, 'PN', 'CITIZEN^4')
ds.add_new(0x00090005, 'PN', 'CITIZEN^5')
ds.add_new(0x00090006, 'PN', 'CITIZEN^6')
ds.add_new(0x00090007, 'PN', 'CITIZEN^7')
ds.add_new(0x00090008, 'PN', 'CITIZEN^8')
ds.add_new(0x00090009, 'PN', 'CITIZEN^9')
ds.add_new(0x00090010, 'PN', 'CITIZEN^10')
ds.PatientName = 'CITIZEN^Jan' # 0010,0010
ds.PatientID = '12345' # 0010,0010
ds.ExaminedBodyThickness = 1.223 # 0010,9431
ds.BeamSequence = [Dataset()] # 300A,00B0
ds.BeamSequence[0].PatientName = 'ANON'
# Slice all items - should return original dataset
self.assertEqual(ds[:], ds)
# Slice starting from and including (0008,0001)
test_ds = ds[0x00080001:]
self.assertFalse('CommandGroupLength' in test_ds)
self.assertFalse('CommandLengthToEnd' in test_ds)
self.assertFalse('Overlays' in test_ds)
self.assertTrue('LengthToEnd' in test_ds)
self.assertTrue('BeamSequence' in test_ds)
# Slice ending at and not including (0009,0002)
test_ds = ds[:0x00090002]
self.assertTrue('CommandGroupLength' in test_ds)
self.assertTrue('CommandLengthToEnd' in test_ds)
self.assertTrue('Overlays' in test_ds)
self.assertTrue('LengthToEnd' in test_ds)
self.assertTrue(0x00090001 in test_ds)
self.assertFalse(0x00090002 in test_ds)
self.assertFalse('BeamSequence' in test_ds)
# Slice with a step - every second tag
# Should return zeroth tag, then second, fourth, etc...
test_ds = ds[::2]
self.assertTrue('CommandGroupLength' in test_ds)
self.assertFalse('CommandLengthToEnd' in test_ds)
self.assertTrue(0x00090001 in test_ds)
self.assertFalse(0x00090002 in test_ds)
# Slice starting at and including (0008,0018) and ending at and not
# including (0009,0008)
test_ds = ds[0x00080018:0x00090008]
self.assertTrue('SOPInstanceUID' in test_ds)
self.assertTrue(0x00090007 in test_ds)
self.assertFalse(0x00090008 in test_ds)
# Slice starting at and including (0008,0018) and ending at and not
# including (0009,0008), every third element
test_ds = ds[0x00080018:0x00090008:3]
self.assertTrue('SOPInstanceUID' in test_ds)
self.assertFalse(0x00090001 in test_ds)
self.assertTrue(0x00090002 in test_ds)
self.assertFalse(0x00090003 in test_ds)
self.assertFalse(0x00090004 in test_ds)
self.assertTrue(0x00090005 in test_ds)
self.assertFalse(0x00090006 in test_ds)
self.assertFalse(0x00090008 in test_ds)
# Slice starting and ending (and not including) (0008,0018)
self.assertEqual(
ds[(0x0008, 0x0018):(0x0008, 0x0018)],
Dataset())
# Test slicing using other acceptable Tag initialisations
self.assertTrue(
'SOPInstanceUID' in ds[(0x00080018):(0x00080019)])
self.assertTrue(
'SOPInstanceUID' in ds[(0x0008, 0x0018):(0x0008, 0x0019)])
self.assertTrue(
'SOPInstanceUID' in ds['0x00080018':'0x00080019'])
示例11: test_get_item_slice
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
def test_get_item_slice(self):
"""Test Dataset.get_item with slice argument"""
# adapted from test_getitem_slice
ds = Dataset()
ds.CommandGroupLength = 120 # 0000,0000
ds.CommandLengthToEnd = 111 # 0000,0001
ds.Overlays = 12 # 0000,51B0
ds.LengthToEnd = 12 # 0008,0001
ds.SOPInstanceUID = '1.2.3.4' # 0008,0018
ds.SkipFrameRangeFlag = 'TEST' # 0008,9460
ds.add_new(0x00090001, 'PN', 'CITIZEN^1')
ds.add_new(0x00090002, 'PN', 'CITIZEN^2')
ds.add_new(0x00090003, 'PN', 'CITIZEN^3')
elem = RawDataElement(0x00090004, 'PN', 9, b'CITIZEN^4', 0, True, True)
ds.__setitem__(0x00090004, elem)
elem = RawDataElement(0x00090005, 'PN', 9, b'CITIZEN^5', 0, True, True)
ds.__setitem__(0x00090005, elem)
elem = RawDataElement(0x00090006, 'PN', 9, b'CITIZEN^6', 0, True, True)
ds.__setitem__(0x00090006, elem)
ds.PatientName = 'CITIZEN^Jan' # 0010,0010
elem = RawDataElement(0x00100020, 'LO', 5, b'12345', 0, True, True)
ds.__setitem__(0x00100020, elem) # Patient ID
ds.ExaminedBodyThickness = 1.223 # 0010,9431
ds.BeamSequence = [Dataset()] # 300A,00B0
ds.BeamSequence[0].PatientName = 'ANON'
# Slice all items - should return original dataset
assert ds.get_item(slice(None, None)) == ds
# Slice starting from and including (0008,0001)
test_ds = ds.get_item(slice(0x00080001, None))
assert 'CommandGroupLength' not in test_ds
assert 'CommandLengthToEnd' not in test_ds
assert 'Overlays' not in test_ds
assert 'LengthToEnd' in test_ds
assert 'BeamSequence' in test_ds
# Slice ending at and not including (0009,0002)
test_ds = ds.get_item(slice(None, 0x00090002))
assert 'CommandGroupLength' in test_ds
assert 'CommandLengthToEnd' in test_ds
assert 'Overlays' in test_ds
assert 'LengthToEnd' in test_ds
assert 0x00090001 in test_ds
assert 0x00090002 not in test_ds
assert 'BeamSequence' not in test_ds
# Slice with a step - every second tag
# Should return zeroth tag, then second, fourth, etc...
test_ds = ds.get_item(slice(None, None, 2))
assert 'CommandGroupLength' in test_ds
assert 'CommandLengthToEnd' not in test_ds
assert 0x00090001 in test_ds
assert 0x00090002 not in test_ds
# Slice starting at and including (0008,0018) and ending at and not
# including (0009,0008)
test_ds = ds.get_item(slice(0x00080018, 0x00090006))
assert 'SOPInstanceUID' in test_ds
assert 0x00090005 in test_ds
assert 0x00090006 not in test_ds
# Slice starting at and including (0008,0018) and ending at and not
# including (0009,0006), every third element
test_ds = ds.get_item(slice(0x00080018, 0x00090008, 3))
assert 'SOPInstanceUID' in test_ds
assert 0x00090001 not in test_ds
assert 0x00090002 in test_ds
assert not test_ds.get_item(0x00090002).is_raw
assert 0x00090003 not in test_ds
assert 0x00090004 not in test_ds
assert 0x00090005 in test_ds
assert test_ds.get_item(0x00090005).is_raw
assert 0x00090006 not in test_ds
# Slice starting and ending (and not including) (0008,0018)
assert ds.get_item(slice((0x0008, 0x0018),
(0x0008, 0x0018))) == Dataset()
# Test slicing using other acceptable Tag initialisations
assert 'SOPInstanceUID' in ds.get_item(slice(0x00080018, 0x00080019))
assert 'SOPInstanceUID' in ds.get_item(slice((0x0008, 0x0018),
(0x0008, 0x0019)))
assert 'SOPInstanceUID' in ds.get_item(slice('0x00080018',
'0x00080019'))
示例12: Dataset
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import BeamSequence [as 别名]
from pydicom.sequence import Sequence
from pydicom.dataset import Dataset
# create to toy datasets
block_ds1 = Dataset()
block_ds1.BlockType = "APERTURE"
block_ds1.BlockName = "Block1"
block_ds2 = Dataset()
block_ds2.BlockType = "APERTURE"
block_ds2.BlockName = "Block2"
beam = Dataset()
# note that you should add beam data elements like BeamName, etc; these are
# skipped in this example
plan_ds = Dataset()
# starting from scratch since we did not read a file
plan_ds.BeamSequence = Sequence([beam])
plan_ds.BeamSequence[0].BlockSequence = Sequence([block_ds1, block_ds2])
plan_ds.BeamSequence[0].NumberOfBlocks = 2
beam0 = plan_ds.BeamSequence[0]
print('Number of blocks: {}'.format(beam0.BlockSequence))
# create a new data set
block_ds3 = Dataset()
# add data elements to it as above and don't forget to update Number of Blocks
# data element
beam0.BlockSequence.append(block_ds3)
del plan_ds.BeamSequence[0].BlockSequence[1]