DICOM PS3.4 2019b - Service Class Specifications

CC.2.3.3 Service Class Provider Behavior

Upon receipt of the N-ACTION request, the SCP shall attempt to update the Global Subscription State and/or UPS Subscription State of the specified AE with respect to the specified SOP Instance UID as described in Table CC.2.3-2 and then return, via the N-ACTION response primitive, the appropriate N-ACTION Response Status Code.

The SCP may optionally allow an Application Entity to subscribe globally to a filtered set of UPS Instances. In this case, the Application Entity will only be subscribed to existing and future UPS Instances that match the search criteria specified by the Matching Keys of the N-ACTION request (see Section CC.2.3.3.1). If the SCP does not support Filtered Global Subscription it will return a Failure response with a Code of C307 (see Table CC.2.3-3).

A success status conveys that the Global Subscription State and/or UPS Subscription State for the AE specified in Receiving AE (0074,1234) was successfully modified by the SCP. The AE-TITLE in Receiving AE (0074,1234) may be different than the AE-TITLE used by the SCU for the association negotiation. The SCP shall use the AE-TITLE specified in Receiving AE (0074,1234). This allows systems to subscribe other systems they know would be interested in events for a certain UPS.

For all UPS instances managed by the SCP, the SCP shall send N-EVENT-REPORTS (as described in Section CC.2.4.3) to AEs that have a UPS Subscription State of "Subscribed with Lock" or "Subscribed w/o Lock". If the SCP also supports the HTTP CreateSubscription service as an Origin-Server, the SCP shall also send HTTP SendEventReport messages (see ????).

Upon successfully processing a subscription action, the SCP shall send initial UPS State Report N-EVENT-REPORTs, as indicated in Table CC.2.3-2, providing the current status of the UPS Instance to the Receiving AE.

The SCP may also refuse both specific and global Subscription requests by returning a failure N-ACTION Response Status Code for "Refused: Not Authorized" if the refusal depends on permissions related to the tasks or the requestor, or "Refused: SCP does not support Event Reports" if the SCP does not support sending the events. The SCP must document in its conformance statement if it might refuse Subscription requests.

The SCP may remove existing Deletion Locks by changing the UPS Subscription State for the AE from "Subscribed with Lock" to "Subscribed w/o Lock" and/or by changing the Global Subscription State for an AE from "Global Subscription with Lock" to "Global Subscription w/o Lock". This is intended to allow the SCP to deal with SCU malfunctions. The SCP must document in its conformance statement if it might remove a Deletion Lock.

The SCP may also refuse the Deletion Lock portion of a specific or global Subscription request. For example, a request to modify the UPS Subscription State for the AE to "Subscribed with Lock" would instead result in a UPS Subscription State of "Subscribed w/o Lock" and a Warning status (see Table CC.2.3-3) returned to the requesting SCU. This is intended to deal with Security and related policy restrictions. The SCP must document in its conformance statement if it might refuse a Deletion Lock.

Bi-directional Authentication of machines/users/applications is possible at association time (see PS3.7 and PS3.15). PS3.7 provides a "Refused: Not Authorized" error code. Further requiring or documenting authentication and/or authorization features from the SCU or SCP is beyond the scope of this SOP Class.

CC.2.3.3.1 Filtered Global Subscription

An SCP that supports Filtered Global Subscription shall create an instance subscription for each UPS Instance that would match a C-FIND request with the Matching Keys provided in the subscription request.

The SCP shall support the same matching logic used for C-FIND (see Section CC.2.8.3).

DICOM PS3.4 2019b - Service Class Specifications