Пример #1
0
        public void SendtoDicomPrinter(Hashtable htb, int row, int col, int noofcopies, string filmsizeid,
                                       string filmorient, int timeout, ref string newErrMsg)
        {
            try
            {
                _imageDisplayFormatItem = string.Concat(@"STANDARD\", col.ToString(), ",", row.ToString());
                _filmSizeIDItem = filmsizeid;
                _filmOrientation = filmorient;
                var printScu = new PrintScu();
                printScu.ColorMode = ColorMode.Grayscale;
                PrintScu.GetPixelDataDelegate getPixelDataDelegate = GetImageFromFile;
                var list = new List<PrintScu.IPrintItem>();

                for (int rowIdx = 1; rowIdx <= row; rowIdx++)
                {
                    for (int colIdx = 1; colIdx <= col; colIdx++)
                    {

                        {
                            //Load DICOM File 
                            string rc = string.Concat(rowIdx.ToString(), colIdx.ToString());
                            //Tìm file ở hàng i cột j
                            string fileToPrint = htb[rc].ToString();
                            var printItem = new PrintScu.PrintItem(getPixelDataDelegate);
                            printItem.PrintObject = fileToPrint;
                            list.Add(printItem);
                        }
                    }
                }


                PrintScu.CreateFilmBoxDelegate mDelegate = CreateBasicFilmBox;

                var filmSession = new PrintScu.FilmSession(list, mDelegate) {NumberOfCopies = noofcopies};
                printScu.ReadTimeout = timeout;
                printScu.WriteTimeout = timeout;

                printScu.Print(_localAETitle, _remoteAETitle, _remoteHost, _remotePort, filmSession);
                newErrMsg = printScu.ResultStatus.ToString();
            }
            catch (Exception exception)
            {
                newErrMsg = exception.ToString();
            }
        }
Пример #2
0
        private PrintScu.FilmBox CreateBasicFilmBox(IList<PrintScu.IPrintItem> currentQueue)
        {
            FilmOrientation filmorient;
            Enum.TryParse(_filmOrientation, true, out filmorient);
            var filmBox = new PrintScu.FilmBox(_imageDisplayFormatItem, _filmSizeIDItem) {FilmOrientation = filmorient};

            foreach (DictionaryEntry dictionaryEntry  in  _hashtableFiles)
            {
                var printItem = new PrintScu.PrintItem();
                printItem.PrintObject = dictionaryEntry.Value.ToString();
                currentQueue.Add(printItem);
            }
            return filmBox;
        }