![DICOM GRID DG Gateway User Manual Download Page 22](http://html.mh-extra.com/html/dicom-grid/dg-gateway/dg-gateway_user-manual_2495140022.webp)
22
BaseService is an abstract that has two a method and a property that must be implemented by
the sub class. The first is a method called GetDICOMServices(). GetDICOMServices returns a
list a MyDICOM.Net.DICOMServices. These items must be instantiated with each call. When
instantiating these services, a lambda expression should be used to wire up any required
services; this allows the functionality to be carried with the object as it handles events within the
system.
Below is a code example of the simple implementation of the second override that is required.
public override List<DICOMService> DICOMServices { get; set; }
Store Service
The StoreService (DICOMGrid.DICOMServices.StoreService) handles the saving of incoming
DICOM files to disk and queueing up those files on the upload queue for sending to the grid.
It also applies ingress filter rules, if necessary, to filter out undesired studies and also detects
duplicate images and prvents them from being re-uploaded.
Echo Service
The EchoService (DICOMGrid.DICOMServices.EchoService) is responsible for responding to
client echo requests. Currently it responds true to any request. I do not believe this functionality
will need to change.
Find Service
The FindService (DICOMGrid.DICOMServices.FindService) is the handler for the query portion
of query/retrieve. The primary function of this component is to transform and broker search
requests back to the DICOMGrid storage cloud. When a request is relieved, we break out the
search fields and build a JSON request to be handled by the cloud.
Once the JSON response is receieved by the Find Service. The service breaks each item in
the study response array in to an IOD that contains the metadata for each study returned.
These IODs are then pushed back to the client with a status of pending. Once all responses
have beenprocessed we send a final response indicating that there are no more records to be
expected.
Move Service
The Move Service is a retrieve in query/retrieve. This component handles moving data (cloud
or local) to a DICOM client. |We currently only support study-level retrieves|, however this will
change in the near future. When a request is recieved to move a particular study to a particular
destination the gateway creates a push request and send it to services for processing. The
information contained in this request is just the study id, and the outbound AE title.
Once the request is ready it is returned along with a ping. The ping splits the study into a
download request, which is handled by the download component. Downstream from that, the
MoveClient handles negotiation, transference, and reports back to the cloud what the status of
the local transfer was.