private void SetCurrentPatientID(object sender, object data)
        {
            if (sender != null)
            {
                _fileNameOnly = sender as string;
            }
            CurrentDocument = new HirurgOverview();
            try
            {
                // CurrentPatient = PtRep.Get((int)data);CurrentDocument
                Doctors = new ObservableCollection <Docs>();
                //bool tester = true;
                foreach (var doc in Data.Doctor.GetAll)
                {
                    if (doc.isEnabled.Value)
                    {
                        Doctors.Add(new Docs(doc));
                    }
                }


                if (data != null && int.Parse(data.ToString()) != 0)
                {
                    CurrentDocument = Data.HirurgOverview.Get(int.Parse(data.ToString()));
                    if (CurrentDocument.DoctorId != 0)
                    {
                        var doc = Data.Doctor.Get(CurrentDocument.DoctorId);
                        foreach (var docs in Doctors)
                        {
                            if (docs.doc.Id == doc.Id)
                            {
                                DoctorSelectedId = Doctors.IndexOf(docs);
                            }
                        }
                    }
                    // DoctorSelectedId = CurrentDocument.DoctorId;
                    IsDocAdded = Visibility.Visible;
                    if (IsVisibleForSecretary != Visibility.Hidden)
                    {
                        IsDocAddedSave = Visibility.Visible;
                    }
                    TextForDoWhat = "";
                }
                else
                {
                    DoctorSelectedId = 0;
                    IsDocAddedSave   = Visibility.Hidden;
                    IsDocAdded       = Visibility.Hidden;
                    TextForDoWhat    = "Сформируйте или загрузите документ";
                }
            }
            catch
            {
            }
            IsAnalizeLoadedVisibility = Visibility.Hidden;


            //TODO: LOAD FROM FILE
        }
        public ViewModelHirurgOverview(NavigationController controller) : base(controller)
        {
            IsAnalizeLoadedVisibility = Visibility.Hidden;
            ButtonName = "К Пациенту";//SetCurrentPatientIDRealyThisTime
            MessageBus.Default.Subscribe("SetAccIDForHirurgOverview", SetAccID);
            MessageBus.Default.Subscribe("GetHirurgOverviewForHirurgOverview", SetCurrentPatientID);
            MessageBus.Default.Subscribe("SetCurrentPatientIDRealyThisTime", SetCurrentPatientIDRealyThisTime);
            // MessageBus.Default.Subscribe("GetAnalizeForAnalizeOverview", SetCurrentAnalizeID);
            HasNavigation          = false;
            Controller             = controller;
            ToCurrentObsledCommand = new DelegateCommand(
                () =>
            {
                if (!string.IsNullOrWhiteSpace(FileName))
                {
                    MessageBoxResult dialogResult = MessageBox.Show("Вы сохранили изменения в документе?", "", MessageBoxButton.YesNo);
                    if (dialogResult == MessageBoxResult.Yes)
                    {
                        Controller.NavigateTo <ViewModelAddPhysical>();
                        FileName = "";
                    }
                }
                else
                {
                    Controller.NavigateTo <ViewModelAddPhysical>();
                    FileName = "";
                }
            }
                );
            CurrentSavePanelViewModel = new SclerozPanelViewModel(this);
            OpenAddSaveCommand        = new DelegateCommand(() =>
            {
                if (!string.IsNullOrWhiteSpace(FileName))
                {
                    CurrentSavePanelViewModel.ClearPanel();
                    CurrentSavePanelViewModel.PanelOpened = true;
                }
                else
                {
                    MessageBox.Show("Сначала откройте документ");
                }
            });
            CurrentSelectDoctorPanelViewModel = new SclerozPanelViewModel(this);

            RevertSelectDoctorCommand = new DelegateCommand(() =>
            {
                CurrentSelectDoctorPanelViewModel.PanelOpened = false;
            });
            OpenSelectDoctorCommand = new DelegateCommand(() =>
            {
                CurrentSelectDoctorPanelViewModel.ClearPanel();
                CurrentSelectDoctorPanelViewModel.PanelOpened = true;
            });


            RevertSaveCommand = new DelegateCommand(() =>
            {
                CurrentSavePanelViewModel.PanelOpened = false;
            });

            OpenWordDocument = new DelegateCommand(
                () =>
            {
                int togle = 0;

                FileName      = System.IO.Path.GetTempPath() + "Осмотр_хирурга.docx";
                _fileNameOnly = "Осмотр_хирурга.docx";
                byte[] bte    = CurrentDocument.DocTemplate;

                for (; ;)
                {
                    try
                    {
                        File.WriteAllBytes(FileName, bte);

                        break;
                    }
                    catch
                    {
                        togle        += 1;
                        FileName      = System.IO.Path.GetTempPath() + "Осмотр_хирурга" + togle + ".docx";
                        _fileNameOnly = "Осмотр_хирурга" + togle + ".docx";
                    }
                }
                TextForDoWhat = "Был открыт документ " + _fileNameOnly + ". Для сохранения изменений в документе сохраните данные в Word, закройте документ и нажмите кнопку \"Сохранить изменения\".";

                Process.Start("WINWORD.EXE", FileName);
            }
                );
            MessageBus.Default.Subscribe("GetHirurgOverviewtForHirurgOverviewFILENAME", GetStatementForStatementFILENAME);
            SetNewOverview = new DelegateCommand(
                () =>
            {
                if (Doctors != null && Doctors.Count != 0)
                {
                    if (DoctorSelectedId == -1)
                    {
                        MessageBus.Default.Call("CreateHirurgOverview", "", null);
                    }
                    else
                    {
                        MessageBus.Default.Call("CreateHirurgOverview", Doctors[DoctorSelectedId].ToString(), Doctors[DoctorSelectedId].doc.Id);
                    }
                    TextForDoWhat = "Вы создали новый документ " + _fileNameOnly;
                    CurrentSelectDoctorPanelViewModel.PanelOpened = false;
                }
            }
                );
            SaveWordDocument = new DelegateCommand(
                () =>
            {
                try
                {
                    if (!string.IsNullOrWhiteSpace(FileName))
                    {
                        byte[] bteToBD    = File.ReadAllBytes(FileName);
                        HirurgOverview Hv = new HirurgOverview();
                        //bool tester = true;

                        if (CurrentDocument.Id != 0)
                        {
                            Hv = Data.HirurgOverview.Get(CurrentDocument.Id);
                            CurrentDocument.DocTemplate = bteToBD;
                            Hv.DocTemplate = bteToBD;
                            Hv.DoctorId    = Doctors[DoctorSelectedId].doc.Id;
                            Data.Complete();
                        }
                        else
                        {
                            Hv.DocTemplate = bteToBD;
                            Hv.DoctorId    = Doctors[DoctorSelectedId].doc.Id;
                            CurrentDocument.DocTemplate = bteToBD;
                            Data.HirurgOverview.Add(Hv);

                            Data.Complete();
                            CurrentDocument.Id = Hv.Id;
                            MessageBus.Default.Call("SetIdOfOverview", null, CurrentDocument.Id);
                        }

                        CurrentSavePanelViewModel.PanelOpened = false;
                        TextForDoWhat = "Изменения в " + _fileNameOnly + " были сохранены";
                    }
                }
                catch
                {
                    MessageBox.Show("Закройте документ");
                }
            }
                );
            OpenFile = new DelegateCommand(
                () =>
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter         = "Word Documents (.docx)|*.docx|All Files (*.*)|*.*";
                openFileDialog.ValidateNames  = true;
                openFileDialog.FilterIndex    = 1;
                if (openFileDialog.ShowDialog() == true)
                {
                    _fileNameOnly     = openFileDialog.SafeFileName;
                    FileName          = openFileDialog.FileName;
                    byte[] bteToBD    = File.ReadAllBytes(FileName);
                    HirurgOverview Hv = new HirurgOverview();

                    if (CurrentDocument.Id != 0)
                    {
                        Hv = Data.HirurgOverview.Get(CurrentDocument.Id);

                        Hv.DocTemplate = bteToBD;
                        Hv.DoctorId    = Doctors[DoctorSelectedId].doc.Id;
                        Data.Complete();
                    }
                    else
                    {
                        Hv.DocTemplate = bteToBD;
                        Hv.DoctorId    = Doctors[DoctorSelectedId].doc.Id;
                        Data.HirurgOverview.Add(Hv);

                        Data.Complete();
                        CurrentDocument.Id = Hv.Id;
                        MessageBus.Default.Call("SetIdOfOverview", null, CurrentDocument.Id);
                    }

                    MessageBus.Default.Call("GetHirurgOverviewForHirurgOverview", null, CurrentDocument.Id);
                    TextForDoWhat = "Был загружен документ " + _fileNameOnly;
                }

                //var img = ByteToImage(Analize.ImageByte);
                //int width = Convert.ToInt32(img.Width);
                //int height = Convert.ToInt32(img.Height);
                //Bitmap TestBitmap = new Bitmap(width, height);
                //TestBitmap.Save("TempImage.Bmp");
                //TestBitmap.Dispose();
                //File.WriteAllBytes("TempImage.Bmp", Analize.ImageByte);
                //Process.Start("TempImage.Bmp");
            }
                );

            ToCurrentPatientCommand = new DelegateCommand(
                () =>
            {
                MessageBus.Default.Call("GetCurrentPatientId", this, CurrentPatient.Id);
                Controller.NavigateTo <ViewModelCurrentPatient>();
            }
                );
        }