using framework_business; using framework_library; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class controls_medical_diagnosis : System.Web.UI.UserControl { #region methods private void BindGrid() { ArrayList DiagnosisList = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalDiagnosis), "", ""); rptDiagnosis.DataSource = DiagnosisList; rptDiagnosis.DataBind(); //load category and category sequence, primary ICD10 ArrayList categoryList = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalDiagnosisCategory), "", ""); ArrayList icd10List = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalICD10), "", ""); foreach (RepeaterItem item in rptDiagnosis.Items) { Label lblCategory = item.FindControl("lblCategory") as Label; Label lblPrimaryICD10 = item.FindControl("lblPrimaryICD10") as Label; if (lblCategory != null) { bool catFound = false; foreach (oMedicalDiagnosisCategory cat in categoryList) { if (cat.recId.ToString() == lblCategory.Text) { lblCategory.Text = cat.category; catFound = true; break; } } if (!catFound) lblCategory.Text = ""; } if (lblPrimaryICD10 != null) { bool icdFound = false; foreach (oMedicalICD10 icd10 in icd10List) { if (icd10.recId.ToString() == lblPrimaryICD10.Text) { lblPrimaryICD10.Text = icd10.icdCode + " - " + icd10.icdDescription; icdFound = true; break; } } if (!icdFound) lblPrimaryICD10.Text = ""; } } } private void BindCatGrid() { ArrayList categoryList = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalDiagnosisCategory), "", ""); rptCategory.DataSource = categoryList; rptCategory.DataBind(); } private void BindSequence() { try { ddSequence.Items.Clear(); ddSequenceCat.Items.Clear(); for (int i = 0; i < 20; i++) { //append sequence item ddSequence.Items.Add(new ListItem(i.ToString(), i.ToString())); ddSequenceCat.Items.Add(new ListItem(i.ToString(), i.ToString())); } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } private void BindCategory() { try { ArrayList categoryList = xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalDiagnosisCategory), "", ""); ddCategory.DataSource = categoryList; ddCategory.DataTextField = "category"; ddCategory.DataValueField = "recId"; ddCategory.DataBind(); ddCategory.Items.Insert(0, new ListItem("select", "0")); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } private void BindICD10() { try { DataTable dt = xData.GetDynamicTable("recId", typeof(oMedicalICD10)); dt.Columns.Add("DataTextField", typeof(string), "icdCode + ' ' + icdDescription"); ddICD10.DataSource = dt; ddICD10.DataTextField = "DataTextField"; ddICD10.DataValueField = "recId"; ddICD10.DataBind(); ddICD10.Items.Insert(0, new ListItem("select", "0")); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, 0); Response.Redirect("/error", false); } } /// /// Method to Toggle Panels /// /// private void TogglePanels(string panelName) { switch (panelName) { case "pnlDiagnosisPage": pnlDiagnosisPage.Visible = true; pnlDiagnosisList.Visible = false; break; case "pnlDiagnosisList": pnlDiagnosisPage.Visible = false; pnlDiagnosisList.Visible = true; break; } //clear result pnlResult.Visible = false; } /// /// Method to Toggle Panels /// /// private void TogglePanelsCat(string panelName) { switch (panelName) { case "pnlCategoryPage": pnlCategoryPage.Visible = true; pnlCategoryList.Visible = false; break; case "pnlCategoryList": pnlCategoryPage.Visible = false; pnlCategoryList.Visible = true; break; } //clear result pnlCategoryResult.Visible = false; } private void PopulateFormValues(oMedicalDiagnosis diagnosis) { try { ddCategory.ClearSelection(); if (ddCategory.Items.FindByValue(diagnosis.categoryId.ToString()) != null) ddCategory.Items.FindByValue(diagnosis.categoryId.ToString()).Selected = true; txtDiagnosis.Text = diagnosis.diagnosis; chkActive.Checked = diagnosis.isActive; ddICD10.ClearSelection(); if (ddICD10.Items.FindByValue(diagnosis.primaryICD10Id.ToString()) != null) ddICD10.Items.FindByValue(diagnosis.primaryICD10Id.ToString()).Selected = true; ddSequence.ClearSelection(); if (ddSequence.Items.FindByValue(diagnosis.sequence.ToString()) != null) ddSequence.Items.FindByValue(diagnosis.sequence.ToString()).Selected = true; } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void SaveFormValues(ref oMedicalDiagnosis diagnosis) { try { diagnosis.diagnosis = txtDiagnosis.Text; diagnosis.isActive = chkActive.Checked; if (ddCategory.SelectedItem != null) diagnosis.categoryId = int.Parse(ddCategory.SelectedItem.Value); if (ddICD10.SelectedItem != null) diagnosis.primaryICD10Id = int.Parse(ddICD10.SelectedItem.Value); if (ddSequence.SelectedItem != null) diagnosis.sequence = int.Parse(ddSequence.SelectedItem.Value); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void PopulateFormValuesCat(oMedicalDiagnosisCategory category) { try { txtCategory.Value = category.category; chkActiveCat.Checked = category.isActive; ddSequenceCat.ClearSelection(); if (ddSequenceCat.Items.FindByValue(category.sequence.ToString()) != null) ddSequenceCat.Items.FindByValue(category.sequence.ToString()).Selected = true; } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } private void SaveFormValuesCat(ref oMedicalDiagnosisCategory category) { try { category.category = txtCategory.Value; category.isActive = chkActiveCat.Checked; if (ddSequenceCat.SelectedItem != null) category.sequence = int.Parse(ddSequenceCat.SelectedItem.Value); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } #endregion #region events protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { BindGrid(); BindCatGrid(); BindCategory(); BindICD10(); BindSequence(); } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Diagnosis"]); Response.Redirect("/error", false); } } protected void btnNewDiagnosis_Click(object sender, EventArgs e) { try { utils.disposeSession("Diagnosis"); oMedicalDiagnosis diagnosis = new oMedicalDiagnosis(); PopulateFormValues(diagnosis); TogglePanels("pnlDiagnosisPage"); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Diagnosis"]); Response.Redirect("/error", false); } } protected void lnkEdit_Click(object sender, EventArgs e) { try { oMedicalDiagnosis diagnosis = new oMedicalDiagnosis(); ArrayList list = new ArrayList(); if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { foreach (oMedicalDiagnosis item in xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalDiagnosis), "recId", recId.ToString())) { diagnosis = item; //populate page form PopulateFormValues(diagnosis); Session["Diagnosis"] = diagnosis; break; } TogglePanels("pnlDiagnosisPage"); } } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Diagnosis"]); Response.Redirect("/error", false); } } protected void lnkRemove_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); //Delete if (xData.DeleteTyped("recId", recId.ToString(), typeof(oMedicalDiagnosis))) { //rebind pages grid BindGrid(); pnlResult.Visible = true; //display successful result lblResult.Text = "the selected Diagnosis was deleted successfully."; } } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Diagnosis"]); Response.Redirect("/error", false); } } protected void btnSave_Click(object sender, EventArgs e) { try { oMedicalDiagnosis diagnosis = new oMedicalDiagnosis(); if (utils.verifySession("Diagnosis"))//update mode { diagnosis = (oMedicalDiagnosis)Session["Diagnosis"]; //save form values SaveFormValues(ref diagnosis); if (xData.UpdateTyped("recId", diagnosis.recId.ToString(), typeof(oMedicalDiagnosis), diagnosis)) { Session["Diagnosis"] = diagnosis; BindGrid(); pnlResult.Visible = true; lblResult.Text = "your changes were updated successfully."; } } else { //save form values SaveFormValues(ref diagnosis); diagnosis.recId = xData.SaveTyped("recId", typeof(oMedicalDiagnosis), diagnosis); if (diagnosis.recId > 0) { Session["Diagnosis"] = diagnosis; BindGrid(); pnlResult.Visible = true; lblResult.Text = "your Diagnosis was created successfully."; } } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Diagnosis"]); Response.Redirect("/error", false); } } protected void btnCancel_Click(object sender, EventArgs e) { try { utils.disposeSession("Diagnosis"); BindGrid(); TogglePanels("pnlDiagnosisList"); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Diagnosis"]); Response.Redirect("/error", false); } } protected void lnkAddCategory_Click(object sender, EventArgs e) { try { utils.disposeSession("Category"); oMedicalDiagnosisCategory category = new oMedicalDiagnosisCategory(); PopulateFormValuesCat(category); TogglePanelsCat("pnlCategoryPage"); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Category"]); Response.Redirect("/error", false); } } protected void lnkEditCat_Click(object sender, EventArgs e) { try { oMedicalDiagnosisCategory category = new oMedicalDiagnosisCategory(); ArrayList list = new ArrayList(); if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); if (recId > 0) { foreach (oMedicalDiagnosisCategory cat in xData.GetTypedByCriteriaSpecific("recId", typeof(oMedicalDiagnosisCategory), "recId", recId.ToString())) { //assign object category = cat; //populate page form PopulateFormValuesCat(category); Session["Category"] = category; break; } TogglePanelsCat("pnlCategoryPage"); } } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Category"]); Response.Redirect("/error", false); } } protected void lnkRemoveCat_Click(object sender, EventArgs e) { try { if (sender.GetType() == typeof(LinkButton)) { int recId = int.Parse(((LinkButton)sender).CommandArgument); //Delete if (xData.DeleteTyped("recId", recId.ToString(), typeof(oMedicalDiagnosisCategory))) { //rebind pages grid BindCatGrid(); BindCategory(); pnlCategoryResult.Visible = true; //display successful result lblCategoryResult.Text = "the selected Category was deleted successfully."; } } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Category"]); Response.Redirect("/error", false); } } protected void btnSaveCat_Click(object sender, EventArgs e) { try { oMedicalDiagnosisCategory category = new oMedicalDiagnosisCategory(); if (utils.verifySession("Category"))//update mode { category = (oMedicalDiagnosisCategory)Session["Category"]; //save form values SaveFormValuesCat(ref category); if (xData.UpdateTyped("recId", category.recId.ToString(), typeof(oMedicalDiagnosisCategory), category)) { Session["Category"] = category; BindCatGrid(); BindCategory(); pnlCategoryResult.Visible = true; lblCategoryResult.Text = "your changes were updated successfully."; } } else { if (!xData.VerifyExists("recId", typeof(oMedicalDiagnosisCategory), "category", txtCategory.Value)) { //save form values SaveFormValuesCat(ref category); category.recId = xData.SaveTyped("recId", typeof(oMedicalDiagnosisCategory), category); if (category.recId > 0) { Session["Category"] = category; BindCatGrid(); BindCategory(); pnlCategoryResult.Visible = true; lblCategoryResult.Text = "your Category was created successfully."; } } else { pnlCategoryResult.Visible = true; lblCategoryResult.Text = "This category already exists on the system"; } } } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Category"]); Response.Redirect("/error", false); } } protected void btnCancelCat_Click(object sender, EventArgs e) { try { utils.disposeSession("Category"); BindCatGrid(); TogglePanelsCat("pnlCategoryList"); } catch (Exception ex) { exception.HandleException("Diagnosis:", MethodBase.GetCurrentMethod().Name, ex, Session["Category"]); Response.Redirect("/error", false); } } #endregion }