Ejemplo n.º 1
0
        private static void ProcessOverlays(DicomDataset input, DicomDataset output)
        {
            var overlays = DicomOverlayData.FromDataset(input.InternalTransferSyntax.IsEncapsulated ? output : input);

            foreach (var overlay in overlays)
            {
                var dataTag = new DicomTag(overlay.Group, DicomTag.OverlayData.Element);

                // Don't run conversion on non-embedded overlays.
                if (output.Contains(dataTag))
                {
                    continue;
                }

                // If embedded overlay, Overlay Bits Allocated should equal Bits Allocated (#110).
                var bitsAlloc = output.Get(DicomTag.BitsAllocated, (ushort)0);
                output.AddOrUpdate(new DicomTag(overlay.Group, DicomTag.OverlayBitsAllocated.Element), bitsAlloc);

                var data = overlay.Data;
                if (output.InternalTransferSyntax.IsExplicitVR)
                {
                    output.AddOrUpdate(new DicomOtherByte(dataTag, data));
                }
                else
                {
                    output.AddOrUpdate(new DicomOtherWord(dataTag, data));
                }
            }
        }
Ejemplo n.º 2
0
        private static void ProcessOverlays(DicomDataset input, DicomDataset output)
        {
            var overlays = DicomOverlayData.FromDataset(input);

            foreach (var overlay in overlays)
            {
                var dataTag = new DicomTag(overlay.Group, DicomTag.OverlayData.Element);

                // don't run conversion on non-embedded overlays
                if (output.Contains(dataTag))
                {
                    continue;
                }

                output.Add(new DicomTag(overlay.Group, DicomTag.OverlayBitsAllocated.Element), (ushort)1);
                output.Add(new DicomTag(overlay.Group, DicomTag.OverlayBitPosition.Element), (ushort)0);

                var data = overlay.Data;
                if (output.InternalTransferSyntax.IsExplicitVR)
                {
                    output.Add(new DicomOtherByte(dataTag, data));
                }
                else
                {
                    output.Add(new DicomOtherWord(dataTag, data));
                }
            }
        }