com.pixelmed.network

## Class NetworkApplicationProperties

- java.lang.Object
- - com.pixelmed.network.NetworkApplicationProperties

-     public class NetworkApplicationProperties
      extends java.lang.Object

  This class provides common support to applications requiring properties related to DICOM network services.

  Also contains a main method that can be used, for example, to convert information previously statically configured by properties on each device, to assemble LDIF files to be loaded into an LDAP server for use via the DICOM Network Configuration Management service.

  The following properties are supported:

  `Network.DynamicConfigurationDebugLevel` - for no debugging (silent), > 0 for more verbose levels of debugging

  `Dicom.ListeningPort` - the port that an association acceptor will listen on for incoming connections

  `Dicom.CalledAETitle` - what the AE expects to be called when accepting an association

  `Dicom.CallingAETitle` - what the AE will call itself when initiating an association

  `Dicom.PrimaryDeviceType` - what our own primary device type is

  `Dicom.QueryDebugLevel` - for no debugging (silent), > 0 for more verbose levels of debugging

  `Dicom.StorageSCUDebugLevel` - for no debugging (silent), > 0 for more verbose levels of debugging

  `Dicom.StorageSCPDebugLevel` - for no debugging (silent), > 0 for more verbose levels of debugging

  `Dicom.StorageSCUCompressionLevel` - determines what types of compressed Transfer Syntaxes are proposed by a Storage SCU; 0 = uncompressed transfer syntaxes only; 1 = propose deflate as well; 2 = propose deflate and bzip2 (if bzip2 codec is available)

  `Dicom.RemoteAEs` - a space or comma separated list of the local names all the available remote AEs; each local name may be anything unique (in this file) without a space or comma; the local name does not need to be the same as the remote AE's called AE title

  `Dicom.XXXX.CalledAETitle` - for the remote AE with local name XXXX, what that AE expects to be called when accepting an association

  `Dicom.XXXX.HostNameOrIPAddress` - for the remote AE with local name XXXX, what hostname or IP addess that AE will listen on for incoming connections

  `Dicom.XXXX.Port` - for the remote AE with local name XXXX, what port that AE will listen on for incoming connections

  `Dicom.XXXX.QueryModel` - for the remote AE with local name XXXX, what query model is supported; values are STUDYROOT or PATIENTROOT; leave absent if query/retrieve not supported by the remote AE

  `Dicom.XXXX.PrimaryDeviceType` - for the remote AE with local name XXXX, what the primary device type is (see DICOM PS 3.15 and PS 3.16)

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `NetworkApplicationProperties.OurNetworkConfigurationSource`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected NetworkConfigurationSource` | `networkConfigurationSource`
    `static java.lang.String` | `PatientRootQueryModel`
    `static java.lang.String` | `PatientStudyOnlyQueryModel`
    `static java.lang.String` | `propertyName_DicomCalledAETitle`
    `static java.lang.String` | `propertyName_DicomCallingAETitle`
    `static java.lang.String` | `propertyName_DicomListeningPort`
    `static java.lang.String` | `propertyName_NetworkDynamicConfigurationDebugLevel`
    `static java.lang.String` | `propertyName_PrimaryDeviceType`
    `static java.lang.String` | `propertyName_QueryDebugLevel`
    `static java.lang.String` | `propertyName_StorageSCPDebugLevel`
    `static java.lang.String` | `propertyName_StorageSCUCompressionLevel`
    `static java.lang.String` | `propertyName_StorageSCUDebugLevel`
    `static java.lang.String` | `StudyRootQueryModel`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NetworkApplicationProperties()` Create default properties.
    `NetworkApplicationProperties(java.util.Properties properties)` Extract the DICOM network properties from the supplied properties.
    `NetworkApplicationProperties(java.util.Properties properties, boolean addPublicStorageSCPsIfNoRemoteAEsConfigured)` Extract the DICOM network properties from the supplied properties.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getCalledAETitle()` Return the called AET.
    `java.lang.String` | `getCallingAETitle()` Return the calling AET.
    `int` | `getListeningPort()` Return the listening port.
    `NetworkApplicationInformation` | `getNetworkApplicationInformation()` Return the network application information.
    `NetworkConfigurationSource` | `getNetworkConfigurationSource()` Return a network configuration source that will supply the network application information.
    `int` | `getNetworkDynamicConfigurationDebugLevel()` Return the network dynamic configuration debug level.
    `java.lang.String` | `getPrimaryDeviceType()` Return the primary device type.
    `java.util.Properties` | `getProperties(java.util.Properties properties)` Retrieve the DICOM network properties.
    `int` | `getQueryDebugLevel()` Return the query debug level.
    `int` | `getStorageSCPDebugLevel()` Return the storage SCP debug level.
    `int` | `getStorageSCUCompressionLevel()` Return the storage SCU compression level.
    `int` | `getStorageSCUDebugLevel()` Return the storage SCU debug level.
    `static boolean` | `isPatientRootQueryModel(java.lang.String model)` Is the model Patient Root ?
    `static boolean` | `isPatientStudyOnlyQueryModel(java.lang.String model)` Is the model Patient/Study Only ?
    `static boolean` | `isStudyRootQueryModel(java.lang.String model)` Is the model Study Root ?
    `static void` | `main(java.lang.String[] arg)` Test the parsing of network properties from the specified file, by reading them and converting into LDIF format.
    `void` | `setCalledAETitle(java.lang.String calledAETitle)` Set the called AET.
    `void` | `setCallingAETitle(java.lang.String callingAETitle)` Set the calling AET.
    `void` | `setListeningPort(int port)` Set the listening port.
    `void` | `setPrimaryDeviceType(java.lang.String primaryDeviceType)` Set the primary device type.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### propertyName_DicomListeningPort

          public static final java.lang.String propertyName_DicomListeningPort

      See Also:
        Constant Field Values

    - #### propertyName_DicomCalledAETitle

          public static final java.lang.String propertyName_DicomCalledAETitle

      See Also:
        Constant Field Values

    - #### propertyName_DicomCallingAETitle

          public static final java.lang.String propertyName_DicomCallingAETitle

      See Also:
        Constant Field Values

    - #### propertyName_PrimaryDeviceType

          public static final java.lang.String propertyName_PrimaryDeviceType

      See Also:
        Constant Field Values

    - #### StudyRootQueryModel

          public static final java.lang.String StudyRootQueryModel

      See Also:
        Constant Field Values

    - #### PatientRootQueryModel

          public static final java.lang.String PatientRootQueryModel

      See Also:
        Constant Field Values

    - #### PatientStudyOnlyQueryModel

          public static final java.lang.String PatientStudyOnlyQueryModel

      See Also:
        Constant Field Values

    - #### propertyName_QueryDebugLevel

          public static final java.lang.String propertyName_QueryDebugLevel

      See Also:
        Constant Field Values

    - #### propertyName_StorageSCUDebugLevel

          public static final java.lang.String propertyName_StorageSCUDebugLevel

      See Also:
        Constant Field Values

    - #### propertyName_StorageSCUCompressionLevel

          public static final java.lang.String propertyName_StorageSCUCompressionLevel

      See Also:
        Constant Field Values

    - #### propertyName_StorageSCPDebugLevel

          public static final java.lang.String propertyName_StorageSCPDebugLevel

      See Also:
        Constant Field Values

    - #### propertyName_NetworkDynamicConfigurationDebugLevel

          public static final java.lang.String propertyName_NetworkDynamicConfigurationDebugLevel

      See Also:
        Constant Field Values

    - #### networkConfigurationSource

          protected NetworkConfigurationSource networkConfigurationSource

  - ### Constructor Detail

    - #### NetworkApplicationProperties

          public NetworkApplicationProperties()
                                       throws DicomNetworkException

      Create default properties.

      Throws:
        `DicomNetworkException`

    - #### NetworkApplicationProperties

          public NetworkApplicationProperties(java.util.Properties properties)
                                       throws DicomNetworkException,
                                              java.io.IOException

      Extract the DICOM network properties from the supplied properties.

      Parameters:
        `properties` -
      Throws:
        `DicomNetworkException`
        `java.io.IOException`

    - #### NetworkApplicationProperties

          public NetworkApplicationProperties(java.util.Properties properties,
                                              boolean addPublicStorageSCPsIfNoRemoteAEsConfigured)
                                       throws DicomNetworkException,
                                              java.io.IOException

      Extract the DICOM network properties from the supplied properties.

      Parameters:
        `properties` -
        `addPublicStorageSCPsIfNoRemoteAEsConfigured` -
      Throws:
        `DicomNetworkException`
        `java.io.IOException`

  - ### Method Detail

    - #### isStudyRootQueryModel

          public static final boolean isStudyRootQueryModel(java.lang.String model)

      Is the model Study Root ?

      Parameters:
        `model` - the string value describing the model, as used in the query model remote AE property
      Returns:
        true if Study Root

    - #### isPatientRootQueryModel

          public static final boolean isPatientRootQueryModel(java.lang.String model)

      Is the model Patient Root ?

      Parameters:
        `model` - the string value describing the model, as used in the query model remote AE property
      Returns:
        true if Patient Root

    - #### isPatientStudyOnlyQueryModel

          public static final boolean isPatientStudyOnlyQueryModel(java.lang.String model)

      Is the model Patient/Study Only ?

      Parameters:
        `model` - the string value describing the model, as used in the query model remote AE property
      Returns:
        true if Patient/Study Only

    - #### getProperties

          public java.util.Properties getProperties(java.util.Properties properties)

      Retrieve the DICOM network properties.

      param properties the existing properties to add to (replacing corresponding properties already there), or null if none
      Returns:
        the updated properties or a new set of properties if none supplied

    - #### getListeningPort

          public int getListeningPort()

      Return the listening port.

      Returns:
        the listening port

    - #### setListeningPort

          public void setListeningPort(int port)

      Set the listening port.

      param port the listening port

    - #### getCalledAETitle

          public java.lang.String getCalledAETitle()

      Return the called AET.

      Returns:
        the called AET

    - #### setCalledAETitle

          public void setCalledAETitle(java.lang.String calledAETitle)

      Set the called AET.

      param calledAETitle the called AET

    - #### getCallingAETitle

          public java.lang.String getCallingAETitle()

      Return the calling AET.

      Returns:
        the calling AET

    - #### setCallingAETitle

          public void setCallingAETitle(java.lang.String callingAETitle)

      Set the calling AET.

      param callingAETitle the calling AET

    - #### getPrimaryDeviceType

          public java.lang.String getPrimaryDeviceType()

      Return the primary device type.

      Returns:
        the primary device type

    - #### setPrimaryDeviceType

          public void setPrimaryDeviceType(java.lang.String primaryDeviceType)

      Set the primary device type.

      param primaryDeviceType the primary device type

    - #### getStorageSCUCompressionLevel

          public int getStorageSCUCompressionLevel()

      Return the storage SCU compression level.

      Returns:
        the storage SCU compression level

    - #### getStorageSCUDebugLevel

          public int getStorageSCUDebugLevel()

      Return the storage SCU debug level.

      Returns:
        the storage SCU debug level

    - #### getStorageSCPDebugLevel

          public int getStorageSCPDebugLevel()

      Return the storage SCP debug level.

      Returns:
        the storage SCP debug level

    - #### getQueryDebugLevel

          public int getQueryDebugLevel()

      Return the query debug level.

      Returns:
        the query debug level

    - #### getNetworkDynamicConfigurationDebugLevel

          public int getNetworkDynamicConfigurationDebugLevel()

      Return the network dynamic configuration debug level.

      Returns:
        the network dynamic configuration debug level

    - #### getNetworkApplicationInformation

          public NetworkApplicationInformation getNetworkApplicationInformation()

      Return the network application information.

      Returns:
        the network application information

    - #### getNetworkConfigurationSource

          public NetworkConfigurationSource getNetworkConfigurationSource()

      Return a network configuration source that will supply the network application information.

      Returns:
        the network configuration source

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### main

          public static void main(java.lang.String[] arg)

      Test the parsing of network properties from the specified file, by reading them and converting into LDIF format.

      Can be used, for example, to convert information previously statically configured by properties on each device, to assemble LDIF files to be loaded into an LDAP server for use via the DICOM Network Configuration Management service.

      Parameters:
        `arg` - two arguments, a single file name that is the properties file, then the root distinguished name for LDAP