예제 #1
0
 public void Apply(DcmAssociate associate)
 {
     foreach (DcmPresContext pc in associate.GetPresentationContexts())
     {
         if (pc.Result == DcmPresContextResult.Proposed)
         {
             if (AbstractSyntaxes.Contains(pc.AbstractSyntax.UID))
             {
                 IList <DicomTransferSyntax> txs = pc.GetTransfers();
                 for (int i = 0; i < txs.Count; i++)
                 {
                     if (TransferSyntaxes.Contains(txs[i].UID.UID))
                     {
                         if (!DicomUID.IsImageStorage(pc.AbstractSyntax) && DicomTransferSyntax.IsImageCompression(txs[i]))
                         {
                             continue;
                         }
                         pc.SetResult(DcmPresContextResult.Accept, txs[i]);
                         break;
                     }
                 }
                 if (pc.Result != DcmPresContextResult.Accept)
                 {
                     pc.SetResult(DcmPresContextResult.RejectTransferSyntaxesNotSupported);
                 }
             }
             else
             {
                 pc.SetResult(DcmPresContextResult.RejectAbstractSyntaxNotSupported);
             }
         }
     }
 }
예제 #2
0
 public bool Supports(DicomTransferSyntax tx)
 {
     return(TransferSyntaxes.Contains(tx.UID.UID));
 }