示例#1
0
        /// <summary>
        /// Factory method for creating <see cref="DicomExtendedNegotiation"/> instances.
        /// </summary>
        /// <param name="raw">Raw PDU.</param>
        /// <param name="length">Length.</param>
        /// <returns>A new <see cref="DicomExtendedNegotiation"/> instance.</returns>
        public static DicomExtendedNegotiation Create(RawPDU raw, ushort length)
        {
            var uidLen = raw.ReadUInt16("SOP Class UID Length");
            var uidStr = raw.ReadString("SOP Class UID", uidLen);

            var uid = DicomUID.Parse(uidStr);
            IExtendedNegotiationSubItem subItem = null;
            var subItemSize = 0;

            var remaining = length - uidLen - 2;

            if (subItemCreators.ContainsKey(uid))
            {
                subItem = subItemCreators[uid](raw, remaining, out subItemSize);
            }

            remaining -= subItemSize;
            if (remaining > 0)
            {
                raw.SkipBytes("Unread bytes", remaining);
            }

            return(new DicomExtendedNegotiation(uid, subItem));
        }
示例#2
0
 /// <summary>
 /// Initializes an instance of the <see cref="DicomExtendedNegotiation"/> class.
 /// </summary>
 /// <param name="sopClassUid">SOP class UID.</param>
 /// <param name="subItem">Extended negotiation sub-item.</param>
 public DicomExtendedNegotiation(DicomUID sopClassUid, IExtendedNegotiationSubItem subItem)
 {
     SopClassUid = sopClassUid;
     SubItem     = subItem;
 }
 /// <summary>
 /// Initializes an instance of the <see cref="DicomExtendedNegotiation"/> class.
 /// </summary>
 /// <param name="sopClassUid">SOP class UID.</param>
 /// <param name="subItem">Extended negotiation sub-item.</param>
 public DicomExtendedNegotiation(DicomUID sopClassUid, IExtendedNegotiationSubItem subItem)
 {
     SopClassUid = sopClassUid;
     SubItem = subItem;
 }