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
}