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:
A description of each Forward Table column is given below:
Column |
Description |
SOPInstanceUID |
Primary key |
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 (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; 'false' otherwise 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: