public ActionResult Create([DataSourceRequest] DataSourceRequest request, FilmSession model) { db.FilmSessions.Add(model); db.SaveChanges(); return(Json(new[] { model }.ToDataSourceResult(request))); }
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}"); }
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); } }
public void PresentationLut_NoReferencedPresentationLutSequence_GetterReturnsNull() { var session = new FilmSession(DicomUID.BasicFilmSession); var box = new FilmBox(session, null, DicomTransferSyntax.ImplicitVRLittleEndian); Assert.Null(box.PresentationLut); }
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); }
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))); }
public PrintClient() { _files = new List <string>(); FilmSession = new FilmSession(DicomUID.BasicFilmSessionSOPClass); FilmSession.PresentationLuts.Add(new PresentationLut { PresentationLutShape = "IDENTITY" }); }
public void ExternalFourUpPortraitTest() { ApplicationEntity host = new ApplicationEntity("DICOMEDITOR", 2008); FilmSession session = CreateFourUpFilmSession(); print(session, host); }
public void Clean() { //delete the current active print job and film sessions lock (_synchRoot) { _filmSession = null; _printJobList.Clear(); } }
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..."); }
public PrintJob(string jobLabel) { FilmSession = new FilmSession(DicomUID.BasicFilmSessionSOPClass) { FilmSessionLabel = jobLabel, MediumType = "PAPER", NumberOfCopies = 1 }; }
public async Task <FilmSession> AddAsync(FilmSession filmSession, CancellationToken token) { filmSession.Id = 0; _context.FilmSessions.Add(filmSession); await _context.SaveChangesAsync(token); return(filmSession); }
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..."); }
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)); } } } }
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")); }
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(); }
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..."); }
private void Clean() { lock (_synchRoot) { if (_filmSession != null) { _filmSession.Clear(); _filmSession = null; } _printJobList.Clear(); } }
/** * 添加构造方法 */ 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() }; }
/// <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; }
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..."); }
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..."); }
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); }
/// <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); }
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)); }
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); } }
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; } } }
/// <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>(); }
/// <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); }