/// <summary> /// Get Patient using id /// </summary> /// <param name="encounterId">encounter id</param> /// <returns>patient</returns> public async Task <Patient> GetPatient(int encounterId) { Patient patient = new Patient(); using (var patientConnection = new SqlConnection(SqlEncryptionHelper.BuildPatientDbConnection(this.patientDbConnectionStr))) { await patientConnection.OpenAsync(); var getPatientCommand = new SqlCommand { CommandType = CommandType.Text, Connection = patientConnection, CommandText = $"select [FirstName],[MiddleName],[LastName],[eid],[gender],[vdate],[lengthofstay],[discharged] from [PatientData] where eid={encounterId}" }; var patientReader = await getPatientCommand.ExecuteReaderAsync(); while (patientReader.Read()) { var firstName = patientReader.GetString(0); var MiddleName = patientReader.GetString(1); var lastName = patientReader.GetString(2); var eid = patientReader.GetInt32(3); var gender = patientReader.GetString(4); var admissionDate = patientReader.GetDateTime(5); var lengthOfStay = 0; if (!patientReader.IsDBNull(6)) { lengthOfStay = patientReader.GetInt32(6); } var discharged = DateTime.Now; if (!patientReader.IsDBNull(7)) { discharged = patientReader.GetDateTime(7); } patient.Eid = eid; patient.FirstName = firstName; patient.MiddleName = MiddleName; patient.LastName = lastName; patient.Gender = gender; patient.Vdate = admissionDate; patient.Lengthofstay = lengthOfStay; patient.Discharged = discharged; } } return(patient); }
public async Task <int> DischargePatient(int eid, DateTime dischargeDate) { Guard.CheckValidEid(eid); int commandResult = 0; using (var patientConnection = new SqlConnection(SqlEncryptionHelper.BuildPatientDbConnection(this.patientDbConnectionStr))) { await patientConnection.OpenAsync(); try { var patientDischargeCommand = new SqlCommand { Connection = patientConnection, CommandText = PatientSchema.PatientDischargeProcedure, CommandType = CommandType.StoredProcedure }; patientDischargeCommand.Parameters.Add(new SqlParameter(PatientSchema.EidParameterName, eid)); patientDischargeCommand.Parameters.Add(new SqlParameter(PatientSchema.dischargeDateParameterName, dischargeDate)); patientDischargeCommand.Parameters.Add(new SqlParameter(PatientSchema.resultParameterName, SqlDbType.Int)); patientDischargeCommand.Parameters[PatientSchema.resultParameterName].Direction = ParameterDirection.Output; await patientDischargeCommand.ExecuteNonQueryAsync(); commandResult = Convert.ToInt32(patientDischargeCommand.Parameters[PatientSchema.resultParameterName].Value); } catch (Exception ex) { throw new Exception($"{CoreConstants.PatientDischargeError}:{commandResult}", ex); } } return(commandResult); }
public async Task <int> AdmitPatient(Patient patient) { Guard.NullCheckAndThrow(patient); var commandResult = 0; using (var patientConnection = new SqlConnection(SqlEncryptionHelper.BuildPatientDbConnection(this.patientDbConnectionStr))) { await patientConnection.OpenAsync(); try { var patientAdmissionCommand = new SqlCommand { Connection = patientConnection, CommandText = PatientSchema.PatientAdmissionProcedure, CommandType = CommandType.StoredProcedure }; var admitPatientParam = this.CreateAdmitPatientParam(patient); patientAdmissionCommand.Parameters.AddRange(admitPatientParam); patientAdmissionCommand.Parameters[PatientSchema.resultParameterName].Direction = ParameterDirection.Output; await patientAdmissionCommand.ExecuteNonQueryAsync(); commandResult = Convert.ToInt32(patientAdmissionCommand.Parameters[PatientSchema.resultParameterName].Value); } catch (Exception ex) { throw new Exception($"{CoreConstants.PatientAdmissionError}{ex.Message}", ex); } return(commandResult); } }