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); }
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; }
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); }
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); }
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); }
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); }