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);
    }
Ejemplo n.º 2
0
    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();
        }
    }