Forwarding (Optional)

Forwarding is an advanced feature of the LEAD Medical Storage Server.  The forwarding feature allows the storage server to be configured so that DICOM image data is automatically transferred to another PACS immediately upon storage, or on any schedule.  If you are not interested in using this feature, you can skip this step.

Forwarding information is stored in a Forward database table.  In the Forward table of the shipping database, the column SOPInstanceUID is defined as the primary key and has a foreign key relationship with the SOPInstanceUID column in the Instance table.  The foreign key relationship allows for cascaded deletes, so when a row is deleted from the Instance table, any corresponding entry in the Forward table is automatically deleted as well.  For the tutorial, the MyInstanceTable exists in a separate database (MyDicomDb). Since both tables of a foreign key relationship must exist in the same database, a Forward table must be created in the tutorial database. 

The schema of the Forward table and the relationship to the MyInstanceTable is shown below:

forwardingschema

A description of each Forward Table column is given below:

Forward

Column

Description

SOPInstanceUID

Primary key
Foreign key relationship with MyInstanceTable.SOPInstanceUID

ForwardDate

Date the DICOM image was forwarded

ExpireDate

Date the DICOM image will be removed (i.e. cleaned)

The Leadtools.Medical.Forward.DataAccessLayer implements the IForwardDataAccessAgent interface, as shown below:

public interface IForwardDataAccessAgent 
   { 
      // Gets the list of images that need to be forwarded 
      ForwardInstance[] GetForwardList(); 
 
      void SetInstanceForwarded(string sopInstanceUID, DateTime forwardDate, DateTime? expireDate); 
 
      // Gets the list of images that need to be cleaned 
      ForwardInstance[] GetCleanList(); 
 
      // Gets the count of images that need to be forwarded 
      long GetForwardCount(); 
 
      // Gets the count of images that need to be cleaned 
      long GetCleanCount(); 
 
      // Resets previously forwarded images so they can be forwarded again 
      void Reset(DateRange range); 
 
      // Gets the count of images that can be reset 
      long GetResetCount(DateRange range); 
       
      // Returns 'true' if the sopInstanceUID has already been forwarded; otherwise, 'false'        
      bool IsForwarded ( string sopInstanceUID ) ; 
   } 

To modify the Leadtools.Medical.Forward.DataAccessLayer to use the tutorial database, the database queries must be modified to use the custom database.  To achieve this, set the following members of the class ForwardDBDataAccessAgent in the ForwardDBDataAccessAgent constructor to the new value:

Class Member

Description

Default Value

New Value

_instanceTableName

Instance Table Name

"Instance"

"MyInstanceTable"

_columnNameSOPInstanceUID

SOPInstanceUID column name of the Instance Table

"SOPInstanceUID"

"SOPInstanceUID"

_columnNameReferencedFile

Referenced File column name of the Instance Table

"ReferencedFile"

"ImageFilename"

Finally, the GlobalPacs.config must be modified so that the forward configuration references the Forward table from the tutorial database instead of the shipping database.

To summarize, the following steps are required to use the Forwarding feature with a custom database:

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Imaging, Medical, and Document