Package com.pixelmed.server

# Class DicomAndWebStorageServer

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

public class DicomAndWebStorageServer extends 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.12.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(Properties properties)`
Wait for connections and process requests, storing received files in a database, using the default `PatientStudySeriesConcatenationInstanceModel`.
`DicomAndWebStorageServer(Properties properties, DatabaseInformationModel databaseInformationModel)`
Wait for connections and process requests, storing received files in a database, using the specified database information model.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doCommonConstructorStuff(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(String[] arg)`
Wait for connections and process requests, storing received files in a database.

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

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

## Field Details

### databaseInformationModel

protected DatabaseInformationModel databaseInformationModel

## Constructor Details

### DicomAndWebStorageServer

public DicomAndWebStorageServer(Properties properties) throws IOException, DicomException, DicomNetworkException

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

Parameters:
  `properties` -
Throws:
  `IOException`
  `DicomException`
  `DicomNetworkException`

### DicomAndWebStorageServer

public DicomAndWebStorageServer(Properties properties, DatabaseInformationModel databaseInformationModel) throws 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:
  `IOException`
  `DicomException`
  `DicomNetworkException`

## Method Details

### doCommonConstructorStuff

protected void doCommonConstructorStuff(Properties properties, DatabaseInformationModel databaseInformationModel) throws 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:
  `IOException`
  `DicomException`
  `DicomNetworkException`

### main

public static void main(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`