protected void GridViewPatientAnonymised_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("ViewRecords"))
            {
                try
                {
                    string recordIDsString = e.CommandArgument.ToString();

                    List <long>   recordIDs = recordIDsString.Split(',').Select(long.Parse).ToList();
                    List <Record> records   = dataBLL.GetRecords(recordIDs);

                    ViewState["GridViewRecords"] = records;
                    GridViewRecords.DataSource   = records;
                    GridViewRecords.DataBind();
                    UpdatePanelRecords.Update();

                    ScriptManager.RegisterStartupScript(this, GetType(), "Open Select Records Modal", "$('#modalRecords').modal('show');", true);
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error Opening Records Modal.');", true);
                }
            }
            else if (e.CommandName.Equals("ViewDiagnosis"))
            {
                try
                {
                    string patientId = e.CommandArgument.ToString();

                    List <PatientDiagnosis> patientDiagnoses = dataBLL.GetPatientDiagnoses(patientId);

                    GridViewPatientDiagnoses.DataSource = patientDiagnoses;
                    GridViewPatientDiagnoses.DataBind();
                    UpdatePanelDiagnosisView.Update();

                    ScriptManager.RegisterStartupScript(this, GetType(), "Open Diagnosis Modal", "$('#modalDiagnosisView').modal('show');", true);
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error Opening Diagnosis Modal.');", true);
                }
            }
        }
        protected void Bind_GridViewPatientDiagnoses(string nric)
        {
            List <PatientDiagnosis> patientDiagnoses = therapistBLL.GetPatientDiagnoses(nric);

            labelDiagnosisName.Text = nric;

            ViewState["GridViewPatientDiagnoses"] = patientDiagnoses;
            GridViewPatientDiagnoses.DataSource   = patientDiagnoses;
            GridViewPatientDiagnoses.DataBind();

            string           term        = TextboxSearchDiagnosis.Text.Trim().ToLower();
            string           patientNRIC = ViewState["GridViewPatientSelectedNRIC"].ToString();
            List <Diagnosis> diagnoses   = therapistBLL.GetDiagnoses(term, patientNRIC, patientDiagnoses);

            ViewState["GridViewPatientDiagnosisAdd"] = diagnoses;
            GridViewPatientDiagnosisAdd.DataSource   = diagnoses;
            GridViewPatientDiagnosisAdd.DataBind();

            UpdatePanelDiagnosisView.Update();
        }
        protected void GridViewPatient_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string nric = e.CommandArgument.ToString();

            ViewState["GridViewPatientSelectedNRIC"] = nric;

            if (e.CommandName.Equals("ViewInformation"))
            {
                try
                {
                    Classes.Entity.Patient patient = therapistBLL.GetPatientInformation(nric);

                    // Personal Details
                    LabelInformationNRIC.Text = patient.nric;
                    inputNRIC.Value           = patient.nric;
                    DateofBirth.Value         = patient.dateOfBirth.ToString("MM/dd/yyyy");
                    FirstName.Value           = patient.firstName;
                    LastName.Value            = patient.lastName;
                    CountryofBirth.Value      = patient.countryOfBirth;
                    Nationality.Value         = patient.nationality;
                    Sex.Value           = patient.sex;
                    Gender.Value        = patient.gender;
                    MaritalStatus.Value = patient.maritalStatus;

                    // Contact Details
                    Address.Value       = patient.address;
                    PostalCode.Value    = patient.addressPostalCode;
                    EmailAddress.Value  = patient.email;
                    ContactNumber.Value = patient.contactNumber;

                    // Patient NOK Details
                    NOKName.Value    = patient.nokName;
                    NOKContact.Value = patient.nokContact;

                    UpdatePanelInformation.Update();

                    ScriptManager.RegisterStartupScript(this, GetType(), "Open Select Information Modal", "$('#modalInformation').modal('show');", true);
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error Opening Information View.');", true);
                }
            }
            else if (e.CommandName.Equals("SelectPatient"))
            {
                try
                {
                    ViewState["GridViewPatientSelectedPatientNRIC"] = nric;
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error Selecting Patient.');", true);
                }
            }
            else if (e.CommandName.Equals("DeselectPatient"))
            {
                try
                {
                    ViewState["GridViewPatientSelectedPatientNRIC"] = null;
                    ViewState["GridViewRecordSelectedIDs"]          = null;
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error De-selecting Patient.');", true);
                }
            }
            else if (e.CommandName.Equals("ViewDiagnosis"))
            {
                try
                {
                    List <PatientDiagnosis> patientDiagnoses = therapistBLL.GetPatientDiagnoses(nric);
                    labelDiagnosisName.Text = nric;

                    ViewState["GridViewPatientDiagnoses"] = patientDiagnoses;
                    GridViewPatientDiagnoses.DataSource   = patientDiagnoses;
                    GridViewPatientDiagnoses.DataBind();

                    UpdatePanelDiagnosisView.Update();
                    ScriptManager.RegisterStartupScript(this, GetType(), "Open Diagnosis Modal", "$('#modalDiagnosisView').modal('show');", true);
                }
                catch
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error Opening Diagnosis Modal.');", true);
                }
            }

            Bind_GridViewPatientAndRecord();
        }