Sie sind auf Seite 1von 3

private static void EvalutateModifiers(DataTable dt_charges)

{
string modifier = string.Empty;

if (dt_charges.Rows.Count > 0)
{
for (int i = 0; i < dt_charges.Rows.Count; i++)

string modifier = string.Empty;

/* Add temporary variable for svc_cd instead of keep updating modifier */


string curr_svc_cd = dt_charges.Rows[i]["svc_cd"].ToString();

{
//Rule #1
if ((source_file_dir_name == "COOPER_HOSPBILL" || source_file_dir_name == "COOPER_HSBILL") && if
(dt_charges.Rows[i]["ins1_pyr_cd"].ToString() == "MCR"))
// HOSPITAL BILLING + HEART STATION BILLING and MCR
{
modifier += "," + "AO";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString());
}

if (!string.IsNullOrWhiteSpace(dt_charges.Rows[i]["appt_trans_id"].ToString())) // HOSPITAL BILLING ONLY


{
//Rule #2
if (dt_charges.Rows[i]["is_failed_proc"].ToString() == "1")
{
modifier += "," + "53";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString());
}

//Rule #3
if (dt_charges.Rows[i]["ins1_pyr_cd"].ToString() == "MCR")
{
if (dt_charges.Rows[i]["svc_cd"].ToString() == "33206"
|| dt_charges.Rows[i]["svc_cd"].ToString() == "33207"
|| dt_charges.Rows[i]["svc_cd"].ToString() == "33208")
{
modifier += "," + "KX";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString());
}
}

//Rule #4
if (dt_charges.Rows[i]["svc_catg_name"].ToString() == "E & M")
{

/*** Change the query to take prim insurance as an argument and if it comes with positive result, we apply the logic *///
DataTable dt_alt = DBQueries.GetInsCode4AltCPT(dt_charges.Rows[i]["ins1_pyr_cd"].ToString());
if (dt_alt.Rows.Count > 0)
{
for (int k = 0; k < dt_alt.Rows.Count; k++)
{
if (dt_charges.Rows[i]["ins1_pyr_cd"].ToString() == dt_alt.Rows[k]["ins_code"].ToString())
{
if (dt_charges.Rows[i]["svc_cd"].ToString() == "99253")
{
curr_svc_cd = 99221;

modifier += "," + "";


UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), "99221");
}
if (dt_charges.Rows[i]["svc_cd"].ToString() == "99254")
{
curr_svc_cd = 99222;
modifier += "," + "";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), "99222");
}
if (dt_charges.Rows[i]["svc_cd"].ToString() == "99255")
{
curr_svc_cd = 99223;

modifier += "," + "";


UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), "99223");
}
}
}

/* MCR and TRM are already in the table and therefore, we just need to add modifier if needed */

if (dt_charges.Rows[i]["ins1_pyr_cd"].ToString().ToUpper() == "MCR" ||
dt_charges.Rows[i]["ins1_pyr_cd"].ToString().ToUpper() == "TRM")

modifier += "," + "AI";

if (dt_charges.Rows[i]["ins1_pyr_cd"].ToString().ToUpper() == "MCR" ||
dt_charges.Rows[i]["ins1_pyr_cd"].ToString().ToUpper() == "TRM")
{
if (dt_charges.Rows[i]["svc_cd"].ToString() == "99253")
{
modifier += "," + "AI";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), "99221");
}
if (dt_charges.Rows[i]["svc_cd"].ToString() == "99254")
{
modifier += "," + "AI";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), "99222");
}
if (dt_charges.Rows[i]["svc_cd"].ToString() == "99255")
{
modifier += "," + "AI";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), "99223");
}
}
}

//Rule #5

if ((dt_charges.Rows[i]["svc_catg_name"].ToString() == "E & M") && curr_svc_code != “99024”)


{
Check other charges for the same appt_trans_id other than yourself and check if non-E&M charge exists
and is in post op period. This will be query.
If (true)
modifier += "," + "24";

Check other charges for the same appt_trans_id other than yourself and check if non-E&M charge exists.
This will be query.
If (true)
modifier += "," + "25";

if (dt_charges.Rows[i]["svc_catg_name"].ToString() == "E & M")


{
if (dt_charges.Rows[i]["svc_cd"].ToString() != "99024" //SVC CODE ENTERED IS NOT POSTOP CODE (99024)
&& dt_charges.Rows[i]["svc_cd2"].ToString() != "99024"
&& dt_charges.Rows[i]["svc_cd3"].ToString() != "99024"
&& dt_charges.Rows[i]["svc_cd4"].ToString() != "99024"
&& dt_charges.Rows[i]["svc_cd5"].ToString() != "99024"
&& dt_charges.Rows[i]["post_op_charge"].ToString() == "1")// SVC CODE ENTERED HAS POST OP DAYS
ASSOCIATED WITH IT
{
modifier += "," + "24";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString());
}

if (DBQueries.ValidateEnM_NENMCharges(dt_charges.Rows[i]["appt_trans_id"].ToString()).Rows.Count > 0)
{
modifier += "," + "25";
UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString());
}
}

UpdateChargeModifier(modifier, 0, dt_charges.Rows[i]["post_trans_charges_id"].ToString(), curr_svc_cd);

}
}
}

Das könnte Ihnen auch gefallen