Esempio n. 1
0
        public ActionResult Create([DataSourceRequest] DataSourceRequest request, FilmSession model)
        {
            db.FilmSessions.Add(model);
            db.SaveChanges();

            return(Json(new[] { model }.ToDataSourceResult(request)));
        }
Esempio n. 2
0
        public async Task <FilmSession> UpdateAsync(FilmSession filmSession, CancellationToken token)
        {
            _context.FilmSessions.Update(filmSession);
            await _context.SaveChangesAsync(token);

            return(filmSession);
        }
        public string MakeOrder(List <SeatCoordinates> reservedSeats, int filmSessionId)
        {
            using (var db = new ApplicationDbContext())
            {
                FilmSession filmSession      = db.FilmSessions.First(fs => fs.FilmSessionId == filmSessionId);
                var         filmSessionSeats = JsonConvert.DeserializeObject <JArray>(filmSession.SeatIsFree);

                foreach (var seat in reservedSeats)
                {
                    if ((bool)((JArray)filmSessionSeats[seat.RowNumber])[seat.SeatNumber])
                    {
                        ((JArray)filmSessionSeats[seat.RowNumber])[seat.SeatNumber] = false;
                    }
                }

                filmSession.SeatIsFree = JsonConvert.SerializeObject(filmSessionSeats);

                UserOrders order = new UserOrders()
                {
                    UserId         = User.Identity.GetUserId(),
                    FilmSessionId  = filmSession.FilmSessionId,
                    ReservedPlaces = JsonConvert.SerializeObject(reservedSeats)
                };
                db.Entry(filmSession).State = EntityState.Modified;
                db.UserOrders.Add(order);
                db.SaveChanges();
            }

            return("{\"responseCode\":200}");
        }
Esempio n. 4
0
        public void DeserializationTest()
        {
            System.IO.FileStream file = null;
            System.Runtime.Serialization.Formatters.Soap.SoapFormatter formatter = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();

            try
            {
                string path = "session.xml";
                using (file = new System.IO.FileStream(path, System.IO.FileMode.Open))
                {
                    object      temp    = formatter.Deserialize(file);
                    FilmSession session = null;
                    if (temp is FilmSession)
                    {
                        session = (FilmSession)temp;
                    }
                    else
                    {
                        session = new FilmSession();
                        session.AddFilmBox(temp as FilmBox);
                    }
                    print(session, new ApplicationEntity("NER_8900", IPAddress.Parse("127.0.0.1"), 2008));
                }
            }
            finally
            {
                if (file != null)
                {
                    file.Close();
                    file.Dispose();
                    file = null;
                }
            }
        }
        public async Task AcceptStoreContexts()
        {
            int port = Ports.GetNext();

            using (DicomServerFactory.Create <AcceptOnlyEchoStoreProvider>(port))
            {
                var         echoReq    = new DicomCEchoRequest();
                DicomStatus echoStatus = DicomStatus.Pending;
                echoReq.OnResponseReceived += (req, resp) => echoStatus = resp.Status;

                var         storeReq    = new DicomCStoreRequest(TestData.Resolve("CT1_J2KI"));
                DicomStatus storeStatus = DicomStatus.Pending;
                storeReq.OnResponseReceived += (req, resp) => storeStatus = resp.Status;

                var         filmSession = new FilmSession(DicomUID.BasicFilmSession, DicomUID.Generate());
                var         printReq    = new DicomNCreateRequest(filmSession.SOPClassUID, filmSession.SOPInstanceUID);
                DicomStatus printStatus = DicomStatus.Pending;
                printReq.OnResponseReceived += (req, resp) => printStatus = resp.Status;

                var client = DicomClientFactory.Create("127.0.0.1", port, false, "SCU", "ANY-SCP");
                await client.AddRequestsAsync(new DicomRequest[] { echoReq, storeReq, printReq });

                await client.SendAsync();

                Assert.Equal(DicomStatus.Success, echoStatus);
                Assert.Equal(DicomStatus.Success, storeStatus);
                Assert.Equal(DicomStatus.SOPClassNotSupported, printStatus);
            }
        }
Esempio n. 6
0
        public void PresentationLut_NoReferencedPresentationLutSequence_GetterReturnsNull()
        {
            var session = new FilmSession(DicomUID.BasicFilmSession);
            var box     = new FilmBox(session, null, DicomTransferSyntax.ImplicitVRLittleEndian);

            Assert.Null(box.PresentationLut);
        }
Esempio n. 7
0
        public void ImageSequence_NoSequenceInImageBox_ReturnsNull(DicomUID sopClassUid)
        {
            var session  = new FilmSession(DicomUID.BasicFilmSession);
            var filmBox  = new FilmBox(session, null, DicomTransferSyntax.ImplicitVRLittleEndian);
            var imageBox = new ImageBox(filmBox, sopClassUid, null);

            Assert.Null(imageBox.ImageSequence);
        }
Esempio n. 8
0
        public ActionResult Update([DataSourceRequest] DataSourceRequest request, FilmSession model)
        {
            db.FilmSessions.Attach(model);
            db.Entry(model).State = EntityState.Modified;
            db.SaveChanges();

            return(Json(new[] { model }.ToDataSourceResult(request, ModelState)));
        }
Esempio n. 9
0
 public PrintClient()
 {
     _files      = new List <string>();
     FilmSession = new FilmSession(DicomUID.BasicFilmSessionSOPClass);
     FilmSession.PresentationLuts.Add(new PresentationLut {
         PresentationLutShape = "IDENTITY"
     });
 }
Esempio n. 10
0
        public void ExternalFourUpPortraitTest()
        {
            ApplicationEntity host = new ApplicationEntity("DICOMEDITOR", 2008);

            FilmSession session = CreateFourUpFilmSession();

            print(session, host);
        }
Esempio n. 11
0
 public void Clean()
 {
     //delete the current active print job and film sessions
     lock (_synchRoot)
     {
         _filmSession = null;
         _printJobList.Clear();
     }
 }
Esempio n. 12
0
        protected void CreateFilmSession(FilmSession filmSession)
        {
            var message = new DicomMessage(null, (DicomAttributeCollection)filmSession.DicomAttributeProvider);

            this.Client.SendNCreateRequest(null, GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message, DicomUids.BasicFilmSession);
            _eventObject = EventObject.FilmSession;

            Platform.Log(LogLevel.Debug, "Creating film session...");
        }
Esempio n. 13
0
 public PrintJob(string jobLabel)
 {
     FilmSession = new FilmSession(DicomUID.BasicFilmSessionSOPClass)
     {
         FilmSessionLabel = jobLabel,
         MediumType       = "PAPER",
         NumberOfCopies   = 1
     };
 }
Esempio n. 14
0
        public async Task <FilmSession> AddAsync(FilmSession filmSession, CancellationToken token)
        {
            filmSession.Id = 0;

            _context.FilmSessions.Add(filmSession);
            await _context.SaveChangesAsync(token);

            return(filmSession);
        }
Esempio n. 15
0
        protected void CreateFilmSession(FilmSession filmSession)
        {
            var message = new DicomMessage(null, (DicomDataset)filmSession.DicomElementProvider);

            this.Client.SendNCreateRequest(null, GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message, DicomUids.BasicFilmSession);
            _eventObject = EventObject.FilmSession;

            LogAdapter.Logger.Warn("Creating film session...");
        }
Esempio n. 16
0
 private void OnJobPrinted(object sender, PrintJobEventArgs e)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new PrintJobEventHandler(OnJobPrinted), new object[] { sender, e });
     }
     else
     {
         FilmSession session = e.Session;
         //if (File.Exists("delete.me"))
         //{
         //    System.IO.FileStream file = null;
         //    System.Runtime.Serialization.Formatters.Soap.SoapFormatter formatter = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();
         //    try
         //    {
         //        using (file = new System.IO.FileStream("session.xml", System.IO.FileMode.Create))
         //        {
         //            formatter.Serialize(file, session);
         //        }
         //    }
         //    finally
         //    {
         //        if (file != null)
         //        {
         //            file.Close();
         //            file.Dispose();
         //            file = null;
         //        }
         //    }
         //}
         NewBrowser(session.Dicom);
         foreach (FilmBox filmbox in session.FilmBoxes)
         {
             try
             {
                 NewBrowser(filmbox.Dicom);
                 foreach (ImageBox image in filmbox.ImageBoxes)
                 {
                     try
                     {
                         NewBrowser(image.Dicom);
                     }
                     catch (Exception ex)
                     {
                         MessageBox.Show(Logging.Log(ex));
                     }
                 }
             }
             catch (Exception ex)
             {
                 MessageBox.Show(Logging.Log(ex));
             }
         }
     }
 }
Esempio n. 17
0
        public ActionResult Create(Film Film)
        {
            List <Film> FilmSession = Session["FilmSession"] as List <Film>;

            if (FilmSession == null)
            {
                FilmSession = new List <Film>();
            }
            FilmSession.Add(Film);
            Session["FilmSession"] = FilmSession;
            return(RedirectToAction("index"));
        }
Esempio n. 18
0
        public void InternalFourUpPortraitTest()
        {
            ApplicationEntity host = new ApplicationEntity("NER_8700", IPAddress.Parse("127.0.0.1"), 5041);

            Server server = StartServer(host.Title, host.Port, null);

            FilmSession session = CreateFourUpFilmSession();

            print(session, host);

            server.Stop();
        }
Esempio n. 19
0
        protected void DeleteFilmSession(FilmSession filmSession)
        {
            var message = new DicomMessage(null, null)
            {
                RequestedSopInstanceUid = filmSession.SopInstanceUid.UID,
                RequestedSopClassUid    = SopClass.BasicFilmSessionSopClassUid
            };

            this.Client.SendNDeleteRequest(GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message);
            _eventObject = EventObject.FilmSession;
            Platform.Log(LogLevel.Debug, "Deleting film session...");
        }
Esempio n. 20
0
 private void Clean()
 {
     lock (_synchRoot)
     {
         if (_filmSession != null)
         {
             _filmSession.Clear();
             _filmSession = null;
         }
         _printJobList.Clear();
     }
 }
Esempio n. 21
0
 /**
  * 添加构造方法
  */
 public PrintJob(PrintOptions options)
 {
     FilmSession = new FilmSession(DicomUID.BasicFilmSessionSOPClass)
     {
         FilmSessionLabel = options.JobLabel,
         MediumType       = options.MediumType.ToStringEx(),
         NumberOfCopies   = options.PrintNumberOfCopies,
         IsColor          = options.ColorType == PrintColorType.Color,
         FilmDestination  = options.FilmDestination,
         PrintPriority    = options.Priority.ToStringEx()
     };
 }
Esempio n. 22
0
		/// <summary>
		/// Prints with the specified parameters.  Create all image boxes up-front.
		/// </summary>
		/// <param name="clientAETitle">The client AE title.</param>
		/// <param name="remoteAE">The remote AE.</param>
		/// <param name="remoteHost">The remote host.</param>
		/// <param name="remotePort">The remote port.</param>
		/// <param name="filmSession">The film session to print.</param>
		public DicomState Print(string clientAETitle, string remoteAE, string remoteHost, int remotePort, FilmSession filmSession)
		{
			_filmSession = filmSession;
			_filmSession.PrintScu = this;

			Connect(clientAETitle, remoteAE, remoteHost, remotePort);
			if (Status == ScuOperationStatus.Canceled)
				return DicomState.Cancel;
			if (Status == ScuOperationStatus.AssociationRejected || Status == ScuOperationStatus.Failed || Status == ScuOperationStatus.ConnectFailed ||
				Status == ScuOperationStatus.NetworkError || Status == ScuOperationStatus.TimeoutExpired)
				return DicomState.Failure;
			return ResultStatus;
		}
Esempio n. 23
0
        protected void CreateFilmBox(FilmSession filmSession, FilmBox filmBox)
        {
            var referencedFilmSessionSequence = new ReferencedInstanceSequenceIod
            {
                ReferencedSopClassUid    = SopClass.BasicFilmSessionSopClassUid,
                ReferencedSopInstanceUid = filmSession.SopInstanceUid.UID
            };

            filmBox.ReferencedFilmSessionSequenceList.Add(referencedFilmSessionSequence);

            var message = new DicomMessage(null, (DicomDataset)filmBox.DicomElementProvider);

            this.Client.SendNCreateRequest(null, GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message, DicomUids.BasicFilmBoxSOP);
            _eventObject = EventObject.FilmBox;
            LogAdapter.Logger.Warn("Creating film box...");
        }
Esempio n. 24
0
        protected void CreateFilmBox(FilmSession filmSession, FilmBox filmBox)
        {
            var referencedFilmSessionSequence = new ReferencedInstanceSequenceIod
            {
                ReferencedSopClassUid    = SopClass.BasicFilmSessionSopClassUid,
                ReferencedSopInstanceUid = filmSession.SopInstanceUid.UID
            };

            filmBox.ReferencedFilmSessionSequenceList.Add(referencedFilmSessionSequence);

            var message = new DicomMessage(null, (DicomAttributeCollection)filmBox.DicomAttributeProvider);

            this.Client.SendNCreateRequest(null, GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message, DicomUids.BasicFilmBoxSOP);
            _eventObject = EventObject.FilmBox;
            Platform.Log(LogLevel.Debug, "Creating film box...");
        }
Esempio n. 25
0
        public void Print(IList <FilmBox> filmBoxList)
        {
            try
            {
                Status = PrintStatus.Pending;

                OnStatusUpdate("Preparing films for printing");

                var printJobDir = new System.IO.DirectoryInfo(PrintJobFolder);
                if (!printJobDir.Exists)
                {
                    printJobDir.Create();
                }

                if (filmBoxList.Count > 0)
                {
                    FilmSession filmSession = filmBoxList[0].FilmSession;
                    DicomFile   dcmFile     = new DicomFile(filmSession);

                    dcmFile.Save(string.Format(@"{0}\FilmSession.dcm", printJobDir));
                }

                for (int i = 0; i < filmBoxList.Count; i++)
                {
                    var filmBox    = filmBoxList[i];
                    var filmBoxDir = printJobDir.CreateSubdirectory(string.Format("F{0:000000}", i + 1));

                    filmBox.Save(filmBoxDir.FullName);

                    //generate jpg image
                    var combineJpgFile = string.Format(@"{0}\View.jpg", filmBoxDir.FullName);

                    CombineImages(filmBox, combineJpgFile);
                }

                FilmSessionLabel = filmBoxList.First().FilmSession.FilmSessionLabel;
                Status           = PrintStatus.Done;
            }
            catch (Exception ex)
            {
                Status       = PrintStatus.Failure;
                ErrorMessage = ex.Message;

                OnStatusUpdate("Print failed");
                DeleteJobFolder();
            }
        }
        private IEnumerable <FilmSession> GetDataFromSource(string source, string date)
        {
            List <FilmSession>        filmSessionList  = new List <FilmSession>();
            Dictionary <string, Film> existingFilmList = new Dictionary <string, Film>();

            var parser    = new AngleSharp.Parser.Html.HtmlParser();
            var webClient = new WebClient()
            {
                Encoding = System.Text.Encoding.UTF8
            };
            var document = parser.Parse(webClient.DownloadString(source));

            foreach (var item in document.QuerySelectorAll("#afishaKtName"))
            {
                foreach (var subItem in item.NextElementSibling.QuerySelectorAll("#afishaItem"))
                {
                    var filmSession     = new FilmSession();
                    var filmDetailsLink = subItem.QuerySelector(".filmName a").GetAttribute("href").Trim();
                    if (existingFilmList.Keys.Contains(filmDetailsLink))
                    {
                        filmSession.Film = existingFilmList[filmDetailsLink];
                    }
                    else
                    {
                        Thread filmParserThread = new Thread(() =>
                                                             { filmSession.Film = ParseFilmDetails(subItem.QuerySelector(".filmName a").GetAttribute("href").Trim()); });
                        filmParserThread.Start();
                        filmParserThread.Join();
                    }

                    filmSession.Cinema = new Cinema()
                    {
                        Name = Regex.Replace(item.QuerySelector("a").TextContent.Trim(), "[\".]", "")
                    };
                    filmSession.HallName = Regex.Replace(subItem.QuerySelector(".filmZal").TextContent.Trim(), "[\".]", "");

                    AngleSharp.Dom.IElement el = subItem.QuerySelector(".filmShows .time a");
                    filmSession.DateTime = DateTime.Parse(
                        (el == null) ? date + " 14:00" : date + " " + el.TextContent.Trim());

                    filmSession.Price      = subItem.QuerySelector(".filmPrices").TextContent.Trim();
                    filmSession.SeatIsFree = seatIsFree;
                    filmSessionList.Add(filmSession);
                }
            }
            return(filmSessionList);
        }
Esempio n. 27
0
        /// <summary>
        /// Prints with the specified parameters.  Create all image boxes up-front.
        /// </summary>
        /// <param name="clientAETitle">The client AE title.</param>
        /// <param name="remoteAE">The remote AE.</param>
        /// <param name="remoteHost">The remote host.</param>
        /// <param name="remotePort">The remote port.</param>
        /// <param name="filmSession">The film session to print.</param>
        public DicomState Print(string clientAETitle, string remoteAE, string remoteHost, int remotePort, FilmSession filmSession)
        {
            _filmSession          = filmSession;
            _filmSession.PrintScu = this;

            Connect(clientAETitle, remoteAE, remoteHost, remotePort);
            if (Status == ScuOperationStatus.Canceled)
            {
                return(DicomState.Cancel);
            }
            if (Status == ScuOperationStatus.AssociationRejected || Status == ScuOperationStatus.Failed || Status == ScuOperationStatus.ConnectFailed ||
                Status == ScuOperationStatus.NetworkError || Status == ScuOperationStatus.TimeoutExpired)
            {
                return(DicomState.Failure);
            }
            return(ResultStatus);
        }
Esempio n. 28
0
        private DicomNDeleteResponse DeleteFilmSession(DicomNDeleteRequest request)
        {
            if (_filmSession == null)
            {
                Logger.Error("Can't delete a basic film session doesnot exist for this association {0}", CallingAE);
                return(new DicomNDeleteResponse(request, DicomStatus.NoSuchObjectInstance));
            }

            if (!request.SOPInstanceUID.Equals(_filmSession.SOPInstanceUID))
            {
                Logger.Error("Can't delete a basic film session with instace UID {0} doesnot exist for this association {1}",
                             request.SOPInstanceUID.UID, CallingAE);
                return(new DicomNDeleteResponse(request, DicomStatus.NoSuchObjectInstance));
            }
            _filmSession = null;

            return(new DicomNDeleteResponse(request, DicomStatus.Success));
        }
Esempio n. 29
0
        public void DicomEmptyTest()
        {
            ApplicationEntity host = new ApplicationEntity("DicomEmpty", 2012);

            string store = Path.Combine(Tools.RootFolder, @"EK\Capture\Dicom\DicomToolKit\Test\Data\DicomDir\THGLUZ5J.dcm");

            for (int n = 0; n < 10; n++)
            {
                FilmSession session = CreateFourUpFilmSession();
                print(session, host);

                StorageTest.store(store, host, false);

                string uid = Element.NewUid();
                MppsTest.Begin(uid, host);
                MppsTest.End(uid, host);
            }
        }
Esempio n. 30
0
        public void SerializationTest()
        {
            System.IO.FileStream file = null;
            System.Runtime.Serialization.Formatters.Soap.SoapFormatter formatter = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();
            try
            {
                FilmSession session = CreateFourUpFilmSession();
                using (file = new System.IO.FileStream("session.xml", System.IO.FileMode.Create))
                {
                    formatter.Serialize(file, session);
                }
            }
            finally
            {
                if (file != null)
                {
                    file.Close();
                    file.Dispose();
                    file = null;
                }
            }

            try
            {
                using (file = new System.IO.FileStream("session.xml", System.IO.FileMode.Open))
                {
                    ApplicationEntity host = new ApplicationEntity("DICOMEDITOR", 2008);

                    FilmSession session = (FilmSession)formatter.Deserialize(file);

                    print(session, host);
                }
            }
            finally
            {
                if (file != null)
                {
                    file.Close();
                    file.Dispose();
                    file = null;
                }
            }
        }
Esempio n. 31
0
        /// <summary>
        /// Construct new print job using specified SOP instance UID. If passed SOP instance UID is missing, new UID will
        /// be generated
        /// </summary>
        /// <param name="sopInstance">New print job SOP instance uID</param>
        /// <param name="printer">The printer.</param>
        /// <param name="originator">The originator.</param>
        /// <param name="log">The log.</param>
        /// <param name="session">The session.</param>
        /// <exception cref="System.ArgumentNullException">printer</exception>
        /// /
        public PrintJob(DicomUID sopInstance, Printer printer, string originator, Log.Logger log, FilmSession session)
        {
            if (printer == null)
            {
                throw new ArgumentNullException("printer");
            }

            Log = log;

            if (sopInstance == null || sopInstance.UID == string.Empty)
            {
                SOPInstanceUID = DicomUID.Generate();
            }
            else
            {
                SOPInstanceUID = sopInstance;
            }

            Add(DicomTag.SOPClassUID, SOPClassUID);
            Add(DicomTag.SOPInstanceUID, SOPInstanceUID);

            Printer = printer;

            Status = PrintJobStatus.Pending;

            PrinterName = Printer.PrinterAet;
            Session     = session;

            Originator = originator;

            if (CreationDateTime == DateTime.MinValue)
            {
                CreationDateTime = DateTime.Now;
            }

            PrintJobFolder = SOPInstanceUID.UID;

            var receivingFolder = Environment.CurrentDirectory + @"\PrintJobs";

            FullPrintJobFolder = string.Format(@"{0}\{1}", receivingFolder.TrimEnd('\\'), PrintJobFolder);
            FilmBoxFolderList  = new List <string>();
        }
Esempio n. 32
0
		protected void DeleteFilmSession(FilmSession filmSession)
		{
			var message = new DicomMessage(null, null)
			{
				RequestedSopInstanceUid = filmSession.SopInstanceUid.UID,
				RequestedSopClassUid = SopClass.BasicFilmSessionSopClassUid
			};

			this.Client.SendNDeleteRequest(GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message);
			_eventObject = EventObject.FilmSession;
			Platform.Log(LogLevel.Debug, "Deleting film session...");
		}
Esempio n. 33
0
		protected void CreateFilmBox(FilmSession filmSession, FilmBox filmBox)
		{
			var referencedFilmSessionSequence = new ReferencedInstanceSequenceIod
			{
				ReferencedSopClassUid = SopClass.BasicFilmSessionSopClassUid,
				ReferencedSopInstanceUid = filmSession.SopInstanceUid.UID
			};

			filmBox.ReferencedFilmSessionSequenceList.Add(referencedFilmSessionSequence);

			var message = new DicomMessage(null, (DicomAttributeCollection)filmBox.DicomAttributeProvider);
			this.Client.SendNCreateRequest(null, GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message, DicomUids.BasicFilmBoxSOP);
			_eventObject = EventObject.FilmBox;
			Platform.Log(LogLevel.Debug, "Creating film box...");
		}
Esempio n. 34
0
		protected void CreateFilmSession(FilmSession filmSession)
		{
			var message = new DicomMessage(null, (DicomAttributeCollection)filmSession.DicomAttributeProvider);
			this.Client.SendNCreateRequest(null, GetPresentationContextId(this.AssociationParameters), this.Client.NextMessageID(), message, DicomUids.BasicFilmSession);
			_eventObject = EventObject.FilmSession;

			Platform.Log(LogLevel.Debug, "Creating film session...");
		}
Esempio n. 35
0
		/// <summary>
		/// Begins the print asynchronously.
		/// </summary>
		/// <param name="clientAETitle">The client AE title.</param>
		/// <param name="remoteAE">The remote AE.</param>
		/// <param name="remoteHost">The remote host.</param>
		/// <param name="remotePort">The remote port.</param>
		/// <param name="filmSession">The film session to print.</param>
		/// <param name="callback">The callback.</param>
		/// <param name="asyncState">State of the async.</param>
		/// <returns></returns>
		public IAsyncResult BeginPrint(string clientAETitle, string remoteAE, string remoteHost, int remotePort, FilmSession filmSession, AsyncCallback callback, object asyncState)
		{
			var printDelegate = new PrintDelegate(this.Print);
			return printDelegate.BeginInvoke(clientAETitle, remoteAE, remoteHost, remotePort, filmSession, callback, asyncState);
		}