public void GivenIPopulatePatientSearchPageWithDefaultValues()
        {
            PatientSearch patientSearchPage = new PatientSearch();

            patientSearchPage.WaitUntilIsLoaded();
            patientSearchPage.ClickSearch();
        }
Example #2
0
        public async Task <IActionResult> Excel(PatientSearch search, int page = 1)
        {
            try
            {
                PatientWhereBuilder patientWhereBuilder = new PatientWhereBuilder(search);

                string searchParams = search != default ? search.ToString() : default;

                List <PatientPreviewViewModel> patientsModel = await GetPage(search, patientWhereBuilder, searchParams, page);

                if (patientsModel == default)
                {
                    return(BadRequest());
                }

                return(await base.FormatModel <PatientPreviewViewModel>(patientsModel, MedicDataLocalization.Patients, FormattableFactory));
            }
            catch (Exception ex)
            {
                Task <int> _ = MedicLoggerService.SaveAsync(new Log()
                {
                    Message = ex.Message,
                    InnerExceptionMessage = ex?.InnerException?.Message ?? null,
                    Source     = ex.Source,
                    StackTrace = ex.StackTrace,
                    Date       = DateTime.Now
                });

                throw;
            }
        }
Example #3
0
        public DataSet SelectAllData(string financialYear, string FName, string Lastname, string MidLename, string PatientType, string Doctor)
        {
            PatientSearch obj = new PatientSearch();

            Connect();
            List <PatientSearch> patientlist = new List <PatientSearch>();
            DataSet    ds  = new DataSet();
            SqlCommand cmd = new SqlCommand("GetPatientSearch", con);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@HospitalID", HospitalID);
            cmd.Parameters.AddWithValue("@LocationID", LocationID);
            cmd.Parameters.AddWithValue("@PatientName", "%");

            cmd.Parameters.AddWithValue("@PatientType", PatientType);

            cmd.Parameters.AddWithValue("@FirstName", FName);
            cmd.Parameters.AddWithValue("@MiddleName", MidLename);
            cmd.Parameters.AddWithValue("@LastName", Lastname);
            cmd.Parameters.AddWithValue("@DoctorID", Doctor);
            cmd.Parameters.AddWithValue("@FinancialYearName", financialYear);
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.SelectCommand = cmd;

            con.Open();
            da.Fill(ds);
            con.Close();

            return(ds);
        }
        public void TestDriverFactory()
        {
            SearchForAuthorization createNew = new SearchForAuthorization();

            createNew.GoTo();
            SignIn signIn = new SignIn();

            signIn.WaitUntilIsLoaded();
            signIn.EnterCredentials(context.EnvConfig.UserCredentials.GetValueOrDefault("defaultUser").UserName, context.EnvConfig.UserCredentials.GetValueOrDefault("defaultUser").Password);
            createNew.WaitUntilIsLoaded();
            createNew.CreateNewAuthorization();
            PatientSearch patientSearch = new PatientSearch();

            patientSearch.WaitUntilIsLoaded();
            patientSearch.ClickSearch();
            CreateAuthorization createAuthorization = new CreateAuthorization();

            createAuthorization.WaitUntilIsLoaded();
            createAuthorization.AgreePopUp.Close();
            createAuthorization.SelectServiceType("Chemotherapy");
            createAuthorization.SelectPlaceOfService("Home");
//            createAuthorization.TypeDischargeDateDirrectly("11/23/2017");
            createAuthorization.CopyAdmissionDateToDischargeDate();
            createAuthorization.SelectAdmitionType("Elective");
            createAuthorization.SelectRequestingProvider("Berks Family Care");
            createAuthorization.SearchForTheLastNameOfServicingProviderAndPickFirstFromResults("Ahtaridis");
            createAuthorization.SearchForAdditionalProvider("Univ Of Penn Gastroenterology");
            createAuthorization.SetDiagnoses("001");
            createAuthorization.SetServiceLine("123123", "2", "Month(s)", "2", "Month(s)");
//            createAuthorization.UploadAttachment("");
            createAuthorization.AddNotes("Some notes");
            createAuthorization.Submit();
            context.BrowserFactory.CloseWebDriver();
        }
        public void SearchTest(string searchText, string[] resultIds)
        {
            var search = new PatientSearch(_patients, 10);

            var results = search.FindMatches(searchText).ToArray();

            Assert.That(results.Select(x => x.Id).ToArray(), Is.EqualTo(resultIds));
        }
Example #6
0
        public static SelectList CriteriaMatchesDropdownList(string DropdownFor)
        {
            var selectItems       = PatientSearch.CriteriaMatches().OrderBy(x => x.Value);
            var optionSelectItems = selectItems.Where(i => i.Value.Contains(DropdownFor));
            var optionsDict       = optionSelectItems.ToDictionary(x => x.Key, x => x.Value);

            optionsDict.Keys.ToList().ForEach(key =>
            {
                optionsDict[key] = optionsDict[key].Replace(".String", "").Replace(".Date", "");
            });
            return(new SelectList(optionsDict, "Value", "Key"));
        }
Example #7
0
        public async Task <IActionResult> Index(PatientSearch search, int page = 1)
        {
            try
            {
                string searchParams = search != default ? search.ToString() : default;

                PatientWhereBuilder patientWhereBuilder = new PatientWhereBuilder(search);

                List <PatientPreviewViewModel> patientsModel = await GetPage(search, patientWhereBuilder, searchParams, page);

                string patientsCountKey = $"{MedicConstants.PatientsCount} - {searchParams}";

                if (!base.MedicCache.TryGetValue(patientsCountKey, out int patientsCount))
                {
                    patientsCount = await PatientService.GetPatientsCountAsync(patientWhereBuilder);

                    base.MedicCache.Set(patientsCountKey, patientsCount);
                }

                List <SexOption> sexOptions = base.GetDefaultSexes();

                sexOptions.AddRange(await base.GetSexesAsync());

                return(View(new PatientPageIndexModel()
                {
                    Patients = patientsModel,
                    TotalPages = base.TotalPages((int)search.Length, patientsCount),
                    TotalResults = patientsCount,
                    CurrentPage = page,
                    Title = MedicDataLocalization.Get(MedicDataLocalization.Patients),
                    Search = search,
                    Description = MedicDataLocalization.Get(MedicDataLocalization.Patients),
                    Keywords = MedicDataLocalization.Get(MedicDataLocalization.PatientsSummary),
                    Sexes = sexOptions
                }));
            }
            catch (Exception ex)
            {
                Task <int> _ = MedicLoggerService.SaveAsync(new Log()
                {
                    Message = ex.Message,
                    InnerExceptionMessage = ex?.InnerException?.Message ?? null,
                    Source     = ex.Source,
                    StackTrace = ex.StackTrace,
                    Date       = DateTime.Now
                });

                throw;
            }
        }
Example #8
0
        private async Task <List <PatientPreviewViewModel> > GetPage(PatientSearch search, PatientWhereBuilder patientWhereBuilder, string searchParams, int page)
        {
            int pageLength = (int)search.Length;
            int startIndex = base.GetStartIndex(pageLength, page);

            string patientsKey = $"{nameof(PatientPreviewViewModel)} - {startIndex} - {searchParams}";

            if (!base.MedicCache.TryGetValue(patientsKey, out List <PatientPreviewViewModel> patientsModel))
            {
                PatientHelperBuilder helperBuilder = new PatientHelperBuilder(search);

                patientsModel = await PatientService.GetPatientsByQueryAsync(patientWhereBuilder, helperBuilder, startIndex);

                base.MedicCache.Set(patientsKey, patientsModel);
            }

            return(patientsModel);
        }
Example #9
0
        public BOTResponse SearchPatient(string matchParameter, int sequence, string requestToken, List <Patient> patData)
        {
            BOTResponse response = new BOTResponse();

            if (string.IsNullOrEmpty(requestToken))
            {
                requestToken = Guid.NewGuid().ToString();
            }
            try
            {
                PatientSearch patientSearch = new PatientSearch();
                var           responseCode  = false;
                switch (sequence)
                {
                case 1:
                    responseCode = patientSearch.MatchFirstName(sequence, matchParameter, requestToken, patData);
                    break;

                case 2:
                    responseCode = patientSearch.MatchLastName(sequence, matchParameter, requestToken, patData);
                    break;

                case 3:
                    responseCode = patientSearch.MatchDOB(sequence, matchParameter, requestToken, patData);
                    break;

                case 4:
                    responseCode = patientSearch.MatchSSN(sequence, matchParameter, requestToken, patData);
                    break;

                case 5:
                    responseCode = patientSearch.MatchZip(sequence, matchParameter, requestToken, patData);
                    break;

                case 6:
                    responseCode = patientSearch.MatchPhone(sequence, matchParameter, requestToken, patData);
                    break;

                default:
                    break;
                }
                if (responseCode)
                {
                    BotManager bM = new BotManager();
                    response.ResponseMessage = bM.getResponse(requestToken, sequence, responseCode);
                    response.RequestToken    = requestToken;
                    response.status          = responseCode;
                }
                else
                {
                    BotManager bM = new BotManager();
                    response.ResponseMessage = bM.getResponse(requestToken, sequence, responseCode);
                    response.RequestToken    = requestToken;
                    response.status          = responseCode;
                }
            }
            catch (Exception ex)
            {
            }
            return(response);
        }
Example #10
0
 private SelectList CriteriaClassesDropdownList()
 {
     return(ViewBag.CriteriaClasses = new SelectList(PatientSearch.CriteriaClasses().
                                                     OrderBy(x => x.Value), "Value", "Key", "Patient"));
 }
Example #11
0
 public PatientWhereBuilder(PatientSearch patientSearch)
 {
     PatientSearch = patientSearch;
 }
Example #12
0
        public ActionResult Search(string criteria, string page)
        {
            // *** Show search page and results ***
            ActionResult returnResult;

            PatientSearch model = new PatientSearch();

            // *** Check if we have criteria ***
            if (string.IsNullOrWhiteSpace(criteria))
            {
                model.Message = "(patient results)";
            }
            else
            {
                // *** Require at least two characters ***
                if (criteria.Length < 2)
                {
                    this.Error("Please enter at least two characters");
                }
                else
                {
                    int pageNum = GetPage(page);

                    // *** Do search on repository ***
                    PatientSearchResult result = this.DashboardRepository.Patients.Search(criteria, pageNum, ItemsPerPage);

                    // *** If successful ***
                    if (result.Success)
                    {
                        // *** If we have any patients ***
                        if (result.Patients != null)
                        {
                            if (result.Patients.Count > 0)
                            {
                                // *** Set paging data ***
                                model.Paging.SetPagingData(ItemsPerPage, pageNum, result.TotalResults);

                                // *** Set base url for paging ***
                                model.Paging.BaseUrl = Url.Action("Search", "PatientSearch", new { criteria = criteria, page = "" });

                                // *** Set return url for navigation ***
                                TempData[ReturnUrl] = Url.Action("Search", "PatientSearch", new { criteria = criteria, page = pageNum });

                                //// *** Add current page's patients ***
                                //int startIdx = (pageNum - 1) * ItemsPerPage;
                                //int endIdx = startIdx + ItemsPerPage - 1;
                                //if (endIdx >= result.Patients.Count)
                                //    endIdx = result.Patients.Count - 1;

                                //for (int i = startIdx; i <= endIdx; i++)
                                //    model.Patients.Add(result.Patients[i]);

                                model.Patients.AddRange(result.Patients);
                            }
                        }
                    }
                    else
                    {
                        ErrorLogger.Log(string.Format("PatientSearchController.Search: {0}", result.Message));
                        this.Error(result.Message);
                    }

                    if (model.Patients.Count == 0)
                    {
                        model.Message = "(No Patients Found)";
                    }
                }
            }

            returnResult = View(model);

            return(returnResult);
        }
Example #13
0
 public static List<PatientSearch> GetPatientListFromId(string patientId)
 {
     var node = GetSelectedNode();
     if (node == null)
         throw new Exception("Unable to get selected DICOM node");
     List<PatientSearch> list = new List<PatientSearch>();
     var findScu = new PatientRootFindScu();
     PatientQueryIod queryMessage = new PatientQueryIod();
     queryMessage.SetCommonTags();
     queryMessage.PatientId = patientId;
     IList<PatientQueryIod> results = findScu.Find(node.LocalAe, node.AET, node.IP, node.Port, queryMessage);
     if(results.Count > 0)
     {
         foreach(var r in results)
         {
             var p = new PatientSearch();
             p.last_name = r.PatientsName.LastName;
             p.first_name = r.PatientsName.FirstName;
             p.dob = r.PatientsBirthDate;
             p.patientid = r.PatientId;
             list.Add(p);
         }            
     }
     return list;
 }
Example #14
0
 public PatientHelperBuilder(PatientSearch patientSearch)
 {
     PatientSearch = patientSearch;
 }