Вы можете контролировать это поведение на уровне АССОЦИАЦИИ. Перед отправкой ASSOCIATE_ACCEPT проверьте предложенный абстрактный синтаксис.
public Task OnReceiveAssociationRequestAsync(DicomAssociation association)
{
foreach(var pc in association.PresentationContexts)
{
if(pc.AbstractSyntax == DicomUID.EncapsulatedPDFStorage)
pc.SetResult(DicomPresentationContextResult.RejectAbstractSyntaxNotSupported);
else
{
pc.AcceptTransferSyntaxes(AcceptedImageTransferSyntaxes);
pc.SetResult(DicomPresentationContextResult.Accept);
}
}
return SendAssociationAcceptAsync(association);
}
DicomAssociation association
- это ASSOCIATION_REQUEST, который вы получили. association.PresentationContexts
содержит все предложенные контексты представления в полученной ассоциации. Вы перечисляете по каждому из них. Каждый предлагаемый контекст представления содержит абстрактный синтаксис и список предлагаемых синтаксисов передачи. Вы можете l oop просмотреть список синтаксисов передачи и установить тот, который вы предпочитаете; поскольку ваш вопрос не об этом, я пропустил эту часть в коде.
Если вы можете принять (получить / обработать) предложенную пару абстрактного синтаксиса и синтаксиса передачи, вы принимаете эту конкретную c презентацию Контекст, установив его результат. Если вы этого не сделаете, установите результат соответственно с указанием причины.
Наконец, отправьте ASSOCIATE_ACCEPT (или отклоните ...).