internal static Shelf Launch(IDesktopWindow window) { var component = new PrintImageViewerComponent(window); _printViewImageViewer = component; var shelf = ApplicationComponent.LaunchAsShelf( window, component, "打印预览", ShelfDisplayHint.DockRight ); return(shelf); }
public ThumbnailTreeItemBinding(IPrintViewImageViewer owner, string primaryStudyInstanceUid) { _owner = owner; _primaryStudyInstanceUid = primaryStudyInstanceUid; }
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); } } }