//1.2.156.112605.75006877305224.20121123025201.9.4420.2 private void LoadStudyByInterationInfo(byte[] interationStudyInfo) { try { Logger.LogFuncUp(); var infoWrapper = new InteractionInfoWrapper(); infoWrapper.Deserialize(interationStudyInfo); var studyUidList = (from study in infoWrapper.GetStudyList() select study.UID).ToList(); var seriesUidList = (from series in infoWrapper.GetSeriesList() select series.UID).ToList(); LoadStudies(studyUidList); if (seriesUidList.Count == 1 && infoWrapper.GetSrcAppName() == "PA")//Efilm series from PA { AddEFilmSeriesToFilmPage(seriesUidList.FirstOrDefault()); } Logger.LogFuncDown(); } catch (Exception ex) { Logger.LogError(ex.StackTrace); } }
public static void SendReplaceStudyToMainFrame(string studyInstanceUid) { try { Logger.LogFuncUp(); //Create interData var interData = new InteractionInfoWrapper(); interData.SetSrcAppName("PA"); interData.SetDestAppName("FilmingCard"); interData.SetOperationID(131);//(int)PAToFilmingOperationID.SendImage); PrepareStudyInfo(studyInstanceUid, ref interData); object[] param = new object[7]; param[0] = (int)CommandID.REPLACE_STUDY; param[1] = CommandType.AsyncCommand; //param[2] = "FilmingFE"; param[4] = null; param[5] = interData.Serialize(); param[6] = null; param[3] = CommunicationNodeName.CreateCommunicationProxyName("MainFrame_FE"); FilmingViewerContainee.SendCommand(param); Logger.LogFuncDown(); } catch (System.Exception ex) { Logger.LogFuncException(ex.Message + ex.StackTrace); } }
private void ReceiveSeriesCompareHandler(InteractionInfoWrapper infoWrapper) { try { Logger.LogFuncUp(); var seriesUidList = infoWrapper.GetSeriesList().Select(seriesInfo => seriesInfo.UID).ToList(); var filmingCard = FilmingViewerContainee.FilmingViewerWindow as FilmingCard; if (null == filmingCard) { Logger.LogError("Can't get filmingCard Instance"); return; } if (null != FilmingViewerContainee.FilmingViewerWindow.Dispatcher) { var dispatcher = Dispatcher.FromThread(FilmingViewerContainee.FilmingViewerWindow.Dispatcher.Thread); if (dispatcher != null) { dispatcher.Invoke((FilmingCard.MethodInvoker)(() => filmingCard.studyTreeCtrl.SwitchToSeriesCompare(seriesUidList)), null); } } else { filmingCard.studyTreeCtrl.SwitchToSeriesCompare(seriesUidList); } Logger.LogFuncDown(); } catch (Exception ex) { Logger.LogFuncException(ex.Message + ex.StackTrace); throw; } }
private void ReceiveImagesHandler(InteractionInfoWrapper infoWrapper) { try { Logger.LogFuncUp(); List <string> imageUiDs = infoWrapper.GetImageList().Select(image => image.UID).ToList(); var filmingCard = FilmingViewerContainee.FilmingViewerWindow as FilmingCard; if (null == filmingCard) { Logger.LogError("Can't get filmingCard Instance"); return; } if (null != FilmingViewerContainee.FilmingViewerWindow.Dispatcher) { var dispatcher = Dispatcher.FromThread(FilmingViewerContainee.FilmingViewerWindow.Dispatcher.Thread); if (dispatcher != null) { dispatcher.Invoke((FilmingCard.MethodInvoker)(() => filmingCard.studyTreeCtrl.SwitchFilmingWithImages(imageUiDs)), null); } } else { filmingCard.studyTreeCtrl.SwitchFilmingWithImages(imageUiDs); } Logger.LogFuncDown(); } catch (Exception ex) { Logger.LogFuncException(ex.Message + ex.StackTrace); throw; } }
public SwitchToFilmingCommandHandler(InteractionInfoWrapper interactionStudyInfo) { infoWrapper = interactionStudyInfo; _paIdToHandlerMapper = new Dictionary <PaOperationId, Action <InteractionInfoWrapper> > { { PaOperationId.Study, ReceiveStudyHandler }, { PaOperationId.Series, ReceiveSeriesHandler }, { PaOperationId.Images, ReceiveImagesHandler }, { PaOperationId.SeriesInterleavePrintInfo, ReceiveInterleavePrintHandler }, { PaOperationId.SeriesCompareInfo, ReceiveSeriesCompareHandler } }; }
private void SynchronousLoadStudyByInterationInfo(byte[] interationStudyInfo) { try { var infoWrapper = new InteractionInfoWrapper(); infoWrapper.Deserialize(interationStudyInfo); List <string> studyInstanceUidList = (from study in infoWrapper.GetStudyList() select study.UID).ToList(); LoadStudies(studyInstanceUidList); } catch (Exception ex) { Logger.LogError(ex.StackTrace); } }
private static void PrepareStudyInfo(string studyInstanceUid, ref InteractionInfoWrapper interData) { var db = FilmingDbOperation.Instance.FilmingDbWrapper; var study = db.GetStudyByStudyInstanceUID(studyInstanceUid); var patient = db.GetPatientByPatientUID(study.PatientUIDFk); //fill patient info var mfPatientBuilder = new PatientInfo.Builder(); mfPatientBuilder.SetAge(study.PatientAge); string birthdate = null == patient.PatientBirthDate ? string.Empty : patient.PatientBirthDate.Value.ToString(); if (!string.IsNullOrEmpty(birthdate)) { birthdate = string.Format("{0:yyyy/MM/dd}", patient.PatientBirthDate); } mfPatientBuilder.SetDateOfBirth(birthdate); mfPatientBuilder.SetGender(patient.PatientSex ?? string.Empty); mfPatientBuilder.SetID(patient.PatientID ?? string.Empty); mfPatientBuilder.SetName(patient.PatientName ?? string.Empty); var interPatient = mfPatientBuilder.Build(); var interPatientList = new List <PatientInfo> { interPatient }; interData.SetPatientList(interPatientList); //fill study info var mfStudyBuilder = new StudyInfo.Builder(); mfStudyBuilder.SetExamStatus(study.StudyFlag); mfStudyBuilder.SetModalityType(study.ModalitiesInStudy ?? String.Empty); mfStudyBuilder.SetID(study.StudyID ?? String.Empty); mfStudyBuilder.SetUID(study.StudyInstanceUID ?? String.Empty); mfStudyBuilder.SetParentPatient(interPatient); var mfStudy = mfStudyBuilder.Build(); var mfStudyList = new List <StudyInfo> { mfStudy }; interData.SetStudyList(mfStudyList); }
private void LoadStudyByInterationInfo(byte[] interationStudyInfo) { try { var infoWrapper = new InteractionInfoWrapper(); infoWrapper.Deserialize(interationStudyInfo); List <string> studyInstanceUidList = (from study in infoWrapper.GetStudyList() select study.UID).ToList(); FilmingViewerContainee.Main.StudyInstanceUID = studyInstanceUidList[0]; LoadStudies(studyInstanceUidList); FilmingViewerContainee.DataHeaderJobManagerInstance.JobFinished(); } catch (Exception ex) { Logger.LogError(ex.StackTrace); } }
private void ProcessInfomationFromPa(InteractionInfoWrapper infoWrapper) { if (FilmingViewerContainee.FilmingViewerWindow as FilmingCard == null) { return; } Action <InteractionInfoWrapper> action; var operateId = (PaOperationId)infoWrapper.GetOperationID(); if (_paIdToHandlerMapper.TryGetValue(operateId, out action)) { action(infoWrapper); } else { Logger.LogError("Wrong OperationId from PA : " + infoWrapper.GetOperationID()); FilmingViewerContainee.DataHeaderJobManagerInstance.JobFinished(); } }
public void LoadStudyByInterationInfo(InteractionInfoWrapper infoWrapper) { try { //var infoWrapper = new InteractionInfoWrapper(); //infoWrapper.Deserialize(interationStudyInfo); List <string> studyInstanceUidList = (from study in infoWrapper.GetStudyList() select study.UID).ToList(); FilmingViewerContainee.Main.StudyInstanceUID = studyInstanceUidList[0]; LoadStudies(studyInstanceUidList); var contextString = "[Switched to Filming Application]" + string.Join(";", studyInstanceUidList); Logger.Instance.LogSvcInfo(Logger.Source, FilmingSvcLogUid.LogUidSvcInfoSwitchToFilming, contextString); ProcessInfomationFromPa(infoWrapper); } catch (Exception ex) { Logger.LogError(ex.StackTrace); } }
/// \brief Handle command /// /// \param[in] cc command context /// \param[in] marObj marshal object /// /// \return 0 for success and -1 for failure public override int HandleCommand(CommandContext pContext, ISyncResult pSyncResult) { try { CommandID id = (CommandID)pContext.iCommandId; Logger.LogFuncUp("Command: " + id.ToString()); switch (id) { case CommandID.SWITCH_TO_APPLICATION: { Logger.LogInfo("Get Mainframe's SWITCH_TO_APPLICATION information!"); if (!FilmingViewerContainee.IsInitialized) { FilmingViewerContainee.InitializeFilmingCard(); } //var switchHandler=new SwitchToFilmingCommandHandler(pContext.sSerializeObject); //switchHandler.LoadStudyByInterationInfo(pContext.sSerializeObject); var infoWrapper = new InteractionInfoWrapper(); infoWrapper.Deserialize(pContext.sSerializeObject); if (infoWrapper.GetSrcAppName().ToUpper() == "PA") //只有从pa进入的切换才进入JobManager队列处理 { var filmingCard = FilmingViewerContainee.FilmingViewerWindow as FilmingCard; if (filmingCard != null && filmingCard.IsModalityDBT()) { break; } List <string> studyInstanceUidList = (from study in infoWrapper.GetStudyList() select study.UID).ToList(); if (studyInstanceUidList.Count > 0) { FilmingViewerContainee.DataHeaderJobManagerInstance.PushProcessedJob( new SwitchToFilmingCommandHandler(infoWrapper)); } } } break; case CommandID.SynchronousStudyList: { Logger.LogInfo("Get Mainframe's Update_StudyList information!"); if (!FilmingViewerContainee.IsInitialized) { FilmingViewerContainee.InitializeFilmingCard(); } SynchronousLoadStudyByInterationInfo(pContext.sSerializeObject); // FilmingViewerContainee.DataHeaderJobManagerInstance.PushProcessedJob(new SynchronousToFilmingCommandHandler(pContext.sSerializeObject)); } break; case CommandID.SAVE_EFILM_COMPLETE_COMMAND: var encoding = new UTF8Encoding( ); string constructedString = encoding.GetString(pContext.sSerializeObject); string[] msg = constructedString.Split('#'); //msg = "patientName" + ["#ErrorInfo"] if (msg.Length > 1) { //FilmingViewerContainee.ShowStatusWarning("UID_Filming_Fail_To_Save_EFilm", msg[0]); FilmingViewerContainee.Main.ShowStatusWarning("UID_Filming_Fail_To_Save_EFilm", msg[0]); } else { //FilmingViewerContainee.Main.ShowStatusInfo("UID_Filming_Complete_To_Save_EFilm", msg[0]); FilmingViewerContainee.Main.ShowStatusInfo("UID_Filming_Complete_To_Save_EFilm", msg[0]); } break; case CommandID.AutoLoadSeries: //auto load series from review //var seriesUids = pContext.sStringObject.Split(';'); //LoadSeries(seriesUids); //FilmingViewerContainee.Main.ShowStatusInfo("UID_Filming_Request_Of_Loading_Series_From_Review"); FilmingViewerContainee.Main.ShowStatusInfo("UID_Filming_Request_Of_Loading_Series_From_Review"); FilmingViewerContainee.DataHeaderJobManagerInstance.PushProcessedJob(new ReviewSeriesCommandHandler(pContext.sStringObject)); break; case CommandID.SET_LAYOUT_COMMAND: if (!FilmingViewerContainee.IsInitialized) { FilmingViewerContainee.InitializeFilmingCard(); } FilmingViewerContainee.DataHeaderJobManagerInstance.PushProcessedJob(new SetLayoutCommandHandler(new LayoutCommandInfo(pContext.sStringObject))); break; default: break; } Logger.LogFuncDown(); } catch (Exception exp) { //MedViewerLogger.Instance.LOG_DEV_ERROR( // MedViewerLogger.Source, // MedViewerLogger.LogUID, // "Exception: " + exp.Message); Logger.LogFuncException(exp.Message); return(-1); } return(0); }
private void ReceiveStudyHandler(InteractionInfoWrapper infoWrapper) { var seriesList = (from series in infoWrapper.GetSeriesList() select series.UID).ToList(); LoadSeriesIntoCard(seriesList); }
private void ReceiveSeriesHandler(InteractionInfoWrapper infoWrapper) { var seriesList = infoWrapper.GetSeriesList(); LoadSeriesIntoCard(seriesList.Select(seriesInfo => seriesInfo.UID).ToList()); }