def add_private_dict_entries( private_creator: str, new_entries_dict: Dict[int, Tuple[str, str, str, str]] ) -> None: """Update pydicom's private DICOM tag dictionary with new entries. .. versionadded:: 1.3 Parameters ---------- private_creator: str The private creator for all entries in `new_entries_dict`. new_entries_dict : dict :class:`dict` of form ``{tag: (VR, VM, description, is_retired), ...}`` where parameters are as described in :func:`add_private_dict_entry`. Raises ------ ValueError If one of the entries is a non-private tag. See Also -------- add_private_dict_entry Function to add a single entry to the private tag dictionary. Examples -------- >>> new_dict_items = { ... 0x00410001: ('UL', '1', "Test One"), ... 0x00410002: ('DS', '3', "Test Two", '3'), ... } >>> add_private_dict_entries("ACME LTD 1.2", new_dict_items) >>> add_private_dict_entry("ACME LTD 1.3", 0x00410001, "US", "Test Three") """ if not all([BaseTag(tag).is_private for tag in new_entries_dict]): raise ValueError( "Non-private tags cannot be added using " "'add_private_dict_entries()' - use 'add_dict_entries()' instead" ) new_entries = { f"{tag >> 16:04x}xx{tag & 0xff:02x}": value for tag, value in new_entries_dict.items() } private_dictionaries.setdefault(private_creator, {}).update(new_entries)
def add_private_dict_entries(private_creator, new_entries_dict): """Update pydicom's private DICOM tag dictionary with new entries. Parameters ---------- private_creator: str The private creator for all entries in new_entries_dict new_entries_dict : dict Dictionary of form: {tag: (VR, VM, description),...} where parameters are as described in add_private_dict_entry Raises ------ ValueError If one of the entries is a non-private tag. See Also -------- add_private_dict_entry Function to add a single entry to the private tag dictionary. Examples -------- >>> new_dict_items = { ... 0x00410001: ('UL', '1', "Test One"), ... 0x00410002: ('DS', '3', "Test Two", '3'), ... } >>> add_private_dict_entries("ACME LTD 1.2", new_dict_items) >>> add_private_dict_entry("ACME LTD 1.3", 0x00410001, "US", "Test Three") """ if not all([BaseTag(tag).is_private for tag in new_entries_dict]): raise ValueError( 'Non-private tags cannot be added using "add_private_dict_entries"' ' - use "add_dict_entries" instead') new_entries = { '{:04x}xx{:02x}'.format(tag >> 16, tag & 0xff): value for tag, value in new_entries_dict.items() } private_dictionaries.setdefault(private_creator, {}).update(new_entries)