Пример #1
0
        private void cmbDistrictRes_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            EpiDataHelper vm = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;

            if (!vm.IsShortFormOpened || this.DataContext == null)//VHF-256, VHF-278
            {
                return;
            }
            //if (vm != null && vm.DistrictsSubCounties != null && vm.DistrictsSubCounties.Count > 0)
            //{
            //    cmbSCRes.Items.Clear();
            //    cmbSCRes.Text = "";
            //    foreach (KeyValuePair<string, List<string>> district in vm.DistrictsSubCounties)
            //    {
            //        ComboBox cmbDistrict = (ComboBox)sender;
            //        if (cmbDistrict.SelectedItem != null)
            //        {
            //            if (cmbDistrict.SelectedItem.ToString() == district.Key)
            //            {
            //                foreach (string sc in district.Value)
            //                {
            //                    cmbSCRes.Items.Add(sc);
            //                }
            //            }
            //        }
            //    }
            //}
            PopulateDropDown(vm);
        }
Пример #2
0
        void ImportCompleted()
        {
            MessageBox.Show("Import complete. Click OK to refresh the database.", "Complete", MessageBoxButton.OK, MessageBoxImage.Information);
            if (this.DataContext != null)
            {
                EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;
                if (dataHelper != null)
                {
                    dataHelper.RepopulateCollections();
                }
            }
            MessageBox.Show("Database refreshed. Click OK to continue.", "Complete", MessageBoxButton.OK, MessageBoxImage.Information);

            this.btnBrowse.IsEnabled = true;
            this.btnClose.IsEnabled  = true;
            this.btnImport.IsEnabled = true;

            this.Cursor = Cursors.Arrow;

            if (Closed != null)
            {
                RoutedEventArgs args = new RoutedEventArgs(ImportFromLab.CloseClickEvent);
                Closed(this, args);
            }
        }
Пример #3
0
        private void cmbhcwfacility_LostFocus(object sender, RoutedEventArgs e)
        {
            ComboBox cmbhcwfacility = (ComboBox)sender;

            if (cmbhcwfacility.Text.Replace(" ", "").Length == 0)
            {
                return;
            }

            EpiDataHelper vm    = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;
            bool          match = false;

            if (vm != null && vm.HcwFacilities != null && vm.HcwFacilities.Count > 0)
            {
                foreach (string facility in vm.HcwFacilities)
                {
                    if (facility.Equals(cmbhcwfacility.Text))
                    {
                        match = true;
                        break;
                    }
                }
            }
            else
            {
                match = true;
            }

            if (!match)
            {
                cmbhcwfacility.Text = "";
                MessageBox.Show("Invalid Facility", null, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Пример #4
0
 /// <summary>
 /// VHF-253
 /// Sets the item source for SC Combox
 /// </summary>
 /// <param name="comboBox"></param>
 /// <param name="vm"></param>
 private void SetSCItemSource(ComboBox comboBox, EpiDataHelper vm)
 {
     foreach (var item in vm.SubCounties)
     {
         comboBox.Items.Add(item);
     }
 }
Пример #5
0
        private void ComboBox_LostFocus(object sender, RoutedEventArgs e)
        {
            if (((ComboBox)sender).Text.Replace(" ", "").Length == 0)
            {
                return;
            }

            string        fieldText = ((ComboBox)sender).Text;
            EpiDataHelper vm        = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;
            bool          match     = false;

            if (vm != null && vm.Countries != null && vm.Countries.Count > 0)
            {
                foreach (string district in vm.Countries)
                {
                    if (district.Equals(((ComboBox)sender).Text))
                    {
                        match = true;
                        break;
                    }
                }
            }
            else
            {
                match = true;
            }

            if (!match)
            {
                ((ComboBox)sender).Text = "";
                MessageBox.Show("Invalid Country", null, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Пример #6
0
        //Populates drop down(s) - VHF-243
        private void PopulateDropDown(EpiDataHelper vm)
        {
            //Populate cmbSCRes
            if (cmbDistrictRes.Visibility == System.Windows.Visibility.Visible &&
                cmbSCRes.Visibility == System.Windows.Visibility.Visible)
            {
                if (vm != null && vm.DistrictsSubCounties != null && vm.DistrictsSubCounties.Count > 0)
                {
                    string scText = cmbSCRes.Text;
                    cmbSCRes.Items.Clear();

                    if (cmbDistrictRes.SelectedItem != null)
                    {
                        string selectedDistrict = cmbDistrictRes.SelectedItem.ToString();

                        foreach (KeyValuePair <string, List <string> > district in vm.DistrictsSubCounties)
                        {
                            if (district.Key.Equals(selectedDistrict, StringComparison.OrdinalIgnoreCase))
                            {
                                ComboBox cmbDistrict = (ComboBox)cmbDistrictRes;

                                foreach (string sc in district.Value)
                                {
                                    cmbSCRes.Items.Add(sc);
                                }
                            }
                        }
                        if (cmbSCRes.Items.Contains(scText))
                        {
                            cmbSCRes.Text = scText;
                        }
                    }
                }
            }
        }
Пример #7
0
        private void cmbCurrentHospital2_LostFocus(object sender, RoutedEventArgs e)
        {
            ComboBox cmbHospital = (ComboBox)sender;

            if (cmbHospital.Text.Replace(" ", "").Length == 0)
            {
                return;
            }

            EpiDataHelper vm    = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;
            bool          match = false;

            if (vm != null && vm.HospitalsPast != null && vm.HospitalsPast.Count > 0)
            {
                foreach (string hospital in vm.HospitalsPast)
                {
                    if (hospital.Equals(cmbHospital.Text))
                    {
                        match = true;
                        break;
                    }
                }
            }
            else
            {
                match = true;
            }

            if (!match)
            {
                cmbHospital.Text = "";
                MessageBox.Show("Invalid Hospital", null, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Пример #8
0
        private void cmbBleedOtherComment_LostFocus(object sender, RoutedEventArgs e)
        {
            ComboBox cmbBleedOtherComment = (ComboBox)sender;

            if (cmbBleedOtherComment.Text.Replace(" ", "").Length == 0)
            {
                return;
            }

            EpiDataHelper    vm           = null;
            FrameworkElement startElement = this.Parent as FrameworkElement;

            while (startElement.Parent != null)
            {
                FrameworkElement parentElement = startElement.Parent as FrameworkElement;
                if (parentElement.DataContext is EpiDataHelper)
                {
                    vm = parentElement.DataContext as EpiDataHelper;
                    break;
                }

                startElement = parentElement;
            }

            if (vm == null)
            {
                return;
            }

            //EpiDataHelper vm = (((FrameworkElement)this.Parent).Parent as FrameworkElement).DataContext as EpiDataHelper;
            bool match = false;

            if (vm != null && vm.BleedOtherComments != null && vm.BleedOtherComments.Count > 0)
            {
                foreach (string comment in vm.BleedOtherComments)
                {
                    if (comment.Equals(cmbBleedOtherComment.Text))
                    {
                        match = true;
                        break;
                    }
                }
            }
            else
            {
                match = true;
            }

            if (!match)
            {
                cmbBleedOtherComment.Text = "";
                MessageBox.Show("Invalid Symptom", null, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Пример #9
0
 public CaseExportOptions(EpiDataHelper dataHelper)
 {
     InitializeComponent();
     DataContext           = dataHelper;
     IncludeCaseExposures  = true;
     IncludeContacts       = false;
     IncludeCases          = false;
     DeIdentifyData        = true;
     DistrictFilter        = String.Empty;
     RecordProcessingScope = Epi.RecordProcessingScope.Undeleted;
 }
Пример #10
0
        private void cmbOtherOccupationSpecify_LostFocus(object sender, RoutedEventArgs e)
        {
            ComboBox cmbTransportType = (ComboBox)sender;

            if (cmbTransportType.Text.Replace(" ", "").Length == 0)
            {
                return;
            }

            EpiDataHelper    vm           = null;
            FrameworkElement startElement = this.Parent as FrameworkElement;

            while (startElement.Parent != null)
            {
                FrameworkElement parentElement = startElement.Parent as FrameworkElement;
                if (parentElement.DataContext is EpiDataHelper)
                {
                    vm = parentElement.DataContext as EpiDataHelper;
                    break;
                }

                startElement = parentElement;
            }

            if (vm == null)
            {
                return;
            }

            //EpiDataHelper vm = (((FrameworkElement)this.Parent).Parent as FrameworkElement).DataContext as EpiDataHelper;
            bool match = false;

            if (vm != null && vm.OtherOccupDetails != null && vm.OtherOccupDetails.Count > 0)
            {
                foreach (string hospital in vm.OtherOccupDetails)
                {
                    if (hospital.Equals(cmbTransportType.Text))
                    {
                        match = true;
                        break;
                    }
                }
            }
            else
            {
                match = true;
            }

            if (!match)
            {
                cmbTransportType.Text = "";
                MessageBox.Show("Invalid Occupation", null, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Пример #11
0
        private void btnImport_Click(object sender, RoutedEventArgs e)
        {
            if (FileName == null)
            {
                return;
            }
            XmlDocument xmlDataPackage = new XmlDocument();

            xmlDataPackage.XmlResolver = null;

            this.btnBrowse.IsEnabled = false;
            this.btnClose.IsEnabled  = false;
            this.btnImport.IsEnabled = false;

            this.Cursor = Cursors.Wait;

            if (FileName.EndsWith(".xml"))
            {
                xmlDataPackage.Load(FileName);
            }
            else
            {
                try
                {
                    string str = Configuration.DecryptFileToString(FileName, "", "", "", 1000);
                    str = str.Remove(0, 24);
                    string plainText = Epi.ImportExport.ImportExportHelper.UnZip(str);
                    xmlDataPackage.LoadXml(plainText);
                }
                catch (System.Security.Cryptography.CryptographicException ex)
                {
                    Epi.Windows.MsgBox.ShowException(ex);
                }
            }

            if (this.DataContext != null)
            {
                EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;
                if (dataHelper != null && dataHelper.CaseForm != null && dataHelper.IsCountryUS == false && dataHelper.IsDataSyncing == false)
                {
                    View             caseForm = dataHelper.CaseForm;
                    PackageInfo      info     = new PackageInfo(caseForm, xmlDataPackage);
                    BackgroundWorker worker   = new BackgroundWorker();
                    worker.DoWork             += new DoWorkEventHandler(worker_DoWork);
                    worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
                    worker.RunWorkerAsync(info);
                }
                else
                {
                    throw new InvalidOperationException("DataHelper or DataHelper's case form property cannot be null.");
                }
            }
        }
Пример #12
0
        private void xyChart_DataStructureCreated(object sender, EventArgs e)
        {
            if (this.DataContext != null)
            {
                EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;
                if (dataHelper != null && dataHelper.Project != null)
                {
                    string sName = "";

                    foreach (Series s0 in xyChart.DataSeries)
                    {
                        if (s0.Label != null)
                        {
                            sName = s0.Label.Split('.')[1];
                            //if (Settings.ShowLegendVarNames == false)
                            //{
                            //    int index = sName.IndexOf(" = ");
                            //    s0.Label = sName.Substring(index + 3);
                            //}
                            //else
                            //{
                            s0.Label = sName;
                            //}
                        }
                    }

                    Size textSize  = new Size();
                    Size chartSize = new Size();

                    tblockYAxisLabel.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                    textSize = new Size(tblockYAxisLabel.DesiredSize.Width, tblockYAxisLabel.DesiredSize.Height);

                    xyChart.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));

                    chartSize = new Size(xyChart.DesiredSize.Width, xyChart.DesiredSize.Height);

                    //tblockYAxisLabel.Padding = new Thickness(((chartSize.Height - 22) / 2) - (textSize.Width / 2), 2, 0, 2);

                    xyChart.Orientation            = Orientation.Horizontal;
                    labelXAxis.Orientation         = ChartLabelOrientation.Vertical;
                    labelXAxis.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    labelYAxis.Orientation         = ChartLabelOrientation.Horizontal;

                    tblockXAxisLabel.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                    textSize = new Size(tblockXAxisLabel.DesiredSize.Width, tblockXAxisLabel.DesiredSize.Height);

                    xyChart.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                    chartSize = new Size(xyChart.DesiredSize.Width, xyChart.DesiredSize.Height);

                    tblockXAxisLabel.Padding = new Thickness(((chartSize.Height + 80) / 2) - (textSize.Width / 2), 2, 0, 2);
                }
            }
        }
Пример #13
0
        private void txtID_TextChanged(object sender, TextChangedEventArgs e)
        {
            bool idIsAlreadyUsed = false;

            EpiDataHelper vm = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;

            foreach (CaseViewModel foreachCase in vm.CaseCollection)
            {
                if (foreachCase.ID.Equals(txtID.Text, StringComparison.OrdinalIgnoreCase))
                {
                    if (foreachCase != this.DataContext as CaseViewModel)
                    {
                        idIsAlreadyUsed = true;
                        break;
                    }
                }
            }

            if (idIsAlreadyUsed)
            {
                txtID.Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.White);
                txtID.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
                ToolTip tip = new ToolTip();

                //TextBlock tbHeader = new TextBlock();
                //tbHeader.Text = "Duplicate ID";
                //tbHeader.FontSize = 14;
                //tbHeader.FontWeight = FontWeights.SemiBold;
                //tbHeader.TextWrapping = TextWrapping.WrapWithOverflow;
                //tbHeader.Margin = new Thickness(0, 0, 0, 4);

                TextBlock tb = new TextBlock();
                tb.Text         = Properties.Resources.ErrorDuplicateIDs;
                tb.TextWrapping = TextWrapping.WrapWithOverflow;

                StackPanel sp = new StackPanel();
                sp.Width = 200;
                //sp.Children.Add(tbHeader);
                sp.Children.Add(tb);

                tip.Content   = sp;
                txtID.ToolTip = tip;
            }
            else
            {
                txtID.Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black);
                txtID.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.White);
                txtID.ToolTip    = null;
            }
        }
Пример #14
0
        private void btnFreeFormCasesLabCPS_Click(object sender, RoutedEventArgs e)
        {
            EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;

            if (dataHelper != null && dataHelper.Project != null && dataHelper.CaseForm != null)
            {
                string Canvas_CaseCPSName;

                if (ApplicationViewModel.Instance.CurrentRegion == Core.Enums.RegionEnum.USA)
                {
                    Canvas_CaseCPSName = "Canvas_CaseCPS_US.cvs7";
                }
                else
                {
                    Canvas_CaseCPSName = "Canvas_CaseCPS.cvs7";
                }

                //  string Canvas_CaseCPSName = "Canvas_CaseCPS.cvs7";

                Project project  = dataHelper.Project;
                View    caseForm = project.Views[ContactTracing.Core.Constants.CASE_FORM_NAME];

                System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
                string commandText           = System.IO.Path.GetDirectoryName(a.Location) + "\\AnalysisDashboard.exe";

                XmlDocument doc = new XmlDocument();
                doc.XmlResolver = null;
                try
                {
                    doc.Load(System.IO.Path.GetDirectoryName(a.Location) + "\\Projects\\VHF\\Canvases\\" + Canvas_CaseCPSName);
                    XmlNode node = doc.SelectSingleNode("DashboardCanvas/dashboardHelper/projectPath");
                    node.InnerText = System.IO.Path.GetDirectoryName(a.Location) + "\\Projects\\VHF\\" + dataHelper.Project.Name + ".prj";
                    doc.Save(System.IO.Path.GetDirectoryName(a.Location) + "\\Projects\\VHF\\Canvases\\" + Canvas_CaseCPSName);

                    System.Diagnostics.Process proc = new System.Diagnostics.Process();
                    proc.StartInfo.FileName        = commandText;
                    proc.StartInfo.Arguments       = string.Format("\"{0}\"", "Projects\\VHF\\Canvases\\" + Canvas_CaseCPSName);
                    proc.StartInfo.UseShellExecute = true;
                    proc.Start();
                }
                catch (FileNotFoundException)
                {
                    MessageBox.Show("The canvas file for this analysis type could not be found.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("There was a problem generating the analysis output. Exception: " + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        void computeWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Result        result     = new Result();
            EpiDataHelper DataHelper = e.Argument as EpiDataHelper;

            if (DataHelper != null && DataHelper.Project != null && DataHelper.Project.CollectedData != null)
            {
                IDbDriver db    = DataHelper.Project.CollectedData.GetDatabase();
                DateTime  today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

                DataTable labTable = DataHelper.LabTable;

                double patientsTested   = 0;
                double samplesCollected = labTable.Rows.Count;//0;

                foreach (CaseViewModel caseVM in DataHelper.CaseCollection)
                {
                    if (caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded)
                    {
                        double samplesForCurrentCase = labTable.Select("[FKEY] = '" + caseVM.RecordId + "'").Count();
                        //samplesCollected = samplesCollected + samplesForCurrentCase;

                        if (samplesForCurrentCase > 0)
                        {
                            patientsTested++;
                        }
                    }
                }

                // Commented below is the old method, which simply counted everyone with lab sample records. Customer noted this needs to change. See new code.
                //result.PatientsTested = patientsTested.ToString();

                // New code is below.
                Epi.Fields.RenderableField finalLabClassField = DataHelper.CaseForm.Fields["FinalLabClass"] as Epi.Fields.RenderableField;
                if (finalLabClassField != null && finalLabClassField.Page != null)
                {
                    string finalLabClassTableName = finalLabClassField.Page.TableName;
                    string queryText   = "select distinct lrf.FKEY from " + finalLabClassTableName + " crf INNER JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where (crf.FinalLabClass <> '' AND crf.FinalLabClass is not null)";
                    Query  selectQuery = db.CreateQuery(queryText);
                    int    count       = db.Select(selectQuery).Rows.Count;

                    // TODO: Remove excluded cases

                    result.PatientsTested   = count.ToString();
                    result.SamplesCollected = samplesCollected.ToString();
                }
                e.Result = result;
            }
        }
Пример #16
0
        private void SwapTextBoxesAndComboBoxes()
        {
            EpiDataHelper vm = Application.Current.MainWindow.DataContext as EpiDataHelper;

            if (vm != null && vm.CaseForm != null)
            {
                #region TransporterType
                if (vm.CaseForm.Fields["TransporterType"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["TransporterType"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["TransporterType"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbTransportType.Visibility = System.Windows.Visibility.Visible;
                    txtTransportType.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbTransportType.Visibility = System.Windows.Visibility.Collapsed;
                    txtTransportType.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region OtherOccupDetail
                if (vm.CaseForm.Fields["OtherOccupDetail"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["OtherOccupDetail"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["OtherOccupDetail"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbOtherOccupationSpecify.Visibility = System.Windows.Visibility.Visible;
                    txtOtherOccupationSpecify.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbOtherOccupationSpecify.Visibility = System.Windows.Visibility.Collapsed;
                    txtOtherOccupationSpecify.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region BusinessType
                if (vm.CaseForm.Fields["BusinessType"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["BusinessType"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["BusinessType"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbBusinessType.Visibility = System.Windows.Visibility.Visible;
                    txtBusinessType.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbBusinessType.Visibility = System.Windows.Visibility.Collapsed;
                    txtBusinessType.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion
            }
        }
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            //dg.MaxHeight = this.ActualHeight / 2;
            dgExposures.MaxHeight   = this.ActualHeight / 3;
            dgSourceCases.MaxHeight = this.ActualHeight / 3;

            EpiDataHelper dataHelper = (this.DataContext as EpiDataHelper);

            this.Cursor = Cursors.Wait;
            if (dataHelper != null)
            {
                dataHelper.ShowExposedCasesForCase.Execute(CaseVM);
                dataHelper.ShowSourceCasesForCase.Execute(CaseVM);
            }
            this.Cursor = Cursors.Arrow;
        }
        public DistrictNameEditor(EpiDataHelper dataHelper)
        {
            InitializeComponent();

            isOK = false;

            Database   = dataHelper.Database;
            DataHelper = dataHelper;

            Query     selectQuery = Database.CreateQuery("SELECT * FROM [codeDistrictSubCountyList] ORDER BY DISTRICT, SUBCOUNTIES");
            DataTable dt          = Database.Select(selectQuery);

            dt.Columns[0].ColumnName = DataHelper.Adm1.ToUpper();
            dt.Columns[1].ColumnName = DataHelper.Adm2.ToUpper();
            dg.ItemsSource           = (dt).DefaultView;
        }
Пример #19
0
        void computeWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Result        result     = new Result();
            EpiDataHelper DataHelper = e.Argument as EpiDataHelper;

            if (DataHelper != null)
            {
                List <double> numbers = new List <double>();

                foreach (CaseViewModel caseVM in DataHelper.CaseCollection)
                {
                    if (caseVM.AgeYears.HasValue && (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable))
                    {
                        numbers.Add(caseVM.AgeYears.Value);
                    }
                }

                if (numbers.Count == 0)
                {
                    return;
                }

                result.Mean = numbers.Average().ToString("G2");

                int    numberCount   = numbers.Count();
                int    halfIndex     = numbers.Count() / 2;
                var    sortedNumbers = numbers.OrderBy(n => n);
                double median;
                if ((numberCount % 2) == 0)
                {
                    median = ((sortedNumbers.ElementAt(halfIndex) +
                               sortedNumbers.ElementAt((halfIndex - 1))) / 2);
                }
                else
                {
                    median = sortedNumbers.ElementAt(halfIndex);
                }

                result.Median = median.ToString("G2");

                result.Min = numbers.Min().ToString("G2");
                result.Max = numbers.Max().ToString("G2");

                e.Result = result;
            }
        }
Пример #20
0
        private void cmbSCFuneral_LostFocus(object sender, RoutedEventArgs e)
        {
            if (cmbSCFuneral.Text.Replace(" ", "").Length == 0)
            {
                return;
            }

            EpiDataHelper vm = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;

            PopulateDropDown(vm); //VHF-243

            bool     match           = false;
            ComboBox cmbDistrict     = (ComboBox)sender;
            string   districtContent = cmbDistrictFuneral.Text;// issue#17127

            if (vm != null && vm.DistrictsSubCounties != null && vm.DistrictsSubCounties.Count > 0)
            {
                foreach (KeyValuePair <string, List <string> > district in vm.DistrictsSubCounties)
                {
                    if (districtContent.Length > 0)          //cmbDistrict.SelectedItem != null VHF-243
                    {
                        if (districtContent == district.Key) //cmbDistrict.SelectedItem.ToString() issue#17127
                        {
                            foreach (string sc in district.Value)
                            {
                                if (sc.Equals(cmbSCFuneral.Text))
                                {
                                    match = true;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                match = true;
            }

            if (!match)
            {
                cmbSCFuneral.Text = "";
                MessageBox.Show("Invalid Location", null, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Пример #21
0
        void item_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (sender != null)
                {
                    MenuItem item = sender as MenuItem;
                    if (item != null && item.Tag != null)
                    {
                        string fileName = item.Tag.ToString();

                        EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;
                        if (dataHelper != null && dataHelper.Project != null && dataHelper.CaseForm != null)
                        {
                            Project project  = dataHelper.Project;
                            View    caseForm = project.Views[ContactTracing.Core.Constants.CASE_FORM_NAME];

                            System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
                            string commandText           = System.IO.Path.GetDirectoryName(a.Location) + "\\AnalysisDashboard.exe";

                            XmlDocument doc = new XmlDocument();
                            doc.XmlResolver = null;
                            doc.Load(fileName);
                            XmlNode node = doc.SelectSingleNode("DashboardCanvas/dashboardHelper/projectPath");
                            node.InnerText = System.IO.Path.GetDirectoryName(a.Location) + "\\Projects\\VHF\\" + dataHelper.Project.Name + ".prj";

                            doc.Save(fileName);

                            System.Diagnostics.Process proc = new System.Diagnostics.Process();
                            proc.StartInfo.FileName        = commandText;
                            proc.StartInfo.Arguments       = string.Format("\"{0}\"", fileName);
                            proc.StartInfo.UseShellExecute = true;
                            proc.Start();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was a problem loading the selected custom analysis. Exception: " + ex.Message, "Problem", MessageBoxButton.OK, MessageBoxImage.Asterisk);
            }
        }
Пример #22
0
        public CountryNameEditor(EpiDataHelper dataHelper)
        {
            InitializeComponent();

            Database   = dataHelper.Database;
            DataHelper = dataHelper;

            IDbDriver db = DataHelper.Database; // lazy

            if (!db.TableExists("codeCountryList"))
            {
                List <Epi.Data.TableColumn> tableColumns = new List <Epi.Data.TableColumn>();
                tableColumns.Add(new Epi.Data.TableColumn("COUNTRY", GenericDbColumnType.String, 255, true, false));
                db.CreateTable("codeCountryList", tableColumns);
            }

            Query selectQuery = Database.CreateQuery("SELECT * FROM [codeCountryList] ORDER BY COUNTRY");
            bool  exists      = Database.TableExists("codeCountryList");

            dg.ItemsSource = (Database.Select(selectQuery)).DefaultView;
        }
Пример #23
0
        private void SwapTextBoxesAndComboBoxes()
        {
            EpiDataHelper vm = Application.Current.MainWindow.DataContext as EpiDataHelper;

            if (vm != null && vm.CaseForm != null)
            {
                #region Bleed other comments
                if (vm.CaseForm.Fields["BleedOtherComment"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["BleedOtherComment"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["BleedOtherComment"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbBleedOtherComment.Visibility = System.Windows.Visibility.Visible;
                    txtBleedOtherComment.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbBleedOtherComment.Visibility = System.Windows.Visibility.Collapsed;
                    txtBleedOtherComment.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion
            }
        }
Пример #24
0
        public void emfCases_RecordSaved(object sender, SaveRecordEventArgs e)
        {
            string caseGuid = e.RecordGuid;

            if (e.Form == DataHelper.CaseForm)
            {
                EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;
                if (dataHelper != null)
                {
                    dataHelper.UpdateOrAddCase.Execute(caseGuid);
                }
            }
            else if (e.Form == DataHelper.LabForm || e.Form.Name.Equals(DataHelper.LabForm.Name))
            {
                try
                {
                    caseGuid = DataHelper.GetCaseGuidForLabRecord(e.RecordGuid);
                }
                catch (Exception ex)
                {
                    Epi.Windows.MsgBox.ShowException(ex);
                    return;
                }

                if (!String.IsNullOrEmpty(caseGuid))
                {
                    try
                    {
                        DataHelper.UpdateOrAddCase.Execute(caseGuid);
                        DataHelper.SendMessageForUpdateCase(caseGuid);
                    }
                    catch (Exception ex)
                    {
                        Epi.Windows.MsgBox.ShowException(ex);
                        return;
                    }
                }
            }
        }
Пример #25
0
        private void cmbDistrictFuneral_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            EpiDataHelper vm = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;

            if (vm != null && vm.DistrictsSubCounties != null && vm.DistrictsSubCounties.Count > 0)
            {
                cmbSCFuneral.Items.Clear();
                foreach (KeyValuePair <string, List <string> > district in vm.DistrictsSubCounties)
                {
                    if (cmbDistrictFuneral.SelectedItem != null)
                    {
                        if (cmbDistrictFuneral.SelectedItem.ToString() == district.Key)
                        {
                            foreach (string sc in district.Value)
                            {
                                cmbSCFuneral.Items.Add(sc);
                            }
                        }
                    }
                }
            }
        }
Пример #26
0
        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            if (Click != null)
            {
                dgAllContacts.Visibility  = System.Windows.Visibility.Visible;
                casesSearchBox.Visibility = System.Windows.Visibility.Visible;
                panelInfo.Visibility      = System.Windows.Visibility.Collapsed;
                txtBorderHeading.Text     = "All contacts";

                cbxEstimated.IsChecked  = false;
                txtRelationship.Text    = String.Empty;
                dateContact.DisplayDate = DateTime.Today;

                EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;
                if (dataHelper != null)
                {
                    dataHelper.SendMessageForUnlockContact(ContactVM);
                }

                RoutedEventArgs args = new RoutedEventArgs(ExistingContact.CancelClickEvent);
                Click(this, args);
            }
        }
Пример #27
0
        void computeWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Result        result     = new Result();
            EpiDataHelper DataHelper = e.Argument as EpiDataHelper;

            Epi.Fields.DateTimeField dtField = DataHelper.LabForm.Fields["DateSampleCollected"] as Epi.Fields.DateTimeField;
            if (DataHelper != null && dtField != null)
            {
                DateTime today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

                int count = IsoCount; // (DataHelper.IsolatedCollectionView as ListCollectionView).Count;//.View.Cast<CaseViewModel>().Count();

                result.IsoCurrentT = count.ToString();

                count = (from caseVM in DataHelper.CaseCollection
                         where caseVM.DateDeathCurrentOrFinal.HasValue &&
                         (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable) &&
                         caseVM.DateDeathCurrentOrFinal.HasValue &&
                         caseVM.DateDeathCurrentOrFinal.Value.Day == today.Day &&
                         caseVM.DateDeathCurrentOrFinal.Value.Month == today.Month &&
                         caseVM.DateDeathCurrentOrFinal.Value.Year == today.Year
                         select caseVM).Count();

                result.NewDeathsT = count.ToString();

                count = (from caseVM in DataHelper.CaseCollection
                         where (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Suspect) &&
                         caseVM.DateReport.HasValue &&
                         caseVM.DateReport.Value.Day == today.Day &&
                         caseVM.DateReport.Value.Month == today.Month &&
                         caseVM.DateReport.Value.Year == today.Year
                         select caseVM).Count();

                result.NewCasesT = count.ToString();



                IDbDriver db        = DataHelper.Project.CollectedData.GetDatabase();
                string    queryText = "select count(*) FROM " + dtField.Page.TableName + " " +
                                      "WHERE [DateSampleCollected] >= @Today";
                Query selectQuery = db.CreateQuery(queryText);
                selectQuery.Parameters.Add(new QueryParameter("@Today", System.Data.DbType.Date, DateTime.Today));
                count = (int)db.ExecuteScalar(selectQuery);

                result.PendingT = count.ToString();



                #region Yesterday
                DateTime yesterday = (DateTime.Today).AddDays(-1);
                count = (from caseVM in DataHelper.CaseCollection
                         where caseVM.DateDeathCurrentOrFinal.HasValue &&
                         (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable) &&
                         caseVM.DateDeathCurrentOrFinal.HasValue &&
                         caseVM.DateDeathCurrentOrFinal.Value.Day == yesterday.Day &&
                         caseVM.DateDeathCurrentOrFinal.Value.Month == yesterday.Month &&
                         caseVM.DateDeathCurrentOrFinal.Value.Year == yesterday.Year
                         select caseVM).Count();

                result.NewDeathsY = count.ToString();

                count = (from caseVM in DataHelper.CaseCollection
                         where (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable || caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Suspect) &&
                         caseVM.DateReport.HasValue &&
                         caseVM.DateReport.Value.Day == yesterday.Day &&
                         caseVM.DateReport.Value.Month == yesterday.Month &&
                         caseVM.DateReport.Value.Year == yesterday.Year
                         select caseVM).Count();

                result.NewCasesY = count.ToString();

                queryText = "select count(*) FROM " + dtField.Page.TableName + " " +
                            "WHERE [DateSampleCollected] < @Today AND [DateSampleCollected] >= @Yesterday";
                selectQuery = db.CreateQuery(queryText);
                selectQuery.Parameters.Add(new QueryParameter("@Today", System.Data.DbType.Date, DateTime.Today));
                selectQuery.Parameters.Add(new QueryParameter("@Yesterday", System.Data.DbType.Date, yesterday));

                count = (int)db.ExecuteScalar(selectQuery);

                result.PendingY = count.ToString();
                #endregion // Yesterday
                e.Result = result;
            }
        }
        void computeWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Result        result     = new Result();
            EpiDataHelper DataHelper = e.Argument as EpiDataHelper;

            if (DataHelper != null && DataHelper.Project != null && DataHelper.Project.CollectedData != null)
            {
                IDbDriver db    = DataHelper.Project.CollectedData.GetDatabase();
                int       total = (from caseVM in DataHelper.CaseCollection
                                   where caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded
                                   select caseVM).Count();
                string format = "P1";

                int count = (from caseVM in DataHelper.CaseCollection
                             where caseVM.FinalLabClass == Core.Enums.FinalLabClassification.ConfirmedAcute && caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded
                             select caseVM).Count();

                result.ConfirmedAcuteCount   = count.ToString();
                result.ConfirmedAcutePercent = ((double)count / (double)total).ToString(format);

                count = (from caseVM in DataHelper.CaseCollection
                         where caseVM.FinalLabClass == Core.Enums.FinalLabClassification.ConfirmedConvalescent && caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded
                         select caseVM).Count();

                result.ConfirmedConvalescentCount   = count.ToString();
                result.ConfirmedConvalescentPercent = ((double)count / (double)total).ToString(format);

                count = (from caseVM in DataHelper.CaseCollection
                         where caseVM.FinalLabClass == Core.Enums.FinalLabClassification.NotCase && caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded
                         select caseVM).Count();

                result.NegativeCount   = count.ToString();
                result.NegativePercent = ((double)count / (double)total).ToString(format);

                count = (from caseVM in DataHelper.CaseCollection
                         where caseVM.FinalLabClass == Core.Enums.FinalLabClassification.Indeterminate && caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded
                         select caseVM).Count();

                result.IndeterminateCount   = count.ToString();
                result.IndeterminatePercent = ((double)count / (double)total).ToString(format);

                count = (from caseVM in DataHelper.CaseCollection
                         where caseVM.FinalLabClass == Core.Enums.FinalLabClassification.NeedsFollowUpSample && caseVM.EpiCaseDef != Core.Enums.EpiCaseClassification.Excluded
                         select caseVM).Count();

                result.NeedsFollowUpCount   = count.ToString();
                result.NeedsFollowUpPercent = ((double)count / (double)total).ToString(format);

                Epi.Fields.RenderableField finalLabClassField = DataHelper.CaseForm.Fields["FinalLabClass"] as Epi.Fields.RenderableField;
                Epi.Fields.RenderableField epiCaseDefField    = DataHelper.CaseForm.Fields["EpiCaseDef"] as Epi.Fields.RenderableField;

                if (finalLabClassField != null && epiCaseDefField != null && finalLabClassField.Page != null && epiCaseDefField.Page != null)
                {
                    string finalLabClassTableName = finalLabClassField.Page.TableName;
                    string epiCaseClassTableName  = epiCaseDefField.Page.TableName;

                    string queryText = "";
                    if (db.ToString().ToLower().Contains("sql"))
                    {
                        queryText = "select count(*) from " + finalLabClassTableName + " AS crf INNER JOIN " + epiCaseClassTableName + " AS crfEpiCaseClass on crf.GlobalRecordId = crfEpiCaseClass.GlobalRecordId INNER JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where ((crf.FinalLabClass = '' OR crf.FinalLabClass is null) AND (crfEpiCaseClass.EpiCaseDef <> '4'))";
                    }
                    else
                    {
                        queryText = "select count(*) from ((" + finalLabClassTableName + " AS crf) INNER JOIN " + epiCaseClassTableName + " AS crfEpiCaseClass on crf.GlobalRecordId = crfEpiCaseClass.GlobalRecordId) INNER JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where ((crf.FinalLabClass = '' OR crf.FinalLabClass is null) AND (crfEpiCaseClass.EpiCaseDef <> '4'))";
                    }
                    Query selectQuery = db.CreateQuery(queryText);
                    count = (int)db.ExecuteScalar(selectQuery);

                    if (db.ToString().ToLower().Contains("sql"))
                    {
                        queryText = "select crfEpiCaseClass.ID from " + finalLabClassTableName + " AS crf INNER JOIN " + epiCaseClassTableName + " AS crfEpiCaseClass on crf.GlobalRecordId = crfEpiCaseClass.GlobalRecordId INNER JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where ((crf.FinalLabClass = '' OR crf.FinalLabClass is null) AND (crfEpiCaseClass.EpiCaseDef <> '4'))";
                    }
                    else
                    {
                        queryText = "select crfEpiCaseClass.ID from ((" + finalLabClassTableName + " AS crf) INNER JOIN " + epiCaseClassTableName + " AS crfEpiCaseClass on crf.GlobalRecordId = crfEpiCaseClass.GlobalRecordId) INNER JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where ((crf.FinalLabClass = '' OR crf.FinalLabClass is null) AND (crfEpiCaseClass.EpiCaseDef <> '4'))";
                    }
                    selectQuery = db.CreateQuery(queryText);
                    DataTable   dt = db.Select(selectQuery);
                    WordBuilder wb = new WordBuilder(",");

                    foreach (DataRow row in dt.Rows)
                    {
                        wb.Add(row["ID"].ToString());
                    }

                    result.PendingIDs = wb.ToString();

                    result.PendingCount   = count.ToString();
                    result.PendingPercent = ((double)count / (double)total).ToString(format);

                    if (db.ToString().ToLower().Contains("sql"))
                    {
                        queryText = "select count(*) from CaseInformationForm AS crf LEFT JOIN " + epiCaseClassTableName + " AS crfEpiCaseClass on crf.GlobalRecordId = crfEpiCaseClass.GlobalRecordId LEFT JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where ((lrf.GlobalRecordId = '' OR lrf.GlobalRecordId is null) AND (crfEpiCaseClass.EpiCaseDef <> '4') AND crf.RecStatus = 1)";
                    }
                    else
                    {
                        queryText = "select count(*) from ((CaseInformationForm AS crf) LEFT JOIN " + epiCaseClassTableName + " AS crfEpiCaseClass on crf.GlobalRecordId = crfEpiCaseClass.GlobalRecordId) LEFT JOIN LaboratoryResultsForm lrf on crf.GlobalRecordId = lrf.FKEY where ((lrf.GlobalRecordId = '' OR lrf.GlobalRecordId is null) AND (crfEpiCaseClass.EpiCaseDef <> '4') AND crf.RecStatus = 1)";
                    }
                    selectQuery = db.CreateQuery(queryText);
                    count       = (int)db.ExecuteScalar(selectQuery);

                    result.NotSampledCount   = count.ToString();
                    result.NotSampledPercent = ((double)count / (double)total).ToString(format);

                    e.Result = result;
                }
                else
                {
                    throw new InvalidOperationException("FinalLabClass and EpiCaseDef must both be non-null fields in computeWorker_doWork in LabClassAllPatients.xaml.cs");
                }
            }
        }
        public void Compute()
        {
            DataHelper.RefreshEpiCurveData();

            int highestCount = 0;


            XYColumnChartData xyDataPUI = null;
            double            chartDataYTotal;
            int chartDataSkip = 0;


            if (ApplicationViewModel.Instance.CurrentRegion == Core.Enums.RegionEnum.USA)
            {
                chartDataSkip = 4;
            }
            else
            {
                chartDataSkip = 3;
            }

            for (int i = 0; i < DataHelper.EpiCurveDataPointCollectionCPS.Count - 1; i = i + chartDataSkip)
            {
                XYColumnChartData xyDataC = DataHelper.EpiCurveDataPointCollectionCPS[i];
                XYColumnChartData xyDataP = DataHelper.EpiCurveDataPointCollectionCPS[i + 1];
                XYColumnChartData xyDataS = DataHelper.EpiCurveDataPointCollectionCPS[i + 2];

                if (ApplicationViewModel.Instance.CurrentRegion == Core.Enums.RegionEnum.USA)
                {
                    xyDataPUI = DataHelper.EpiCurveDataPointCollectionCPS[i + 3];
                }

                if (ApplicationViewModel.Instance.CurrentRegion == Core.Enums.RegionEnum.USA)
                {
                    chartDataYTotal = xyDataC.Y + xyDataP.Y + xyDataS.Y + xyDataPUI.Y;
                }
                else
                {
                    chartDataYTotal = xyDataC.Y + xyDataP.Y + xyDataS.Y;
                }


                if (chartDataYTotal > highestCount)
                {
                    highestCount = (int)(chartDataYTotal);
                }
            }

            //foreach (XYColumnChartData xyData in DataHelper.EpiCurveDataPointCollection)
            //{
            //    if (xyData.Y > highestCount)
            //    {
            //        highestCount = (int)xyData.Y;
            //    }
            //}

            numberCoordinates.From = 0;
            numberCoordinates.To   = highestCount;

            if (highestCount > 70)
            {
                numberCoordinates.Step = 5;
                numberCoordinates.To   = highestCount + (highestCount % 5);
            }
            else if (highestCount > 36)
            {
                numberCoordinates.Step = 2;

                if (highestCount % 2 == 1)
                {
                    numberCoordinates.To = highestCount + 1;
                }
            }
            else
            {
                numberCoordinates.Step = 1;
                if (highestCount <= 10)
                {
                    numberCoordinates.NumberOfPoints = highestCount + 1;
                }
            }



            tblockNumber.Text = "...";

            EpiDataHelper dataHelper = this.DataContext as EpiDataHelper;

            if (dataHelper != null)
            {
                if (ApplicationViewModel.Instance.CurrentRegion == Core.Enums.RegionEnum.USA)
                {
                    var query = from caseVM in dataHelper.CaseCollection
                                where caseVM.DateOnset.HasValue == false &&
                                (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed ||
                                 caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable ||
                                 caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Suspect ||
                                 caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.PUI)
                                select caseVM;

                    tblockNumber.Text = query.Count().ToString();
                }
                else
                {
                    var query = from caseVM in dataHelper.CaseCollection
                                where caseVM.DateOnset.HasValue == false &&
                                (caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Confirmed ||
                                 caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Probable ||
                                 caseVM.EpiCaseDef == Core.Enums.EpiCaseClassification.Suspect)
                                select caseVM;

                    tblockNumber.Text = query.Count().ToString();
                }


                //  tblockNumber.Text = query.Count().ToString();
            }

            xyChart.MaxWidth = System.Windows.SystemParameters.PrimaryScreenWidth - 40;
        }
Пример #30
0
        /// <summary>
        /// Hides combo boxes if the source field in Epi Info 7 is a text field; if the source field is a drop-down list in Epi Info, however, then this makes sure the comboboxes are displayed instead
        /// </summary>
        private void SwapTextBoxesAndComboBoxes()
        {
            EpiDataHelper vm = ((FrameworkElement)this.Parent).DataContext as EpiDataHelper;

            if (vm != null && vm.CaseForm != null)
            {
                #region Country
                if (vm.CaseForm.Fields["CountryRes"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["CountryRes"] is Epi.Fields.DDLFieldOfCodes)
                {
                    cmbCountryRes.Visibility   = System.Windows.Visibility.Visible;
                    cmbCountryOnset.Visibility = System.Windows.Visibility.Visible;
                    txtCountryRes.Visibility   = System.Windows.Visibility.Collapsed;
                    txtCountryOnset.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbCountryRes.Visibility   = System.Windows.Visibility.Collapsed;
                    cmbCountryOnset.Visibility = System.Windows.Visibility.Collapsed;
                    txtCountryRes.Visibility   = System.Windows.Visibility.Visible;
                    txtCountryOnset.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion // Country

                #region District
                if (vm.CaseForm.Fields["DistrictRes"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["DistrictRes"] is Epi.Fields.DDLFieldOfCodes)
                {
                    cmbDistrictRes.Visibility               = System.Windows.Visibility.Visible;
                    cmbDistrictRes1.Visibility              = System.Windows.Visibility.Visible;
                    cmbDistrictOnset.Visibility             = System.Windows.Visibility.Visible;
                    cmbDistrictHosp.Visibility              = System.Windows.Visibility.Visible;
                    cmbHospitalDistrict1.Visibility         = System.Windows.Visibility.Visible;
                    cmbContactDistrict1.Visibility          = System.Windows.Visibility.Visible;
                    cmbContactDistrict2.Visibility          = System.Windows.Visibility.Visible;
                    cmbFuneralDistrict1.Visibility          = System.Windows.Visibility.Visible;
                    cmbTravelDistrict.Visibility            = System.Windows.Visibility.Visible;
                    cmbHospitalDischargeDistrict.Visibility = System.Windows.Visibility.Visible;
                    cmbDistrictFuneral.Visibility           = System.Windows.Visibility.Visible;
                    txtDistrictRes.Visibility               = System.Windows.Visibility.Collapsed;
                    txtDistrictRes1.Visibility              = System.Windows.Visibility.Collapsed;
                    txtDistrictOnset.Visibility             = System.Windows.Visibility.Collapsed;
                    txtDistrictHosp.Visibility              = System.Windows.Visibility.Collapsed;
                    txtHospitalDistrict1.Visibility         = System.Windows.Visibility.Collapsed;
                    txtContactDistrict1.Visibility          = System.Windows.Visibility.Collapsed;
                    txtContactDistrict2.Visibility          = System.Windows.Visibility.Collapsed;
                    txtFuneralDistrict1.Visibility          = System.Windows.Visibility.Collapsed;
                    txtTravelDistrict.Visibility            = System.Windows.Visibility.Collapsed;
                    txtHospitalDischargeDistrict.Visibility = System.Windows.Visibility.Collapsed;
                    txtDistrictFuneral.Visibility           = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbDistrictRes.Visibility               = System.Windows.Visibility.Collapsed;
                    cmbDistrictRes1.Visibility              = System.Windows.Visibility.Collapsed;
                    cmbDistrictOnset.Visibility             = System.Windows.Visibility.Collapsed;
                    cmbDistrictHosp.Visibility              = System.Windows.Visibility.Collapsed;
                    cmbHospitalDistrict1.Visibility         = System.Windows.Visibility.Collapsed;
                    cmbContactDistrict1.Visibility          = System.Windows.Visibility.Collapsed;
                    cmbContactDistrict2.Visibility          = System.Windows.Visibility.Collapsed;
                    cmbFuneralDistrict1.Visibility          = System.Windows.Visibility.Collapsed;
                    cmbTravelDistrict.Visibility            = System.Windows.Visibility.Collapsed;
                    cmbHospitalDischargeDistrict.Visibility = System.Windows.Visibility.Collapsed;
                    cmbDistrictFuneral.Visibility           = System.Windows.Visibility.Collapsed;
                    txtDistrictRes.Visibility               = System.Windows.Visibility.Visible;
                    txtDistrictRes1.Visibility              = System.Windows.Visibility.Visible;
                    txtDistrictOnset.Visibility             = System.Windows.Visibility.Visible;
                    txtDistrictHosp.Visibility              = System.Windows.Visibility.Visible;
                    txtHospitalDistrict1.Visibility         = System.Windows.Visibility.Visible;
                    txtContactDistrict1.Visibility          = System.Windows.Visibility.Visible;
                    txtContactDistrict2.Visibility          = System.Windows.Visibility.Visible;
                    txtFuneralDistrict1.Visibility          = System.Windows.Visibility.Visible;
                    txtTravelDistrict.Visibility            = System.Windows.Visibility.Visible;
                    txtHospitalDischargeDistrict.Visibility = System.Windows.Visibility.Visible;
                    txtDistrictFuneral.Visibility           = System.Windows.Visibility.Visible;
                }
                #endregion // District

                #region Sub-County
                if (vm.CaseForm.Fields["SCRes"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["SCRes"] is Epi.Fields.DDLFieldOfCodes)
                {
                    cmbSCRes.Visibility     = System.Windows.Visibility.Visible;
                    cmbSCOnset.Visibility   = System.Windows.Visibility.Visible;
                    cmbSCFuneral.Visibility = System.Windows.Visibility.Visible;
                    if (cmbSCRes.Items.Count == 0)
                    {
                        SetSCItemSource(cmbSCRes, vm);
                    }
                    if (cmbSCOnset.Items.Count == 0)
                    {
                        SetSCItemSource(cmbSCOnset, vm);
                    }
                    if (cmbSCFuneral.Items.Count == 0)
                    {
                        SetSCItemSource(cmbSCFuneral, vm);
                    }
                    txtSCRes.Visibility     = System.Windows.Visibility.Collapsed;
                    txtSCOnset.Visibility   = System.Windows.Visibility.Collapsed;
                    txtSCFuneral.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbSCRes.Visibility     = System.Windows.Visibility.Collapsed;
                    cmbSCOnset.Visibility   = System.Windows.Visibility.Collapsed;
                    cmbSCFuneral.Visibility = System.Windows.Visibility.Collapsed;
                    txtSCRes.Visibility     = System.Windows.Visibility.Visible;
                    txtSCOnset.Visibility   = System.Windows.Visibility.Visible;
                    txtSCFuneral.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion // Sub-County

                #region Parish
                if (vm.CaseForm.Fields.Contains("ParishRes"))//17178
                {
                    if (vm.CaseForm.Fields["ParishRes"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["ParishRes"] is Epi.Fields.DDLFieldOfCodes)
                    {
                        cmbParishRes.Visibility = System.Windows.Visibility.Visible;
                        txtParishRes.Visibility = System.Windows.Visibility.Collapsed;
                    }
                    else
                    {
                        cmbParishRes.Visibility = System.Windows.Visibility.Collapsed;
                        txtParishRes.Visibility = System.Windows.Visibility.Visible;
                    }
                }

                #endregion // Parish

                #region Village
                if (vm.CaseForm.Fields["VillageRes"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["VillageRes"] is Epi.Fields.DDLFieldOfCodes)
                {
                    cmbVillageRes.Visibility       = System.Windows.Visibility.Visible;
                    cmbVillageOnset.Visibility     = System.Windows.Visibility.Visible;
                    cmbContactVillage1.Visibility  = System.Windows.Visibility.Visible;
                    cmbContactVillage2.Visibility  = System.Windows.Visibility.Visible;
                    cmbVillageFuneral.Visibility   = System.Windows.Visibility.Visible;
                    cmbHospitalVillage1.Visibility = System.Windows.Visibility.Visible;
                    txtVillageRes.Visibility       = System.Windows.Visibility.Collapsed;
                    txtVillageOnset.Visibility     = System.Windows.Visibility.Collapsed;
                    txtContactVillage1.Visibility  = System.Windows.Visibility.Collapsed;
                    txtContactVillage2.Visibility  = System.Windows.Visibility.Collapsed;
                    txtVillageFuneral.Visibility   = System.Windows.Visibility.Collapsed;
                    txtHospitalVillage1.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbVillageRes.Visibility       = System.Windows.Visibility.Collapsed;
                    cmbVillageOnset.Visibility     = System.Windows.Visibility.Collapsed;
                    cmbContactVillage1.Visibility  = System.Windows.Visibility.Collapsed;
                    cmbContactVillage2.Visibility  = System.Windows.Visibility.Collapsed;
                    cmbVillageFuneral.Visibility   = System.Windows.Visibility.Collapsed;
                    cmbHospitalVillage1.Visibility = System.Windows.Visibility.Collapsed;
                    txtVillageRes.Visibility       = System.Windows.Visibility.Visible;
                    txtVillageOnset.Visibility     = System.Windows.Visibility.Visible;
                    txtContactVillage1.Visibility  = System.Windows.Visibility.Visible;
                    txtContactVillage2.Visibility  = System.Windows.Visibility.Visible;
                    txtVillageFuneral.Visibility   = System.Windows.Visibility.Visible;
                    txtHospitalVillage1.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion // Village

                #region HCWPosition
                if (vm.CaseForm.Fields["hcwposition"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["hcwposition"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["hcwposition"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbhcwposition.Visibility = System.Windows.Visibility.Visible;
                    txthcwposition.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbhcwposition.Visibility = System.Windows.Visibility.Collapsed;
                    txthcwposition.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region HCWFacility
                if (vm.CaseForm.Fields["hcwfacility"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["hcwfacility"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["hcwfacility"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbhcwfacility.Visibility = System.Windows.Visibility.Visible;
                    txthcwfacility.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbhcwfacility.Visibility = System.Windows.Visibility.Collapsed;
                    txthcwfacility.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region CurrentHospital
                if (vm.CaseForm.Fields["HospitalCurrent"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["HospitalCurrent"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["HospitalCurrent"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbCurrentHospital.Visibility = System.Windows.Visibility.Visible;
                    txtCurrentHospital.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbCurrentHospital.Visibility = System.Windows.Visibility.Collapsed;
                    txtCurrentHospital.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Hospital Past
                if (vm.CaseForm.Fields["HospitalPast1"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["HospitalPast1"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["HospitalPast1"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbCurrentHospital2.Visibility = System.Windows.Visibility.Visible;
                    txtCurrentHospital2.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbCurrentHospital2.Visibility = System.Windows.Visibility.Collapsed;
                    txtCurrentHospital2.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region SymptOtherComment
                if (vm.CaseForm.Fields["SymptOtherComment"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["SymptOtherComment"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["SymptOtherComment"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbSymptOtherComment.Visibility = System.Windows.Visibility.Visible;
                    txtSymptOtherComment.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbSymptOtherComment.Visibility = System.Windows.Visibility.Collapsed;
                    txtSymptOtherComment.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Contact Relation
                if (vm.CaseForm.Fields["ContactRelation1"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["ContactRelation1"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["ContactRelation1"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbContactRelation1.Visibility = System.Windows.Visibility.Visible;
                    txtContactRelation1.Visibility = System.Windows.Visibility.Collapsed;
                    cmbContactRelation2.Visibility = System.Windows.Visibility.Visible;
                    txtContactRelation2.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbContactRelation1.Visibility = System.Windows.Visibility.Collapsed;
                    txtContactRelation1.Visibility = System.Windows.Visibility.Visible;
                    cmbContactRelation2.Visibility = System.Windows.Visibility.Collapsed;
                    txtContactRelation2.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Funeral Relation
                if (vm.CaseForm.Fields["FuneralRelation1"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["FuneralRelation1"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["FuneralRelation1"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbFuneralRelation1.Visibility = System.Windows.Visibility.Visible;
                    txtFuneralRelation1.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbFuneralRelation1.Visibility = System.Windows.Visibility.Collapsed;
                    txtFuneralRelation1.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion
                #region Interview Position
                if (vm.CaseForm.Fields["InterviewerPosition"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["InterviewerPosition"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["InterviewerPosition"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbInterviewerPosition.Visibility = System.Windows.Visibility.Visible;
                    txtInterviewerPosition.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbInterviewerPosition.Visibility = System.Windows.Visibility.Collapsed;
                    txtInterviewerPosition.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Interview Health Facility
                if (vm.CaseForm.Fields["InterviewerHealthFacility"] is Epi.Fields.DDLFieldOfLegalValues ||
                    vm.CaseForm.Fields["InterviewerHealthFacility"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["InterviewerHealthFacility"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbInterviewerHealthFacility.Visibility = System.Windows.Visibility.Visible;
                    txtInterviewerHealthFacility.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbInterviewerHealthFacility.Visibility = System.Windows.Visibility.Collapsed;
                    txtInterviewerHealthFacility.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Proxy Relation
                if (vm.CaseForm.Fields["ProxyRelation"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["ProxyRelation"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["ProxyRelation"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbProxyRelation.Visibility = System.Windows.Visibility.Visible;
                    txtProxyRelation.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbProxyRelation.Visibility = System.Windows.Visibility.Collapsed;
                    txtProxyRelation.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Hosiptal Discharge
                if (vm.CaseForm.Fields["HospitalDischarge"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["HospitalDischarge"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["HospitalDischarge"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbHospitalDischarge.Visibility = System.Windows.Visibility.Visible;
                    txtHospitalDischarge.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbHospitalDischarge.Visibility = System.Windows.Visibility.Collapsed;
                    txtHospitalDischarge.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion

                #region Other Hemo Final Specify
                if (vm.CaseForm.Fields["OtherHemoFinalSpecify"] is Epi.Fields.DDLFieldOfLegalValues || vm.CaseForm.Fields["OtherHemoFinalSpecify"] is Epi.Fields.DDLFieldOfCodes ||
                    vm.CaseForm.Fields["OtherHemoFinalSpecify"] is Epi.Fields.DDLFieldOfCommentLegal)
                {
                    cmbOtherHemoFinalSpecify.Visibility = System.Windows.Visibility.Visible;
                    txtOtherHemoFinalSpecify.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    cmbOtherHemoFinalSpecify.Visibility = System.Windows.Visibility.Collapsed;
                    txtOtherHemoFinalSpecify.Visibility = System.Windows.Visibility.Visible;
                }
                #endregion
            }
        }