public FormPrescriptionDetails(Patient patient) { InitializeComponent(); _patient = patient; RefreshForm(); }
// Create a new patient and pass it to the meta layer for insertion into the database. public bool AddPatient(String firstName, String lastName, String addressLine1, String addressLine2, String city, String county, String postCode, DateTime dateOfBirth, String emailAddress, PersonGender gender, String maritalStatus, String telephoneNumber) { // Create a new member of staff with all of their details Patient newPatient = new Patient(); newPatient.FirstName = EncodeMySql(firstName); newPatient.LastName = EncodeMySql(lastName); newPatient.AddressLine1 = EncodeMySql(addressLine1); newPatient.AddressLine2 = EncodeMySql(addressLine2); newPatient.City = EncodeMySql(city); newPatient.County = EncodeMySql(county); newPatient.PostCode = EncodeMySql(postCode); newPatient.DateOfBirth = dateOfBirth; newPatient.EmailAddress = EncodeMySql(emailAddress); newPatient.TelephoneNumber = EncodeMySql(telephoneNumber); newPatient.MaritalStatus = EncodeMySql(maritalStatus); newPatient.Gender = gender; return BusinessMetaLayer.AddPatientDetails(newPatient); }
public void TestFindPatientOnID() { // Arrange AdminController adminController = new AdminController(); Patient expectedPatient = new Patient(); expectedPatient.PatientID = 1; expectedPatient.FirstName = "test"; expectedPatient.LastName = "test"; expectedPatient.DateOfBirth = new DateTime(1991, 2, 5); expectedPatient.Gender = PersonGender.Male; expectedPatient.TelephoneNumber = "00000000000"; expectedPatient.EmailAddress = "test"; expectedPatient.AddressLine1 = "test"; expectedPatient.AddressLine2 = "test"; expectedPatient.City = "test"; expectedPatient.County = "test"; expectedPatient.PostCode = "test"; expectedPatient.MaritalStatus = "married"; // Act Patient actualPatient = adminController.GetPatientDetails(1); // Assert Assert.AreEqual(expectedPatient, actualPatient); }
public void TestModifyPatientSuccess() { // Arrange AdminController adminController = new AdminController(); bool expected = true; Patient expectedPatient = new Patient(); expectedPatient.PatientID = 1; expectedPatient.FirstName = "test"; expectedPatient.LastName = "test"; expectedPatient.DateOfBirth = new DateTime(1991, 2, 5); expectedPatient.Gender = PersonGender.Male; expectedPatient.TelephoneNumber = "00000000000"; expectedPatient.EmailAddress = "test"; expectedPatient.AddressLine1 = "test"; expectedPatient.AddressLine2 = "test"; expectedPatient.City = "test"; expectedPatient.County = "test"; expectedPatient.PostCode = "test"; expectedPatient.MaritalStatus = "married"; // Act bool actual = adminController.ModifyPatient(expectedPatient, 1, "test", "test", 0, "05/02/1991", "married", "00000000000", "test", "test", "test", "test", "test", "test"); // Assert Assert.AreEqual(expected, actual); }
// Create a new appointment and pass it to the meta layer for insertion into the database public bool AddAppointment(DateTime startDate, DateTime endDate, Staff staff, Patient patient) { Appointment newAppointment = new Appointment(); newAppointment.PatientID = patient.PatientID; newAppointment.StaffID = staff.StaffID; newAppointment.StartDate = startDate; newAppointment.EndDate = endDate; return BusinessMetaLayer.AddAppointment(newAppointment); }
public FormTestDetails(Patient patient) { InitializeComponent(); _patient = patient; _patient.Tests = _adminController.GetPatientTests(_patient.PatientID); _staff = UserSession.Instance().CurrentUser; testTypeCmb.DataSource = Enum.GetValues(typeof(TestType)); RefreshForm(); }
public void TestAddAppointmentExists() { // Arrange AdminController adminController = new AdminController(); bool expected = false; Staff staff = new Staff(); staff.StaffID = 1; Patient patient = new Patient(); patient.PatientID = 1; // Act bool actual = adminController.AddAppointment(new DateTime(2000, 1, 1, 9, 0, 0), new DateTime(2000, 1, 1, 9, 15, 0), staff, patient); // Assert Assert.AreEqual(expected, actual); }
// Modify the details of a patient public bool ModifyPatient(Patient oldPatient, int ID, string firstName, string lastName, int genderInt, string dob, string status, string telNo, string address1, string address2, string city, string county, string postCode, string email) { Patient patient = new Patient(); // set all attris PersonGender gender; Enum.TryParse<PersonGender>(genderInt.ToString(), out gender); DateTime dateOfBirth = Convert.ToDateTime(dob); patient.PatientID = ID; patient.FirstName = EncodeMySql(firstName); patient.LastName = EncodeMySql(lastName); patient.Gender = gender; patient.DateOfBirth = dateOfBirth; patient.MaritalStatus = EncodeMySql(status); patient.TelephoneNumber = EncodeMySql(telNo); patient.AddressLine1 = EncodeMySql(address1); patient.AddressLine2 = EncodeMySql(address2); patient.City = EncodeMySql(city); patient.County = EncodeMySql(county); patient.PostCode = EncodeMySql(postCode); patient.EmailAddress = EncodeMySql(email); return BusinessMetaLayer.ModifyPatientDetails(oldPatient, patient); }
public void AppointmentClicked(AppointmentLabel sender, EventArgs e) { AppointmentLabel ap = sender; _appointment = ap.Appointment; if (ap.Appointment != null) { _patient = ap.Appointment.Patient; // Fill in form details patientNameTxt.Text = _patient.ToString(); dateOfBirthTxt.Text = _patient.DateOfBirth.ToShortDateString(); startTxt.Text = _appointment.StartDate.ToShortTimeString(); endTxt.Text = _appointment.EndDate.ToShortTimeString(); appNotesTxt.Text = _appointment.AppointmentNotes; appNotesTxt.ReadOnly = true; // Change form fields addTestBtn.Enabled = true; if (_appointment.StartDate >= DateTime.Now) { addPrescriptionBtn.Enabled = true; appNotesTxt.ReadOnly = false; saveAppointmentBtn.Enabled = true; } FormRefresh(); } else { patientNameTxt.Text = ""; startTxt.Text = ""; endTxt.Text = ""; } }
public void TestAddAppointmentDoesntExist() { // Arrange AdminController adminController = new AdminController(); // Create basic a staff Staff staff = new Staff(); staff.StaffID = 1; // Create a basic patient Patient patient = new Patient(); patient.PatientID = 1; // Expected result bool expected = true; // Need to clear the appointments table // Act bool actual = adminController.AddAppointment(new DateTime(2002, 1, 1, 9, 0, 0), new DateTime(2002, 1, 1, 9, 15, 0), staff, patient); // Assert Assert.AreEqual(expected, actual); }
// Get all of the details of a patient based on search criteria public static List<Patient> GetPatientDetails(List<String> queryStrings) { Database db = Database.Instance(); List<Patient> patientList = new List<Patient>(); // Open the connection if (db.OpenConnection()) { if (queryStrings.Count > 0) { String query = ""; for (int i = 0; i < queryStrings.Count; ++i) { query += queryStrings[i]; if (i != queryStrings.Count - 1) query += " AND "; } // Access the patient table and get all matching rows (should only be one). DbDataReader dr = db.Select("SELECT patients.* FROM patients WHERE " + query + ";"); //Read the data and store it in the new patient instance while (dr.Read()) { Patient patientDetails = new Patient(); patientDetails.PatientID = dr.GetInt32(0); patientDetails.FirstName = dr.GetString(1); patientDetails.LastName = dr.GetString(2); patientDetails.DateOfBirth = dr.GetDateTime(3); patientDetails.Gender = (PersonGender)dr.GetInt32(4); patientDetails.TelephoneNumber = dr.GetString(5); patientDetails.EmailAddress = dr.GetString(6); patientDetails.AddressLine1 = dr.GetString(7); patientDetails.AddressLine2 = dr.GetString(8); patientDetails.City = dr.GetString(9); patientDetails.County = dr.GetString(10); patientDetails.PostCode = dr.GetString(11); patientDetails.MaritalStatus = dr.GetString(12); patientList.Add(patientDetails); } //close Data Reader dr.Close(); } db.CloseConnection(); } // Return the newly created patient instance return patientList; }
public void TestGetPatientTests() { // Arrange MedicalController controller = new MedicalController(); Patient patient = new Patient(); patient.Tests = new List<Test>(); patient.Tests.Add(new Test()); patient.Tests[0].StaffID = 1; patient.Tests[0].PatientID = 1; patient.Tests[0].TestDate = new DateTime(2013,12,12); patient.Tests[0].TestType = TestType.BloodTest; patient.Tests[0].TestResult = "test"; // Act Patient actualPatient = new Patient(); actualPatient.Tests = controller.GetPatientTests(1); // Assert CollectionAssert.AreEqual(patient.Prescriptions, actualPatient.Prescriptions); }
public void TestGetPatientAppointments() { // Arrange AdminController adminController = new AdminController(); Patient patient = new Patient(); patient.Appointments = new List<Appointment>(); patient.Appointments.Add(new Appointment()); patient.Appointments[0].AppointmentID = 1; patient.Appointments[0].PatientID = 1; patient.Appointments[0].StaffID = 1; patient.Appointments[0].StartDate = new DateTime(2000, 01, 01, 9, 0, 0); patient.Appointments[0].EndDate = new DateTime(2000, 01, 01, 9, 15, 0); Patient expectedPatient = new Patient(); // Act expectedPatient.Appointments = adminController.GetPatientAppointments(1); // Assert CollectionAssert.AreEqual(patient.Appointments, expectedPatient.Appointments); }
// Store the new patient in the database public static bool AddPatientDetails(Patient newPatient) { Database db = Database.Instance(); if (db.OpenConnection()) { if (!PatientExists(newPatient)) { // Build the query string String newPatientQuery; String sqlFormattedDate = newPatient.DateOfBirth.Date.ToString("yyyy-MM-dd HH:mm:ss"); // Create the query string to be inserted newPatientQuery = "INSERT INTO patients VALUES(NULL, '" + newPatient.FirstName + "'," + "'" + newPatient.LastName + "'," + "'" + sqlFormattedDate + "'," + "'" + (int)newPatient.Gender + "'," + "'" + newPatient.TelephoneNumber + "'," + "'" + newPatient.EmailAddress + "'," + "'" + newPatient.AddressLine1 + "'," + "'" + newPatient.AddressLine2 + "'," + "'" + newPatient.City + "'," + "'" + newPatient.County + "'," + "'" + newPatient.PostCode + "'," + "'" + newPatient.MaritalStatus + "');"; // Insert the entry into the database db.Insert(newPatientQuery); // Close the connection db.CloseConnection(); return true; } db.CloseConnection(); } return false; }
private void SelectPatient(object sender, DataGridViewCellEventArgs e) { // Make sure it's a row and not a column header if (e.RowIndex > -1) { // Set the patient to the select one _selectedIndex = e.RowIndex; _foundPatient = patientSearch.Patients[_selectedIndex]; _foundPatient.Appointments = _adminController.GetPatientAppointments(_foundPatient.PatientID); // Load all of the patient's appointments foreach (Appointment a in _foundPatient.Appointments) { a.Staff = BusinessMetaLayer.GetStaffDetails(a.StaffID); a.Patient = _foundPatient; } // Add the list to the data source BindingSource test = appointmentBindingSource; test.DataSource = _foundPatient.Appointments; //bind datagridview to binding source dataGridView1.DataSource = test; dataGridView1.Refresh(); saveBtn.Enabled = false; viewPrescriptionsBtn.Enabled = true; viewResultsBtn.Enabled = true; firstNameTxt.ReadOnly = true; lastNameTxt.ReadOnly = true; genderCmb.Enabled = false; dobTxt.ReadOnly = true; statusTxt.ReadOnly = true; telTxt.ReadOnly = true; address1Txt.ReadOnly = true; address2Txt.ReadOnly = true; cityTxt.ReadOnly = true; countyTxt.ReadOnly = true; postCodeTxt.ReadOnly = true; emailTxt.ReadOnly = true; modifyBtn.Enabled = true; } RefreshForm(); }
public void TestGetPatientPrescriptions() { // Arrange MedicalController controller = new MedicalController(); Patient patient = new Patient(); patient.Prescriptions = new List<Prescription>(); patient.Prescriptions.Add(new Prescription()); patient.Prescriptions[0].PrescriptionID = 1; patient.Prescriptions[0].PatientID = 1; patient.Prescriptions[0].StaffID = 1; patient.Prescriptions[0].StartDate = new DateTime(2013, 10, 12); patient.Prescriptions[0].EndDate = new DateTime(2014, 1, 1); patient.Prescriptions[0].Extended = false; patient.Prescriptions[0].Medicines.Add(new Medicine()); patient.Prescriptions[0].Medicines[0].MedicineID = 1; patient.Prescriptions[0].Medicines[0].MedicineName = "Thyroxine"; patient.Prescriptions[0].Medicines[0].Dosage = "125mg"; patient.Prescriptions[0].Medicines[0].Extendable = false; patient.Prescriptions.Add(new Prescription()); patient.Prescriptions[1].PrescriptionID = 2; patient.Prescriptions[1].PatientID = 1; patient.Prescriptions[1].StaffID = 1; patient.Prescriptions[1].StartDate = new DateTime(2013, 01, 01); patient.Prescriptions[1].EndDate = new DateTime(2013, 02, 01); patient.Prescriptions[1].Extended = false; patient.Prescriptions[1].Medicines.Add(new Medicine()); patient.Prescriptions[1].Medicines[0].MedicineID = 2; patient.Prescriptions[1].Medicines[0].MedicineName = "Thyroxine"; patient.Prescriptions[1].Medicines[0].Dosage = "50mg"; patient.Prescriptions[1].Medicines[0].Extendable = true; // Act Patient expectedPatient = new Patient(); expectedPatient.Prescriptions = controller.GetPatientPrescriptions(1); // Assert CollectionAssert.AreEqual(patient.Prescriptions, expectedPatient.Prescriptions); }
// Get all of the details about a certain patient (used within appointments etc so far) public static Patient GetPatientDetails(int patientID) { Database db = Database.Instance(); Patient patientDetails = new Patient(); // Open the connection if (db.OpenConnection()) { // Access the patient table and get all matching rows (should only be one). DbDataReader dr = db.Select("SELECT patients.* FROM patients WHERE patientID='" + patientID.ToString() + "';"); //Read the data and store it in the new patient instance while (dr.Read()) { patientDetails.PatientID = dr.GetInt32(0); patientDetails.FirstName = dr.GetString(1); patientDetails.LastName = dr.GetString(2); patientDetails.DateOfBirth = dr.GetDateTime(3); patientDetails.Gender = (PersonGender)dr.GetInt32(4); patientDetails.TelephoneNumber = dr.GetString(5); patientDetails.EmailAddress = dr.GetString(6); patientDetails.AddressLine1 = dr.GetString(7); patientDetails.AddressLine2 = dr.GetString(8); patientDetails.City = dr.GetString(9); patientDetails.County = dr.GetString(10); patientDetails.PostCode = dr.GetString(11); patientDetails.MaritalStatus = dr.GetString(12); } //close Data Reader dr.Close(); db.CloseConnection(); } // Return the newly created patient instance return patientDetails; }
// Checks if a patient details are already stored public static bool PatientExists(Patient patient) { Database db = Database.Instance(); String sqlFormattedDate = patient.DateOfBirth.Date.ToString("yyyy-MM-dd HH:mm:ss"); // Check the number of rows that are returned int numRows = db.Count("SELECT COUNT(*) FROM patients WHERE firstName='" + patient.FirstName + "'and lastName='" + patient.LastName + "'and DoB='" + sqlFormattedDate + "'and gender='" + (int)patient.Gender + "'and telNo='" + patient.TelephoneNumber + "'and email='" + patient.EmailAddress + "'and addressLine1='" + patient.AddressLine1 + "'and addressLine2='" + patient.AddressLine2 + "'and city='" + patient.City + "'and county='" + patient.County + "'and postCode='" + patient.PostCode + "'and maritalStatus='" + patient.MaritalStatus + "';"); // If a user exists and there's one row if (numRows > 0) { // The person exists already return true; } return false; }
// Update a patients details public static bool ModifyPatientDetails(Patient oldPatientDetails, Patient patient) { Database db = Database.Instance(); if (db.OpenConnection()) { if (PatientExists(oldPatientDetails)) { // Build the query string String newPatientQuery; String sqlFormattedDate = patient.DateOfBirth.Date.ToString("yyyy-MM-dd HH:mm:ss"); // Create the query string to be inserted newPatientQuery = "UPDATE patients SET firstName='" + patient.FirstName + "', lastName='" + patient.LastName + "', DoB='" + sqlFormattedDate + "', gender='" + (int)patient.Gender + "', telNo='" + patient.TelephoneNumber + "', email='" + patient.EmailAddress + "', addressLine1='" + patient.AddressLine1 + "', addressLine2='" + patient.AddressLine2 + "', city='" + patient.City + "', county='" + patient.County + "', postCode='" + patient.PostCode + "', maritalStatus='" + patient.MaritalStatus + "' WHERE patientID=" + patient.PatientID + ";"; // Insert the entry into the database db.Update(newPatientQuery); // Close the connection db.CloseConnection(); return true; } db.CloseConnection(); } return false; }
// Set the patients details from the patientSearch Control private void SelectPatient(object sender, DataGridViewCellEventArgs e) { // Check the selected row isn't a column header if (e.RowIndex > -1) { // Set the patient to the selected option _patient = patientSearch.Patients[e.RowIndex]; addBtn.Enabled = true; } RefreshForm(); }