/// <summary> /// Adds the selected admission data to the IMS. /// </summary> /// <param name="admissionObj"></param> /// <returns></returns> public async Task <AdmittedPatient> AddAdmissionToImsAsync(object admissionObj) { Admission admission = admissionObj as Admission; IsLoading = true; try { AdmittedPatient patient = Patients.First(ap => ap.Admission.ID == admission.ID); IsLoading = false; return(patient); } catch (InvalidOperationException) { try { var admittedPatient = await imsSvc.AddAdmissionDataAsync(admission); Patients.Add(admittedPatient); IsLoading = false; return(admittedPatient); } catch (Exception) { IsLoading = false; throw; } } }
private static AdmittedPatient ConvertToAdmittedPatient(ImsAdmission iAdm, Admission admission) { AdmittedPatient ap = new AdmittedPatient() { ID = iAdm.ID, Admission = admission }; return(ap); }
public async Task RemoveAdmissionDataAsync(AdmittedPatient admittedPatient) { try { await _imsApi.PutAdmissionsAsync(admittedPatient.ID, isInMachine : false); } catch (Exception) { throw; } }
public AddPrescriptionDialog(AdmittedPatient patient) { InitializeComponent(); Loaded += OnDialogLoaded; Patient = patient; var defaultDate = DateTime.Now.AddHours(1); cdp_startDate.Date = defaultDate.Date; tp_startTime.Time = new TimeSpan(DateTime.Now.Hour + 1, 0, 0); }
/// <summary> /// Disassociates the admitted patient at IMS. Ideal when the patient's medicines /// are already administered. /// </summary> /// <param name="admittedPatientObj"></param> /// <returns></returns> public async Task RemoveAdmissionFromDeviceAsync(object admittedPatientObj) { try { AdmittedPatient patient = admittedPatientObj as AdmittedPatient; await imsSvc.RemoveAdmissionDataAsync(patient); Patients.Remove(patient as AdmittedPatient); } catch (Exception) { throw; } }
public async Task <AdmittedPatient> AddAdmissionDataAsync(Admission admission) { try { string data_raw = await _imsApi.PostAdmissionsAsync(admission.ID); ImsAdmission data = JsonConvert.DeserializeObject <ImsAdmission>(data_raw); AdmittedPatient patient = ConvertToAdmittedPatient(data, admission); return(patient); } catch (Exception e) { throw e; } }
/// <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; } }