The PACS Server Framework is an extensible system that allows the user to easily add additional DICOM Services or customize service implementation without having to change the core server implementation. This extensibility is provided through the use of add-ins. These add-ins allow developers to respond to specific DICOM messages (based on the registered DICOM service), and perform transaction logging to a consolidated service log. LEADTOOLS handles the threading for concurrent DICOM connections. The SDK also manages association negotiations and exposes interfaces which allow the user to spy on all DICOM communications with the server.
PACS Server Framework Components:
-
DICOM Service
DICOM Service (Leadtools.Dicom.Service.exe) is a MS Windows Service that implements user-defined DICOM services.
-
AddIn Manager
The DICOM Service (Leadtools.Dicom.Service.exe) also acts as the manager of the add-ins. When the service starts it loads all the available add-ins. Once the addIns are loaded the server extracts the interfaces that are important for its operation.
-
AddIns
AddIns are implemented by the developer, based on the DICOM services they wish to provide. LEADTOOLS ships with several AddIns, some of which are provided with source code that can be customized.
-
Secure Connections
The PACS Server Framework supports secure communication through the use of AddIns. The PACS Server Framework ships with a Security Addin which implements security for the PACS server. This add-in can be extended or replaced by a custom implementation. Source code is provided so that the secure communications can be customized by an addin developer. The provided AddIn implements the Basic TLS Secure Transport Connection Profile of DICOM Standard which utilizes the framework and negotiation mechanism specified by the Transport Layer Security Version 1.0 protocol.
-
Logging Framework
The PACS Server Framework makes use of the LEADTOOLS Logging assembly (Leadtools.Logging) to log server specific messages. This enables developers to easily change the destination of logging messages. In addition, AddIn developers can make use of this framework to provide centralized logging.
-
Sever Admin Interface
This interface allows an application to communicate with the running PACS Framework Server service. This allows the developer to easily manage multiple PACS Framework servers. Developers can use this class to implement a server administrative user interface.
Service Startup Process:
- Service Start: This runs the Windows Service which implements the DICOM Server.
- License Check: Checks to see whether the user has provided the correct MedicalServer unlock code. If the correct code has not been provided the service will not run.
- Initialize add-ins: The service loads all DLLs in the Server working directory. The server checks for all the add-in interfaces. If a valid interface is found, the add-in is registered with the server service.
- Start Server: If for some reason the server cannot start (duplicate port, IP unavailable, etc.), the service will not run.
Register Base Services: Some base services are required for the service to function correctly. This process provides default implementations for the following services:
- IServiceLog: Provides a default log for the service. It writes log entries to the event log.
- IDicomRequest: Provides a default implementation for add-ins to issue a DICOM request. This implementation should rarely be overridden.
- IAETitle: Provides a default implementation for managing DICOM AETitles.
- Start Administrative Interface: This interface allows an application to communicate with the running service. The interface is implemented via named pipes.