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/excalibur-bzip2-1.0.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
`protected DatabaseInformationModel` `databaseInformationModel`

### Constructor Summary

Constructors
Constructor and 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

Methods
`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`