Пример #1
0
        protected void SetHearingLevel(EarType ear, double freqHz, string hearingLevel)
        {
            HearingLevelValidation hlValidator = new HearingLevelValidation();
            ValidationResult       validResult = hlValidator.Validate(hearingLevel, CultureInfo.InvariantCulture);

            HLValidationError = validResult.IsValid ? String.Empty : validResult.ErrorContent.ToString();

            if (validResult.IsValid)
            {
                if (HearingLevels.ContainsKey(freqHz))
                {
                    if (ear == EarType.RightEar)
                    {
                        HearingLevels[freqHz].RightEarHLdBStr = hearingLevel;
                    }
                    else if (ear == EarType.LeftEar)
                    {
                        HearingLevels[freqHz].LeftEarHLdBStr = hearingLevel;
                    }
                    else
                    {
                        throw new InvalidEnumArgumentException();
                    }
                }
                else
                {
                    if (ear == EarType.RightEar)
                    {
                        HearingLevels.Add(freqHz, new HearingLevel {
                            RightEarHLdBStr = hearingLevel
                        });
                    }
                    else if (ear == EarType.LeftEar)
                    {
                        HearingLevels.Add(freqHz, new HearingLevel {
                            LeftEarHLdBStr = hearingLevel
                        });
                    }
                    else
                    {
                        throw new InvalidEnumArgumentException();
                    }
                }

                AudiogramPlot.UpdateEarPlot(ear, HearingLevels, AddBCFreqShift);

                if (ear == EarType.RightEar)
                {
                    HasRtEarValidData = HearingLevels.Values.Any(hl => hl.RightEarHLdB != null ||
                                                                 hl.RightEarHLdBStr == HearingLevelTypes.NoResponse.GetDescription());
                }
                else if (ear == EarType.LeftEar)
                {
                    HasLtEarValidData = HearingLevels.Values.Any(hl => hl.LeftEarHLdB != null ||
                                                                 hl.LeftEarHLdBStr == HearingLevelTypes.NoResponse.GetDescription());
                }
                else
                {
                    throw new InvalidEnumArgumentException();
                }
            }
        }
Пример #2
0
 public static PageContent CreatePrintPageContentOxyPlot(Size pageSize, AudiogramPlot audiogramPlot,
                                                         int width, int height, string header)
 {
     return(CreatePrintPageContentOxyPlot(pageSize, AudiogramPlot.PlotModel, width, height, header));
 }
Пример #3
0
        private void PrintGuiBtn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                PrintDialog printDlg = new PrintDialog();
                bool?       print    = printDlg.ShowDialog();

                if (print.HasValue && print.Value)
                {
                    int mainTabIndex = mainTabCtrl.SelectedIndex;

                    var pageSize = new Size(printDlg.PrintableAreaWidth, printDlg.PrintableAreaHeight);

                    var document = new FixedDocument();
                    document.DocumentPaginator.PageSize = pageSize;

                    SwitchTab(mainTabCtrl, MainViewModel.PatientTabIndex);
                    var firstPageContent = PrintUtility.CreatePrintPageContent(pageSize, PatientInfoCanvas, "Patient Information");
                    document.Pages.Add(firstPageContent);

                    var secondPageContent = PrintUtility.CreatePrintPageContent(pageSize, ExamInfoCanvas, "Exam Information");
                    document.Pages.Add(secondPageContent);

                    int ptamTabIndex = ptamTabCtrl.SelectedIndex;
                    SwitchTab(mainTabCtrl, MainViewModel.PureToneTabIndex);
                    var thirdPageContent = PrintUtility.CreatePrintPageContent(pageSize, PureToneAMCanvas, ptamTabCtrl, 0, 3, "Pure Tone Audiometry");
                    document.Pages.Add(thirdPageContent);

                    var fourthPageContent = PrintUtility.CreatePrintPageContent(pageSize, PureToneAMCanvas, ptamTabCtrl, 4, 6, "Pure Tone Audiometry");
                    document.Pages.Add(fourthPageContent);

                    AudiogramPlot audiogramPlot =
                        ((PureToneTabVM)mainVM.TabVMs[MainViewModel.PureToneTabIndex]).ACMskTabVM.PureToneData.AudiogramPlot;
                    var fifthPageContent = PrintUtility.CreatePrintPageContentOxyPlot(pageSize,
                                                                                      audiogramPlot, (int)AudiogramPlot.Width, (int)AudiogramPlot.Height, "Audiogram");
                    document.Pages.Add(fifthPageContent);

                    var sixthPageContent = PrintUtility.CreatePrintPageContent(pageSize, HearingDisabilityCanvas, "Hearing Disability");
                    document.Pages.Add(sixthPageContent);

                    int specTabIndex       = specialTestsTabCtrl.SelectedIndex;
                    var seventhPageContent = PrintUtility.CreatePrintPageContent(pageSize, SpecialTestsCanvas, specialTestsTabCtrl, 0, 2, "Special Tests");
                    document.Pages.Add(seventhPageContent);

                    var eighthPageContent = PrintUtility.CreatePrintPageContent(pageSize, SpecialTestsCanvas, specialTestsTabCtrl, 3, 3, "Special Tests");
                    document.Pages.Add(eighthPageContent);

                    var ninthPageContent = PrintUtility.CreatePrintPageContent(pageSize, TuningForkTestsCanvas, "Tuning Fork Tests");
                    document.Pages.Add(ninthPageContent);

                    SwitchTab(mainTabCtrl, MainViewModel.SpeechTabIndex);
                    var tenthPageContent = PrintUtility.CreatePrintPageContent(pageSize, SpeechAudiometryCanvas, "Speech Audiometry");
                    document.Pages.Add(tenthPageContent);

                    PlotModel speechPlot          = ((SpeechTabVM)mainVM.TabVMs[MainViewModel.SpeechTabIndex]).SpeechPlotModel;
                    var       eleventhPageContent = PrintUtility.CreatePrintPageContentOxyPlot(pageSize, speechPlot,
                                                                                               (int)SpeechAudiometryPlot.Width, (int)SpeechAudiometryPlot.Height, "Speech Audiometry");
                    document.Pages.Add(eleventhPageContent);

                    SwitchTab(mainTabCtrl, MainViewModel.ImpedanceTabIndex);
                    var twelvethPageContent = PrintUtility.CreatePrintPageContent(pageSize, ImpedanceCanvas, "Impedance Audiometry");
                    document.Pages.Add(twelvethPageContent);

                    PlotModel impedancePlot =
                        ((ImpedanceTabVM)mainVM.TabVMs[MainViewModel.ImpedanceTabIndex]).Tympanogram;
                    var thirteenthPageContent = PrintUtility.CreatePrintPageContentOxyPlot(pageSize, impedancePlot,
                                                                                           (int)ImpedancePlot.Width, (int)ImpedancePlot.Height, "Tympanogram");
                    document.Pages.Add(thirteenthPageContent);

                    SwitchTab(mainTabCtrl, MainViewModel.BithermalCaloricTabIndex);
                    var fourteenthPageContent = PrintUtility.CreatePrintPageContent(pageSize, BithermalCaloricCanvas, "Bithermal Caloric Test");
                    document.Pages.Add(fourteenthPageContent);

                    var fifteenthPageContent = PrintUtility.CreatePrintPageContentOxyPlot(pageSize,
                                                                                          ((BithermalCaloricTabVM)mainVM.TabVMs[MainViewModel.BithermalCaloricTabIndex]),
                                                                                          (int)BithermalCaloricPlot.Width, (int)BithermalCaloricPlot.Height, "Calorigram");
                    document.Pages.Add(fifteenthPageContent);


                    //SwitchTab(mainTabCtrl, mainTabIndex);
                    mainTabCtrl.SelectedIndex         = mainTabIndex;
                    ptamTabCtrl.SelectedIndex         = ptamTabIndex;
                    specialTestsTabCtrl.SelectedIndex = specTabIndex;
                    ChangeWidthAndRefresh();
                    // Send to the printer.
                    printDlg.PrintDocument(document.DocumentPaginator, "AudiologicProfile.pdf");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }