private HttpResponseMessage AdmitPatient(PatientAdmitted patient) { AddHeader(); var response = _client.PostAsJsonAsync(apiUrl + "PatientAdmitted", patient).Result; return(response); }
private void When(PatientAdmitted e) { _currentlyAdmitted = true; Id = e.PatientId; _patientName = e.PatientName; _ageInYears = e.AgeInYears; _ward = e.WardNumber; }
private async Task <IActionResult> AddToAdmitted(int id, bool sentHome = false) { if (id > 0) { try { var response = GetWaitingPatient(id); var patientData = JsonConvert.DeserializeObject <PatientWaitingList>(response.Content.ReadAsStringAsync().Result); var patientAdmitted = new PatientAdmitted { PatientId = id, Condition = patientData.Condition, Priority = patientData.Priority, Infections = patientData.Infections, Arrival = patientData.Arrival, Time_checked_in = patientData.Time_checked_in, Time_triaged = patientData.Time_triaged, HospitalID = patientData.HospitalID, FlowchartName = patientData.FlowchartName }; if (sentHome) { patientAdmitted.Time_released = GetNow(); patientAdmitted.FinalCondition = "Sent home"; } else { patientAdmitted.Time_admitted = GetNow(); } response = AdmitPatient(patientAdmitted); if (response.IsSuccessStatusCode) { response = RemoveWaiting(patientData.Id); await HubContext.Clients.All.SendAsync("ReceiveNotification", patientData.HospitalID); } } catch (DbUpdateConcurrencyException) { throw; } } return(null); }
void OnPatientAdmitted(AdmissionArgs admissionArgs) { using var serviceScope = _serviceProvider.CreateScope(); using var ctx = serviceScope.ServiceProvider.GetService <CoronaReporterContext>(); var patient = ctx.Patients .Include(p => p.Consultations) .SingleOrDefault(p => p.Id == admissionArgs.PatientId); if (patient == null) { patient = new Patient(); patient.PopulateFrom(admissionArgs); ctx.Patients.Add(patient); _logger.LogInformation($"New patient admission: {patient}"); } else { patient.PopulateFrom(admissionArgs); _logger.LogInformation($"New admission for existing patient: {patient}"); } // TODO: Two consultations open at the same time? Understand consultation logic // (is there an ID?) var consultation = new Consultation { Patient = patient, AdmissionTime = admissionArgs.AdmissionTime }; patient.Consultations.Add(consultation); ctx.SaveChanges(); PatientAdmitted?.Invoke(consultation); }