public IActionResult GivePriority([FromBody] PatientWaitingList patientData)
 {
     if (ModelState.IsValid)
     {
         try
         {
             patientData.Time_triaged = GetNow();
             var response = GetPatientCheckIn(patientData.PatientId);
             if (response.IsSuccessStatusCode)
             {
                 var checkIn = JsonConvert.DeserializeObject <PatientCheckIn>(response.Content.ReadAsStringAsync().Result);
                 response = RemoveCheckIn(checkIn.Id);
                 if (response.IsSuccessStatusCode)
                 {
                     response = AddWaiting(patientData);
                     if (response.IsSuccessStatusCode)
                     {
                         return(Json("Success"));
                     }
                     else
                     {
                         return(Json("Patient already exists in the list"));
                     }
                 }
             }
         }
         catch (DbUpdateConcurrencyException)
         {
             throw;
         }
     }
     return(Json(getErrors()));
 }
        private HttpResponseMessage AddWaiting(PatientWaitingList patient)
        {
            var x = JsonConvert.SerializeObject(patient);

            AddHeader();
            var response = _client.PostAsJsonAsync(apiUrl + "PatientWaitingLists", patient).Result;

            return(response);
        }
        // TODO: refactor to use PatientId rather than pps
        public IActionResult Assessment(PatientWaitingList patientData)
        {
            var hospitalID = getHospitalID();
            var response   = GetPatientById(patientData.PatientId);

            if (response.IsSuccessStatusCode)
            {
                var patient   = JsonConvert.DeserializeObject <Patient>(response.Content.ReadAsStringAsync().Result);
                var flowchart = GetSelectedFlowchart(patientData.FlowchartId);
                patientData.Patient   = patient;
                patientData.Flowchart = flowchart;
                return(View(patientData));
            }
            return(NotFound());
        }
        public IActionResult SelectFlowcharts()
        {
            var hospitalID = getHospitalID();
            var response   = GetCheckIns(hospitalID);

            if (response.IsSuccessStatusCode)
            {
                var list = JsonConvert.DeserializeObject <IEnumerable <PatientCheckIn> >(response.Content.ReadAsStringAsync().Result);
                if (list.Count() == 0)
                {
                    TempData["Error"] = "No patients awaiting triage assessment!";
                    return(RedirectToAction(nameof(HomeController.Index), "Home"));
                }
                else
                {
                    var patientCheckedIn = list.Where(p => p.Time_checked_in == list.Min(t => t.Time_checked_in)).FirstOrDefault();
                    var patientData      = new PatientWaitingList {
                        PatientId = patientCheckedIn.PatientId, Patient = patientCheckedIn.Patient, HospitalID = patientCheckedIn.HospitalID, Arrival = patientCheckedIn.Arrival, Infections = patientCheckedIn.Infections, Time_checked_in = patientCheckedIn.Time_checked_in
                    };
                    List <Flowchart> flowcharts = GetFlowcharts();

                    var l     = new List <SelectListItem>();
                    int index = 0;
                    foreach (var item in flowcharts)
                    {
                        l.Add(new SelectListItem {
                            Text = item.Name, Value = index.ToString()
                        });
                        index++;
                    }

                    ViewBag.Flowcharts = l;
                    response           = GetPatientHistory(patientCheckedIn.PatientId);
                    if (response.IsSuccessStatusCode)
                    {
                        var patientHistory = JsonConvert.DeserializeObject <IEnumerable <PatientAdmitted> >(response.Content.ReadAsStringAsync().Result);
                        patientData.PatientHistory = patientHistory;
                    }

                    return(View(patientData));
                }
            }
            return(NotFound());
        }