protected void btnChangeToEditMode_Click(object sender, EventArgs e) { // dont allow editing displayHaveReferrerRow.Visible = false; editRow.Visible = true; newReferrersLinkRow.Visible = true; PatientReferrer[] patientReferrer = PatientReferrerDB.GetEPCPatientReferrersOf(this.PatientID); PatientReferrer currentPatRegReferrer = patientReferrer[patientReferrer.Length - 1]; setReferrersList(currentPatRegReferrer); }
protected string GetReferrerProviderNumber(Hashtable bulkEPCReferrersHash, InvoiceLine invoiceLine) { if (bulkEPCReferrersHash != null) // use cache bulk preload to avoid excess db calls { if (bulkEPCReferrersHash[invoiceLine.Patient.PatientID] == null) { return(string.Empty); } RegisterReferrer[] registerReferrer = (RegisterReferrer[])bulkEPCReferrersHash[invoiceLine.Patient.PatientID]; return((registerReferrer.Length > 0) ? registerReferrer[registerReferrer.Length - 1].ProviderNumber : string.Empty); } else { PatientReferrer[] patientReferrer = PatientReferrerDB.GetEPCPatientReferrersOf(invoiceLine.Patient.PatientID); return((patientReferrer.Length > 0) ? patientReferrer[patientReferrer.Length - 1].RegisterReferrer.ProviderNumber : string.Empty); } }
protected void setReferrersList(PatientReferrer currentPatRegReferrer = null) { if (currentPatRegReferrer == null) { PatientReferrer[] patientReferrer = PatientReferrerDB.GetEPCPatientReferrersOf(this.PatientID); if (patientReferrer.Length > 0) { currentPatRegReferrer = patientReferrer[patientReferrer.Length - 1]; } } int nItems = ddlReferrer.Items.Count; for (int i = 0; i < nItems; i++) { ddlReferrer.Items.RemoveAt(0); } DataTable rr = RegisterReferrerDB.GetDataTable(0, -1, false, new int[] { 191 }); if (currentPatRegReferrer != null) { // if refererrer set as inactive (ie user set as deleted, but is still in system) // then it will show the referrer as his referrer, but when hitting update, the list will not contain it, and throws an error // so if set as inactive (deleted), then add to the list bool isDeletedReferrer = rr.Select("register_referrer_id=" + currentPatRegReferrer.RegisterReferrer.RegisterReferrerID).Length == 0; if (isDeletedReferrer) { DataRow newRow = rr.NewRow(); newRow["surname"] = currentPatRegReferrer.RegisterReferrer.Referrer.Person.Surname; newRow["firstname"] = currentPatRegReferrer.RegisterReferrer.Referrer.Person.Firstname; newRow["middlename"] = currentPatRegReferrer.RegisterReferrer.Referrer.Person.Middlename; newRow["name"] = currentPatRegReferrer.RegisterReferrer.Organisation.Name; newRow["register_referrer_id"] = currentPatRegReferrer.RegisterReferrer.RegisterReferrerID; bool inserted = false; for (int i = rr.Rows.Count - 1; i >= 0; i--) { if (currentPatRegReferrer.RegisterReferrer.Referrer.Person.Surname.CompareTo(rr.Rows[i]["surname"].ToString()) < 0) { continue; } if (currentPatRegReferrer.RegisterReferrer.Referrer.Person.Surname.CompareTo(rr.Rows[i]["surname"].ToString()) == 0) { if (currentPatRegReferrer.RegisterReferrer.Referrer.Person.Firstname.CompareTo(rr.Rows[i]["firstname"].ToString()) < 0) { continue; } if (currentPatRegReferrer.RegisterReferrer.Referrer.Person.Middlename.CompareTo(rr.Rows[i]["surname"].ToString()) == 0) { if (currentPatRegReferrer.RegisterReferrer.Referrer.Person.Firstname.CompareTo(rr.Rows[i]["middlename"].ToString()) < 0) { continue; } } } // now insert before this one if (i == rr.Rows.Count) { rr.Rows.Add(newRow); } else { rr.Rows.InsertAt(newRow, i + 1); } inserted = true; break; } if (!inserted) { if (rr.Rows.Count == 0) { rr.Rows.Add(newRow); } else { rr.Rows.InsertAt(newRow, 0); } } } } foreach (DataRowView row in rr.DefaultView) { ddlReferrer.Items.Add(new ListItem(row["surname"].ToString() + ", " + row["firstname"].ToString() + " [" + row["name"].ToString() + "]", row["register_referrer_id"].ToString())); } if (currentPatRegReferrer != null) { ddlReferrer.SelectedValue = currentPatRegReferrer.RegisterReferrer.RegisterReferrerID.ToString(); } }