Ejemplo n.º 1
0
        public ReportHistoryViewModel(PatientEntity model)
        {
            ShowImageCommand = new DelegateCommand(OnShowImageCommand);
            LogOffCommand    = new DelegateCommand(OnLogOffCommand);
            PatientEntity    = model;

            if (PatientEntity.MaritalStatus == "No")
            {
                PatientEntity.MaritalStatus = "Single";
            }
            else
            {
                PatientEntity.MaritalStatus = "Married";
            }

            if (PatientEntity.Sex == "m")
            {
                PatientEntity.Sex = "Male";
            }
            else
            {
                PatientEntity.Sex = "Female";
            }

            if (PatientEntity.AllergyDrugs == "Yes")
            {
                ShowAllergyOption = true;
            }

            if (PatientEntity.IfResidentOfM == "Yes")
            {
                PatientEntity.OtherOption = "IC Number:";
                PatientEntity.OthersID    = PatientEntity.IcNumber;
            }
            else
            {
                PatientEntity.OtherOption = PatientEntity.OtherOption + ":";
            }

            string path   = Path.Combine(Program.BaseDir(), "Uploads");
            var    report = new Patient().GetAllReport(model.Id);

            foreach (var item in report)
            {
                var result = new Patient().GetAllReportData(item.Id);
                item.ReportDatas = new ObservableCollection <ReportData>();
                foreach (var data in result)
                {
                    data.ImageUrl = Path.Combine(path, data.Img);
                    item.ReportDatas.Add(data);
                }
                PatientReports.Add(item);
            }
            ViewReportDataCommand = new DelegateCommand(OnViewReportDataCommand);
        }
        public ReportViewModel(PatientEntity model, PatientReport obj)
        {
            ShowImageCommand = new DelegateCommand(OnShowImageCommand);
            BackCommand      = new DelegateCommand(OnBackCommand);
            LogOffCommand    = new DelegateCommand(OnLogOffCommand);
            PrintPDFCommand  = new DelegateCommand(OnPrintPDFCommand);
            string path = Path.Combine(Program.BaseDir(), "Uploads");

            ReportDatas   = new ObservableCollection <ReportData>();
            PatientEntity = model;
            if (PatientEntity.Sex == "m")
            {
                PatientEntity.Sex = "Male";
            }
            else
            {
                PatientEntity.Sex = "Female";
            }

            if (PatientEntity.MaritalStatus == "No")
            {
                PatientEntity.MaritalStatus = "Single";
            }
            else
            {
                PatientEntity.MaritalStatus = "Married";
            }

            if (PatientEntity.IfResidentOfM == "Yes")
            {
                PatientEntity.OtherOption = "IC Number:";
                PatientEntity.OthersID    = PatientEntity.IcNumber;
            }
            else
            {
                PatientEntity.OtherOption = PatientEntity.OtherOption + ":";
            }

            if (obj != null)
            {
                PatientReport = obj;
            }
            else
            {
                PatientReport = new Patient().GetLastestReport(model.Id);
            }

            if (PatientReport != null)
            {
                var  osResult  = new Patient().GetPosteriorOSReportData(PatientReport.Id, false);
                var  odResult  = new Patient().GetPosteriorODReportData(PatientReport.Id, false);
                bool docReview = osResult.Any(x => x.Prediction == "Doctor review recommended");
                if (!docReview)
                {
                    docReview = odResult.Any(x => x.Prediction == "Doctor review recommended");
                }

                bool noDR = osResult.Any(x => x.Prediction == "No DR detected");
                if (!noDR)
                {
                    noDR = odResult.Any(x => x.Prediction == "No DR detected");
                }

                bool badImg = osResult.Any(x => x.Prediction == "Bad Image");
                if (!badImg)
                {
                    badImg = odResult.Any(x => x.Prediction == "Bad Image");
                }

                if (docReview)
                {
                    PredictionResult = "EXAMINATION RESULT: Diabetic Retinopathy Suspected - Doctor Review Recommended                    * KINDLY CORRELATE CLINICALLY *";
                }
                else if (noDR)
                {
                    PredictionResult = "EXAMINATION RESULT: No Abnormlities detected                    * KINDLY CORRELATE CLINICALLY *";
                }
                else if (badImg)
                {
                    PredictionResult = "EXAMINATION RESULT: Bad Image                    * KINDLY CORRELATE CLINICALLY *";
                }
                else
                {
                    PredictionResult = "EXAMINATION RESULT:                     * KINDLY CORRELATE CLINICALLY *";
                }

                foreach (var data in osResult)
                {
                    data.ImageUrl = Path.Combine(path, data.Img);
                    data.FileName = Path.GetFileName(data.ImageUrl);
                    OSReportDatas.Add(data);
                }
                foreach (var data in odResult)
                {
                    data.ImageUrl = Path.Combine(path, data.Img);
                    data.FileName = Path.GetFileName(data.ImageUrl);
                    ODReportDatas.Add(data);
                }
            }

            var report = new Patient().GetAllReport(model.Id);

            foreach (var item in report)
            {
                var result = new Patient().GetAllReportData(item.Id);
                item.ReportDatas = new ObservableCollection <ReportData>();
                foreach (var data in result)
                {
                    data.ImageUrl = Path.Combine(path, data.Img);
                    item.ReportDatas.Add(data);
                }
                PatientReports.Add(item);
            }

            TakeReportCommand     = new DelegateCommand(OnTakeReportCommand);
            PreviousReportCommand = new DelegateCommand(OnPreviousReportCommand);
            FtpTransferCommand    = new DelegateCommand(OnFtpTransferCommand);
            ViewReportDataCommand = new DelegateCommand(OnViewReportDataCommand);
            SaveNextCommand       = new DelegateCommand(OnSaveNextCommand);
            SaveExitCommand       = new DelegateCommand(OnSaveExitCommand);
            SendMailCommand       = new DelegateCommand(OnSendMailCommand);
            ViewPDFCommand        = new DelegateCommand(OnViewPDFCommand);
            if (PatientReport != null)
            {
                CreateReport(PatientReport);
            }
        }