public void ApplyDisplayForMg(IViewerControlCell cell) { DisplayData displayData = cell.Image.CurrentPage; ICoordinateTransform transform = CoordinateTransformFactoryHelper.CoordinateTransformFactory.CreateCoordinateTransform(cell); Point point1 = new Point(); Point point2 = new Point(); Vector v = new Vector(); var imageLaterality = string.Empty; var isLaterality = displayData.ImageHeader.DicomHeader.TryGetValue(ServiceTagName.ImageLaterality, out imageLaterality); if (!isLaterality) { return; } point1 = imageLaterality == "L" ? new Point(0, 0.5) : new Point(1, 0.5); var pos = GetPostion(cell); if (pos == -1) { return; } switch (pos) { case 0: { point2 = new Point(0, 0.5); break; } case 1: { point2 = new Point(0.5, 0); break; } case 2: { point2 = new Point(1, 0.5); break; } case 3: { point2 = new Point(0.5, 1); break; } } Point p1 = transform.TranslatePoint(point1, PointType.RatioImage, PointType.Cell); Point p2 = transform.TranslatePoint(point2, PointType.RatioCell, PointType.Cell); v = p2 - p1; displayData.PState.Translate(v.X, v.Y); cell.Refresh(CellRefreshType.Image); }
private int GetPostion(IViewerControlCell cell) { int pos = 0; var overlay = cell.Image.CurrentPage.GetOverlay(OverlayType.FilmingF1ProcessText) as OverlayFilmingF1ProcessText; if (overlay != null) { string[] postions = overlay.GraphicFilmingF1ProcessText.OrientationTexts; for (int i = 0; i < postions.Count(); i++) { if (postions[i].ToUpper() == "P") { pos = i; break; } } return(pos); } return(-1); }