When using the PACS Client Framework, the first step must be to call DicomEngine.Startup in order to initialize the data required by the library. This is usually done at the beginning of the application. When the library is no longer needed, DicomEngine.Shutdown must be called to release the data. This is usually done when the application needs to shutdown. The following topics provide a systematic approach to understanding how to program with the PACS Client Framework Library.
DICOM Storage Service Class SCU
DICOM standard defines QStorage Service class SCU service to allow an invoking service-user to request the storage of Composite SOP Instance information by a peer service-provide. This allows DICOM AE to:
- Store any Composite SOP Instance (i.e. image or non image instance) to remote DICOM AE.
- The remote reserves the right to accept the Composite SOP Instance and encoding/compression (i.e. transfer syntax) from the proposed association request by the requesting AE.
Additionally the following events are available:
- StoreScu.BeforeCStore use to receive notification before a C-STORE-REQ message is sent.
- StoreScu.AfterCStore use to receive notification after a C-STORE-RSP has been received.
DICOM Query/Retrieve Service Class SCU
The DICOM standard defines Query/Retrieve Service Classes that facilitate the querying and retrieving of DICOM datasets. The QueryRetrieveScu class simplifies the process of building a standard Study Root Query/Retrieve Model Service Class User (Study Root Query/Retrieve SCU) support to an application. Its members handle all query attributes used in the Study Root Query/Retrieve Service Class as a service class user. It also provides interfaces (BeforeAssociateRequest and BeforeCFind Events) to easily add support for other Query/Retrieve Services such as Modality Worklist, Patient Root Query/Retrieve, General Purposes Worklist, etc. The QueryRetrieveScu class provides the following methods for doing a DICOM query or retrieve operation.
DICOM Query
DICOM Retrieve
Additionally the following events are available:
- QueryRetrieveScu.BeforeCFind use to receive notification before a C-FIND-REQ is sent.
- QueryRetrieveScu.AfterCFind use to receive notification after a C-FIND-RSP has been received.
- QueryRetrieveScu.MatchInstance use to get each match instance found during a C-FIND-REQ command.
- QueryRetrieveScu.BeforecMove use to receive notification before a C-MOVE-REQ is sent.
- QueryRetrieveScu.AfterCMove use to receive notification after a C-MOVE-REQ has been sent.