internal static Shelf Launch(IDesktopWindow window)
        {
            var component = new PrintImageViewerComponent(window);

            _printViewImageViewer = component;
            var shelf = ApplicationComponent.LaunchAsShelf(
                window,
                component,
                "打印预览",
                ShelfDisplayHint.DockRight
                );

            return(shelf);
        }
Example #2
0
 public ThumbnailTreeItemBinding(IPrintViewImageViewer owner, string primaryStudyInstanceUid)
 {
     _owner = owner;
     _primaryStudyInstanceUid = primaryStudyInstanceUid;
 }
Example #3
0
 public Thumbnails(IDesktopWindow desktopWindow, IPrintViewImageViewer dicomPrintPreviewComponent)
 {
     _dicomPrintPreviewComponent = dicomPrintPreviewComponent;
     Initialize(desktopWindow);
 }
        public void Toggle()
        {
            if (this.SelectedOverlayGraphicsProvider == null)
            {
                return;
            }

            if (this.SelectedPresentationImage == null)
            {
                return;
            }

            try
            {
                var selectPresentationImage = this.SelectedPresentationImage;
                IPrintViewImageViewer printViewImageViewer = this.ImageViewer as IPrintViewImageViewer;
                if (printViewImageViewer.ReferenceLines.ContainsKey(selectPresentationImage))
                {
                    foreach (var referenceLine in printViewImageViewer.ReferenceLines[selectPresentationImage])
                    {
                        this.SelectedOverlayGraphicsProvider.OverlayGraphics.Remove(referenceLine);
                    }
                }
                else
                {
                    printViewImageViewer.ReferenceLines.Add(selectPresentationImage, new List <IGraphic>());
                }

                DicomImagePlane targetImagePlane = DicomImagePlane.FromImage(selectPresentationImage);
                if (targetImagePlane == null)
                {
                    return;
                }
                IDisplaySet          displaySet = this.Context.Viewer.SelectedImageBox.DisplaySet;
                List <ReferenceLine> lines      = new List <ReferenceLine>();
                int index = 0;
                foreach (var referenceImage in displaySet.PresentationImages)
                {
                    index++;
                    if (referenceImage == selectPresentationImage)
                    {
                        continue;
                    }
                    if (jgCount != 0 && index % jgCount != 0)
                    {
                        continue;
                    }
                    DicomImagePlane referenceImagePlane = DicomImagePlane.FromImage(referenceImage);
                    if (referenceImagePlane == null)
                    {
                        continue;
                    }
                    if (referenceImagePlane.StudyInstanceUid == targetImagePlane.StudyInstanceUid)
                    {
                        ReferenceLine line = GetReferenceLine(referenceImagePlane, targetImagePlane);
                        // CompositeGraphic lineGraphic = new CompositeGraphic();
                        LinePrimitive linePrimitive = new LinePrimitive();
                        linePrimitive.LineStyle = LineStyle.Dash;
                        linePrimitive.Point1    = line.StartPoint;
                        linePrimitive.Point2    = line.EndPoint;
                        InvariantTextPrimitive text = new InvariantTextPrimitive(line.Label);
                        text.Location = new PointF(line.EndPoint.X + 10, line.EndPoint.Y);

                        //lineGraphic.Graphics.Add(linePrimitive);
                        //lineGraphic.Graphics.Add(text);
                        bool isHaveSameLine = false;
                        foreach (var referenceLine in lines)
                        {
                            if (line.StartPoint == referenceLine.StartPoint && line.EndPoint == referenceLine.EndPoint)
                            {
                                isHaveSameLine = true;
                                break;
                            }
                        }
                        if (!isHaveSameLine)
                        {
                            lines.Add(line);
                            this.SelectedOverlayGraphicsProvider.OverlayGraphics.Add(linePrimitive);
                            this.SelectedOverlayGraphicsProvider.OverlayGraphics.Add(text);
                            printViewImageViewer.ReferenceLines[selectPresentationImage].Add(linePrimitive);
                            printViewImageViewer.ReferenceLines[selectPresentationImage].Add(text);
                        }
                    }
                }
                selectPresentationImage.Tile.Draw();
            }
            catch (Exception)
            {
                IPrintViewImageViewer printViewImageViewer = this.ImageViewer as IPrintViewImageViewer;
                if (printViewImageViewer.ReferenceLines.ContainsKey(this.SelectedPresentationImage))
                {
                    printViewImageViewer.ReferenceLines.Remove(this.SelectedPresentationImage);
                }
            }
        }