$(document).ready(function()
{ // run when page is loaded
// prevent enter/return key from submitting the form
$('input, select').bind('keydown', function (e)
{
var keyCode = e.keyCode || e.which;
if(keyCode === 13)
{
e.preventDefault();
$('input, select, textarea')[$('input, select, textarea').index(this)+1].focus();
}
});
$( function() {
$( "#accordion" ).accordion({
heightStyle: "content",
collapsible: true,
active : 'none'
});
});
// set up date picker
$('.dates').datepicker();
// set up input functions
$('#em_code_reported').change(function()
{
chart.changeCodeReported();
});
$('#encounter_type_picker').change(function()
{
chart.changeEncounter();
});
$('.time-group').change(function()
{
chart.calcTimeBased();
});
$('#hpi_type_none').change(function()
{
chart.showNotes();
chart.calcHPI(0);
});
$('#hpi_type_chronic').change(function()
{
chart.showNotes();
chart.calcHPI(0);
});
$('#hpi_type_elements').change(function()
{
chart.showNotes();
chart.calcHPI(0);
});
$('.hpi-group').change(function(event)
{
chart.calcHPI(event.target.id);
});
$('.ros-group').change(function(event)
{
chart.calcROS(event.target.id);
});
$('.pfsh-group').change(function(event)
{
chart.calcPFSH(event.target.id);
});
$('.exam-group').change(function(event)
{
chart.calcExam(event.target.id);
});
$('.e95ba, .e95baD, .e95os, .e95osD').change(function(event)
{
chart.calcExamCalc95(event.target.id);
});
$('.e97con, .e97eye, .e97ent, .e97neck, .e97resp, .e97card, .e97chest, .e97gastro, .e97geni, .e97lymph, .e97muscu, .e97skin, .e97neuro, .e97psych').change(function(event)
{
chart.calcExamCalc97(event.target.id);
});
$('.dxtx-group').change(function(event)
{
chart.calcDxTx(event.target.id);
});
$('.data-reviewed-group').change(function(event)
{
chart.calcDataReviewed(event.target.id);
});
$('.risk-group').change(function(event)
{
chart.calcRisk(event.target.id);
});
$('.use-result').change(function(event)
{
chart.updateOverallResult()
});
$('#sos_exams_container :input').change(function()
{
chart.gradeSOSExam();
});
// setup the page based on current data
chart.initPage();
}); // end document ready
// create chart object
var chart = (function($)
{
// (don't "var" any of these in the functions or they will only be local to the function)
var hpi = 0;
var ros = 1;
var pfsh = 2;
var historyScore = 0; // final component
var examScore = 0; // final component
var dxtxScore = 0;
var dataReviewScore = 1;
var riskScore = 0;
var mdmScore = 0; // final component
function initPage()
{
// run setup functions as solo (so they don't keep calling the other functions they normally call
// changeCodeReported(true);
// showValidCode();
changeEncounter(true);
// showValidCode2();
calcTimeBased(true);
// showNotes(true);
calcHPI(0, true);
calcROS(0, true);
calcPFSH(0, true);
calcHistoryResult(true);
calcExam(0, true);
calcDxTx(0, true);
calcDataReviewed(0, true);
calcRisk(0, true);
calcMDM(true);
gradeSOSExam(true);
calcOverall(true);
updateOverallResult();
} // end function initPage
function changeCodeReported(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
var emCodeReported = $('#em_code_reported').val();
emCodeReported = emCodeReported.trim();
if (emCodeReported)
{
$('#em_code_reported').val(emCodeReported);
var encounterType = '';
var validCode = 'yes';
switch (emCodeReported)
{
case '99201': encounterType = 'office_new'; break;
case '99202': encounterType = 'office_new'; break;
case '99203': encounterType = 'office_new'; break;
case '99204': encounterType = 'office_new'; break;
case '99205': encounterType = 'office_new'; break;
case '99212': encounterType = 'office_est'; break;
case '99213': encounterType = 'office_est'; break;
case '99214': encounterType = 'office_est'; break;
case '99215': encounterType = 'office_est'; break;
case '99221': encounterType = 'hospital_new'; break;
case '99222': encounterType = 'hospital_new'; break;
case '99223': encounterType = 'hospital_new'; break;
case '99231': encounterType = 'hospital_sub'; break;
case '99232': encounterType = 'hospital_sub'; break;
case '99233': encounterType = 'hospital_sub'; break;
case '99241': encounterType = 'consult'; break;
case '99242': encounterType = 'consult'; break;
case '99243': encounterType = 'consult'; break;
case '99244': encounterType = 'consult'; break;
case '99245': encounterType = 'consult'; break;
default: encounterType = 'office_new'; validCode = 'no'; break;
}
// set encounter_type and valid_code value
$('#encounter_type').val(encounterType);
$('#encounter_type_picker option[value='+encounterType+']').attr('selected','selected');
$('#valid_code').val(validCode);
showValidCode();
}
// if this function is not being called solo, pass on the work
if (!solo)
{
changeEncounter();
}
} // end function changeCodeReported
function showValidCode()
{
var emCodeReported = $('#em_code_reported').val();
var validCode = $('#valid_code').val();
if (emCodeReported && validCode == 'no')
{
$('#em_code_invalid').show();
} else
{
$('#em_code_invalid').hide();
}
} // end showValidCode
function changeEncounter(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
var emCodeReported = $('#em_code_reported').val();
var encounterType = $('#encounter_type_picker').val();
$('#encounter_type').val(encounterType);
var timeCodeTimes = '';
var validCode2 = 'no';
// hide all history and overall tables, then show the appropariate encounter-based
$('.history-table').hide();
$('#history_grid_'+encounterType ).show();
$('.overall-table').hide();
$('#overall_grid_'+encounterType ).show();
// set and update encounter-based code displays
switch (encounterType)
{
case 'office_new':
timeCodeTimes = 'Time Requirements
99201 = 10 minutes
99202 = 20 minutes
99203 = 30 minutes
99204 = 40 minutes
99205 = 60 minutes
';
$('#exam_level_1').html('99201');
$('#exam_level_2').html('99202');
$('#exam_level_3').html('99203');
$('#exam_level_4').html('99204/99205');
validCode2 = in_array(emCodeReported, ['99201', '99202', '99203', '99204', '99205']) ? 'yes' : 'no';
break;
case 'office_est':
timeCodeTimes = 'Time Requirements99212 = 10 minutes
99213 = 15 minutes
99214 = 25 minutes
99215 = 40 minutes
';
$('#exam_level_1').html('99212');
$('#exam_level_2').html('99213');
$('#exam_level_3').html('99214');
$('#exam_level_4').html('99215');
validCode2 = in_array(emCodeReported, ['99212', '99213', '99214', '99215']) ? 'yes' : 'no';
break;
case 'hospital_new':
timeCodeTimes = 'Time Requirements99221 = 30 minutes
99222 = 50 minutes
99223 = 70 minutes
';
$('#exam_level_1').html('N/A');
$('#exam_level_2').html('N/A');
$('#exam_level_3').html('99221');
$('#exam_level_4').html('99222/99223');
validCode2 = in_array(emCodeReported, ['99221', '99222', '99223']) ? 'yes' : 'no';
break;
case 'hospital_sub':
timeCodeTimes = 'Time Requirements99231 = 15 minutes
99232 = 25 minutes
99233 = 35 minutes
';
$('#exam_level_1').html('99231');
$('#exam_level_2').html('99232');
$('#exam_level_3').html('99233');
$('#exam_level_4').html('99233');
validCode2 = in_array(emCodeReported, ['99231', '99232', '99233']) ? 'yes' : 'no';
break;
case 'consult':
timeCodeTimes = 'Time Requirements99241 = 15 minutes
99242 = 30 minutes
99243 = 40 minutes
99244 = 60 minutes
99245 = 80 minutes
';
$('#exam_level_1').html('99241');
$('#exam_level_2').html('99242');
$('#exam_level_3').html('99243');
$('#exam_level_4').html('99244/99245');
validCode2 = in_array(emCodeReported, ['99241', '99242', '99243', '99244', '99245']) ? 'yes' : 'no';
break;
}
$('#time_codes_times').html(timeCodeTimes);
// set valid code and show message
$('#valid_code2').val(validCode2);
showValidCode2();
// if this function is not being called solo, pass on the work
if (!solo)
{
// recalculate encounter-based elements
chart.calcTimeBased();
chart.calcPFSH();
}
} // end function changeEncounter
function showValidCode2()
{
var emCodeReported = $('#em_code_reported').val();
var validCode2 = $('#valid_code2').val();
if (emCodeReported && validCode2 == 'no')
{
$('#em_code_invalid2').show();
} else
{
$('#em_code_invalid2').hide();
}
} // end function showValidCode2
function calcTimeBased(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
var encounterType = $('#encounter_type_picker').val();
var time1 = $('#time_1').prop('checked');
var time2 = $('#time_2').prop('checked');
var time3 = $('#time_3').prop('checked');
var timeMinutes = parseInt($('#time_minutes').val());
var timeCode = 'N/A';
var timeRequired = '';
if (time1 && time2 && time3 && timeMinutes>0)
{
// based on encounterType and # of minutes
switch (encounterType)
{
case 'office_new':
if (timeMinutes>59)
{
timeCode = '99205';
timeRequired = '(60 minutes)';
} else if (timeMinutes>39)
{
timeCode = '99204';
timeRequired = '(40 minutes)';
} else if (timeMinutes>29)
{
timeCode = '99203';
timeRequired = '(30 minutes)';
} else if (timeMinutes>19)
{
timeCode = '99202';
timeRequired = '(20 minutes)';
} else if (timeMinutes>9)
{
timeCode = '99201';
timeRequired = '(10 minutes)';
}
break;
case 'office_est':
if (timeMinutes>39)
{
timeCode = '99215';
timeRequired = '(40 minutes)';
} else if (timeMinutes>24)
{
timeCode = '99214';
timeRequired = '(25 minutes)';
} else if (timeMinutes>14)
{
timeCode = '99213';
timeRequired = '(15 minutes)';
} else if (timeMinutes>9)
{
timeCode = '99212';
timeRequired = '(10 minutes)';
}
break;
case 'hospital_new':
if (timeMinutes>69)
{
timeCode = '99223';
timeRequired = '(70 minutes)';
} else if (timeMinutes>49)
{
timeCode = '99222';
timeRequired = '(50 minutes)';
} else if (timeMinutes>29)
{
timeCode = '99221';
timeRequired = '(30 minutes)';
}
break;
case 'hospital_sub':
if (timeMinutes>34)
{
timeCode = '99233';
timeRequired = '(35 minutes)';
} else if (timeMinutes>24)
{
timeCode = '99232';
timeRequired = '(25 minutes)';
} else if (timeMinutes>14)
{
timeCode = '99231';
timeRequired = '(15 minutes)';
}
break;
case 'consult':
if (timeMinutes>79)
{
timeCode = '99245';
timeRequired = '(80 minutes)';
} else if (timeMinutes>59)
{
timeCode = '99244';
timeRequired = '(60 minutes)';
} else if (timeMinutes>39)
{
timeCode = '99243';
timeRequired = '(40 minutes)';
} else if (timeMinutes>29)
{
timeCode = '99242';
timeRequired = '(30 minutes)';
} else if (timeMinutes>14)
{
timeCode = '99241';
timeRequired = '(15 minutes)';
}
break;
}
}
// display value
$('#time_code_display').html(timeCode);
} // end function calcTimeBased
function showNotes(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// set hpi type
if ($('#hpi_type_none').is(':checked'))
{
$('#hpi_none_div').show();
$('#hpi_chronic_div').hide();
$('#hpi_elements_div').hide();
}
if ($('#hpi_type_chronic').is(':checked'))
{
$('#hpi_none_div').hide();
$('#hpi_chronic_div').show();
$('#hpi_elements_div').hide();
}
if ($('#hpi_type_elements').is(':checked'))
{
$('#hpi_none_div').hide();
$('#hpi_chronic_div').hide();
$('#hpi_elements_div').show();
}
// show all notes divs for checked elements
if (solo)
{
$('.hpi-group').each(function()
{
if ($('#'+this.id).is(':checked'))
{
$('#'+this.id+'_div').show();
}
});
$('.ros-group').each(function()
{
if ($('#'+this.id).is(':checked'))
{
$('#'+this.id+'_div').show();
}
});
$('.pfsh-group').each(function()
{
if ($('#'+this.id).is(':checked'))
{
$('#'+this.id+'_div').show();
}
});
}
} // end function showNotes
function calcHPI(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// show/hide notes area
if (elementID)
{
$('#'+elementID+'_div').toggle();
}
hpi = 0;
var result = 'Result: N/A';
if ($('#hpi_type_none').is(':checked'))
{
}
if ($('#hpi_type_chronic').is(':checked'))
{
result = 'Result: Extended HPI (3 conditions)';
hpi = 4;
}
if ($('#hpi_type_elements').is(':checked'))
{
var count = 0;
if ($('#hpi_location').is(':checked')) count++;
if ($('#hpi_duration').is(':checked')) count++;
if ($('#hpi_timing').is(':checked')) count++;
if ($('#hpi_quality').is(':checked')) count++;
if ($('#hpi_severity').is(':checked')) count++;
if ($('#hpi_context').is(':checked')) count++;
if ($('#hpi_modifying_factors').is(':checked')) count++;
if ($('#hpi_assoc_signs').is(':checked')) count++;
if (count>3)
{
result = 'Result: Extended HPI (4+)';
hpi = 4;
} else if (count>0)
{
result = 'Result: Brief HPI (1-3)';
hpi = 2;
}
}
$('#hpi_result').html(result);
// if this function is not being called solo, pass on the work
if (!solo)
{
calcHistoryResult();
}
} // end function calcHPI
function calcROS(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// show/hide notes area
if (elementID)
{
$('#'+elementID+'_div').toggle();
}
ros = 1;
var result = 'Result: N/A';
var count = 0;
if ($('#ros_constitutional').is(':checked')) count++;
if ($('#ros_allergy').is(':checked')) count++;
if ($('#ros_gastro').is(':checked')) count++;
if ($('#ros_skin').is(':checked')) count++;
if ($('#ros_eyes').is(':checked')) count++;
if ($('#ros_genitourinary').is(':checked')) count++;
if ($('#ros_enmt').is(':checked')) count++;
if ($('#ros_hema').is(':checked')) count++;
if ($('#ros_resp').is(':checked')) count++;
if ($('#ros_endo').is(':checked')) count++;
if ($('#ros_neuro').is(':checked')) count++;
if ($('#ros_musculo').is(':checked')) count++;
if ($('#ros_cardio').is(':checked')) count++;
if ($('#ros_psych').is(':checked')) count++;
if ($('#ros_all_other_negative').is(':checked') && count>0)
{
result = 'Result: Complete (Pertinent & All Other Systems: 10+ systems)';
ros = 4;
} else
{
if (count>9)
{
result = 'Result: Complete (Pertinent & All Other Systems: 10+ systems)';
ros = 4;
} else if (count>1)
{
result = 'Result: Extended (Pertinent & Other Systems: 2-9 systems)';
ros = 3;
} else if (count>0)
{
result = 'Result: Pertinent to Problem (1 system)';
ros = 2;
}
}
$('#ros_result').html(result);
// if this function is not being called solo, pass on the work
if (!solo)
{
calcHistoryResult();
}
} // end function calcROS
function calcPFSH(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// show/hide notes area
if (elementID)
{
$('#'+elementID+'_div').toggle();
}
pfsh = 2;
var result = 'Result: N/A';
var count = 0;
var result1 = 'Result: Pertinent (1 history area)';
var result12 = 'Result: Pertinent (1-2 history areas)';
var result23 = 'Result: Complete (2-3 history areas)';
var result3 = 'Result: Complete (3 history areas)';
if ($('#pfsh_past').is(':checked')) count++;
if ($('#pfsh_family').is(':checked')) count++;
if ($('#pfsh_social').is(':checked')) count++;
var encounterType = $('#encounter_type').val();
switch (encounterType)
{
case 'office_new':
case 'hospital_new':
case 'consult':
if (count==1)
{
result = result12;
pfsh = 3;
}
if (count==2)
{
result = result12;
pfsh = 3;
}
if (count==3)
{
result = result3;
pfsh = 4;
}
break;
case 'office_est':
case 'hospital_sub':
if (count==1)
{
result = result1;
pfsh = 3;
}
if (count==2)
{
result = result23;
pfsh = 4;
}
if (count==3)
{
result = result23;
pfsh = 4;
}
break;
}
$('#pfsh_result').html(result);
// if this function is not being called solo, pass on the work
if (!solo)
{
calcHistoryResult();
}
} // end function calcPFSH
function calcHistoryResult(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
var encounterType = $('#encounter_type').val();
historyScore = Math.min(hpi, ros, pfsh);
var result = 'N/A';
// calculate code
switch (historyScore)
{
case 1:
result = 'Problem Focused - ';
switch (encounterType)
{
case 'office_new': result += '99201'; break;
case 'office_est': result += '99212'; break;
case 'hospital_sub': result += '99231'; break;
case 'consult': result += '99241'; break;
}
break;
case 2:
result = 'Expanded Problem Focused - ';
switch (encounterType)
{
case 'office_new': result += '99202'; break;
case 'office_est': result += '99213'; break;
case 'hospital_sub': result += '99232'; break;
case 'consult': result += '99242'; break;
}
break;
case 3:
result = 'Detailed - ';
switch (encounterType)
{
case 'office_new': result += '99203'; break;
case 'office_est': result += '99214'; break;
case 'hospital_new': result += '99221'; break;
case 'hospital_sub': result += '99233'; break;
case 'consult': result += '99242'; break;
}
break;
case 4:
result = 'Comprehensive - ';
switch (encounterType)
{
case 'office_new': result += '99204/99205'; break;
case 'office_est': result += '99215'; break;
case 'hospital_new': result += '99222/99223'; break;
case 'hospital_sub': result += '99233'; break;
case 'consult': result += '99244/99245'; break;
}
break;
}
$('#history_result').html(result);
// update history grid highlights
$('#history_grid_'+encounterType+'>tbody>tr>td').removeClass('history-highlight');
$('#history_grid_'+encounterType+'>tbody>tr>th').removeClass('history-highlight');
$('#'+encounterType+'_'+historyScore ).addClass('history-highlight');
$('#'+encounterType+'_hpi_'+hpi ).addClass('history-highlight');
if (hpi>0 || ros>1 || pfsh>2)
{
$('#'+encounterType+'_ros_'+ros ).addClass('history-highlight');
$('#'+encounterType+'_pfsh_'+pfsh ).addClass('history-highlight');
}
$('#'+encounterType+'_level_'+historyScore ).addClass('history-highlight');
// if this function is not being called solo, pass on the work
if (!solo)
{
// calculate overall
calcOverall();
}
} // end function calcHistoryResult
function calcExam(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// get chosen values and determine higher value
var exam95 = '';
if ($('input[name=exam95]:checked').length)
{
exam95 = parseInt($('input[name=exam95]:checked').val());
}
var exam97 = '';
if ($('input[name=exam97]:checked').length)
{
exam97 = parseInt($('input[name=exam97]:checked').val());
}
var exam97sos = '';
if ($('input[name=exam97sos]:checked').length)
{
exam97sos = parseInt($('input[name=exam97sos]:checked').val());
}
if(exam95 !== '' && exam97 !== '' && exam97sos !== '')
{
examScore = Math.max(exam95, exam97, exam97sos);
}
else
{
examScore = '';
}
// highlight the background table cell of the item chosen and the code for the greater of the 95 and 97 guidlines
$('#examGrid>tbody>tr>td').removeClass('exam-highlight');
$('#examGrid>tbody>tr>th').removeClass('exam-highlight');
$('#exam95_cell_'+exam95 ).addClass('exam-highlight');
$('#exam97_cell_'+exam97 ).addClass('exam-highlight');
$('#exam97sos_cell_'+exam97sos ).addClass('exam-highlight');
$('#exam_cell_level_'+examScore ).addClass('exam-highlight');
$('#exam_type_level_'+examScore ).addClass('exam-highlight');
// calculate overall
// if this function is not being called solo, pass on the work
if (!solo)
{
calcOverall();
}
} // end function calcExam
function calcExamCalc95(elementID, solo)
{
var resultBA = 0;
var resultOS = 0;
// 95 guidelines
var ba95 = $('input.e95ba:checked').length;
$('#examCalcBA').html(ba95);
if ( ba95 > 7 ) resultBA = 4;
else if ( ba95 > 1 && $('#e95baDetail').is(":checked") ) resultBA = 3;
else if ( ba95 > 1 ) resultBA = 2;
else if ( ba95 > 0 ) resultBA = 1;
var os95 = $('input.e95os:checked').length;
$('#examCalcOS').html(os95);
if ( os95 > 7 ) resultOS = 4;
else if ( os95 > 1 && $('#e95osDetail').is(":checked") ) resultOS = 3;
else if ( os95 > 1 ) resultOS = 2;
else if ( os95 > 0 ) resultOS = 1;
$("input[name=exam95]").val([Math.max(resultBA, resultOS)]);
calcExam();
}
function calcExamCalc97(elementID, solo)
{
// 97 guidelines
var systems = 0;
var bullets = 0;
var count = 0;
count = $('input.e97con:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97eye:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97ent:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97neck:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97resp:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97card:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97chest:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97gastro:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97geni:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97lymph:checked').length;
bullets = bullets + count;
if ( count > 1 ) systems = systems + 1; // note this one takes 2 checkboxes to count as a organ system
count = $('input.e97muscu:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97skin:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97neuro:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
count = $('input.e97psych:checked').length;
bullets = bullets + count;
if ( count > 0 ) systems = systems + 1;
$('#examCalc97Bullets').html(bullets);
$('#examCalc97OS').html(systems);
if ( bullets > 17 && systems > 8 )
{
$("input[name=exam97]").val([4]);
} else if ( bullets > 11 && systems > 1 )
{
$("input[name=exam97]").val([3]);
} else if ( bullets > 5 )
{
$("input[name=exam97]").val([2]);
} else if ( bullets > 0 )
{
$("input[name=exam97]").val([1]);
} else
{
$("input[name=exam97]").val([0]);
}
calcExam();
}
function calcDxTx(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// get entered values
var dxtx_1 = parseInt($('#dxtx_1').val());
var dxtx_2 = parseInt($('#dxtx_2').val());
var dxtx_3 = parseInt($('#dxtx_3').val());
var dxtx_4 = parseInt($('#dxtx_4').val());
var dxtx_5 = parseInt($('#dxtx_5').val());
//validate min/max
var dxtx_1_real = validateMinMax(dxtx_1, 0, 2);
var dxtx_2_real = validateMinMax(dxtx_2, 0, 5);
var dxtx_3_real = validateMinMax(dxtx_3, 0, 5);
var dxtx_4_real = validateMinMax(dxtx_4, 0, 1);
var dxtx_5_real = validateMinMax(dxtx_5, 0, 5);
if (dxtx_1 != dxtx_1_real) { $('#dxtx_1').val(dxtx_1_real); dxtx_1 = dxtx_1_real; }
if (dxtx_2 != dxtx_2_real) { $('#dxtx_2').val(dxtx_2_real); dxtx_2 = dxtx_2_real; }
if (dxtx_3 != dxtx_3_real) { $('#dxtx_3').val(dxtx_3_real); dxtx_3 = dxtx_3_real; }
if (dxtx_4 != dxtx_4_real) { $('#dxtx_4').val(dxtx_4_real); dxtx_4 = dxtx_4_real; }
if (dxtx_5 != dxtx_5_real) { $('#dxtx_5').val(dxtx_5_real); dxtx_5 = dxtx_5_real; }
dxtxScore = 0; // declared outside of this function - don't "var" it here or it won't keep it's value outside of the function
var dxtxCalc = 0;
var dxtxResult = '';
// calculate
$('#dxdx_1_result').html(dxtx_1*1);
dxtxCalc = dxtx_1*1;
$('#dxdx_2_result').html(dxtx_2*1);
dxtxCalc = dxtxCalc+dxtx_2*1;
$('#dxdx_3_result').html(dxtx_3*2);
dxtxCalc = dxtxCalc+dxtx_3*2;
$('#dxdx_4_result').html(dxtx_4*3);
dxtxCalc = dxtxCalc+dxtx_4*3;
$('#dxdx_5_result').html(dxtx_5*4);
dxtxCalc = dxtxCalc+dxtx_5*4;
// determine type
switch (dxtxCalc)
{
case 0:
dxtxResult = 'N/A';
break;
case 1:
dxtxResult = 'Minimal';
dxtxScore = 1;
break;
case 2:
dxtxResult = 'Limited';
dxtxScore = 2;
break;
case 3:
dxtxResult = 'Multiple';
dxtxScore = 3;
break;
default: // 4 or higher
dxtxResult = 'Extensive';
dxtxScore = 4;
break;
}
// write final result
$('#dxtxResult').html(dxtxResult);
$('#dxtxCalc').html(dxtxCalc);
// if this function is not being called solo, pass on the work
if (!solo)
{
// update the MDM grid
calcMDM();
}
} // end function calcDxTx
function calcDataReviewed(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// get entered values
var dataReviewedCalc = 0;
if ($('#dataReviewed_1').is(':checked')) dataReviewedCalc++;
if ($('#dataReviewed_2').is(':checked')) dataReviewedCalc++;
if ($('#dataReviewed_3').is(':checked')) dataReviewedCalc++;
if ($('#dataReviewed_4').is(':checked')) dataReviewedCalc++;
if ($('#dataReviewed_5').is(':checked')) dataReviewedCalc++;
if ($('#dataReviewed_6').is(':checked')) dataReviewedCalc += 2;
if ($('#dataReviewed_7').is(':checked')) dataReviewedCalc += 2;
// determine type
switch (dataReviewedCalc)
{
case 0:
case 1:
dataResult = 'Minimal';
dataReviewScore = 1;
break;
case 2:
dataResult = 'Limited';
dataReviewScore = 2;
break;
case 3:
dataResult = 'Multiple';
dataReviewScore = 3;
break;
default: // 4 or higher
dataResult = 'Extensive';
dataReviewScore = 4;
break;
}
// write final result
$('#dataReviewResult').html(dataResult);
$('#dataReviewCalc').html(dataReviewedCalc);
// if this function is not being called solo, pass on the work
if (!solo)
{
// update the MDM grid
calcMDM();
}
} // end function calcDataReviewed
function calcRisk(elementID, solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// get entered values
riskScore = 0;
var riskResult = 'N/A';
// remove any existing highlighting
$('#riskTable>tbody>tr>td').removeClass('risk-highlight');
$('#riskTable>tbody>tr>th').removeClass('risk-highlight');
var riskMin = 0;
if ($('#riskMin_1_1').is(':checked')) riskMin++;
if ($('#riskMin_2_1').is(':checked')) riskMin++;
if ($('#riskMin_2_2').is(':checked')) riskMin++;
if ($('#riskMin_2_3').is(':checked')) riskMin++;
if ($('#riskMin_2_4').is(':checked')) riskMin++;
if ($('#riskMin_2_5').is(':checked')) riskMin++;
if ($('#riskMin_2_6').is(':checked')) riskMin++;
if ($('#riskMin_3_1').is(':checked')) riskMin++;
if ($('#riskMin_3_2').is(':checked')) riskMin++;
if ($('#riskMin_3_3').is(':checked')) riskMin++;
if ($('#riskMin_3_4').is(':checked')) riskMin++;
if (riskMin>0)
{
riskScore = 1;
riskResult = 'Minimal';
}
var riskLow = 0;
if ($('#riskLow_1_1').is(':checked')) riskLow++;
if ($('#riskLow_1_2').is(':checked')) riskLow++;
if ($('#riskLow_1_3').is(':checked')) riskLow++;
if ($('#riskLow_2_1').is(':checked')) riskLow++;
if ($('#riskLow_2_2').is(':checked')) riskLow++;
if ($('#riskLow_2_3').is(':checked')) riskLow++;
if ($('#riskLow_2_4').is(':checked')) riskLow++;
if ($('#riskLow_2_5').is(':checked')) riskLow++;
if ($('#riskLow_3_1').is(':checked')) riskLow++;
if ($('#riskLow_3_2').is(':checked')) riskLow++;
if ($('#riskLow_3_3').is(':checked')) riskLow++;
if ($('#riskLow_3_4').is(':checked')) riskLow++;
if ($('#riskLow_3_5').is(':checked')) riskLow++;
if (riskLow>0)
{
riskScore = 2;
riskResult = 'Low';
}
var riskMod = 0;
if ($('#riskMod_1_1').is(':checked')) riskMod++;
if ($('#riskMod_1_2').is(':checked')) riskMod++;
if ($('#riskMod_1_3').is(':checked')) riskMod++;
if ($('#riskMod_1_4').is(':checked')) riskMod++;
if ($('#riskMod_1_5').is(':checked')) riskMod++;
if ($('#riskMod_2_1').is(':checked')) riskMod++;
if ($('#riskMod_2_2').is(':checked')) riskMod++;
if ($('#riskMod_2_3').is(':checked')) riskMod++;
if ($('#riskMod_2_4').is(':checked')) riskMod++;
if ($('#riskMod_2_5').is(':checked')) riskMod++;
if ($('#riskMod_3_1').is(':checked')) riskMod++;
if ($('#riskMod_3_2').is(':checked')) riskMod++;
if ($('#riskMod_3_3').is(':checked')) riskMod++;
if ($('#riskMod_3_4').is(':checked')) riskMod++;
if ($('#riskMod_3_5').is(':checked')) riskMod++;
if ($('#riskMod_3_6').is(':checked')) riskMod++;
if (riskMod>0)
{
riskScore = 3;
riskResult = 'Moderate';
}
var riskHigh = 0;
if ($('#riskHigh_1_1').is(':checked')) riskHigh++;
if ($('#riskHigh_1_2').is(':checked')) riskHigh++;
if ($('#riskHigh_1_3').is(':checked')) riskHigh++;
if ($('#riskHigh_2_1').is(':checked')) riskHigh++;
if ($('#riskHigh_2_2').is(':checked')) riskHigh++;
if ($('#riskHigh_2_3').is(':checked')) riskHigh++;
if ($('#riskHigh_2_4').is(':checked')) riskHigh++;
if ($('#riskHigh_3_1').is(':checked')) riskHigh++;
if ($('#riskHigh_3_2').is(':checked')) riskHigh++;
if ($('#riskHigh_3_3').is(':checked')) riskHigh++;
if ($('#riskHigh_3_4').is(':checked')) riskHigh++;
if ($('#riskHigh_3_5').is(':checked')) riskHigh++;
if (riskHigh>0)
{
riskScore = 4;
riskResult = 'High';
}
// set highlight
switch (riskScore)
{
case 1: $('#riskMin').addClass('risk-highlight'); break;
case 2: $('#riskLow').addClass('risk-highlight'); break;
case 3: $('#riskMod').addClass('risk-highlight'); break;
case 4: $('#riskHigh').addClass('risk-highlight'); break;
}
// write final result
$('#riskResult').html(riskResult);
// if this function is not being called solo, pass on the work
if (!solo)
{
// update the MDM grid
calcMDM();
}
} // end function calcDataReviewed
function calcMDM(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// clear existing highlights
$('#mdmGrid>tbody>tr>td').removeClass('mdm-highlight');
$('#mdmGrid>tbody>tr>th').removeClass('mdm-highlight');
// set new highlights
$('#mdmDxTx_'+dxtxScore ).addClass('mdm-highlight');
$('#mdmData_'+dataReviewScore ).addClass('mdm-highlight');
$('#mdmRisk_'+riskScore ).addClass('mdm-highlight');
// the middle item defines the overall score if we have all 3 scores
if (dxtxScore>0 && dataReviewScore>0 && riskScore>0)
{
var vals = [dxtxScore, dataReviewScore, riskScore];
vals.sort();
mdmScore = vals[1];
$('#mdm_'+mdmScore ).addClass('mdm-highlight');
}
// if this function is not being called solo, pass on the work
if (!solo)
{
// calculate overall
calcOverall();
}
} // end function calcMDM
function calcOverall(solo)
{
// set solo default
if (solo === undefined)
{
solo = false;
}
// get encounterType
var encounterType = $('#encounter_type').val();
// clear highlights
$('#overall_grid_'+encounterType+'>tbody>tr>td').removeClass('overall-highlight');
$('#overall_grid_'+encounterType+'>tbody>tr>th').removeClass('overall-highlight');
// set overallCalc if all of the score are present, and set calc values for the three components
var validCode = $('#valid_code').val();
var validCode2 = $('#valid_code2').val();
if (validCode == 'no' || validCode2 == 'no')
{
validCode = 'no';
}
var overallCalc = (historyScore>0 && examScore>0 && mdmScore>0);
var historyScoreCalc = historyScore;
var examScoreCalc = examScore;
var mdmScoreCalc = mdmScore;
var componentCode = 'N/A';
var componentStatus = '';
var componentOverUnder = '';
var componentLevel = '';
var componentResultsText = '';
var componentResults = '';
// set overall based on encounter type
switch (encounterType)
{
case 'office_new':
if (historyScoreCalc>0)
{
if (historyScoreCalc==4) historyScoreCalc = 5;
$('#'+encounterType+'_history_'+historyScoreCalc ).addClass('overall-highlight');
}
if (examScoreCalc>0)
{
if (examScoreCalc==4) examScoreCalc = 5;
$('#'+encounterType+'_exam_'+examScoreCalc ).addClass('overall-highlight');
}
if (mdmScoreCalc>0)
{
mdmScoreCalc++;
$('#'+encounterType+'_mdm_'+mdmScoreCalc ).addClass('overall-highlight');
}
if (overallCalc) // take the lowest score
{
min = Math.min(historyScoreCalc, examScoreCalc, mdmScoreCalc);
$('#'+encounterType+'_overall_'+min ).addClass('overall-highlight');
switch (min)
{
case 1: componentCode = '99201'; break;
case 2: componentCode = '99202'; break;
case 3: componentCode = '99203'; break;
case 4: componentCode = '99204'; break;
case 5: componentCode = '99205'; break;
}
componentLevel = min;
}
break;
case 'office_est':
if (historyScoreCalc>0)
{
$('#'+encounterType+'_history_'+historyScoreCalc ).addClass('overall-highlight');
}
if (examScoreCalc>0)
{
$('#'+encounterType+'_exam_'+examScoreCalc ).addClass('overall-highlight');
}
if (mdmScoreCalc>0)
{
$('#'+encounterType+'_mdm_'+mdmScoreCalc ).addClass('overall-highlight');
}
if (overallCalc) // take the middle score
{
var vals = [historyScoreCalc, examScoreCalc, mdmScoreCalc];
vals.sort();
$('#'+encounterType+'_overall_'+vals[1] ).addClass('overall-highlight');
switch (vals[1])
{
case 1: componentCode = '99212'; break;
case 2: componentCode = '99213'; break;
case 3: componentCode = '99214'; break;
case 4: componentCode = '99215'; break;
}
componentLevel = vals[1];
}
break;
case 'hospital_new':
if (historyScoreCalc>2)
{
if (historyScoreCalc==4)
{
historyScoreCalc = 3;
} else if (historyScoreCalc==3)
{
historyScoreCalc = 1;
}
$('#'+encounterType+'_history_'+historyScoreCalc ).addClass('overall-highlight');
}
if (examScoreCalc>2)
{
if (examScoreCalc==4)
{
examScoreCalc = 3;
} else if (examScoreCalc==3)
{
examScoreCalc = 1;
}
$('#'+encounterType+'_exam_'+examScoreCalc ).addClass('overall-highlight');
}
if (mdmScoreCalc>0)
{
if (mdmScoreCalc>1) mdmScoreCalc--;
$('#'+encounterType+'_mdm_'+mdmScoreCalc ).addClass('overall-highlight');
}
if (overallCalc) // take the lowest score
{
min = Math.min(historyScoreCalc, examScoreCalc, mdmScoreCalc);
$('#'+encounterType+'_overall_'+min ).addClass('overall-highlight');
switch (min)
{
case 1: componentCode = '99221'; break;
case 2: componentCode = '99222'; break;
case 3: componentCode = '99223'; break;
}
componentLevel = min;
}
break;
case 'hospital_sub':
if (historyScoreCalc>0)
{
if (historyScoreCalc==4) historyScoreCalc = 3;
$('#'+encounterType+'_history_'+historyScoreCalc ).addClass('overall-highlight');
}
if (examScoreCalc>0)
{
if (examScoreCalc==4) examScoreCalc = 3;
$('#'+encounterType+'_exam_'+examScoreCalc ).addClass('overall-highlight');
}
if (mdmScoreCalc>0)
{
if (mdmScoreCalc>1) mdmScoreCalc--;
$('#'+encounterType+'_mdm_'+mdmScoreCalc ).addClass('overall-highlight');
}
if (overallCalc) // take the middle score
{
var vals = [historyScoreCalc, examScoreCalc, mdmScoreCalc];
vals.sort();
$('#'+encounterType+'_overall_'+vals[1] ).addClass('overall-highlight');
switch (vals[1])
{
case 1: componentCode = '99231'; break;
case 2: componentCode = '99232'; break;
case 3: componentCode = '99233'; break;
}
componentLevel = vals[1];
}
break;
case 'consult':
if (historyScoreCalc>0)
{
if (historyScoreCalc==4) historyScoreCalc = 5;
$('#'+encounterType+'_history_'+historyScoreCalc ).addClass('overall-highlight');
}
if (examScoreCalc>0)
{
if (examScoreCalc==4) examScoreCalc = 5;
$('#'+encounterType+'_exam_'+examScoreCalc ).addClass('overall-highlight');
}
if (mdmScoreCalc>0)
{
mdmScoreCalc++;
$('#'+encounterType+'_mdm_'+mdmScoreCalc ).addClass('overall-highlight');
}
if (overallCalc)
{
min = Math.min(historyScoreCalc, examScoreCalc, mdmScoreCalc);
$('#'+encounterType+'_overall_'+min ).addClass('overall-highlight');
switch (min)
{
case 1: componentCode = '99241'; break;
case 2: componentCode = '99242'; break;
case 3: componentCode = '99243'; break;
case 4: componentCode = '99244'; break;
case 5: componentCode = '99245'; break;
}
componentLevel = min;
}
break;
}
// check against em_code_reported to see if it was under, over or correct (or incorrect for the type of encounter selected)
if (componentCode != 'N/A')
{
componentResults = componentCode;
componentResultsText = 'Method: Component | Calculated: '+componentCode;
}
var emCodeReported = $('#em_code_reported').val();
if (emCodeReported && validCode == 'yes' && componentCode != 'N/A')
{
componentResultsText += ' | Reported: '+emCodeReported;
var codeInt = parseInt(emCodeReported);
var codeCalculated = parseInt(componentCode);
var backgroudColor = '';
var textColor = '';
var codeStatus = '';
if (codeInt > codeCalculated)
{
backgroundColor = 'red';
textColor = 'white';
codeStatus = 'is overcoded.';
componentOverUnder = 'overcoded';
componentResults += ' [overcoded as '+emCodeReported+']';
componentResultsText += ' [overcoded]';
} else if (codeInt == codeCalculated)
{
backgroundColor = 'green';
textColor = 'white';
codeStatus = 'is coded correctly.';
componentResults += ' (correct)';
} else
{
backgroundColor = 'yellow';
textColor = 'black';
codeStatus = 'is undercoded.';
componentOverUnder = 'undercoded';
componentResults += ' [undercoded as '+emCodeReported+']';
componentResultsText += ' [undercoded]';
}
componentStatus = 'Reported code '+emCodeReported+' '+codeStatus;
$('#em_code_over_under2').html(' '+componentStatus+' ')
.css('background-color', backgroundColor)
.css('color', textColor)
.show();
} else if (emCodeReported)
{
$('#em_code_over_under2').hide();
backgroundColor = 'red';
textColor = 'white';
codeStatus = 'Reported Code is INCORRECT.';
componentOverUnder = 'incorrect reported code';
componentResults += ' [incorrectly coded as '+emCodeReported+']';
componentResultsText += '';
} else
{
$('#em_code_over_under2').hide();
}
$('#component_code_display').html(componentCode);
$('#component_code').val(componentCode);
$('#component_status').val(componentStatus);
// save values
$('#hpi_score').val(hpi);
$('#ros_score').val(ros);
$('#pfsh_score').val(pfsh);
$('#history_score').val(historyScore);
$('#exam_score').val(examScore);
$('#dxtx_score').val(dxtxScore);
$('#data_review_score').val(dataReviewScore);
$('#risk_score').val(riskScore);
$('#mdm_score').val(mdmScore);
$('#component_level').val(componentLevel);
$('#component_over_under').val(componentOverUnder);
$('#component_results').val(componentResults);
$('#component_results_text').val(componentResultsText);
// if this function is not being called solo, pass on the work
if (!solo)
{
// update overall result
updateOverallResult();
}
} // end function calcOverall
function updateOverallResult() // no "solo" parameter on this one
{
// update overall result
var timeCode = $('#time_code').val();
var timeOverUnder = $('#time_over_under').val();
var timeResults = $('#time_results').val();
var timeResultsText = $('#time_results_text').val();
var componentCode = $('#component_code').val();
var componentOverUnder = $('#component_over_under').val();
var componentResults = $('#component_results').val();
var componentResultsText = $('#component_results_text').val();
var overrideCode = $('#override_code').val();
var emCodeReported = $('#em_code_reported').val();
var results = '';
var resultsText = '';
var emResult = '';
// initialize override values
$('#override_over_under').val('');
$('#override_results_text').val('');
$('#override_results').val(overrideCode);
// determine which calculation to use
var useResult = '';
if ($('#use_time_result').is(':checked'))
{
useResult = 'time';
}
if ($('#use_component_result').is(':checked'))
{
useResult = 'component';
}
if ($('#use_override_result').is(':checked'))
{
useResult = 'override';
}
// build the results text
if (timeResults)
{
if (!useResult)
{
useResult = 'time';
}
resultsText = timeResultsText;
$('#use_time_result').prop('disabled', false);
$('#time_results_text_display').html(timeResults);
} else
{
$('#use_time_result').prop('disabled', true);
$('#time_results_text_display').html('N/A');
}
if (componentResults)
{
if (!useResult)
{
useResult = 'component';
}
if (resultsText) resultsText += "\n";
resultsText = componentResultsText;
$('#use_component_result').prop('disabled', false);
$('#component_results_text_display').html(componentResults);
} else
{
$('#use_component_result').prop('disabled', true);
$('#component_results_text_display').html('N/A');
}
// if both are calculated figure out the higher value
if (timeCode && componentCode && parseInt(timeCode)>parseInt(componentCode) && !useResult)
{
useResult = 'time';
$("input[name=use_result][value=time]").prop('checked', true);
}
if (timeCode && componentCode && parseInt(timeCode)<=parseInt(componentCode) && !useResult)
{
useResult = 'component';
$("input[name=use_result][value=component]").prop('checked', true);
}
// set final results
switch (useResult)
{
case 'time':
results = timeResults;
emResult = timeOverUnder;
break;
case 'component':
results = componentResults;
emResult = componentOverUnder;
break;
case 'override': // calculate and assign values
var overrideOverUnder = '';
var overrideResults = overrideCode;
var overrideResultsText = 'Method: Assigned by Auditor | Code: '+overrideCode;
if (emCodeReported)
{
componentResultsText += ' | Reported: '+emCodeReported;
}
if (validCode == 'no')
{
overrideResults += ' (INCORRECT)';
} else if (parseInt(emCodeReported) > parseInt(overrideCode))
{
overrideOverUnder = 'overcoded';
overrideResults += ' [overcoded as '+emCodeReported+']';
overrideResultsText += ' [overcoded]';
} else if (parseInt(emCodeReported) == parseInt(overrideCode))
{
overrideResults += ' (correct)';
} else
{
overrideOverUnder = 'undercoded';
overrideResults += ' [undercoded as '+emCodeReported+']';
overrideResultsText += ' [undercoded]';
}
results = overrideResults;
$('#override_results_text_display').html(overrideResults);
emResult = overrideOverUnder;
$('#override_over_under').val(overrideOverUnder);
$('#override_results_text').val(overrideResultsText);
$('#override_results').val(overrideResults);
if (resultsText) resultsText += "\n";
resultsText = overrideResultsText;
break;
}
// write values
$('#results').val(results);
$('#results_text').val(resultsText);
$('#em_result').val(emResult);
} // end function updateOverallResult
function gradeSOSExam(init=false)
{
// get current selected SOS exam
var selected_exam = $('#sel_sos').val();
var exam_container = '#sos_' + selected_exam + '_container';
$('.sos_container').hide();
$(exam_container).show();
// set grading defaults
var sos_header = 'SOS';
var bullet_score = 0;
var level_1 = 0;
var level_2 = 0;
var level_3 = 0;
var level_4 = 0;
var sos_level = 0;
var comprehensive_ok = true;
switch (selected_exam)
{
case 'car':
sos_header = 'Cardiovascular';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 27;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'ear':
sos_header = 'Ear, Nose and Throat';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 27;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'eye':
sos_header = 'Eye';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 9;
level_4 = 14;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'gen':
sos_header = 'Genitourinary';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 36;
var gender = $('#sos_gen_gender').val();
var gender_count = 0;
// calculate total bullets with only male or female
var total_bullets = $(exam_container + " [type='checkbox']:checked").length;
var minus_malefemale = total_bullets - $(".esos_gen_genit:checked").length;
if(gender == 'male')
{
level_4 = 25;
$('#sos_gen_female').hide();
$('#sos_gen_male').show();
gender_count = $("#sos_gen_male [type='checkbox']:checked").length;
bullet_score = minus_malefemale + gender_count;
}
else
{
level_4 = 23;
$('#sos_gen_female').show();
$('#sos_gen_male').hide();
gender_count = $("#sos_gen_female [type='checkbox']:checked").length;
if(gender_count < 7){ comprehensive_ok = false; }
else{ comprehensive_ok = true; }
bullet_score = minus_malefemale + gender_count;
}
break;
case 'hem':
sos_header = 'Hematologic/Lymphatic/Immunologic';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 21;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'mus':
sos_header = 'Musculoskeletal';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 40;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'neu':
sos_header = 'Neurological';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 25;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'psy':
sos_header = 'Psychiatric';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 9;
level_4 = 15;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'res':
sos_header = 'Respiratory';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 24;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
case 'ski':
sos_header = 'Skin';
// set grading rules
level_1 = 5;
level_2 = 6;
level_3 = 12;
level_4 = 25;
bullet_score = $(exam_container + " [type='checkbox']:checked").length;
break;
}
$('.sos_header').html(sos_header);
$('#sos_result_1').html('1-' + level_1 + ' bulleted elements');
$('#sos_result_2').html(level_2 + '-' + (level_3 - 1) + ' bulleted elements');
$('#sos_result_3').html(level_3 + '-' + (level_4 - 1) + ' bulleted elements');
// $('#sos_result_4').html('All bulleted elements');
// Calculate sos exam level
if(bullet_score >= level_4
// && $('#sos_document_checkbox').is(":checked")
&& comprehensive_ok) { sos_level = 4 }
else if(bullet_score >= level_3) { sos_level = 3 }
else if(bullet_score >= level_2) { sos_level = 2 }
else if(bullet_score <= level_1 && bullet_score > 0) { sos_level = 1 }
else { sos_level = '0' }
// Don't grade on initialize
if(!init)
{
$("input[name=exam97sos]").val([sos_level]);
$("#examCalcSOS").html(bullet_score);
}
calcExam();
}
function in_array(needle, haystack)
{
for(var i in haystack)
{
if (haystack[i] == needle) return true;
}
return false;
}
// public functions (exported)
return {
initPage : initPage
, changeCodeReported : changeCodeReported
, changeEncounter : changeEncounter
, calcTimeBased : calcTimeBased
, showNotes : showNotes
, calcHPI : calcHPI
, calcROS : calcROS
, calcPFSH : calcPFSH
, calcExam : calcExam
, calcExamCalc95 : calcExamCalc95
, calcExamCalc97 : calcExamCalc97
, calcDxTx : calcDxTx
, calcDataReviewed : calcDataReviewed
, calcRisk : calcRisk
, gradeSOSExam : gradeSOSExam
, updateOverallResult : updateOverallResult
};
})(jQuery);
function validateMinMax(value, min, max)
{
if(parseInt(value) < min || isNaN(parseInt(value)))
return min;
else if(parseInt(value) > max)
return max;
else return value;
}