コード例 #1
0
ファイル: PDataTF.cs プロジェクト: DMIAOCHEN/Evil-DICOM
 public PDataTF(DICOMObject dicom, bool isLastItem, bool isCommandObject, PresentationContext context)
     : this()
 {
     byte[] data;
     using (var stream = new MemoryStream())
     {
         using (var dw = new DICOMBinaryWriter(stream))
         {
             var settings = new DICOMWriteSettings();
             settings.TransferSyntax = isCommandObject
                 ? TransferSyntax.IMPLICIT_VR_LITTLE_ENDIAN
                 : TransferSyntaxHelper.GetSyntax(context.TransferSyntaxes[0]);
             DICOMObjectWriter.Write(dw, settings, dicom);
             data = stream.ToArray();
         }
     }
     var frag = new PDVItemFragment();
     frag.Data = data;
     frag.IsLastItem = isLastItem;
     frag.IsCommandObject = isCommandObject;
     var item = new PDVItem();
     item.Fragment = frag;
     item.PresentationContextID = context.Id;
     Items.Add(item);
 }
コード例 #2
0
ファイル: ItemReader.cs プロジェクト: DMIAOCHEN/Evil-DICOM
 public static PDVItem ReadPDVItem(DICOMBinaryReader dr)
 {
     var pi = new PDVItem();
     int length = LengthReader.ReadBigEndian(dr, 4);
     pi.PresentationContextID = dr.Take(1)[0];
     pi.Fragment = ReadPDVFragment(dr, length - 1);
     return pi;
 }
コード例 #3
0
ファイル: ItemReader.cs プロジェクト: zzti/Evil-DICOM
        public static PDVItem ReadPDVItem(DICOMBinaryReader dr)
        {
            var pi     = new PDVItem();
            var length = LengthReader.ReadBigEndian(dr, 4);

            pi.PresentationContextID = dr.Take(1)[0];
            pi.Fragment = ReadPDVFragment(dr, length - 1);
            return(pi);
        }
コード例 #4
0
ファイル: PDataTF.cs プロジェクト: DMIAOCHEN/Evil-DICOM
 public PDataTF(byte[] data, bool isLastItem, bool isCommandObject, PresentationContext context)
     : this()
 {
     var frag = new PDVItemFragment();
     frag.Data = data;
     frag.IsLastItem = isLastItem;
     frag.IsCommandObject = isCommandObject;
     var item = new PDVItem();
     item.Fragment = frag;
     item.PresentationContextID = context.Id;
     Items.Add(item);
 }
コード例 #5
0
ファイル: ItemWriter.cs プロジェクト: DMIAOCHEN/Evil-DICOM
 public static void WritePDVItem(DICOMBinaryWriter dw, PDVItem pdv)
 {
     //Write fragment first so we have length
     var fragment = new byte[0];
     using (var stream = new MemoryStream())
     {
         using (var fragDw = new DICOMBinaryWriter(stream))
         {
             WritePDVFragment(fragDw, pdv.Fragment);
             fragment = stream.ToArray();
         }
     }
     LengthWriter.WriteBigEndian(dw, fragment.Length + 1, 4);
     dw.Write((byte) pdv.PresentationContextID);
     dw.Write(fragment);
 }
コード例 #6
0
        public static void WritePDVItem(DICOMBinaryWriter dw, PDVItem pdv)
        {
            //Write fragment first so we have length
            var fragment = new byte[0];

            using (var stream = new MemoryStream())
            {
                using (var fragDw = new DICOMBinaryWriter(stream))
                {
                    WritePDVFragment(fragDw, pdv.Fragment);
                    fragment = stream.ToArray();
                }
            }
            LengthWriter.WriteBigEndian(dw, fragment.Length + 1, 4);
            dw.Write((byte)pdv.PresentationContextID);
            dw.Write(fragment);
        }