/// <summary> /// Метод удаляет объект обследования /// http://www.devexpress.com/Support/Center/Question/Details/Q224542 /// </summary> /// <param name="examination">Удаляемое обследование</param> public bool TryToDeleteExamination(IExamination examination) { bool result = false; CriteriaOperator criteria = ObjectSpace.ParseCriteria(string.Format("[OwnerId] = '{0}'", (examination as DevExpress.ExpressApp.DC.DCBaseObject).Oid)); if (FileObjectReadyToDelete(examination, criteria) == true && examination.IsBusy==false) // Проверяем возможность удаления обследования { try { ObjectSpace.Delete(examination); // Удаляем обследование ObjectSpace.CommitChanges(); result = true; } catch (Exception) { ObjectSpace.Rollback(); return false; } try { // По возможности находим и пытаемся удалить файлы обследования ObjectSpace.Delete(ObjectSpace.GetObjects<FileSystemStoreObject>(criteria)); ObjectSpace.CommitChanges(); } catch (Exception) {} } return result; }
public ExaminationController(IExamination examinationBL, IUser userBL, IExampaper exampaperBL, IDepartment department, IQuestion questionBL, IExamTest examTestBL) { _examinationBL = examinationBL; _userBL = userBL; _exampaperBL = exampaperBL; _departmentBL = department; _questionBL = questionBL; _examTestBL = examTestBL; }
public ExamTestController(IExamTest examTestBL, IExamination examinationBL, IExampaper exampaperBL, ICo_CoursePaper _ICoCoursePaperBL, ICo_Course _ICourseBl, ICourseOrder _CourseOrderBL, ICl_CpaLearnStatus _ICpaLearnStatusBL, ICl_LearnVideoInfor _IClLearnVideoInforBL, AttendceBL _IAttendceBL) { ExamTestBL = examTestBL; ExaminationBL = examinationBL; ExampaperBL = exampaperBL; ICoCoursePaperBL = _ICoCoursePaperBL; ICourseBl = _ICourseBl; CourseOrderBL = _CourseOrderBL; ICpaLearnStatusBL = _ICpaLearnStatusBL; IClLearnVideoInforBL = _IClLearnVideoInforBL; IAttendceBL = _IAttendceBL; }
public TeacherCourseController(ICourseOrder _CourseOrderBL, ICo_Course _CoCourseBL, ICl_Attendce _ClAttendceBL, ICl_CourseAdvice _ClCourseAdviceBL, ISurveyQuestion _ISurveyQuestionBL, ISurveyQuestionAnswer _ISurveyQuestionAnswerBL, ISurveyReplyAnswer _ISurveyReplyAnswerBL, ICo_CourseResource _ICoCourseResourceBL, IUser _IuserBL, IExamination _IExaminationBL) { CourseOrderBL = _CourseOrderBL; CoCourseBL = _CoCourseBL; ClAttendceBL = _ClAttendceBL; ClCourseAdviceBL = _ClCourseAdviceBL; ISurveyQuestionBL = _ISurveyQuestionBL; ISurveyQuestionAnswerBL = _ISurveyQuestionAnswerBL; ISurveyReplyAnswerBL = _ISurveyReplyAnswerBL; ICoCourseResourceBL = _ICoCourseResourceBL; IuserBL = _IuserBL; IExaminationBL = _IExaminationBL; }
static void Main() { WrittenExaminationBuilder englishExamBuilder = new WrittenExaminationBuilder(); //定义建造者; IExamination englishExam = englishExamBuilder.Build(); //建造产品; englishExam.ShowResult(); HonestyExaminationDirector militaryExamDirector = new HonestyExaminationDirector(); //定义指挥者; IExamination militaryExam = militaryExamDirector.Construct(); //构建产品; militaryExam.ShowResult(); Console.ReadLine(); }
// public void ExaminationViewChanged(IExamination examination) { foreach (var action in Actions) { if (action.Enabled.Contains("AllowDelete") == true) { if (examination != null) action.Enabled.SetItemValue("AllowDelete", false); else action.Enabled.SetItemValue("AllowDelete", true); } } }
public void FillExaminationConclusion(IExamination examination) { try { string conclutionFileName = examination.ConclusionFile.RealFileName; IOrganization organization = View.ObjectSpace.FindObject<IOrganization>(null); // получаем данные из БД Dictionary<string, string> dictionary = GetExaminationData(examination, organization); //заполняем Бланк заключения данными из БД //FillRtfTemplate(conclutionFileName, dictionary); DocumentServer.DocumentMailMerge(dictionary, conclutionFileName, examination.Patient.FullName); examination.IsPopulatedConclusion = true; } catch (Exception) { string message = CaptionHelper.GetLocalizedText("Exceptions\\FileProcessing", "FillExaminationConclusion"); XtraMessageBox.Show(message, Application.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Заполняем Action для открытия/дозаписи /// </summary> public void ControlActionByByCurrentExaminationsoftType(IExamination examination) { if (examination == null) return; //получаме модуль для выбраного обследования IDynamicModule module = WindowsFormsModule.DynamicModuleManager. GetModuleByAssociationAttributeID("ExaminationType", examination.ExaminationSoftType.ExaminationSoftTypeId); if (module != null) { SingleChoiceAction action = this.Actions.FirstOrDefault(a => a.Id == "ResumeOpenExamination") as SingleChoiceAction; if (action != null) { action.Enabled.SetItemValue("IsBusy", examination.IsBusy == false); action.Items.Clear(); // забираем у модуля список настроек SingleChoiceAction-а IEnumerable<ModuleActionInformation> informations = ModuleGetModeInformationDoVerb(module); if (informations != null) { foreach (var info in informations) { string caption = CaptionHelper.GetLocalizedText("Plugins", info.Caption); ChoiceActionItem item = new ChoiceActionItem { Id = info.Id, Caption = String.IsNullOrEmpty(caption) == false ? caption : info.Caption, Data = info.Data, ImageName = info.ImageName }; action.Items.Add(item); } } } } }
/// <summary> /// Проверяем статус файлов обследования /// </summary> private bool FileObjectReadyToDelete(IExamination examination, CriteriaOperator criteria) { bool readyToDelete = true; foreach (FileSystemStoreObject file in ObjectSpace.GetObjects<FileSystemStoreObject>(criteria)) { //if (CommonData.FileWatcher.GetFileStatus(file.RealFileName) == true) if(FileWatcher.GetFileState(file.RealFileName)==FileState.Open) { // Если один из файлов обследования открыт во внешней программе // то считаем что все обследование не доступно для удаления readyToDelete = false; break; } } return readyToDelete; }
public static void AfterConstruction(IExamination examination, IObjectSpace os) { examination.Examiner = os.GetObjectByKey<Employee>(SecuritySystem.CurrentUserId); examination.Anamnesis = String.Empty; examination.Description = String.Empty; examination.Drugs = String.Empty; examination.IsPopulatedConclusion = false; if (examination.ConclusionFile == null) { //examination.ConclusionFile = os.CreateObject<FileSystemStoreObject>(); examination.ConclusionFile = os.CreateObject<ConclusionFile>(); var conclusion = examination.ConclusionFile; conclusion.FileName = "Conclusion.rtf"; conclusion.OwnerId = (examination as DevExpress.ExpressApp.DC.DCBaseObject).Oid; var organization = os.FindObject<IOrganization>(null); if (organization != null) { var template = organization.ConclusionTemplate; if (template != null) { CreateFromTemplate(template, conclusion); } } examination.ExaminationNotes = os.CreateObject<IExaminationNotes>(); } }
/// <summary> /// Метод пытается удалить файлы обследования /// http://www.devexpress.com/Support/Center/Question/Details/Q224542 /// http://www.devexpress.com/Support/Center/Question/Details/B39797 /// </summary> /// <param name="examination">Обследование</param> private bool TryToDeleteExaminationFiles(IExamination examination) { bool result = false; try { CriteriaOperator criteria = ObjectSpace.ParseCriteria(string.Format("[OwnerId] = '{0}'", (examination as DevExpress.ExpressApp.DC.DCBaseObject).Oid)); // Находим и пытаемся удалить все файлы для данного обследования ObjectSpace.Delete(ObjectSpace.GetObjects<FileSystemStoreObject>(criteria)); // Делаем коммиты в базу ((XPObjectSpace)ObjectSpace).Session.CommitTransaction(); ((XPObjectSpace)ObjectSpace).Session.FlushChanges(); // <-- х.з почему работает только так ObjectSpace.CommitChanges(); result = true; } catch (Exception) { ObjectSpace.Rollback(); result = false; } return result; }
public static IList<FileSystemStoreObject> Get_Attachments(IExamination examination, IObjectSpace objectSpace) { IList<FileSystemStoreObject> collection = null; var accept = CriteriaOperator.Parse("OwnerId = ?", objectSpace.GetKeyValue(examination)); if ((SecuritySystem.CurrentUser as Employee).PermitToConclusion == true) { collection = objectSpace.GetObjects<FileSystemStoreObject>(accept); } else {// скрываем файл заключения если у пользователя нет прав var conclusion = examination.ConclusionFile; var except = CriteriaOperator.Parse("Oid != ?", objectSpace.GetKeyValue(conclusion)); collection = objectSpace.GetObjects<FileSystemStoreObject>(CriteriaOperator.And(accept, except)); } return collection; }
private void RestoreConclusionFromTemplate(IExamination examination, IOrganization organization, bool PopulateRequired = true) { FileSystemStoreObject template = organization.ConclusionTemplate; if (template != null) { try { ////CopyToStoreObject(template.RealFileName, examination.ConclusionFile); //CopyToFile(template.RealFileName, examination.ConclusionFile.RealFileName); if (PopulateRequired == true) {// если требуется заполнить восстановленый шаблон Dictionary<string, string> dictionary = GetExaminationData(examination, organization); DocumentServer.RestoreFromTemplate(template.RealFileName, examination.ConclusionFile.RealFileName, dictionary, examination.Patient.FullName); examination.IsPopulatedConclusion = true; } else { DocumentServer.RestoreFromTemplate(template.RealFileName, examination.ConclusionFile.RealFileName, examination.Patient.FullName); examination.IsPopulatedConclusion = false; } //View.ObjectSpace.CommitChanges(); } catch (IOException) { string message = CaptionHelper.GetLocalizedText("Exceptions\\FileProcessing", "FileOpenInExternalProgram"); XtraMessageBox.Show(message, Application.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception) { string message = CaptionHelper.GetLocalizedText("Exceptions\\FileProcessing", "UnknownFileProcessingError"); XtraMessageBox.Show(message, Application.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private bool CheckExaminationFilesStatus(IExamination examination) { bool readyToDelete = true; CriteriaOperator criteria = ObjectSpace.ParseCriteria(string.Format("[OwnerId] = '{0}'", (examination as DevExpress.ExpressApp.DC.DCBaseObject).Oid)); foreach (FileSystemStoreObject file in ObjectSpace.GetObjects<FileSystemStoreObject>(criteria)) { //if (CommonData.FileWatcher.GetFileStatus(file.RealFileName) == true) if (FileWatcher.GetFileState(file.RealFileName) == FileState.Open) { readyToDelete = false; break; } } return readyToDelete; }
/// <summary> /// Метод обновляет представление содержащее IExamination examination /// </summary> private bool TryToGetRefreshedView(IExamination examination, out ListView list) { bool result = false; list = GetListViewFromControllerByType(this, typeof(IExamination)); if (list != null) { result = TryToRefreshView(examination, list); } return result; }
private void NewPatientImportExamination() { importExamination = Application.MainWindow.View.ObjectSpace.CreateObject<IExamination>(); importExamination.Status = ExaminationStatus.Registered; //DateTime examDateTime = ConcatenateDateAndTime(GetValueByID(importFileHeader, "ExamDate"), GetValueByID(importFileHeader, "ExamTime")); importExamination.TimeStart = importData.StartExaminationDateTime; importExamination.TimeStop = importData.EndExaminationDateTime; Guid examinationSoftTypeId = GetAssociationAttributeIdFromModuleByFileExtension(dynamicModule, Path.GetExtension(importFileFullName).ToLower()); importExamination.ExaminationSoftType = Application.MainWindow.View.ObjectSpace.FindObject<ExaminationSoftType> (CriteriaOperator.Parse("ExaminationSoftTypeId = ?", examinationSoftTypeId)); Application.MainWindow.View.ObjectSpace.CommitChanges(); //importExamination.ExaminationFile = Application.MainWindow.View.ObjectSpace.CreateObject<FileSystemStoreObject>(); importExamination.ExaminationFile = Application.MainWindow.View.ObjectSpace.CreateObject<ExaminationFile>(); importExamination.ExaminationFile.FileName = importExamination.ObjectCode.Replace('/', '.') + importExamination.ExaminationSoftType.ExaminationFileExtension; importExamination.ExaminationFile.OwnerId = (importExamination as DevExpress.ExpressApp.DC.DCBaseObject).Oid; Application.MainWindow.View.ObjectSpace.CommitChanges(); //TransferExaminationFile(fileFullName, importExamination.ExaminationFile); UploadExaminationFile(); }
private void SetCurrentExamination(IExamination exam, DevExpress.ExpressApp.ListView list) { if (exam != null) { list.CurrentObject = list.ObjectSpace.FindObject<IExamination>(CriteriaOperator.Parse(string.Format("[ObjectCode] = '{0}'", exam.ObjectCode))); } }
/// <summary> /// Получаем данные из БД для записи в шаблон /// </summary> public Dictionary<string, string> GetExaminationData(IExamination examination, IOrganization organization) { Dictionary<string, string> dictionary = new Dictionary<string, string>(); AddText("DEVICE", "", dictionary);//DEVICE ExaminationSoftType softType = examination.ExaminationSoftType; if (softType != null) { AddText("EXAMINATION_SOFT_TYPE", softType.Name, dictionary);//ExaminationSoftType } FileSystemStoreObject examilationFile = examination.ExaminationFile; if (examilationFile != null) { AddText("FILE_NAME", examilationFile.FileName, dictionary);//FILE_NAME } IPatient patient = examination.Patient; if (patient != null) { //AddText("пациент_полное_имя", CommonData.RTFData.GetRTFString(patient.FullName), dictionary);//PATIENT_FULLNAME AddText("PATIENT_CODE", RTFData.GetRTFString(patient.RegCode), dictionary);//PATIENT_CODE AddText("PATIENT_FULLNAME", RTFData.GetRTFString(patient.FullName), dictionary);//PATIENT_FULLNAME AddText("DOB", RTFData.GetRTFString(patient.Birthday.ToString("dd/MM/yyyy")), dictionary);//DOB EnumDescriptor descriptor = new EnumDescriptor(typeof(DomainComponents.Common.Gender)); string gender = descriptor.GetCaption(patient.Gender); AddText("GENDER", RTFData.GetRTFString(gender), dictionary);//GENDER AddText("ADDRESS", RTFData.GetRTFString(patient.RegistrationAddress.Address), dictionary);//ADDRESS AddText("PHONE", RTFData.GetRTFString(patient.MainPhone), dictionary);//PHONE AddText("JOB", RTFData.GetRTFString(patient.JobTitle), dictionary);//JOB AddText("DOCUMENT", RTFData.GetRTFString(patient.IdentifyCardInfo), dictionary);//DOCUMENT AddText("HISTORY", RTFData.GetRTFString(patient.DiseaseHistory), dictionary);//HISTORY AddText("AGE", RTFData.GetRTFString(patient.Age), dictionary);//AGE AddPicture("PHOTO_PICTURE", patient.Photo, dictionary); // PHOTO } AddText("REG_DATE", RTFData.GetRTFString(examination.RegDate.ToString("dd.MM.yyyy")), dictionary);//DATE AddText("REG_TIME", RTFData.GetRTFString(examination.RegDate.ToString("HH:mm")), dictionary);//TIME AddText("DIAGNOSIS", RTFData.GetRTFString(examination.Diagnosis), dictionary);//DIAGNOSIS AddText("EXAMINER_FULLNAME", RTFData.GetRTFString(examination.Examiner.UserName), dictionary);//EXAMINER if (organization != null) { AddPicture("LOGO_PICTURE", organization.Logo, dictionary); //LOGO AddText("ORGANIZATION_NAME", organization.OrganizationName, dictionary);//ORGANIZATION_NAME } Employee currentUser = SecuritySystem.CurrentUser as Employee; if (currentUser != null) { AddText("CURRENT_USER", RTFData.GetRTFString(currentUser.UserName), dictionary);// CURRENT_USER } AddText("DATETIME_NOW", RTFData.GetRTFString(DateTime.Now.ToString("dd.MM.yyyy HH:mm")), dictionary); //DATETIME_NOW return dictionary; }
private void ExecuteModule(IDynamicModule module, ExecuteCommand command, IObjectSpace os, IExamination examination) { // Определяем идентификатор приложения которое будет открывать файл обследования // Для модулей которые могут работать с несколькими приложениями Guid soft = examination.ExaminationSoftType.ExaminationSoftTypeId; // Получаем имя РЕАЛЬНОГО файла обследования из базы !!! string file = examination.ExaminationFile.RealFileName; Guid context = (examination as DevExpress.ExpressApp.DC.DCBaseObject).Oid; if (System.IO.File.Exists(file) == true) {// если файл удалось найти в том месте, где он должен быть if (FileWatcher.GetFileState(file) == FileState.Close) {// если файл никем не используется т.е закрыт if (new FileInfo(file).Length == 0) {// если файл обследования по какой то причине пустой, то открываем его как новый // Проверяем готовность модуля if (ModuleIsReady(module, soft, command) == false) return; PatientData data = GetFromExamination(examination); if (TryToExecuteModule(module, ExecuteCommand.New, file, context, data) == false) {// если при запуске приложения возникла ошибка // удаляем обследование если его можно удалять if (examination.AllowEmptyOrNotExistsFile == false) os.Delete(examination); string message = CaptionHelper.GetLocalizedText("Exceptions", "TheExecutableFileOfRequestedApplicationWasNotFound"); string title = CaptionHelper.GetLocalizedText("Captions", "ApplicationLaunchError"); XtraMessageBox.Show(message, title, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } if (os.IsModified == true) os.CommitChanges(); } else {// Если файл не пустой // Проверяем готовность модуля if (ModuleIsReady(module, soft, command) == false) return; if (TryToExecuteModule(module, command, file, context) == false) { string message = CaptionHelper.GetLocalizedText("Exceptions", "TheExecutableFileOfRequestedApplicationWasNotFound"); string title = CaptionHelper.GetLocalizedText("Captions", "ApplicationLaunchError"); XtraMessageBox.Show(message, title, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } if (os.IsModified == true) os.CommitChanges(); } } else {// если файл в момент записи открыт где то еще string message = "Ошибка доступа к файлу обследования!\nВозможно файл открыт внешним приложением или нет прав доступа"; //CaptionHelper.GetLocalizedText("Warnings", "RequiredExaminationIsAlreadyLaunched"); XtraMessageBox.Show(message, "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); return; } } else // АХТУНГ !!! НАДО УДАЛЯТЬ ОБСЛЕДОВАНИЯ СОДЕРЖАШИЕ УДАЛЕННЫЕ ФАЙЛЫ ИЛИ НЕ НАДО ?!!?!?!? {// если реального файла нет - создаем новый пустой файл using (Stream stream = File.Create(file)) { }; // Проверяем готовность модуля if (ModuleIsReady(module, soft, command) == false) return; PatientData data = GetFromExamination(examination); TryToExecuteModule(module, ExecuteCommand.New, file, context, data); } os.Refresh(); }
private void ExecuteCommand(String command, UnitOfWork uow, IExamination examination, object[] param = null) { switch (command) { case "FileOpened": // передается при открытии файла { examination.Status = ExaminationStatus.InProgress; uow.CommitChanges(); break; } case "FileClosed": // при закрытии файла { string file = examination.ExaminationFile.RealFileName; if (String.IsNullOrEmpty(file) == false) { FileInfo info = new FileInfo(file); if ((info.Exists == true && info.Length > 0) || examination.AllowEmptyOrNotExistsFile == true) { examination.TimeStop = DateTime.Now; examination.Status = ExaminationStatus.Completed; examination.IsBusy = false; uow.CommitChanges(); break; } } uow.Delete(examination); uow.CommitChanges(); } break; case "FileOpenError":// Ошибка открытия файла { examination.IsBusy = false; uow.CommitChanges(); } break; case "FileIsBackToWork":// если файл открыт в приаттаченом процессе { if (examination.Status == ExaminationStatus.Registered) { examination.Status = ExaminationStatus.InProgress; uow.CommitChanges(); } } break; case "ProcessStarted":// Процесс запущен { examination.IsBusy = true; //Thread.Sleep(10000); uow.CommitChanges(); } break; case "ProcessExited": // завершился процесс запущенный через плагин { if (examination.IsBusy == true) { // если при завершении процесса обследование осталось не закрытым string file = examination.ExaminationFile.RealFileName; if (String.IsNullOrEmpty(file) == false) {// проверяем файл FileInfo info = new FileInfo(file); if ((info.Exists == true && info.Length > 0) || examination.AllowEmptyOrNotExistsFile == true) {// если существует не пустой файл или для данного обследования разрешены пустые файлы examination.TimeStop = DateTime.Now; examination.Status = ExaminationStatus.Dropped; examination.IsBusy = false; uow.CommitChanges(); // помечаем как остановленное и выходим break; } } // удаляем все что не попало под вышестоящие критерии uow.Delete(examination); uow.CommitChanges(); } } break; case "Terminate": // процесс был остановлен пользователем через ProcessKill { //обследование прервано если процесс был убит examination.TimeStop = DateTime.Now; examination.Status = ExaminationStatus.Dropped; uow.CommitChanges(); break; } case "OpenConclusionFile": // Открыть заключение из EEGStudio { try { if (((SecuritySystem.CurrentUser as MitsarDataStudio.Module.BusinessObjects.Employee).PermitToConclusion) == true) {// у пользователя есть права для работы с заключениями string title = examination.Patient.FullName; string file = examination.ConclusionFile.RealFileName; if (examination.IsPopulatedConclusion == true) { DocumentServer.OpenFile(file, title); } else { IOrganization organization = uow.FindObject<IOrganization>(null); ConclusionViewController controller = this.Application.CreateController<ConclusionViewController>(); if (controller != null) { var mergeSource = controller.GetExaminationData(examination, organization); DocumentServer.OpenFile(file, mergeSource, title); examination.IsPopulatedConclusion = true; uow.CommitChanges(); } } } else ErrorManager.RaiseException(ErrorCode.DocumentServer_CurrentUserCanNotWorkWithConclusion); } catch (Exception exception) { string reason = string.Format("{0}_ExecuteCommand_Error", command); throw new FaultException<uint>(ErrorManager.GetExceptionCode(exception), reason); } break; } case "InsertIntoConclusionFile":// Добавление в существующий файл заключения из EEGStudio { if (param != null) { string inserted = param[0].ToString(); try { if (((DevExpress.ExpressApp.SecuritySystem.CurrentUser as MitsarDataStudio.Module.BusinessObjects.Employee).PermitToConclusion) == true) {// у пользователя есть права для работы с заключениями string target = examination.ConclusionFile.RealFileName; string title = examination.Patient.FullName; //DocumentServer.DocumentMerge(target, inserted, title); if (examination.IsPopulatedConclusion == true) { DocumentServer.DocumentMerge(target, inserted, title); } else { IOrganization organization = uow.FindObject<IOrganization>(null); ConclusionViewController controller = this.Application.CreateController<ConclusionViewController>(); if (controller != null) { var mergeSource = controller.GetExaminationData(examination, organization); DocumentServer.DocumentMerge(target, inserted, mergeSource, title); examination.IsPopulatedConclusion = true; uow.CommitChanges(); } } } else ErrorManager.RaiseException(ErrorCode.DocumentServer_CurrentUserCanNotWorkWithConclusion); } catch (Exception exception) { string reason = string.Format("{0}_ExecuteCommand_Error", command); throw new FaultException<uint>(ErrorManager.GetExceptionCode(exception), reason); } } break; } default: { DevExpress.Persistent.Base.Tracing.Tracer.LogError("Unknown command \"{0}\"", command); break; } } }
public void OpenConclusion(IExamination examination, bool PopulateRequire = false) { if (PopulateRequire == true) { if (examination.IsPopulatedConclusion == true) {// если уже заполнено //ExecuteInDefaultApplication(examination.ConclusionFile.RealFileName); this.OpenConclusionFile(examination.ConclusionFile.RealFileName, examination.Patient.FullName); } else {// если надо заполнить FillExaminationConclusion(examination); } } else this.OpenConclusionFile(examination.ConclusionFile.RealFileName, examination.Patient.FullName); }
/// <summary> /// Импортируем обследование в выбранного пациента /// </summary> private void ExistPatientImportExamination(IPatient patient) { importExamination = Application.MainWindow.View.ObjectSpace.CreateObject<IExamination>(); importExamination.Patient = patient;//Application.MainWindow.View.ObjectSpace.GetObject<IPatient>(patient); importExamination.Status = ExaminationStatus.Registered; //DateTime examDateTime = ConcatenateDateAndTime(GetValueByID(importFileHeader, "ExamDate"), GetValueByID(importFileHeader, "ExamTime")); importExamination.TimeStart = importData.StartExaminationDateTime; importExamination.TimeStop = importData.EndExaminationDateTime; Guid examinationSoftTypeId = (from ModuleAssociationAttribute attribute in dynamicModule.GetType().Assembly.GetCustomAttributes(typeof(ModuleAssociationAttribute), true) where (attribute as ModuleAssociationAttribute).FileExtension == System.IO.Path.GetExtension(importFileFullName).ToLower() select attribute.OID).FirstOrDefault(); importExamination.ExaminationSoftType = Application.MainWindow.View.ObjectSpace.FindObject<ExaminationSoftType>(CriteriaOperator.Parse("ExaminationSoftTypeId = ?", examinationSoftTypeId)); var items = (Application.MainWindow.View as DashboardView).Items; patientListView = (from DashboardViewItem edt in items where edt.InnerView.ObjectTypeInfo.Type == typeof(IPatient) select edt.InnerView).FirstOrDefault() as DevExpress.ExpressApp.ListView; examinationsListView = (from DashboardViewItem edt in items where edt.InnerView.ObjectTypeInfo.Type == typeof(IExamination) select edt.InnerView).FirstOrDefault() as DevExpress.ExpressApp.ListView; //objectspaceCommitted += (object send, EventArgs args) => //{ // Application.MainWindow.View.ObjectSpace.Committed -= objectspaceCommitted; // GridListEditor editor = patientListView.Editor as GridListEditor; // editor.Grid.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate() { SetCurrentPatient(patient, patientListView); })); // GridListEditor examEditor = examinationsListView.Editor as GridListEditor; // examEditor.Grid.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate() { SetCurrentExamination(importExamination, examinationsListView); })); //}; //Application.MainWindow.View.ObjectSpace.Committed += objectspaceCommitted; if(Application.MainWindow.View.ObjectSpace.IsModified==true) Application.MainWindow.View.ObjectSpace.CommitChanges(); //importExamination.ExaminationFile = Application.MainWindow.View.ObjectSpace.CreateObject<FileSystemStoreObject>(); importExamination.ExaminationFile = Application.MainWindow.View.ObjectSpace.CreateObject<ExaminationFile>(); importExamination.ExaminationFile.FileName = importExamination.ObjectCode.Replace('/', '.') + importExamination.ExaminationSoftType.ExaminationFileExtension; importExamination.ExaminationFile.OwnerId = ((DevExpress.ExpressApp.DC.DCBaseObject)importExamination).Oid; Application.MainWindow.View.ObjectSpace.CommitChanges(); //TransferExaminationFile(fileFullName, examination.ExaminationFile); UploadExaminationFile(); }
private bool TryToRefreshView(IExamination examination, ListView list) { bool result = false; try { list.ObjectSpace.Refresh(); list.CurrentObject = list.ObjectSpace.GetObject(examination); result = true; } catch (Exception) { result = false; } return result; }
/// <summary> /// !!! ВСЕ ЭТО НАДО ПЕРЕДЕЛАТЬ КАК ЗДЕСЬ --> http://www.devexpress.com/Support/Center/Example/Details/E1487 /// </summary> private void ImportExamination_Execute(object sender, EventArgs e) { importPatient = null; importExamination = null; isImportCompleted = false; importWizard = null; showWelcomePage = true; OpenFileDialog openFileDialog = new OpenFileDialog() { CheckFileExists = true, Multiselect = true, //false, CheckPathExists = true, Filter = GetDialogFilter(), //CaptionHelper.GetLocalizedText("CustomFomrsMessages", "importFileDialogFileter"), Title = CaptionHelper.GetLocalizedText("CustomFomrsMessages", "importFiledialogTitle") }; if (openFileDialog.ShowDialog() == DialogResult.OK) { //importFileFullName = openFileDialog.FileName; var importFiles= openFileDialog.FileNames; int totalFiles = importFiles.Count(); int currentNumber = 0; foreach (string file in importFiles) { if (importWizard != null) { if (importWizard.Canceled == true) return; } currentNumber++; importFileFullName = file; // находим модуль по расширению файла string extension = Path.GetExtension(importFileFullName); dynamicModule = GetModuleByAssociationAttributeFileExtension(extension); if (dynamicModule == null) { string error = String.Format(CaptionHelper.GetLocalizedText("CustomFomrsMessages", "FileImportError"), importFileFullName); string desctiption = CaptionHelper.GetLocalizedText("CustomFomrsMessages", "ImportModuleError"); XtraMessageBox.Show(String.Format("{0}\n{1}",error, desctiption),"",MessageBoxButtons.OK, MessageBoxIcon.Error); continue; //return; } XElement header = null; // получаем данные пациента из файла try { header = dynamicModule.DoVerb(VerboseCommand.ExtractData, importFileFullName) as XElement; } catch (Exception ex) { if (ex.Message == "ExaminationImportNoPatientDataFound") { header = null; //XtraMessageBox.Show(CaptionHelper.GetLocalizedText("Exceptions", "ExaminationImportNoPatientDataFound")); } else { string error = String.Format(CaptionHelper.GetLocalizedText("CustomFomrsMessages", "FileImportError"), importFileFullName); string desctiption = CaptionHelper.GetLocalizedText("Exceptions", "ExaminationImportWrongFileType"); XtraMessageBox.Show(String.Format("{0}\n{1}", error, desctiption),"",MessageBoxButtons.OK, MessageBoxIcon.Error); isImportCompleted = false; continue; //return; } } importData = CreateImportData(header); //проверяем дату if (importData.StartExaminationDateTime == DateTime.MinValue) {// если дату из файла извлеч не удалось то ставим дату создания файла FileInfo info = new FileInfo(importFileFullName); importData.StartExaminationDateTime = info.CreationTime; } // Запускаем мастер импорта обследования в БД importWizard = new ImportWizardForm(); string fullName = String.Format("{0} {1} {2}", importData.LastName, importData.FirstName, importData.MiddleName); string title = String.Format("{0} ({1}/{2})", importFileFullName, currentNumber, totalFiles); importWizard.SetTitle(title); importWizard.SetMessage(string.Format(CaptionHelper.GetLocalizedText("CustomFomrsMessages", "ImportPatientCaptionSearch"), fullName), 1); importWizard.SetMessage(CaptionHelper.GetLocalizedText("CustomFomrsMessages", "ImportPatientClosiestMatch"), 2); importWizard.isLocalized = true; // Коллекция пациентов для мастера импорта XPCollection patientsCollection = (XPCollection)Application.MainWindow.View.ObjectSpace.CreateCollection(typeof(IPatient)); importWizard.WelcomePage.Visible = (showWelcomePage == true);// скрываем страницу приветствия если она уже показывалась importWizard.DisplayPatientCollection(patientsCollection, fullName); importWizard.WizardControl.NextClick += new WizardCommandButtonClickEventHandler(importWizardControl_NextClick); importWizard.WizardControl.SelectedPageChanging += new WizardPageChangingEventHandler(importWizardControl_SelectedPageChanging); importWizard.WizardControl.CustomizeCommandButtons += (o,a) => { if (currentNumber != totalFiles) {// если файл не последний CompletionWizardPage page = a.Page as CompletionWizardPage; if (page != null) {// см. Предложение #4587 page.AllowCancel = true; page.ProceedText = CaptionHelper.GetLocalizedText("CustomFomrsMessages", "DataImportMasterProceed"); a.FinishButton.Text = a.NextButton.Text; //"Далее >"; } } }; importWizard.WizardControl.CancelClick += (o, a) => { }; importWizard.WizardCompleted += (args) => { isImportCompleted = args; }; importWizard.ShowDialog(); } } }
public static string Get_PatientAge(IExamination examination) { return (examination.Patient != null ? examination.Patient.Age : string.Empty); }
// ЗАПОЛНЯТЬ ЗАКЛЮЧЕНИЕ ПРИ СОЗДАНИИ НЕ НАДО !!! private void PopulateConclusionFile(IExamination examination) { //ConclusionViewController conclusionController = Frame.GetController<ConclusionViewController>(); //if (conclusionController != null) //{ // conclusionController.PopulateConclusionFile(examination); //} }
public void PopulateConclusionFile(IExamination examination) { //Dictionary<string, string> dictionary = GetExaminationData(examination); //IOrganization organization = ObjectSpace.FindObject<IOrganization>(null); IOrganization organization = View.ObjectSpace.FindObject<IOrganization>(null); // получаем данные из БД Dictionary<string, string> dictionary = GetExaminationData(examination, organization); if (organization != null) { StreamReader reader = null; StreamWriter writer = null; try { reader = new StreamReader(File.Open(organization.ConclusionTemplate.RealFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); writer = new StreamWriter(File.Open(examination.ConclusionFile.RealFileName, FileMode.OpenOrCreate)); while (reader.EndOfStream == false) { StringBuilder line = new StringBuilder(reader.ReadLine()); if (Contains(line, '%') == true) { foreach (string code in dictionary.Keys) line.Replace(code, dictionary[code]); } writer.WriteLine(line); } } catch (Exception) { } finally { if (reader != null) reader.Close(); if (writer != null) writer.Close(); } } }
private void UpdateMasterObject(object masterObject) { //CurrentFilesOwner = masterObject != null ? View.ObjectSpace.GetKeyValue(masterObject) : null; if (masterObject != null) { CurrentFilesOwner = View.ObjectSpace.GetKeyValue(masterObject); CurrentExamination = masterObject as IExamination; } else { CurrentFilesOwner = null; CurrentExamination = null; } // вкл/выкл. кнопку загрузки файлов если есть обследование DownloadFiles.Enabled.SetItemValue("HasMaster", CurrentFilesOwner != null); }
/// <summary> /// Метод получает необходимые данные пациента из БД /// </summary> private PatientData GetFromExamination(IExamination examination) { string examinationCode = examination.ObjectCode.TrimStart(new char[] { '0' }); string patientCode = examination.Patient.ObjectCode.TrimStart(new char[] { '0' }); string patientFullName = examination.Patient.FullName; string patientTitleName = String.Format("[{0} {1}] {2}", examinationCode, patientCode, patientFullName); EnumDescriptor descriptor = new EnumDescriptor(typeof(DomainComponents.Common.Gender)); string gender = descriptor.GetCaption(examination.Patient.Gender); DateTime timeStart = examination.TimeStart; return new PatientData() { FullName = patientTitleName,//examination.Patient.FullName, Birthday = examination.Patient.Birthday, Gender = gender,//Enum.GetName(typeof(DomainComponents.Common.Gender), examination.Patient.Gender), //String.Format(@"Enums\DomainComponents.Common.Gender", examination.Patient.Gender), Address = examination.Patient.RegistrationAddress != null ? examination.Patient.RegistrationAddress.Address : String.Empty, //Phone = examination.Patient.MainPhoneNumber, Document = String.Format("{0} {1}", examination.Patient.IdentityCardType != null ? examination.Patient.IdentityCardType.DocumentName : String.Empty, examination.Patient.IdentifyCardInfo).Replace(Environment.NewLine, " "), //Document = String.Format("{0}" + "%" + "{1}", examination.Patient.Passport.IdentityCardType != null ? // examination.Patient.Passport.IdentityCardType.DocumentName : String.Empty, examination.Patient.Passport.IdentifyCardInfo), // х.з зачем было через "%" TimeStart = examination.TimeStart }; }