def test_read_known_private_tag_implicit(self): fp = DicomBytesIO() ds = Dataset() ds.is_implicit_VR = True ds.is_little_endian = True ds[0x00410010] = RawDataElement(Tag(0x00410010), "LO", 8, b"ACME 3.2", 0, True, True) ds[0x00411001] = RawDataElement(Tag(0x00411001), "US", 2, b"\x2A\x00", 0, True, True) ds[0x00431001] = RawDataElement(Tag(0x00431001), "SH", 8, b"Unknown ", 0, True, True) ds.save_as(fp) ds = dcmread(fp, force=True) elem = ds[0x00411001] assert elem.VR == "UN" assert elem.name == "Private tag data" assert elem.value == b"\x2A\x00" add_private_dict_entry("ACME 3.2", 0x00410001, "US", "Some Number") ds = dcmread(fp, force=True) elem = ds[0x00411001] assert elem.VR == "US" assert elem.name == "[Some Number]" assert elem.value == 42 # Unknown private tag is handled as before elem = ds[0x00431001] assert elem.VR == "UN" assert elem.name == "Private tag data" assert elem.value == b"Unknown "
def test_add_private_entry(self): with save_private_dict(): add_private_dict_entry('ACME 3.1', 0x10011101, 'DS', 'Test One', '3') entry = get_private_entry((0x1001, 0x0001), 'ACME 3.1') assert 'DS' == entry[0] # VR assert '3' == entry[1] # VM assert 'Test One' == entry[2] # description
def test_add_private_entry_raises_for_non_private_tag(self): msg = ( r"Non-private tags cannot be added using " r"'add_private_dict_entries\(\)' \- use " r"'add_dict_entries\(\)' instead" ) with pytest.raises(ValueError, match=msg): add_private_dict_entry('ACME 3.1', 0x10021101, 'DS', 'Test One')
def test_read_known_private_tag_explicit_no_lookup( self, dont_replace_un_with_known_vr): add_private_dict_entry("ACME 3.2", 0x00410003, "IS", "Another Number") fp = DicomBytesIO() ds = Dataset() ds.is_implicit_VR = False ds.is_little_endian = True ds[0x00410010] = RawDataElement(Tag(0x00410010), "LO", 8, b"ACME 3.2", 0, False, True) ds[0x00411003] = RawDataElement(Tag(0x00411003), "UN", 8, b"12345678", 0, False, True) ds.save_as(fp) ds = dcmread(fp, force=True) elem = ds[0x00411003] assert elem.VR == "UN" assert elem.name == "[Another Number]" assert elem.value == b"12345678"
def test_read_known_private_tag_explicit(self): fp = DicomBytesIO() ds = Dataset() ds.is_implicit_VR = False ds.is_little_endian = True ds[0x00410010] = RawDataElement(Tag(0x00410010), "LO", 8, b"ACME 3.2", 0, False, True) ds[0x00411002] = RawDataElement(Tag(0x00411002), "UN", 8, b"SOME_AET", 0, False, True) ds.save_as(fp) ds = dcmread(fp, force=True) elem = ds[0x00411002] assert elem.VR == "UN" assert elem.name == "Private tag data" assert elem.value == b"SOME_AET" add_private_dict_entry("ACME 3.2", 0x00410002, "AE", "Some AET") ds = dcmread(fp, force=True) elem = ds[0x00411002] assert elem.VR == "AE" assert elem.name == "[Some AET]" assert elem.value == "SOME_AET"
def test_add_private_entry_raises_for_non_private_tag(self): with pytest.raises(ValueError, match='Non-private tags cannot be ' 'added using "add_private_dict_entries"'): add_private_dict_entry('ACME 3.1', 0x10021101, 'DS', 'Test One')
def test_add_private_entry(self): add_private_dict_entry('ACME 3.1', 0x10011101, 'DS', 'Test One', '3') entry = get_private_entry((0x1001, 0x0001), 'ACME 3.1') assert 'DS' == entry[0] # VR assert '3' == entry[1] # VM assert 'Test One' == entry[2] # description