示例#1
0
        void DeleteLabResultExecute(LabResultViewModel resultVM)
        {
            if (LabResultCollection == null)
            {
                return;
            }

            string caseGuid = resultVM.CaseRecordGuid;
            string labGuid  = resultVM.RecordId;

            LabResultCollection.Remove(resultVM);

            Query deleteQuery = Database.CreateQuery("DELETE * FROM " + LabForm.TableName + " WHERE GlobalRecordId = @GUID");

            if (Database.ToString().ToLower().Contains("sql"))
            {
                deleteQuery = Database.CreateQuery("DELETE FROM " + LabForm.TableName + " WHERE GlobalRecordId = @GUID");
            }
            deleteQuery.Parameters.Add(new QueryParameter("@GUID", DbType.String, labGuid));
            Database.ExecuteNonQuery(deleteQuery);

            foreach (Epi.Page page in LabForm.Pages)
            {
                deleteQuery = Database.CreateQuery("DELETE * FROM " + page.TableName + " WHERE GlobalRecordId = @GUID");
                if (Database.ToString().ToLower().Contains("sql"))
                {
                    deleteQuery = Database.CreateQuery("DELETE  FROM " + page.TableName + " WHERE GlobalRecordId = @GUID");
                }
                deleteQuery.Parameters.Add(new QueryParameter("@GUID", DbType.String, labGuid));
                Database.ExecuteNonQuery(deleteQuery);
            }

            Query selectQuery = Database.CreateQuery("SELECT FKEY FROM " + LabForm.TableName + " WHERE FKEY = @GUID");

            selectQuery.Parameters.Add(new QueryParameter("@GUID", DbType.String, caseGuid));

            DataTable dt = Database.Select(selectQuery);

            if (dt.Rows.Count == 0)
            {
                deleteQuery = Database.CreateQuery("DELETE * FROM " + CaseForm.TableName + " WHERE GlobalRecordId = @GUID");
                if (Database.ToString().ToLower().Contains("sql"))
                {
                    deleteQuery = Database.CreateQuery("DELETE  FROM " + CaseForm.TableName + " WHERE GlobalRecordId = @GUID");
                }
                deleteQuery.Parameters.Add(new QueryParameter("@GUID", DbType.String, caseGuid));
                Database.ExecuteNonQuery(deleteQuery);

                foreach (Epi.Page page in CaseForm.Pages)
                {
                    deleteQuery = Database.CreateQuery("DELETE * FROM " + page.TableName + " WHERE GlobalRecordId = @GUID");
                    if (Database.ToString().ToLower().Contains("sql"))
                    {
                        deleteQuery = Database.CreateQuery("DELETE  FROM " + page.TableName + " WHERE GlobalRecordId = @GUID");
                    }
                    deleteQuery.Parameters.Add(new QueryParameter("@GUID", DbType.String, caseGuid));
                    Database.ExecuteNonQuery(deleteQuery);
                }
            }
        }
示例#2
0
        private void AddResult(LabResultViewModel newResult)
        {
            if (LabResultCollection == null)
            {
                return;
            }

            LabResultCollection.Add(newResult);

            //int SUDV = 0;
            //int BDBV = 0;
            //int EBOV = 0;
            //int MARV = 0;

            //foreach (LabResultViewModel labResultVM in LabResultCollection)
            //{
            //    if (!String.IsNullOrEmpty(labResultVM.MARVPCR)) MARV++;
            //    if (!String.IsNullOrEmpty(labResultVM.EBOVPCR)) EBOV++;
            //    if (!String.IsNullOrEmpty(labResultVM.BDBVPCR)) BDBV++;
            //    if (!String.IsNullOrEmpty(labResultVM.SUDVPCR)) SUDV++;
            //}

            //VirusTestTypes virusTestType = Core.VirusTestTypes.Sudan;

            //if (SUDV > BDBV && SUDV > EBOV && SUDV > MARV)
            //{
            //    virusTestType = Core.VirusTestTypes.Sudan;
            //}

            //if (MARV > SUDV && MARV > EBOV && MARV > BDBV)
            //{
            //    virusTestType = Core.VirusTestTypes.Marburg;
            //}

            //if (EBOV > MARV && EBOV > SUDV && EBOV > BDBV)
            //{
            //    virusTestType = Core.VirusTestTypes.Ebola;
            //}

            //if (BDBV > MARV && BDBV > EBOV && BDBV > SUDV)
            //{
            //    virusTestType = Core.VirusTestTypes.Bundibugyo;
            //}

            if (LabRecordAdded != null)
            {
                LabRecordAdded(this, new CaseDataPopulatedArgs(VirusTestType, false));
            }
        }
示例#3
0
        protected override void SortCases()
        {
            ObservableCollection <LabResultViewModel> tempResults = new ObservableCollection <LabResultViewModel>();

            foreach (LabResultViewModel labVM in LabResultCollection)
            {
                tempResults.Add(labVM);
            }

            var query = from labVM in tempResults
                        orderby labVM.CaseID
                        select labVM;

            LabResultCollection.Clear();

            foreach (var labVM in query)
            {
                LabResultCollection.Add(labVM);
            }
        }
示例#4
0
        protected override bool PopulateCollections(bool initialLoad = false)
        {
            LabDataHelper.SampleInterpretConfirmedAcute        = Properties.Resources.AnalysisClassConfirmedAcute;
            LabDataHelper.SampleInterpretConfirmedConvalescent = Properties.Resources.AnalysisClassConfirmedConvalescent;
            LabDataHelper.SampleInterpretNotCase               = Properties.Resources.AnalysisClassNotCase;
            LabDataHelper.SampleInterpretIndeterminate         = Properties.Resources.AnalysisClassIndeterminate;
            LabDataHelper.SampleInterpretNegativeNeedsFollowUp = Properties.Resources.AnalysisClassNegativeNeedsFollowUp;

            LabDataHelper.PCRPositive      = Properties.Resources.Positive;
            LabDataHelper.PCRNegative      = Properties.Resources.Negative;
            LabDataHelper.PCRIndeterminate = Properties.Resources.AnalysisClassIndeterminate;
            LabDataHelper.PCRNotAvailable  = "n/a";

            LabDataHelper.SampleTypeWholeBlood = Properties.Resources.SampleTypeWholeBlood;
            LabDataHelper.SampleTypeSerum      = Properties.Resources.SampleTypeSerum;
            LabDataHelper.SampleTypeHeartBlood = Properties.Resources.SampleTypeHeartBlood;
            LabDataHelper.SampleTypeSkin       = Properties.Resources.SampleTypeSkin;
            LabDataHelper.SampleTypeOther      = Properties.Resources.SampleTypeOther;

            // *********************************************************************************
            // Following code shows virus tests depending on what's in the database.
            // *********************************************************************************
            DataTable CaseTable = GetCasesTable();
            DataView  CaseView  = new DataView(CaseTable, String.Empty, String.Empty, DataViewRowState.CurrentRows);

            DataTable LabTable = GetLabTable();
            DataView  LabView  = new DataView(LabTable, String.Empty, String.Empty, DataViewRowState.CurrentRows);

            SudanTestsDetected      = false;
            EbolaTestsDetected      = false;
            BundibugyoTestsDetected = false;
            MarburgTestsDetected    = false;
            CCHFTestsDetected       = false;
            RiftTestsDetected       = false;
            LassaTestsDetected      = false;

            foreach (DataRowView rowView in LabView)
            {
                LabResultViewModel labResultVM = new LabResultViewModel(LabForm);
                LoadResultData(rowView.Row, labResultVM, CaseView);
                LabResultCollection.Add(labResultVM);

                if (!String.IsNullOrEmpty(labResultVM.MARVPCR))
                {
                    MarburgTestsDetected = true;
                }
                if (!String.IsNullOrEmpty(labResultVM.EBOVPCR))
                {
                    EbolaTestsDetected = true;
                }
                if (!String.IsNullOrEmpty(labResultVM.BDBVPCR))
                {
                    BundibugyoTestsDetected = true;
                }
                if (!String.IsNullOrEmpty(labResultVM.SUDVPCR))
                {
                    SudanTestsDetected = true;
                }
                if (!String.IsNullOrEmpty(labResultVM.CCHFPCR))
                {
                    CCHFTestsDetected = true;
                }
                if (!String.IsNullOrEmpty(labResultVM.RVFPCR))
                {
                    RiftTestsDetected = true;
                }
                if (!String.IsNullOrEmpty(labResultVM.LHFPCR))
                {
                    LassaTestsDetected = true;
                }
            }

            // *********************************************************************************
            // Following (uncommented) code shows virus tests depending on what the user entered on the initial app setup
            // *********************************************************************************
            Query     selectQuery = Database.CreateQuery("SELECT * FROM metaDbInfo");
            DataTable dt          = Database.Select(selectQuery);

            OutbreakName = dt.Rows[0]["OutbreakName"].ToString();
            if (!String.IsNullOrEmpty(dt.Rows[0]["OutbreakDate"].ToString()))
            {
                OutbreakDate = (DateTime)dt.Rows[0]["OutbreakDate"];
            }
            IDPrefix    = dt.Rows[0]["IDPrefix"].ToString();
            IDSeparator = dt.Rows[0]["IDSeparator"].ToString();
            IDPattern   = dt.Rows[0]["IDPattern"].ToString();
            Country     = dt.Rows[0]["PrimaryCountry"].ToString();

            switch (dt.Rows[0]["Virus"].ToString())
            {
            case "Sudan":
                VirusTestType      = Core.Enums.VirusTestTypes.Sudan;
                SudanTestsDetected = true;
                break;

            case "Ebola":
                VirusTestType      = Core.Enums.VirusTestTypes.Ebola;
                EbolaTestsDetected = true;
                break;

            case "Marburg":
                VirusTestType        = Core.Enums.VirusTestTypes.Marburg;
                MarburgTestsDetected = true;
                break;

            case "Bundibugyo":
                VirusTestType           = Core.Enums.VirusTestTypes.Bundibugyo;
                BundibugyoTestsDetected = true;
                break;

            case "CCHF":
                VirusTestType     = Core.Enums.VirusTestTypes.CCHF;
                CCHFTestsDetected = true;
                break;

            case "Rift":
                VirusTestType     = Core.Enums.VirusTestTypes.Rift;
                RiftTestsDetected = true;
                break;

            case "Lassa":
                VirusTestType      = Core.Enums.VirusTestTypes.Lassa;
                LassaTestsDetected = true;
                break;
            }

            SortCases();
            UpdateResultNumbers();

            LabResultCollectionView = System.Windows.Data.CollectionViewSource.GetDefaultView(LabResultCollection);
            RaisePropertyChanged("LabResultCollectionView");

            if (CaseDataPopulated != null)
            {
                CaseDataPopulated(this, new CaseDataPopulatedArgs(VirusTestType, false));
            }

            TaskbarProgressState = System.Windows.Shell.TaskbarItemProgressState.None;

            return(true);
        }
示例#5
0
 public override void ClearCollections()
 {
     //CaseCollection = new ObservableCollection<CaseViewModel>();
     LabResultCollection.Clear();// = new ObservableCollection<LabResultViewModel>();
 }