Package com.pixelmed.server

## Class DicomAndWebStorageServer

- java.lang.Object
- - com.pixelmed.server.DicomAndWebStorageServer

-     public class DicomAndWebStorageServer
      extends java.lang.Object

  The `DicomAndWebStorageServer` implements a DICOM storage server with query and retrieval as well as an HTTP server that responds to web requests including WADO as well as an external SQL database access server.

  The main method is also useful in its own right as a command-line DICOM Storage SCP utility, which will store incoming files in a specified directory and database and serve them up via DICOM and WADO, and optionally SQL.

  For example:

      % java -server -Djava.awt.headless=true -Xms128m -Xmx512m -cp ./pixelmed.jar:./lib/additional/hsqldb.jar:./lib/additional/commons-compress-1.9.jar:./lib/additional/vecmath1.2-1.14.jar:./lib/additional/commons-codec-1.3.jar:./lib/additional/jmdns.jar:./lib/additional/aiviewer.jar com.pixelmed.server.DicomAndWebStorageServer test.properties

  Note that the aiviewer.jar file is only necessary if Takahiro Katoji's AiViewer applet is to be used to view images, and is activated with the property WebServer.RequestTypeToUseForInstances=APPLETDISPLAY.

  External (unsecure) SQL access to the database is possible if the Application.DatabaseServerName property is specified; further details are described in `com.pixelmed.database.DatabaseInformationModel`; for example:

      % java -cp lib/additional/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing --url "jdbc:hsqldb:hsql://localhost/testserverdb"

  For how to configure the necessary properties file, see:

  See Also:
    `WebServerApplicationProperties`, `NetworkApplicationProperties`, `DatabaseApplicationProperties`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected DatabaseInformationModel` | `databaseInformationModel` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DicomAndWebStorageServer​(java.util.Properties properties)` | Wait for connections and process requests, storing received files in a database, using the default `PatientStudySeriesConcatenationInstanceModel`.
    `DicomAndWebStorageServer​(java.util.Properties properties, DatabaseInformationModel databaseInformationModel)` | Wait for connections and process requests, storing received files in a database, using the specified database information model.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `doCommonConstructorStuff​(java.util.Properties properties, DatabaseInformationModel databaseInformationModel)` | Wait for connections and process requests, storing received files in a database, using the specified database information model.
    `static void` | `main​(java.lang.String[] arg)` | Wait for connections and process requests, storing received files in a database.

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

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

- - ### Field Detail

    - #### databaseInformationModel

          protected DatabaseInformationModel databaseInformationModel

  - ### Constructor Detail

    - #### DicomAndWebStorageServer

          public DicomAndWebStorageServer​(java.util.Properties properties)
                                   throws java.io.IOException,
                                          DicomException,
                                          DicomNetworkException

      Wait for connections and process requests, storing received files in a database, using the default `PatientStudySeriesConcatenationInstanceModel`.

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

    - #### DicomAndWebStorageServer

          public DicomAndWebStorageServer​(java.util.Properties properties,
                                          DatabaseInformationModel databaseInformationModel)
                                   throws java.io.IOException,
                                          DicomException,
                                          DicomNetworkException

      Wait for connections and process requests, storing received files in a database, using the specified database information model.

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

  - ### Method Detail

    - #### doCommonConstructorStuff

          protected void doCommonConstructorStuff​(java.util.Properties properties,
                                                  DatabaseInformationModel databaseInformationModel)
                                           throws java.io.IOException,
                                                  DicomException,
                                                  DicomNetworkException

      Wait for connections and process requests, storing received files in a database, using the specified database information model.

      Parameters:
        `properties` -
        `databaseInformationModel` - if null, a `PatientStudySeriesConcatenationInstanceModel` will be used
      Throws:
        `java.io.IOException`
        `DicomException`
        `DicomNetworkException`

    - #### main

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

      Wait for connections and process requests, storing received files in a database.

      Parameters:
        `arg` - a single file name that is the properties file; if no argument is supplied the properties in "~/.com.pixelmed.server.DicomAndWebStorageServer.properties" will be used if present, otherwise the defaults (11112,STORESCP,~/tmp,debug level 0) will be used
      See Also:
        `DatabaseApplicationProperties`, `NetworkApplicationProperties`, `WebServerApplicationProperties`