Example #1
0
        private static MatchResult SSNMatch(BasePatient pat1, BasePatient pat2)
        {
            MatchResult returnResult = MatchResult.Unknown;

            if (pat1 != null)
            {
                if (pat2 != null)
                {
                    if (!string.IsNullOrWhiteSpace(pat1.FullSSN))
                    {
                        if (!string.IsNullOrWhiteSpace(pat2.FullSSN))
                        {
                            if (pat1.FullSSN.ToUpper().Trim() == pat2.FullSSN.ToUpper().Trim())
                            {
                                returnResult = MatchResult.Match;
                            }
                            else
                            {
                                returnResult = MatchResult.NotMatch;
                            }
                        }
                    }
                }
            }

            return(returnResult);
        }
Example #2
0
        private static MatchResult DOBMatch(BasePatient pat1, BasePatient pat2)
        {
            MatchResult returnResult = MatchResult.Unknown;

            if (pat1 != null)
            {
                if (pat2 != null)
                {
                    if (pat1.DateOfBirth != DateTime.MinValue)
                    {
                        if (pat2.DateOfBirth != DateTime.MinValue)
                        {
                            if (pat1.DateOfBirth.Date == pat2.DateOfBirth.Date)
                            {
                                returnResult = MatchResult.Match;
                            }
                            else
                            {
                                returnResult = MatchResult.NotMatch;
                            }
                        }
                    }
                }
            }

            return(returnResult);
        }
Example #3
0
        public static MatchType GetMatchType(BasePatient pat1, BasePatient pat2)
        {
            MatchType returnVal = MatchType.None;

            if (LastNameMatch(pat1, pat2) == MatchResult.Match)
            {
                returnVal = MatchType.Partial;
                if (FirstNameMatch(pat1, pat2) == MatchResult.Match)
                {
                    if (SSNMatch(pat1, pat2) == MatchResult.Match)
                    {
                        if (DOBMatch(pat1, pat2) == MatchResult.Match)
                        {
                            returnVal = MatchType.Exact;
                        }
                    }
                }
            }

            return(returnVal);
        }
        public void TestDateDescription()
        {
            BasePatient pat = new BasePatient();

            pat.LastContactDate = DateTime.Now;
            Assert.AreEqual("Today", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(-1);
            Assert.AreEqual("Yesterday", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(1);
            Assert.AreEqual("Tomorrow", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(5);
            Assert.AreEqual("In 5 Days", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(14);
            Assert.AreEqual("In 2 Weeks", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(77);
            Assert.AreEqual("In 2 Months", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(740);
            Assert.AreEqual("In 2 Years", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(-5);
            Assert.AreEqual("5 Days Ago", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(-14);
            Assert.AreEqual("2 Weeks Ago", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(-77);
            Assert.AreEqual("2 Months Ago", pat.LastContactDescription);

            pat.LastContactDate = DateTime.Now.AddDays(-740);
            Assert.AreEqual("2 Years Ago", pat.LastContactDescription);
        }
        private CreateTrackingEntry GetNewModel(TrackingEntryType entryType, string dfn)
        {
            // *** Gets appropriate model based on entry type and dfn ***

            CreateTrackingEntry returnModel = new CreateTrackingEntry();

            // *** Set up button text, title, other ui elements ***
            switch (entryType)
            {
            case TrackingEntryType.Start:
                returnModel.ButtonText  = "Start Tracking";
                returnModel.PageTitle   = "Start Tracking a Patient";
                returnModel.PageMessage = "The following patient will appear as a tracked patient in the dashboard";
                SelectListResult selectListResult = this.DashboardRepository.SelectLists.GetReasonList();
                if (selectListResult.Success)
                {
                    returnModel.Reasons = selectListResult.SelectList;
                }
                returnModel.ReasonText = "Reason for Tracking";
                break;

            case TrackingEntryType.Stop:
                returnModel.ButtonText         = "Stop Tracking";
                returnModel.PageTitle          = "Stop Tracking a Patient";
                returnModel.PageMessage        = "Patient will no longer appear as a tracked patient in the dashboard";
                returnModel.OutcomeTableHeader = "Pregnancy Outcome";
                returnModel.OutcomeHeader      = "Outcome:";
                returnModel.DateHeader         = "Outcome/Delivery Date:";
                returnModel.ReasonText         = "Stop Tracking Reason";
                List <string> stopTrackingReasonList = new List <string>()
                {
                    "First trimester pregnancy failure or loss",
                    "Second trimester pregnancy failure or loss",
                    "Term or pre-term delivery, completed 8 weeks of postpartum care",
                    "Transfer of care",
                    "Moved out of area",
                    "Other"
                };
                returnModel.Reasons = stopTrackingReasonList;
                break;

            case TrackingEntryType.Accept:
                returnModel.ButtonText  = "Accept Tracking";
                returnModel.PageTitle   = "Accept Flagged Patient";
                returnModel.PageMessage = "The following patient will appear as a tracked patient in the dashboard";
                break;

            case TrackingEntryType.Reject:
                returnModel.ButtonText  = "Reject Tracking";
                returnModel.PageTitle   = "Reject Flagged Patient";
                returnModel.PageMessage = "The following patient will not appear as a tracked or flagged patient in the dashboard";
                break;
            }

            // *** Set return url ***
            if (TempData.ContainsKey(ReturnUrl))
            {
                returnModel.ReturnUrl = TempData[ReturnUrl].ToString();
                TempData[ReturnUrl]   = TempData[ReturnUrl];
            }

            // *** Get patient demographics ***
            this.CurrentPatientDfn = dfn;
            BasePatient currentPatient = this.CurrentPatient;

            if (!currentPatient.NotFound)
            {
                // *** Populate model with data ***
                returnModel.TrackingEntry = new TrackingEntry()
                {
                    PatientDfn  = dfn,
                    EntryType   = entryType,
                    PatientName = currentPatient.Name
                };

                returnModel.Patient = currentPatient;
            }

            return(returnModel);
        }