Exemple #1
0
    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 "
Exemple #2
0
 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
Exemple #3
0
 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')
Exemple #4
0
 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"
Exemple #5
0
    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
 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')