Ensemble DICOM Development Guide
Sample DICOM File Storage Production
[Back] [Next]
Go to:

The ENSDEMO namespace contains a production named Demo.DICOM.Production.StorageFile. This production demonstrates a basic DICOM function, sending DICOM documents from a file to a DICOM compatible storage system.

The scenario for this production is that Ensemble receives a file containing DICOM-formatted messages and sends them to a storage system. The production does the following:
  1. An Ensemble business service receives a file with the .dcm extension as input and sends the messages to the DICOM business process. The DICOM message documents contain C-STORE requests.
  2. The Ensemble business process checks the connection to the output storage system and establishes the association to the storage system if needed.
  3. Ensemble recognizes the request, stores the originating message ID, and forwards the DICOM document message to the storage system through the duplex business operation.
  4. The business operation returns the C-STORE response message from the storage system to the business process.
The following steps outline the procedure to add this type of interface to a production:
  1. Create a generic production by clicking Create New Production on the [Ensemble] > [Production Configuration] page. See Creating and Configuring a Production in Configuring Ensemble.
  2. In Studio, modify the production definition to add the StorageLocation property and compile the production. See Configuring a DICOM Production to Control the Storage Location for details.
  3. Configure the DICOM business service settings specifically for a file storage production.
  4. Create a business process class that routes the incoming DICOM document to a storage system from the incoming C-STORE-RQ message and returns the C-STORE-RSP message.
  5. Add a DICOM business process using the custom class from the previous step.
  6. Add a DICOM business operation to the production using the EnsLib.DICOM.Operation.TCP class.
  7. Test the production to verify that it receives a storage request message for a DICOM document and sends the document to the storage system.
You can view the class code of Demo.DICOM.Production.StorageFile.cls using Studio to see the production details.
Configuring the DICOM Routing to Storage Business Service
You can configure a DICOM business service by clicking it in the diagram on the [Ensemble] > [Production Configuration] page. Configuring a DICOM Duplex Business Host describes the details. This section describes the settings specific to the business service in the demonstration storage production.
Specify the configuration item within the production to which the business service should send any DICOM documents that it receives.
The Demo.DICOM.Production.StorageFile production uses the business process based on the class, Demo.DICOM.Process.StorageFile. This is a custom process that contains the logic for processing DICOM messages from the input file and routing them to a storage system.
File Path
Full pathname of the directory in which to look for files. This directory must exist, and it must be accessible through the file system on the local Ensemble machine.
File Spec
Filename or wildcard file specification for file(s) to retrieve. For the wildcard specification, use the convention that is appropriate for the operating system on the local Ensemble machine.
The Demo.DICOM.Production.StorageFile production uses *.dcm file extension.
Testing the DICOM File Storage Production
Once you have working associations and created a production, you can attempt to process valid DICOM message documents through the production. The demonstration production included with Ensemble was developed using third-party software specifically developed for testing DICOM processing. You can use any of the many available software products, or test with your actual DICOM modality data.
This section shows portions of the Event Log, Message Browser, Message Details, and Message Contents pages in the Management Portal of the Demo.DICOM.Production.StorageFile production running and accepting DICOM messages from a file and passing them to a storage system that supports store requests.