/// <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;
            }
        }