/// <summary> /// Get a list of all the admitted patients. /// </summary> /// <param name="stationCode"></param> /// <param name="inMachineOnly"></param> /// <returns></returns> public async Task <List <AdmittedPatient> > GetAdmittedPatientsAsync(bool inMachineOnly = false) { List <AdmittedPatient> admittedPatients = new List <AdmittedPatient>(); try { string imsData_raw = await _imsApi.GetAdmissionsAsync(inMachineOnly); string mmasData_raw = await _imsApi.GetRegisteredMachinesInfoAsync(); string hptData_raw = await _hospApi.GetAdmissionsAsync(_settings.StationCode); List <ImsAdmission> imsData = JsonConvert.DeserializeObject <List <ImsAdmission> >(imsData_raw); List <Admission> hptData = JsonConvert.DeserializeObject <List <Admission> >(hptData_raw); List <MobileMedAdminSystem> mmasData = JsonConvert.DeserializeObject <List <MobileMedAdminSystem> >(mmasData_raw); foreach (ImsAdmission admission in imsData) { var ap = new AdmittedPatient() { ID = admission.ID, Admission = hptData.Where(a => a.ID == admission.AdmissionID).First(), Remark = admission.Remark }; if (admission.MmasID != null) { ap.MMAS = mmasData.Where(mmas => mmas.ID == admission.MmasID).First(); } else { ap.MMAS = null; } ap.Admission.LatestFinding = ap.Admission.Findings.OrderBy(f => f.DiagnosedOn).First(); admittedPatients.Add(ap); } return(admittedPatients); } catch (Exception e) { throw e; } }
public async Task <List <Admission> > GetAdmissionsAsync() { try { List <Admission> admissions = new List <Admission>(); string data = await _api.GetAdmissionsAsync(_settings.StationCode); admissions = JsonConvert.DeserializeObject <List <Admission> >(data); foreach (var item in admissions) { item.LatestFinding = item.Findings.OrderByDescending(f => f.DiagnosedOn).First(); } return(admissions); } catch (Exception e) { throw e; } }