protected void btnSetExistingReferrer_Click(object sender, EventArgs e) { Referrer referrer = ReferrerDB.GetByID(Convert.ToInt32(jsSetId.Value)); if (referrer == null) { lblId.Text = "-1"; SetErrorMessage("Error getting selected referrer. Plase contact the system administrator.<br />"); } else { lblId.Text = referrer.ReferrerID.ToString(); ddlTitle.SelectedValue = referrer.Person.Title.ID.ToString(); txtFirstname.Text = referrer.Person.Firstname; txtMiddlename.Text = referrer.Person.Middlename; txtSurname.Text = referrer.Person.Surname; if (ddlGender.Items.FindByValue(referrer.Person.Gender) == null) { ddlGender.Items.Add(new ListItem(referrer.Person.Gender == "" ? "--" : referrer.Person.Gender, referrer.Person.Gender)); } ddlGender.SelectedValue = referrer.Person.Gender; ddlTitle.Enabled = false; txtFirstname.Enabled = false; txtMiddlename.Enabled = false; txtSurname.Enabled = false; ddlGender.Enabled = false; } }
protected void GrdReferrer_RowUpdating(object sender, GridViewUpdateEventArgs e) { Label lblId = (Label)GrdReferrer.Rows[e.RowIndex].FindControl("lblId"); DropDownList ddlTitle = (DropDownList)GrdReferrer.Rows[e.RowIndex].FindControl("ddlTitle"); TextBox txtFirstname = (TextBox)GrdReferrer.Rows[e.RowIndex].FindControl("txtFirstname"); TextBox txtMiddlename = (TextBox)GrdReferrer.Rows[e.RowIndex].FindControl("txtMiddlename"); TextBox txtSurname = (TextBox)GrdReferrer.Rows[e.RowIndex].FindControl("txtSurname"); DropDownList ddlGender = (DropDownList)GrdReferrer.Rows[e.RowIndex].FindControl("ddlGender"); Referrer referrer = ReferrerDB.GetByID(Convert.ToInt32(lblId.Text)); if (referrer != null) { if (referrer.Person.Title.ID != Convert.ToInt32(ddlTitle.SelectedValue) || referrer.Person.Firstname != Utilities.FormatName(txtFirstname.Text) || referrer.Person.Middlename != Utilities.FormatName(txtMiddlename.Text) || referrer.Person.Surname != Utilities.FormatName(txtSurname.Text) || referrer.Person.Gender != ddlGender.SelectedValue) { PersonDB.Update(referrer.Person.PersonID, Convert.ToInt32(ddlTitle.SelectedValue), Utilities.FormatName(txtFirstname.Text), Utilities.FormatName(txtMiddlename.Text), Utilities.FormatName(txtSurname.Text), referrer.Person.Nickname, ddlGender.SelectedValue, referrer.Person.Dob, DateTime.Now); } } GrdReferrer.EditIndex = -1; FillGrid(); }
protected void FillGrid() { string searchName = ""; if (Request.QueryString["name_search"] != null && Request.QueryString["name_search"].Length > 0) { searchName = Request.QueryString["name_search"]; txtSearchName.Text = Request.QueryString["name_search"]; } bool searchNameOnlyStartsWith = true; if (Request.QueryString["name_starts_with"] != null && Request.QueryString["name_starts_with"].Length > 0) { searchNameOnlyStartsWith = Request.QueryString["name_starts_with"] == "0" ? false : true; chkSearchOnlyStartWith.Checked = searchNameOnlyStartsWith; } else { chkSearchOnlyStartWith.Checked = searchNameOnlyStartsWith; } int orgID = 0; if (Request.QueryString["org"] != null && Regex.IsMatch(Request.QueryString["org"], @"\d{1,10}") && OrganisationDB.Exists(Convert.ToInt32(Request.QueryString["org"]))) { orgID = Convert.ToInt32(Request.QueryString["org"]); } // get count Hashtable countHash = new Hashtable(); Hashtable countDeletedHash = new Hashtable(); DataTable dt_reg_refs = RegisterReferrerDB.GetDataTable(orgID, -1, true, new int[] { 191 }, "", false, "", "", "", false); foreach (DataRow row in dt_reg_refs.Rows) { int org_id = Convert.ToInt32(row["organisation_id"]); if (!Convert.ToBoolean(row["is_deleted"])) { countHash[org_id] = (countHash[org_id] == null) ? 1 : ((int)countHash[org_id]) + 1; } else { countDeletedHash[org_id] = (countDeletedHash[org_id] == null) ? 1 : ((int)countDeletedHash[org_id]) + 1; } } DataTable dt = null; if (Request.QueryString["referrer"] == null) { dt = OrganisationDB.GetDataTable(orgID, chkShowDeleted.Checked, true, true, true, true, false, searchName, searchNameOnlyStartsWith, "191"); dt.Columns.Add("count", typeof(Int32)); dt.Columns.Add("count_deleted", typeof(Int32)); for (int i = 0; i < dt.Rows.Count; i++) { int org_id = Convert.ToInt32(dt.Rows[i]["organisation_id"]); dt.Rows[i]["count"] = countHash[org_id] == null ? 0 : (int)countHash[org_id]; dt.Rows[i]["count_deleted"] = countDeletedHash[org_id] == null ? 0 : (int)countDeletedHash[org_id]; } } else { if (!Regex.IsMatch(Request.QueryString["referrer"], @"^\d+$")) { HideTableAndSetErrorMessage("Invalid url referrer"); return; } Referrer referrer = ReferrerDB.GetByID(Convert.ToInt32(Request.QueryString["referrer"])); if (referrer == null) { HideTableAndSetErrorMessage("Invalid url referrer"); return; } lblHeading.Text = "Referrer Clinics of " + referrer.Person.FullnameWithoutMiddlename; dt = RegisterReferrerDB.GetDataTable_OrganisationsOf(referrer.ReferrerID, true, chkShowDeleted.Checked, searchName, searchNameOnlyStartsWith); dt.Columns.Add("is_deleted", typeof(Boolean)); dt.Columns.Add("entity_id", typeof(Int32)); dt.Columns.Add("count", typeof(Int32)); dt.Columns.Add("count_deleted", typeof(Int32)); for (int i = 0; i < dt.Rows.Count; i++) { int org_id = Convert.ToInt32(dt.Rows[i]["organisation_id"]); dt.Rows[i]["count"] = countHash[org_id] == null ? 0 : (int)countHash[org_id]; dt.Rows[i]["count_deleted"] = countDeletedHash[org_id] == null ? 0 : (int)countDeletedHash[org_id]; // update these so when delete/undelete - it removes the connection, not the org dt.Rows[i]["organisation_id"] = dt.Rows[i]["register_referrer_id"]; dt.Rows[i]["is_deleted"] = dt.Rows[i]["register_referrer_is_deleted"]; dt.Rows[i]["entity_id"] = dt.Rows[i]["organisation_entity_id"]; } } // add suburb_name Hashtable entityIDsHash = new Hashtable(); for (int i = 0; i < dt.Rows.Count; i++) { entityIDsHash[Convert.ToInt32(dt.Rows[i]["entity_id"])] = 1; } int[] entityIDs = new int[entityIDsHash.Keys.Count]; entityIDsHash.Keys.CopyTo(entityIDs, 0); Hashtable emailHash = PatientsContactCacheDB.GetBullkAddress(entityIDs, -1); dt.Columns.Add("suburb_name", typeof(string)); for (int i = 0; i < dt.Rows.Count; i++) { int entityID = Convert.ToInt32(dt.Rows[i]["entity_id"]); string suburbName = GetSuburb(emailHash, entityID); dt.Rows[i]["suburb_name"] = suburbName == null ? "" : suburbName; } Session["referrerinfoclinic_data"] = dt; if (dt.Rows.Count > 0) { if (IsPostBack && Session["referrerinfoclinic_sortexpression"] != null && Session["referrerinfoclinic_sortexpression"].ToString().Length > 0) { DataView dataView = new DataView(dt); dataView.Sort = Session["referrerinfoclinic_sortexpression"].ToString(); GrdReferrer.DataSource = dataView; } else { GrdReferrer.DataSource = dt; } try { GrdReferrer.DataBind(); GrdReferrer.PagerSettings.FirstPageText = "1"; GrdReferrer.PagerSettings.LastPageText = GrdReferrer.PageCount.ToString(); GrdReferrer.DataBind(); } catch (Exception ex) { HideTableAndSetErrorMessage("", ex.ToString()); } } else { dt.Rows.Add(dt.NewRow()); GrdReferrer.DataSource = dt; GrdReferrer.DataBind(); int TotalColumns = GrdReferrer.Rows[0].Cells.Count; GrdReferrer.Rows[0].Cells.Clear(); GrdReferrer.Rows[0].Cells.Add(new TableCell()); GrdReferrer.Rows[0].Cells[0].ColumnSpan = TotalColumns; GrdReferrer.Rows[0].Cells[0].Text = "No Record Found"; } if (Request.QueryString["referrer"] != null) { GrdReferrer.FooterRow.Visible = false; GrdReferrer.Columns[GrdReferrer.Columns.Count - 2].Visible = false; } }
protected void FillGrid_Patients(Type type, int id) { UserView userView = UserView.GetInstance(); DataTable dt = null; if (type == typeof(Referrer)) { Referrer referrer = ReferrerDB.GetByID(id); lblPatientsHeading.Text = "Patients of <big><b>" + referrer.Person.FullnameWithoutMiddlename + "</b></big> at <big><b>All Clinics</b></big>"; if (userView.IsAdminView && userView.IsClinicView) { dt = PatientDB.GetDataTable(false, false, userView.IsClinicView, false, "", false, "", false, "", "", "", "", "", false, -1, -1, -1, "", "", "", id.ToString(), "", false, false, false); } if (userView.IsAdminView && !userView.IsClinicView) { dt = RegisterPatientDB.GetDataTable_PatientsOfOrgGroupType(false, "6", false, false, userView.IsClinicView, false, "", false, "", false, "", "", "", "", "", false, -1, -1, -1, "", "", "", id.ToString(), "", false, false, false); } if (!userView.IsAdminView) { dt = RegisterPatientDB.GetDataTable_PatientsOf(false, Convert.ToInt32(Session["OrgID"]), false, false, userView.IsClinicView, false, "", false, "", false, "", "", "", "", "", false, -1, -1, -1, "", "", "", id.ToString(), "", false, false, false); } } else if (type == typeof(RegisterReferrer)) { RegisterReferrer regRef = RegisterReferrerDB.GetByID(id); lblPatientsHeading.Text = "Patients of <big><b>" + regRef.Referrer.Person.FullnameWithoutMiddlename + "</b></big> at <big><b>" + regRef.Organisation.Name + "</b></big>"; if (userView.IsAdminView && userView.IsClinicView) { dt = PatientDB.GetDataTable(false, false, userView.IsClinicView, false, "", false, "", false, "", "", "", "", "", false, -1, -1, -1, "", "", id.ToString(), "", "", false, false, false); } if (userView.IsAdminView && !userView.IsClinicView) { dt = RegisterPatientDB.GetDataTable_PatientsOfOrgGroupType(false, "6", false, false, userView.IsClinicView, false, "", false, "", false, "", "", "", "", "", false, -1, -1, -1, "", "", id.ToString(), "", "", false, false, false); } if (!userView.IsAdminView) { dt = RegisterPatientDB.GetDataTable_PatientsOf(false, Convert.ToInt32(Session["OrgID"]), false, false, userView.IsClinicView, false, "", false, "", false, "", "", "", "", "", false, -1, -1, -1, "", "", id.ToString(), "", "", false, false, false); } } else { SetErrorMessage("Unknown type: " + type.ToString()); return; } lblPatientsHeading.Visible = true; GrdPatients.Visible = true; // put in epc info into the table in a bulk call // epc exp date, if valid, how many epc's remaining... int[] patientIDs = new int[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { patientIDs[i] = Convert.ToInt32(dt.Rows[i]["patient_id"]); } int MedicareMaxNbrServicesPerYear = Convert.ToInt32(SystemVariableDB.GetByDescr("MedicareMaxNbrServicesPerYear").Value); Hashtable patientsMedicareCountThisYearCache = PatientsMedicareCardCountThisYearCacheDB.GetBullk(patientIDs, DateTime.Today.Year); Hashtable patientsMedicareCountNextYearCache = PatientsMedicareCardCountThisYearCacheDB.GetBullk(patientIDs, DateTime.Today.Year + 1); Hashtable patientsEPCRemainingCache = PatientsEPCRemainingCacheDB.GetBullk(patientIDs, DateTime.MinValue); dt.Columns.Add("epc_signed_date", typeof(DateTime)); dt.Columns.Add("epc_expiry_date", typeof(DateTime)); dt.Columns.Add("epc_n_services_left", typeof(Int32)); for (int i = 0; i < dt.Rows.Count; i++) { int patientID = Convert.ToInt32(dt.Rows[i]["patient_id"]); int totalServicesAllowedLeft = (MedicareMaxNbrServicesPerYear - (int)patientsMedicareCountThisYearCache[patientID]); Pair totalEPCRemaining = patientsEPCRemainingCache[patientID] as Pair; int nServicesLeft = 0; if (totalEPCRemaining != null) { DateTime referralSignedDate = (DateTime)totalEPCRemaining.Second; DateTime hcExpiredDate = referralSignedDate.AddYears(1); if (DateTime.Today >= referralSignedDate.Date && DateTime.Today < hcExpiredDate.Date) { nServicesLeft = (int)totalEPCRemaining.First; } if (totalServicesAllowedLeft < nServicesLeft) { nServicesLeft = totalServicesAllowedLeft; } dt.Rows[i]["epc_signed_date"] = referralSignedDate; dt.Rows[i]["epc_expiry_date"] = hcExpiredDate; dt.Rows[i]["epc_n_services_left"] = nServicesLeft; } else { dt.Rows[i]["epc_signed_date"] = DBNull.Value; dt.Rows[i]["epc_expiry_date"] = DBNull.Value; dt.Rows[i]["epc_n_services_left"] = DBNull.Value; } } Session["referrerinfoperson_patients_data"] = dt; if (dt.Rows.Count > 0) { if (IsPostBack && Session["referrerinfoperson_patients_sortexpression"] != null && Session["referrerinfoperson_patients_sortexpression"].ToString().Length > 0) { DataView dataView = new DataView(dt); dataView.Sort = Session["referrerinfoperson_patients_sortexpression"].ToString(); GrdPatients.DataSource = dataView; } else { GrdPatients.DataSource = dt; } try { GrdPatients.DataBind(); } catch (Exception ex) { HideTableAndSetErrorMessage("", ex.ToString()); } } else { dt.Rows.Add(dt.NewRow()); GrdPatients.DataSource = dt; GrdPatients.DataBind(); int TotalColumns = GrdPatients.Rows[0].Cells.Count; GrdPatients.Rows[0].Cells.Clear(); GrdPatients.Rows[0].Cells.Add(new TableCell()); GrdPatients.Rows[0].Cells[0].ColumnSpan = TotalColumns; GrdPatients.Rows[0].Cells[0].Text = "No Patients"; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Utilities.SetNoCache(Response); } try { if (Session == null || Session["DB"] == null) { throw new SessionTimedOutException(); } string fieldsSep = "|"; string itemSep = "<>"; string id = Request.QueryString["id"]; if (id == null || !Regex.IsMatch(id, @"^\-?\d+$")) { throw new CustomMessageException(); } string type = Request.QueryString["type"]; if (type == null || (type.ToLower() != "patient" && type.ToLower() != "staff" && type.ToLower() != "referrer" && type.ToLower() != "register_referrer")) { throw new CustomMessageException(); } Person person = null; int contactEntityID = -1; if (type == "patient") { Patient patient = PatientDB.GetByID(Convert.ToInt32(id)); if (patient == null) { throw new CustomMessageException(); } person = patient.Person; contactEntityID = patient.Person.EntityID; } else if (type == "staff") { Staff staff = StaffDB.GetByID(Convert.ToInt32(id)); if (staff == null) { throw new CustomMessageException(); } person = staff.Person; contactEntityID = staff.Person.EntityID; } else if (type == "referrer") { Referrer referrer = ReferrerDB.GetByID(Convert.ToInt32(id)); if (referrer == null) { throw new CustomMessageException(); } person = referrer.Person; contactEntityID = referrer.Person.EntityID; } else if (type == "register_referrer") { RegisterReferrer regReferrer = RegisterReferrerDB.GetByID(Convert.ToInt32(id)); if (regReferrer == null || regReferrer.Referrer == null) { throw new CustomMessageException(); } person = regReferrer.Referrer.Person; contactEntityID = regReferrer.Organisation.EntityID; } else { throw new CustomMessageException(); } string details = GetDetails(person, contactEntityID, fieldsSep, itemSep); Response.Write(details); } catch (SessionTimedOutException) { Utilities.UnsetSessionVariables(); Response.Write("SessionTimedOutException"); } catch (Exception ex) { Response.Write("Exception: " + (Utilities.IsDev() ? ex.ToString() : "please contact system administrator.")); } }