Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }