o
    i                     @   s
  d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZ G dd deZd	Z	 ee d
Z	 ed Z	 edZ	 e
  edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ 	 edZ!	 edZ"	 edZ#	 edZ$	 edZ%	 edZ&	 edZ'	 ed Z(	 ed!Z)	 ed"Z*	 ed#Z+	 ed$Z,	 ed%Z-	 ed&Z.	 ed'Z/	 ed(Z0	 ed)Z1	 ed*Z2	 ed+Z3	 ed,Z4	 ed-Z5	 ed.Z6	 ed/Z7	 ed0Z8	 ed1Z9	 ed2Z:	 ed3Z;W d   n	1 sw   Y  g eeeeeeeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;Z<	 eeeegZ=	 eegZ>	 ee e!e"e3e4e5gZ?	 e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2gZ@	 e8gZA	 eeeegZB	 g ZC	 		dd4eeB d5eDdB d6eDdB d7efd8d9ZEd:ZFedfd;edB d<eGe dB d7efd=d>ZHed?ZI	 ed@ZJ	 edAZK	 edBZL	 edCZM	 edDZN	 edEZO	 edFZP	 edGZQ	 edHZR	 edIZS	 edJZT	 edKZU	 edLZV	 edMZW	 edNZX	 edOZY	 edPZZ	 edQZ[	 edRZ\	 edSZ]	 edTZ^	 edUZ_	 edVZ`	 edWZa	 edXZb	 edYZc	 edZZd	 ed[Ze	 ed\Zf	 ed]Zg	 ed^Zh	 ed_Zi	 ed`Zj	 edaZk	 edbZl	 edcZm	 eddZn	 edeZo	 edfZp	 edgZq	 edhZr	 ediZs	 edjZt	 edkZu	 edlZv	 edmZw	 ednZx	 edoZy	 edpZz	 edqZ{	 edrZ|	 edsZ}	 edtZ~	 eduZ	 edvZ	 edwZ	 edxZ	 edyZ	 edzZ	 ed{Z	 ed|Z	 ed}Z	 ed~Z	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edÃZ	 edăZ	 edŃZ	 edƃZ	 edǃZ	 edȃZ	 edɃZ	 edʃZ	 ed˃Z	 ed̃Z	 ed̓Z	 ed΃Z	 edσZ	 edЃZ	 edуZ	 ed҃Z	 edӃZ	 edԃZ	 edՃZ	 edփZ	 ed׃Z	 ed؃Z	 edكZ	 edڃZ	 edۃZ	 ed܃Z	 ed݃Z	 edރZ	 ed߃Z	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ	 edZ 	 edZdS )z6Functions for handling DICOM unique identifiers (UIDs)    N)config)UID_dictionary)disable_value_validation)STR_VR_REGEXESvalidate_valuec                	       sP  e Zd ZU dZeeef ed< 	d(ded  dede	dB dd f fdd	Z
edefd
dZedefddZedefddZedefddZedefddZedefddZedefddZedefddZedefddZedefddZedefddZedefd d!Zedefd"d#Zd$ed%eddfd&d'Z  ZS ))UIDaA  Human friendly UIDs as a Python :class:`str` subclass.

    **Private Transfer Syntaxes**

    If creating a private transfer syntax UID, then you must also use
    :meth:`~pydicom.UID.set_private_encoding` to set the corresponding
    dataset encoding.

    Examples
    --------

    General usage::

      >>> from pydicom.uid import UID
      >>> uid = UID('1.2.840.10008.1.2.4.50')
      >>> uid
      '1.2.840.10008.1.2.4.50'
      >>> uid.is_implicit_VR
      False
      >>> uid.is_little_endian
      True
      >>> uid.is_transfer_syntax
      True
      >>> uid.name
      'JPEG Baseline (Process 1)'
      >>> uid.keyword
      JPEGBaseline8Bit

    Setting the encoding to explicit VR little endian for a private transfer
    syntax::

      >>> uid = UID("1.2.3.4")
      >>> uid.set_private_encoding(False, True)

    _PRIVATE_TS_ENCODINGNclsvalvalidation_modereturnc                    sV   t |tr'|du rtjj}td|| t | | }t	|dr%|j
|_
|S td)a  Setup new instance of the class.

        Parameters
        ----------
        val : str or pydicom.uid.UID
            The UID string to use to create the UID object.
        validation_mode : int
            Defines if values are validated and how validation errors are
            handled.

        Returns
        -------
        pydicom.uid.UID
            The UID object.
        NUIr   z#A UID must be created from a string)
isinstancestrr   settingsreading_validation_moder   super__new__striphasattrr   	TypeError)r	   r
   r   uid	__class__ A/mnt/sdb/aimis/docanh/lib/python3.10/site-packages/pydicom/uid.pyr   6   s   

zUID.__new__c                 C   .   | j r| js| dkrdS dS | jd S td)z6Return ``True`` if an implicit VR transfer syntax UID.1.2.840.10008.1.2TFr   UID is not a transfer syntax.is_transfer_syntax
is_privater   
ValueErrorselfr   r   r   is_implicit_VRU      
zUID.is_implicit_VRc                 C   r   )z7Return ``True`` if a little endian transfer syntax UID.1.2.840.10008.1.2.2FT   r   r   r#   r   r   r   is_little_endianh   r&   zUID.is_little_endianc                 C   s   | j s| jdkS t| dS )z)Return ``True`` if a transfer syntax UID.zTransfer Syntaxr   )r!   typer   r#   r   r   r   r    {   s   

zUID.is_transfer_syntaxc                 C   s   | j r| dkr	dS dS td)z2Return ``True`` if a deflated transfer syntax UID.1.2.840.10008.1.2.1.99TFr   r    r"   r#   r   r   r   is_deflated   s
   zUID.is_deflatedc                 C   s   | j S )z6Return ``True`` if an encasulated transfer syntax UID.)is_compressedr#   r   r   r   is_encapsulated   s   zUID.is_encapsulatedc                 C   s   | j r| dv r	dS dS td)z4Return ``True`` if a compressed transfer syntax UID.)r   1.2.840.10008.1.2.1r'   r+   FTr   r,   r#   r   r   r   r.      s
   zUID.is_compressedc                 C      t | tv rt|  d S dS )z/Return the UID keyword from the UID dictionary.    r   r   r#   r   r   r   keyword      zUID.keywordc                 C   s    t | }|tv rt|  d S |S )z,Return the UID name from the UID dictionary.r   r4   )r$   
uid_stringr   r   r   name   s   zUID.namec                 C   r1   )z,Return the UID type from the UID dictionary.r(   r3   r4   r#   r   r   r   r*      r6   zUID.typec                 C   r1   )z,Return the UID info from the UID dictionary.   r3   r4   r#   r   r   r   info   r6   zUID.infoc                 C   s    t | tv rtt|  d S dS )zZReturn ``True`` if the UID is retired, ``False`` otherwise or if
        private.
           F)r   r   boolr#   r   r   r   
is_retired   s   zUID.is_retiredc                 C   s   | dd dkS )zUReturn ``True`` if the UID isn't an officially registered DICOM
        UID.
        N   z1.2.840.10008.r   r#   r   r   r   r!      s   zUID.is_privatec                 C   s    t | dkrtt| rdS dS )z>Return ``True`` if `self` is a valid UID, ``False`` otherwise.@   TF)lenrematchRE_VALID_UIDr#   r   r   r   is_valid   s   zUID.is_validimplicit_vrlittle_endianc                 C   s   ||f| _ dS )a  Set the corresponding dataset encoding for a privately defined transfer
        syntax.

        .. versionadded:: 3.0

        Parameters
        ----------
        implicit_vr : bool
            ``True`` if the corresponding dataset encoding uses implicit VR,
            ``False`` for explicit VR.
        little_endian : bool
            ``True`` if the corresponding dataset encoding uses little endian
            byte order, ``False`` for big endian byte order.
        N)r   )r$   rE   rF   r   r   r   set_private_encoding   s   zUID.set_private_encoding)N)__name__
__module____qualname____doc__tupler<   __annotations__r*   r   intr   propertyr%   r)   r    r-   r/   r.   r5   r8   r:   r=   r!   rD   rG   __classcell__r   r   r   r   r      sP   
 $	r   z1.2.826.0.1.3680043.8.498.1r   z'^(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))*\.$r   r0   r+   r'   z1.2.840.10008.1.2.4.50z1.2.840.10008.1.2.4.51z1.2.840.10008.1.2.4.57z1.2.840.10008.1.2.4.70z1.2.840.10008.1.2.4.80z1.2.840.10008.1.2.4.81z1.2.840.10008.1.2.4.90z1.2.840.10008.1.2.4.91z1.2.840.10008.1.2.4.92z1.2.840.10008.1.2.4.93z1.2.840.10008.1.2.4.100z1.2.840.10008.1.2.4.100.1z1.2.840.10008.1.2.4.101z1.2.840.10008.1.2.4.101.1z1.2.840.10008.1.2.4.102z1.2.840.10008.1.2.4.102.1z1.2.840.10008.1.2.4.103z1.2.840.10008.1.2.4.103.1z1.2.840.10008.1.2.4.104z1.2.840.10008.1.2.4.104.1z1.2.840.10008.1.2.4.105z1.2.840.10008.1.2.4.105.1z1.2.840.10008.1.2.4.106z1.2.840.10008.1.2.4.106.1z1.2.840.10008.1.2.4.107z1.2.840.10008.1.2.4.108z1.2.840.10008.1.2.4.201z1.2.840.10008.1.2.4.202z1.2.840.10008.1.2.4.203z1.2.840.10008.1.2.4.204z1.2.840.10008.1.2.4.205z1.2.840.10008.1.2.5z1.2.840.10008.1.2.7.1z1.2.840.10008.1.2.7.2z1.2.840.10008.1.2.7.3r   rE   rF   r   c                 C   sT   t | } d||fv r| jstd|dur|dur| || | tvr(t|  | S )a  Register a private transfer syntax with the :mod:`~pydicom.uid` module
    so it can be used when reading datasets with :func:`~pydicom.filereader.dcmread`.

    .. versionadded: 3.0

    Parameters
    ----------
    uid : str | pydicom.uid.UID
        A UID which may or may not have had the corresponding dataset encoding
        set using :meth:`~pydicom.uid.UID.set_private_encoding`.
    implicit_vr : bool, optional
        If ``True`` then the transfer syntax uses implicit VR encoding, otherwise
        if ``False`` then it uses explicit VR encoding. Required when `uid` has
        not had the encoding set using :meth:`~pydicom.uid.UID.set_private_encoding`.
    little_endian : bool, optional
        If ``True`` then the transfer syntax uses little endian encoding, otherwise
        if ``False`` then it uses big endian encoding. Required when `uid` has
        not had the encoding set using :meth:`~pydicom.uid.UID.set_private_encoding`.

    Returns
    -------
    pydicom.uid.UID
        The registered UID.
    NznThe corresponding dataset encoding for 'uid' must be set using the 'implicit_vr' and 'little_endian' arguments)r   r    r"   rG   PrivateTransferSyntaxesappend)r   rE   rF   r   r   r   register_transfer_syntax  s   
rT   6   prefixentropy_srcsc                 C   s   | du rt dt j S t| tkrtdt dtt	| s&td|du rAddt|   }t |  t
| dd S td|d	}t |  t| d
 dd S )a  Return a 64 character UID which starts with `prefix`.

    .. versionchanged:: 3.0

       * When `entropy_srcs` is ``None`` the suffix is now generated using
         :func:`~secrets.randbelow`
       * The maximum length of `prefix` is now 54 characters

    Parameters
    ----------
    prefix : str or None, optional
        The UID prefix to use when creating the UID. Default is the *pydicom*
        root UID ``'1.2.826.0.1.3680043.8.498.'``. If `prefix` is ``None`` then
        a prefix of ``'2.25.'`` will be used with the integer form of a UUID
        generated using the :func:`uuid.uuid4` algorithm.
    entropy_srcs : list of str, optional
        If `prefix` is used then the `prefix` will be appended with a
        SHA512 hash of the supplied :class:`list` which means the result is
        deterministic and should make the original data unrecoverable. If
        `entropy_srcs` isn't used then a random number from
        :func:`secrets.randbelow` will be appended to the `prefix`. If `prefix`
        is ``None`` then `entropy_srcs` has no effect.

    Returns
    -------
    pydicom.uid.UID
        A DICOM UID of up to 64 characters.

    Raises
    ------
    ValueError
        If `prefix` is invalid or greater than 54 characters.

    Examples
    --------

    >>> from pydicom.uid import generate_uid
    >>> generate_uid()
    1.2.826.0.1.3680043.8.498.22463838056059845879389038257786771680
    >>> generate_uid(prefix=None)
    2.25.167161297070865690102504091919570542144
    >>> generate_uid(entropy_srcs=['lorem', 'ipsum'])
    1.2.826.0.1.3680043.8.498.87507166259346337659265156363895084463
    >>> generate_uid(entropy_srcs=['lorem', 'ipsum'])
    1.2.826.0.1.3680043.8.498.87507166259346337659265156363895084463

    References
    ----------

    * DICOM Standard, Part 5, :dcm:`Chapters 9<part05/chapter_9.html>` and
      :dcm:`Annex B<part05/chapter_B.html>`
    * ISO/IEC 9834-8/`ITU-T X.667 <https://www.itu.int/rec/T-REC-X.667-201210-I/en>`_
    Nz2.25.z$The 'prefix' should be no more than z characters longz[The 'prefix' is not valid for use with a UID, see Part 5, Section 9.1 of the DICOM Standard
   r?   r3   zutf-8   )r   uuiduuid4rN   r@   _MAX_PREFIX_LENGTHr"   rA   rB   RE_VALID_UID_PREFIXsecrets	randbelowhashlibsha512joinencode	hexdigest)rV   rW   maximumhash_valr   r   r   generate_uid  s   9
"rg   z1.2.840.10008.1.3.10z1.2.840.10008.5.1.4.1.1.1z1.2.840.10008.5.1.4.1.1.1.1z1.2.840.10008.5.1.4.1.1.1.1.1z1.2.840.10008.5.1.4.1.1.1.2z1.2.840.10008.5.1.4.1.1.1.2.1z1.2.840.10008.5.1.4.1.1.1.3z1.2.840.10008.5.1.4.1.1.1.3.1z1.2.840.10008.5.1.4.1.1.104.1z1.2.840.10008.5.1.4.1.1.104.2z1.2.840.10008.5.1.4.1.1.104.3z1.2.840.10008.5.1.4.1.1.104.4z1.2.840.10008.5.1.4.1.1.104.5z1.2.840.10008.5.1.4.1.1.11.1z1.2.840.10008.5.1.4.1.1.11.10z1.2.840.10008.5.1.4.1.1.11.11z1.2.840.10008.5.1.4.1.1.11.12z1.2.840.10008.5.1.4.1.1.11.2z1.2.840.10008.5.1.4.1.1.11.3z1.2.840.10008.5.1.4.1.1.11.4z1.2.840.10008.5.1.4.1.1.11.5z1.2.840.10008.5.1.4.1.1.11.6z1.2.840.10008.5.1.4.1.1.11.7z1.2.840.10008.5.1.4.1.1.11.8z1.2.840.10008.5.1.4.1.1.11.9z1.2.840.10008.5.1.4.1.1.12.1z1.2.840.10008.5.1.4.1.1.12.1.1z1.2.840.10008.5.1.4.1.1.12.2z1.2.840.10008.5.1.4.1.1.12.2.1z1.2.840.10008.5.1.4.1.1.128z1.2.840.10008.5.1.4.1.1.128.1z1.2.840.10008.5.1.4.1.1.13.1.1z1.2.840.10008.5.1.4.1.1.13.1.2z1.2.840.10008.5.1.4.1.1.13.1.3z1.2.840.10008.5.1.4.1.1.13.1.4z1.2.840.10008.5.1.4.1.1.13.1.5z1.2.840.10008.5.1.4.1.1.130z1.2.840.10008.5.1.4.1.1.131z1.2.840.10008.5.1.4.1.1.14.1z1.2.840.10008.5.1.4.1.1.14.2z1.2.840.10008.5.1.4.1.1.2z1.2.840.10008.5.1.4.1.1.2.1z1.2.840.10008.5.1.4.1.1.2.2z1.2.840.10008.5.1.4.1.1.20z1.2.840.10008.5.1.4.1.1.200.1z1.2.840.10008.5.1.4.1.1.200.2z1.2.840.10008.5.1.4.1.1.200.3z1.2.840.10008.5.1.4.1.1.200.7z1.2.840.10008.5.1.4.1.1.200.8z1.2.840.10008.5.1.4.1.1.201.1z1.2.840.10008.5.1.4.1.1.3.1z1.2.840.10008.5.1.4.1.1.30z1.2.840.10008.5.1.4.1.1.4z1.2.840.10008.5.1.4.1.1.4.1z1.2.840.10008.5.1.4.1.1.4.2z1.2.840.10008.5.1.4.1.1.4.3z1.2.840.10008.5.1.4.1.1.4.4z1.2.840.10008.5.1.4.1.1.481.1z1.2.840.10008.5.1.4.1.1.481.10z1.2.840.10008.5.1.4.1.1.481.11z1.2.840.10008.5.1.4.1.1.481.12z1.2.840.10008.5.1.4.1.1.481.13z1.2.840.10008.5.1.4.1.1.481.14z1.2.840.10008.5.1.4.1.1.481.15z1.2.840.10008.5.1.4.1.1.481.16z1.2.840.10008.5.1.4.1.1.481.17z1.2.840.10008.5.1.4.1.1.481.18z1.2.840.10008.5.1.4.1.1.481.19z1.2.840.10008.5.1.4.1.1.481.2z1.2.840.10008.5.1.4.1.1.481.20z1.2.840.10008.5.1.4.1.1.481.21z1.2.840.10008.5.1.4.1.1.481.22z1.2.840.10008.5.1.4.1.1.481.23z1.2.840.10008.5.1.4.1.1.481.24z1.2.840.10008.5.1.4.1.1.481.25z1.2.840.10008.5.1.4.1.1.481.3z1.2.840.10008.5.1.4.1.1.481.4z1.2.840.10008.5.1.4.1.1.481.5z1.2.840.10008.5.1.4.1.1.481.6z1.2.840.10008.5.1.4.1.1.481.7z1.2.840.10008.5.1.4.1.1.481.8z1.2.840.10008.5.1.4.1.1.481.9z1.2.840.10008.5.1.4.1.1.501.1z1.2.840.10008.5.1.4.1.1.501.2.1z1.2.840.10008.5.1.4.1.1.501.2.2z1.2.840.10008.5.1.4.1.1.501.3z1.2.840.10008.5.1.4.1.1.501.4z1.2.840.10008.5.1.4.1.1.501.5z1.2.840.10008.5.1.4.1.1.501.6z1.2.840.10008.5.1.4.1.1.6.1z1.2.840.10008.5.1.4.1.1.6.2z1.2.840.10008.5.1.4.1.1.6.3z1.2.840.10008.5.1.4.1.1.601.1z1.2.840.10008.5.1.4.1.1.601.2z1.2.840.10008.5.1.4.1.1.66z1.2.840.10008.5.1.4.1.1.66.1z1.2.840.10008.5.1.4.1.1.66.2z1.2.840.10008.5.1.4.1.1.66.3z1.2.840.10008.5.1.4.1.1.66.4z1.2.840.10008.5.1.4.1.1.66.5z1.2.840.10008.5.1.4.1.1.66.6z1.2.840.10008.5.1.4.1.1.67z1.2.840.10008.5.1.4.1.1.68.1z1.2.840.10008.5.1.4.1.1.68.2z1.2.840.10008.5.1.4.1.1.7z1.2.840.10008.5.1.4.1.1.7.1z1.2.840.10008.5.1.4.1.1.7.2z1.2.840.10008.5.1.4.1.1.7.3z1.2.840.10008.5.1.4.1.1.7.4z1.2.840.10008.5.1.4.1.1.77.1.1z 1.2.840.10008.5.1.4.1.1.77.1.1.1z1.2.840.10008.5.1.4.1.1.77.1.2z 1.2.840.10008.5.1.4.1.1.77.1.2.1z1.2.840.10008.5.1.4.1.1.77.1.3z1.2.840.10008.5.1.4.1.1.77.1.4z 1.2.840.10008.5.1.4.1.1.77.1.4.1z 1.2.840.10008.5.1.4.1.1.77.1.5.1z 1.2.840.10008.5.1.4.1.1.77.1.5.2z 1.2.840.10008.5.1.4.1.1.77.1.5.3z 1.2.840.10008.5.1.4.1.1.77.1.5.4z 1.2.840.10008.5.1.4.1.1.77.1.5.5z 1.2.840.10008.5.1.4.1.1.77.1.5.6z 1.2.840.10008.5.1.4.1.1.77.1.5.7z 1.2.840.10008.5.1.4.1.1.77.1.5.8z1.2.840.10008.5.1.4.1.1.77.1.6z1.2.840.10008.5.1.4.1.1.77.1.7z1.2.840.10008.5.1.4.1.1.77.1.8z1.2.840.10008.5.1.4.1.1.77.1.9z1.2.840.10008.5.1.4.1.1.78.1z1.2.840.10008.5.1.4.1.1.78.2z1.2.840.10008.5.1.4.1.1.78.3z1.2.840.10008.5.1.4.1.1.78.4z1.2.840.10008.5.1.4.1.1.78.5z1.2.840.10008.5.1.4.1.1.78.6z1.2.840.10008.5.1.4.1.1.78.7z1.2.840.10008.5.1.4.1.1.78.8z1.2.840.10008.5.1.4.1.1.79.1z1.2.840.10008.5.1.4.1.1.80.1z1.2.840.10008.5.1.4.1.1.81.1z1.2.840.10008.5.1.4.1.1.82.1z1.2.840.10008.5.1.4.1.1.88.11z1.2.840.10008.5.1.4.1.1.88.22z1.2.840.10008.5.1.4.1.1.88.33z1.2.840.10008.5.1.4.1.1.88.34z1.2.840.10008.5.1.4.1.1.88.35z1.2.840.10008.5.1.4.1.1.88.40z1.2.840.10008.5.1.4.1.1.88.50z1.2.840.10008.5.1.4.1.1.88.59z1.2.840.10008.5.1.4.1.1.88.65z1.2.840.10008.5.1.4.1.1.88.67z1.2.840.10008.5.1.4.1.1.88.68z1.2.840.10008.5.1.4.1.1.88.69z1.2.840.10008.5.1.4.1.1.88.70z1.2.840.10008.5.1.4.1.1.88.71z1.2.840.10008.5.1.4.1.1.88.72z1.2.840.10008.5.1.4.1.1.88.73z1.2.840.10008.5.1.4.1.1.88.74z1.2.840.10008.5.1.4.1.1.88.75z1.2.840.10008.5.1.4.1.1.88.76z1.2.840.10008.5.1.4.1.1.88.77z1.2.840.10008.5.1.4.1.1.9.1.1z1.2.840.10008.5.1.4.1.1.9.1.2z1.2.840.10008.5.1.4.1.1.9.1.3z1.2.840.10008.5.1.4.1.1.9.1.4z1.2.840.10008.5.1.4.1.1.9.2.1z1.2.840.10008.5.1.4.1.1.9.3.1z1.2.840.10008.5.1.4.1.1.9.4.1z1.2.840.10008.5.1.4.1.1.9.4.2z1.2.840.10008.5.1.4.1.1.9.5.1z1.2.840.10008.5.1.4.1.1.9.6.1z1.2.840.10008.5.1.4.1.1.9.6.2z1.2.840.10008.5.1.4.1.1.9.7.1z1.2.840.10008.5.1.4.1.1.9.7.2z1.2.840.10008.5.1.4.1.1.9.7.3z1.2.840.10008.5.1.4.1.1.9.7.4z1.2.840.10008.5.1.4.1.1.9.8.1z1.2.840.10008.5.1.4.1.1.90.1z1.2.840.10008.5.1.4.1.1.91.1z1.2.840.10008.5.1.4.34.10z1.2.840.10008.5.1.4.34.7z1.2.840.10008.5.1.4.38.1z1.2.840.10008.5.1.4.39.1z1.2.840.10008.5.1.4.43.1z1.2.840.10008.5.1.4.44.1z1.2.840.10008.5.1.4.45.1)NN(  rK   r`   rA   r^   rZ   pydicomr   pydicom._uid_dictr   pydicom.configr   pydicom.valuerepr   r   r   r   PYDICOM_ROOT_UIDPYDICOM_IMPLEMENTATION_UIDrC   compiler]   ImplicitVRLittleEndianExplicitVRLittleEndianDeflatedExplicitVRLittleEndianExplicitVRBigEndianJPEGBaseline8BitJPEGExtended12BitJPEGLosslessJPEGLosslessSV1JPEGLSLosslessJPEGLSNearLosslessJPEG2000LosslessJPEG2000JPEG2000MCLossless
JPEG2000MC	MPEG2MPML
MPEG2MPMLF	MPEG2MPHL
MPEG2MPHLF	MPEG4HP41
MPEG4HP41FMPEG4HP41BDMPEG4HP41BDFMPEG4HP422DMPEG4HP422DFMPEG4HP423DMPEG4HP423DFMPEG4HP42STEREOMPEG4HP42STEREOFHEVCMP51
HEVCM10P51HTJ2KLosslessHTJ2KLosslessRPCLHTJ2KJPIPHTJ2KReferencedJPIPHTJ2KReferencedDeflateRLELossless/SMPTEST211020UncompressedProgressiveActiveVideo.SMPTEST211020UncompressedInterlacedActiveVideoSMPTEST211030PCMDigitalAudioAllTransferSyntaxesJPEGTransferSyntaxesJPEGLSTransferSyntaxesJPEG2000TransferSyntaxesMPEGTransferSyntaxesRLETransferSyntaxesUncompressedTransferSyntaxesrR   r<   rT   r\   listrg   MediaStorageDirectoryStorageComputedRadiographyImageStorage&DigitalXRayImageStorageForPresentation$DigitalXRayImageStorageForProcessing1DigitalMammographyXRayImageStorageForPresentation/DigitalMammographyXRayImageStorageForProcessing/DigitalIntraOralXRayImageStorageForPresentation-DigitalIntraOralXRayImageStorageForProcessingEncapsulatedPDFStorageEncapsulatedCDAStorageEncapsulatedSTLStorageEncapsulatedOBJStorageEncapsulatedMTLStorage)GrayscaleSoftcopyPresentationStateStorage:SegmentedVolumeRenderingVolumetricPresentationStateStorage9MultipleVolumeRenderingVolumetricPresentationStateStorage3VariableModalityLUTSoftcopyPresentationStateStorage%ColorSoftcopyPresentationStateStorage+PseudoColorSoftcopyPresentationStateStorage(BlendingSoftcopyPresentationStateStorage.XAXRFGrayscaleSoftcopyPresentationStateStorage4GrayscalePlanarMPRVolumetricPresentationStateStorage6CompositingPlanarMPRVolumetricPresentationStateStorage(AdvancedBlendingPresentationStateStorage1VolumeRenderingVolumetricPresentationStateStorageXRayAngiographicImageStorageEnhancedXAImageStorage!XRayRadiofluoroscopicImageStorageEnhancedXRFImageStorage&PositronEmissionTomographyImageStorage&LegacyConvertedEnhancedPETImageStorageXRay3DAngiographicImageStorageXRay3DCraniofacialImageStorageBreastTomosynthesisImageStorage/BreastProjectionXRayImageStorageForPresentation-BreastProjectionXRayImageStorageForProcessingEnhancedPETImageStorageBasicStructuredDisplayStorageBIntravascularOpticalCoherenceTomographyImageStorageForPresentation@IntravascularOpticalCoherenceTomographyImageStorageForProcessingCTImageStorageEnhancedCTImageStorage%LegacyConvertedEnhancedCTImageStorageNuclearMedicineImageStorage!CTDefinedProcedureProtocolStorage#CTPerformedProcedureProtocolStorageProtocolApprovalStorage!XADefinedProcedureProtocolStorage#XAPerformedProcedureProtocolStorageInventoryStorage UltrasoundMultiFrameImageStorageParametricMapStorageMRImageStorageEnhancedMRImageStorageMRSpectroscopyStorageEnhancedMRColorImageStorage%LegacyConvertedEnhancedMRImageStorageRTImageStorageRTPhysicianIntentStorageRTSegmentAnnotationStorageRTRadiationSetStorage"CArmPhotonElectronRadiationStorageTomotherapeuticRadiationStorageRoboticArmRadiationStorageRTRadiationRecordSetStorageRTRadiationSalvageRecordStorage%TomotherapeuticRadiationRecordStorage(CArmPhotonElectronRadiationRecordStorageRTDoseStorageRoboticRadiationRecordStorage(RTRadiationSetDeliveryInstructionStorageRTTreatmentPreparationStorageEnhancedRTImageStorage EnhancedContinuousRTImageStorage.RTPatientPositionAcquisitionInstructionStorageRTStructureSetStorageRTBeamsTreatmentRecordStorageRTPlanStorageRTBrachyTreatmentRecordStorageRTTreatmentSummaryRecordStorageRTIonPlanStorage RTIonBeamsTreatmentRecordStorageDICOSCTImageStorage+DICOSDigitalXRayImageStorageForPresentation)DICOSDigitalXRayImageStorageForProcessing!DICOSThreatDetectionReportStorageDICOS2DAITStorageDICOS3DAITStorageDICOSQuadrupoleResonanceStorageUltrasoundImageStorageEnhancedUSVolumeStoragePhotoacousticImageStorageEddyCurrentImageStorage!EddyCurrentMultiFrameImageStorageRawDataStorageSpatialRegistrationStorageSpatialFiducialsStorage$DeformableSpatialRegistrationStorageSegmentationStorageSurfaceSegmentationStorageTractographyResultsStorageRealWorldValueMappingStorageSurfaceScanMeshStorageSurfaceScanPointCloudStorageSecondaryCaptureImageStorage/MultiFrameSingleBitSecondaryCaptureImageStorage3MultiFrameGrayscaleByteSecondaryCaptureImageStorage3MultiFrameGrayscaleWordSecondaryCaptureImageStorage/MultiFrameTrueColorSecondaryCaptureImageStorageVLEndoscopicImageStorageVideoEndoscopicImageStorageVLMicroscopicImageStorageVideoMicroscopicImageStorage)VLSlideCoordinatesMicroscopicImageStorageVLPhotographicImageStorageVideoPhotographicImageStorage%OphthalmicPhotography8BitImageStorage&OphthalmicPhotography16BitImageStorageStereometricRelationshipStorage OphthalmicTomographyImageStorageAWideFieldOphthalmicPhotographyStereographicProjectionImageStorage7WideFieldOphthalmicPhotography3DCoordinatesImageStorage6OphthalmicOpticalCoherenceTomographyEnFaceImageStorage>OphthalmicOpticalCoherenceTomographyBscanVolumeAnalysisStorage"VLWholeSlideMicroscopyImageStorage"DermoscopicPhotographyImageStorageConfocalMicroscopyImageStorage,ConfocalMicroscopyTiledPyramidalImageStorageLensometryMeasurementsStorage!AutorefractionMeasurementsStorageKeratometryMeasurementsStorage'SubjectiveRefractionMeasurementsStorageVisualAcuityMeasurementsStorage"SpectaclePrescriptionReportStorage"OphthalmicAxialMeasurementsStorage"IntraocularLensCalculationsStorage*MacularGridThicknessAndVolumeReportStorage7OphthalmicVisualFieldStaticPerimetryMeasurementsStorageOphthalmicThicknessMapStorageCornealTopographyMapStorageBasicTextSRStorageEnhancedSRStorageComprehensiveSRStorageComprehensive3DSRStorageExtensibleSRStorageProcedureLogStorageMammographyCADSRStorage!KeyObjectSelectionDocumentStorageChestCADSRStorageXRayRadiationDoseSRStorage)RadiopharmaceuticalRadiationDoseSRStorageColonCADSRStorageImplantationPlanSRStorageAcquisitionContextSRStorageSimplifiedAdultEchoSRStoragePatientRadiationDoseSRStorage*PlannedImagingAgentAdministrationSRStorage,PerformedImagingAgentAdministrationSRStorage"EnhancedXRayRadiationDoseSRStorageWaveformAnnotationSRStorageTwelveLeadECGWaveformStorageGeneralECGWaveformStorageAmbulatoryECGWaveformStorageGeneral32bitECGWaveformStorageHemodynamicWaveformStorage'CardiacElectrophysiologyWaveformStorageBasicVoiceAudioWaveformStorageGeneralAudioWaveformStorageArterialPulseWaveformStorageRespiratoryWaveformStorage&MultichannelRespiratoryWaveformStorage/RoutineScalpElectroencephalogramWaveformStorageElectromyogramWaveformStorageElectrooculogramWaveformStorage(SleepElectroencephalogramWaveformStorageBodyPositionWaveformStorageContentAssessmentResultsStorage&MicroscopyBulkSimpleAnnotationsStorage2RTBrachyApplicationSetupDeliveryInstructionStorage!RTBeamsDeliveryInstructionStorageHangingProtocolStorageColorPaletteStorageGenericImplantTemplateStorageImplantAssemblyTemplateStorageImplantTemplateGroupStorager   r   r   r   <module>   s   n
Q	
 !"#$%&')	
.

W

