com.pixelmed.apps

## Class WatchFolderAndSend

- java.lang.Object
- - com.pixelmed.apps.WatchFolderAndSend

    public class WatchFolderAndSend
    extends java.lang.Object

A class for watching a folder and sending any DICOM files that appear to a pre-configured network remote Storage SCP AE.

The class has no public methods other than the constructor and a main method that is useful as a utility.

For example:

    java -cp ./pixelmed.jar \
            com.pixelmed.apps.WatchFolderAndSend \
            watchthisfolder \
            graytoo 11112 GRAYTOO_DV_11112

or, with a GUI:

    java -cp ./pixelmed.jar \
            com.pixelmed.apps.WatchFolderAndSend

### Nested Class Summary

Nested Classes
`protected class` `WatchFolderAndSend.OurMultipleInstanceTransferStatusHandlerWithFileName`

### Field Summary

Fields
`protected static int` `intervalAfterLastModificationWithinWhichDoNotSendFileYet`
`protected static java.lang.String` `localnameForRemoteAE`
`protected static java.lang.String` `propertiesFileName`
`protected static java.lang.String` `propertiesFilePath`
`protected static int` `sleepTimeBetweenCheckingForFolderContent`

### Constructor Summary

Constructors
Constructor and Description
`WatchFolderAndSend(java.lang.String watchedFolderName, java.lang.String remoteHost, int remotePort, java.lang.String remoteAE, java.lang.String localAE, int verbosityLevel, int debugLevel, MessageLogger logger)` Watch a folder and send any DICOM files that appear to a network remote Storage SCP AE.

### Method Summary

Methods
`protected static ApplicationEntity` `getPropertiesEditInDialogAndSave(int debugLevel)`
`static void` `main(java.lang.String[] arg)` Watch a folder and send any DICOM files that appear to a network remote Storage SCP AE.

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

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

### Field Detail

#### sleepTimeBetweenCheckingForFolderContent

    protected static int sleepTimeBetweenCheckingForFolderContent

#### intervalAfterLastModificationWithinWhichDoNotSendFileYet

    protected static int intervalAfterLastModificationWithinWhichDoNotSendFileYet

#### propertiesFileName

    protected static java.lang.String propertiesFileName

#### localnameForRemoteAE

    protected static java.lang.String localnameForRemoteAE

#### propertiesFilePath

    protected static java.lang.String propertiesFilePath

### Constructor Detail

#### WatchFolderAndSend

    public WatchFolderAndSend(java.lang.String watchedFolderName,
                      java.lang.String remoteHost,
                      int remotePort,
                      java.lang.String remoteAE,
                      java.lang.String localAE,
                      int verbosityLevel,
                      int debugLevel,
                      MessageLogger logger)
                       throws DicomException,
                              DicomNetworkException,
                              java.io.IOException,
                              java.lang.InterruptedException

Watch a folder and send any DICOM files that appear to a network remote Storage SCP AE.

Removes files only after successful send attempt, and leaves them and retries if connection or send fails.

Tries not to send files that are still being modified.

Does NOT RECURSE into sub-folders, only processes file in supplied directory itself.

Parameters:
  `watchedFolderName` -
  `remoteHost` -
  `remotePort` -
  `remoteAE` -
  `localAE` -
  `verbosityLevel` -
  `debugLevel` -
  `logger` -
Throws:
  `DicomException`
  `DicomNetworkException`
  `java.io.IOException`
  `java.lang.InterruptedException`

### Method Detail

#### getPropertiesEditInDialogAndSave

    protected static ApplicationEntity getPropertiesEditInDialogAndSave(int debugLevel)

#### main

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

Watch a folder and send any DICOM files that appear to a network remote Storage SCP AE.

Parameters:
  `arg` - none if parameters are to be requested through a graphical interface, otherwise an array of 4 to 7 strings - the fully qualified path of the watched folder, the remote hostname, remote port, and remote AE Title and optionally our AE Title, a verbosity level, and an integer debug level