Avoiding Accepting Private SOP classes
Many pieces of equipment will try to negotiate both a Private SOP class and an official DICOM SOP Class for the images they send to a PACS, on the basis that only a PACS from the same manufacturer will accept the private one, with everyone else accepting only the DICOM one. It is important that this behavior is maintained at the PACS in order to avoid accidentally accepting the private class(es).
Sample code below shows how to reject non-DICOM SOP classes in the Connection negotiation stage.
DicomObjects.NET version
private void Server_AssociationRequest(object Sender, DicomObjects.EventArguments.AssociationRequestArgs e)
{
foreach (DicomContext ctx in e.Contexts)
{
if(!ctx.AbstractSyntax.StartsWith("1.2.840.10008."))
ctx.Reject(3); // reason 3 means "abstract syntax not supported"
}
}
DicomObjects.COM version
Private Sub server_AssociationRequest(ByVal Connection As DicomObjects8.DicomConnection, isOK As Boolean)
Dim cxt As DicomContext
For Each cxt In Connection.Contexts
If left(cxt.AbstractSyntax, 14) <> "1.2.840.10008." Then
cxt.Reject 3
End If
Next
End Sub