Finished Query: "'+queryName+'"
Compute Time: ' + (Math.floor((end_date - start_date)/100))/10 + ' secs
';
i2b2.CRC.ajax.getQueryResultInstanceList_fromQueryInstanceId("CRC:QueryTool", {qi_key_value: qi_id}, scopedCallbackQRS);
}
}
}
// this is a private function that is used by all QueryStatus object instances to check their status
// callback processor to check the Query Instance
var scopedCallbackQRSI = new i2b2_scopedCallback();
scopedCallbackQRSI.scope = this;
scopedCallbackQRSI.callback = function(results) {
if (results.error) {
alert(results.errorMsg);
return;
} else {
// find our query instance
var ri_list = results.refXML.getElementsByTagName('query_result_instance');
var l = ri_list.length;
for (var i=0; i
" + description + " ";
}
var crc_xml = results.refXML.getElementsByTagName('crc_xml_result');
l = crc_xml.length;
for (var i=0; i";
$('infoQueryStatusText').innerHTML += "" + params[i2].getAttribute("column") + ": " + params[i2].firstChild.nodeValue + "" + (i2b2.PM.model.userRoles.indexOf("DATA_LDS") == -1 ? "+-" + i2b2.h.getObfuscationValue() : "") + "
";
//$('infoQueryStatusText').innerHTML += ""; //i2b2.h.XPath(newxml, 'descendant-or-self::result/data')[0].firstChild.nodeValue;
}
var ri_id = i2b2.h.XPath(temp, 'descendant-or-self::result_instance_id')[0].firstChild.nodeValue;
}
}
}
// callback processor to check the Query Result Set
var scopedCallbackQRS = new i2b2_scopedCallback();
scopedCallbackQRS.scope = this;
scopedCallbackQRS.callback = function(results) {
if (results.error) {
alert(results.errorMsg);
return;
} else {
// find our query instance
var qrs_list = results.refXML.getElementsByTagName('query_result_instance');
var l = qrs_list.length;
var resultStr = "";
for (var i=0; i ";
rec.QRS_DisplayType = i2b2.h.XPath(temp, 'descendant-or-self::query_result_type/display_type')[0].firstChild.nodeValue;
rec.QRS_Type = i2b2.h.XPath(temp, 'descendant-or-self::query_result_type/name')[0].firstChild.nodeValue;
rec.QRS_Description = i2b2.h.XPath(temp, 'descendant-or-self::description')[0].firstChild.nodeValue;
rec.QRS_TypeID = i2b2.h.XPath(temp, 'descendant-or-self::query_result_type/result_type_id')[0].firstChild.nodeValue;
}
rec.QRS_Status = i2b2.h.XPath(temp, 'descendant-or-self::query_status_type/name')[0].firstChild.nodeValue;
rec.QRS_Status_ID = i2b2.h.XPath(temp, 'descendant-or-self::query_status_type/status_type_id')[0].firstChild.nodeValue;
// create execution time string
QRS[rec.QRS_ID] = rec;
if (rec.QRS_DisplayType == "CATNUM") {
i2b2.CRC.ajax.getQueryResultInstanceList_fromQueryResultInstanceId("CRC:QueryTool", {qr_key_value: rec.QRS_ID}, scopedCallbackQRSI);
} else if (rec.QRS_DisplayType == "LIST") {
$('infoQueryStatusText').innerHTML += "" + rec.QRS_Description + "
";
}
}
// $('infoQueryStatusText').innerHTML = resultStr;
}
}
//first get instance id
i2b2.CRC.ajax.getQueryInstanceList_fromQueryMasterId("CRC:QueryTool", {qm_key_value: queryMasterId}, scopedCallbackQI);
//if (qi_id != "") {
// i2b2.CRC.ajax.getQueryResultInstanceList_fromQueryInstanceId("CRC:QueryTool", {qi_key_value: qi_id}, scopedCallbackQRS);
// for (var q in QRS) {
// i2b2.CRC.ajax.getQueryResultInstanceList_fromQueryResultInstanceId("CRC:QueryTool", {qr_key_value: QRS[q].QRS_ID}, scopedCallbackQRSI);
// }
//}
}
// ================================================================================================== //
this.doAddTemporal = function() {
var html = $('temporalbuilders').innerHTML;
this.tenporalBuilders = this.tenporalBuilders + 1;
html = $('temporalbuilders').innerHTML
+ ' '
+ ' Start of End of '
+ ' the First Ever the Last Ever any '
+ ' Event 1 Event 2 ';
for (var j =3; j < i2b2.CRC.model.queryCurrent.panels.length; j ++)
{
html += 'Event ' + j + ' ';
}
html += ' '
+ ' Occurs Before On Or After '
+ ' Equals '
+ ' Occurs On Or After '
+ ' Occurs After '
+ ' '
+ ' '
+ ' Start of End of '
+ ' the First Ever the Last Ever any '
+ ' Event 1 Event 2 ';
for (var j =3; j < i2b2.CRC.model.queryCurrent.panels.length; j ++)
{
html += 'Event ' + j + ' ';
}
html += ' '
+ ' By > ≥ = ≤ < '
+ ' '
+ ' '
+ ' hour(s) '
+ ' day(s) '
+ ' month(s) '
+ ' year(s) '
+ ' '
+ ' And > ≥ = ≤ < '
+ ' '
+ ' '
+ ' hour(s) '
+ ' day(s) '
+ ' month(s) '
+ ' year(s) '
+ '
';
'' + html + '
';
$('temporalbuilders').innerHTML = html;
}
// ================================================================================================== //
this.doRemoveTemporal = function() { // nw096 - WEBCLIENT-155 Removes last temporal relationship
if(this.tenporalBuilders == 0){
alert('You must leave a minimum of one temporal relationship.');
} else {
if(jQuery("[id^='temporalbuilder_']").length > 1){
this.tenporalBuilders = this.tenporalBuilders - 1;
$('temporalbuilders').lastChild.remove();
}
}
}
// ================================================================================================== //
this.doScrollFirst = function() {
this.doShowFrom(0);
}
// ================================================================================================== //
this.doScrollPrev = function() {
var i = this.panelControllers[0].panelCurrentIndex - 1;
if (i<0) { i=0; }
this.doShowFrom(i);
}
// ================================================================================================== //
this.doScrollNext = function() {
var i = this.panelControllers[0].panelCurrentIndex + 1;
var dm = i2b2.CRC.model.queryCurrent;
if (i > (dm.panels[i2b2.CRC.ctrlr.QT.temporalGroup].length-3)) { i=dm.panels[i2b2.CRC.ctrlr.QT.temporalGroup].length-3; }
this.doShowFrom(i);
}
// ================================================================================================== //
this.doScrollLast = function() {
var i = i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup].length - 3;
if (i<0) { i = 0; }
this.doShowFrom(i);
}
// ================================================================================================== //
this.doScrollNew = function() {
var i = i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup].length - 2;
if (i<0) { i = 0; }
this.doShowFrom(i);
}
// ================================================================================================== //
this._redrawScrollBtns = function() {
// enable & disable scroll buttons (at least the look of the buttons)
var dir = i2b2.hive.cfg.urlFramework + 'cells/CRC/assets/';
if (i2b2.CRC.ctrlr.QT.panelControllers[0].panelCurrentIndex == 0) {
$('panelScrollFirst').src = dir+"QryTool_b_first_hide.gif";
$('panelScrollPrev').src = dir+"QryTool_b_prev_hide.gif";
} else {
$('panelScrollFirst').src = dir+"QryTool_b_first.gif";
$('panelScrollPrev').src = dir+"QryTool_b_prev.gif";
}
if ((i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup].length - i2b2.CRC.ctrlr.QT.panelControllers[0].panelCurrentIndex) > 3) {
$('panelScrollNext').src = dir+"QryTool_b_next.gif";
$('panelScrollLast').src = dir+"QryTool_b_last.gif";
} else {
$('panelScrollNext').src = dir+"QryTool_b_next_hide.gif";
$('panelScrollLast').src = dir+"QryTool_b_last_hide.gif";
}
},
// =====================================================================================================//
/***************
* Print Query
****************/
this.doPrintQuery = function() {
var v_i2b2_quey_name = i2b2.CRC.model.queryCurrent.name;
var crc_bcgrnd1 = "";
var crc_bcgrnd2 = " ";
var crc_cur_bcgrnd = null;
if(
(v_i2b2_quey_name == null) ||
(v_i2b2_quey_name == undefined) ||
(v_i2b2_quey_name.length == 0)
){
v_i2b2_quey_name = 'No Query Name is currently provided.';
}
var v_cnt_panels = i2b2.CRC.model.queryCurrent.panels[0].length;
if(v_cnt_panels > 0){
var win_html_inner =
""+
"";
//Get Query Name if available
win_html_inner +=
""+
""+
""+
"Query Name: "+ v_i2b2_quey_name + " Temporal Constraint: ";
var v_querytiming = i2b2.CRC.ctrlr.QT.queryTiming;
if (v_querytiming == "ANY")
{
win_html_inner += "Treat all groups independently";
} else if (v_querytiming == "SAMEVISIT") {
win_html_inner += "Selected groups occur in the same financial encounter";
} else if (v_querytiming == "TEMPORAL") {
win_html_inner += "Define sequence of events";
} else {
win_html_inner += "Items Instance will be the same";
}
win_html_inner += " ";
var isTemporal = false;
if (this.queryTiming == "TEMPORAL") {
isTemporal = true;
}
for (var ip = 0; ip < i2b2.CRC.model.queryCurrent.panels.length; ip++)
{
var v_cnt_panels = i2b2.CRC.model.queryCurrent.panels[ip].length;
//Get information for each query panel
for(x =0; x < v_cnt_panels; x++){
var v_dateTo = i2b2.CRC.model.queryCurrent.panels[ip][x].dateTo;
var v_dateFrom = i2b2.CRC.model.queryCurrent.panels[ip][x].dateFrom;
var v_exclude = i2b2.CRC.model.queryCurrent.panels[ip][x].exclude;
var v_occurs = i2b2.CRC.model.queryCurrent.panels[ip][x].occurs;
var v_relevance = i2b2.CRC.model.queryCurrent.panels[ip][x].relevance;
var v_timing = i2b2.CRC.model.queryCurrent.panels[ip][x].timing;
var v_items = i2b2.CRC.model.queryCurrent.panels[ip][x].items;
if((x % 2) == 0){
crc_cur_bcgrnd = crc_bcgrnd1;
}
else{
crc_cur_bcgrnd = crc_bcgrnd2;
}
var v_strDateTo = null;
var v_strDateFrom = null;
//Handle JS Dates
if((v_dateTo == null) ||
(v_dateTo == undefined) ||
(v_dateTo == false)
){
v_strDateTo = "none";
}
else{
v_strDateTo =
v_dateTo.Month +"/"+
v_dateTo.Day +"/" +
v_dateTo.Year;
}
//QueryTiming
if (v_querytiming == "ANY")
{
v_timing = "Treat Independently";
} else if (v_querytiming == "SAMEVISIT")
{
if (v_timing == "ANY")
{
v_timing = "Treat Independently";
} else {
v_timing = "Occurs in Same Encounter";
}
} else
{
if (v_timing == "ANY")
{
v_timing = "Treat Independently";
} else {
v_timing = "Items Instance will be the same";
}
}
//Handle JS Dates
if((v_dateFrom == null) ||
(v_dateFrom == undefined) ||
(v_dateFrom == false)
){
v_strDateFrom = "none";
}
else{
v_strDateFrom =
v_dateFrom.Month +"/"+
v_dateFrom.Day +"/" +
v_dateFrom.Year;
}
if (isTemporal)
{
var tempalTitle = "Population in which events occur";
if (ip > 0)
tempalTitle = "Event " + ip;
win_html_inner +=
""+
crc_cur_bcgrnd;
win_html_inner +=
""+
tempalTitle
" ";
}
win_html_inner +=
""+
crc_cur_bcgrnd;
win_html_inner +=
""+
"Group "+ (x + 1)
" ";
win_html_inner +=
""+
""+
""+
""+
""+
""+
" Date From: "+
""+
v_strDateFrom +
" "+
" "+
""+
" Date To: "+
""+
v_strDateTo +
" "+
" "+
""+
""+
" Excluded? "+
""+
v_exclude +
" "+
" "+
""+
" Occurs X times: "+
"> "+
v_occurs +
" "+
" "+
""+
" Relevance %: "+
" "+
v_relevance +
" "+
" "+
""+
" Temporal Constraint: "+
""+
v_timing +
" "+
" "+
" ";
win_html_inner +=
""+
""+
""+
""+
"Path "+
" "+
""+
""+
"Concept/Term "+
" "+
""+
""+
"Other Information "+
" "+
" ";
win_html_inner +=
"";
for(n = 0; n < v_items.length; n++){
//str_shrine_path = v_items[n].sdxInfo.sdxKeyValue;
//Using tooltips
str_shrine_path = v_items[n].origData.tooltip;
win_html_inner += "";
win_html_inner +=
""+
""+
str_shrine_path +
" ";
win_html_inner +=
""+
""+
v_items[n].origData.name +
" ";
win_html_inner +=
""+
"";
if((v_items[n].LabValues == null) ||
(v_items[n].LabValues == undefined) ||
(v_items[n].LabValues.length <= 0)
){
win_html_inner += " ";
}
else{
var v_lab_values = v_items[n].LabValues;
var str_lab_values = "";
if(v_lab_values.GeneralValueType == "NUMBER") {
str_lab_values =
v_lab_values.NumericOp +" : ";
if((v_lab_values.ValueLow != null) ||
(v_lab_values.ValueLow != undefined)
){
str_lab_values +=
v_lab_values.ValueLow + " - "+
v_lab_values.ValueHigh;
} else {
str_lab_values +=
v_lab_values.Value;
}
str_lab_values += " "+ v_lab_values.UnitsCtrl;
}
//String
else if((v_lab_values.ValueString != null) ||
(v_lab_values.ValueString != undefined)
){
str_lab_values =
"By String: "+
v_lab_values.ValueString;
}
//Flag
else if((v_lab_values.ValueFlag != null) ||
(v_lab_values.ValueFlag != undefined)
){
var v_flag = "Normal";
if(v_lab_values.ValueFlag == "H"){
v_flag = "High";
}
else if(v_lab_values.ValueFlag == "L"){
v_flag = "Low";
}
str_lab_values =
"By Flag: "+ v_flag;
}
win_html_inner += str_lab_values;
}
win_html_inner += " ";
}
//end
if (isTemporal == false)
break;
}
win_html_inner += "
";
}
if (isTemporal)
{
win_html_inner +=
" "+
crc_cur_bcgrnd;
win_html_inner +=
""+
$('instancevent1[0]').options[$('instancevent1[0]').selectedIndex].value + " " +
$('preloc1[0]').options[$('preloc1[0]').selectedIndex].value +" " +
$('instanceopf1[0]').options[$('instanceopf1[0]').selectedIndex].value +" " +
$('postloc[0]').options[$('postloc[0]').selectedIndex].value + " " +
$('instancevent2[0]').options[$('instancevent2[0]').selectedIndex].value + " " +
$('preloc2[0]').options[$('preloc2[0]').selectedIndex].value + " " +
$('instanceopf2[0]').options[$('instanceopf2[0]').selectedIndex].value +" ";
if ( $('bytime1[0]').checked)
{
win_html_inner += " " + $('byspan1[0]').options[$('byspan1[0]').selectedIndex].value + " " +
$('bytimevalue1[0]').value + " " +
$('bytimeunit1[0]').options[$('bytimeunit1[0]').selectedIndex].value +" ";
}
if ( $('bytime2[0]').checked)
{
win_html_inner += " " + $('byspan2[0]').options[$('byspan2[0]').selectedIndex].value + " " +
$('bytimevalue2[0]').value + " " +
$('bytimeunit2[0]').options[$('bytimeunit2[0]').selectedIndex].value;
}
win_html_inner += " ";
}
win_html_inner += "
";
//Query Status window
var self = i2b2.CRC.ctrlr.currentQueryStatus;
if(
(self != null) &&
(self != undefined) &&
(self.dispDIV != null) &&
(self.dispDIV != undefined)
){
win_html_inner += self.dispDIV.innerHTML;
}
var win =
window.open("",'shrinePrintWindow','width=800,height=750,menubar=yes,resizable=yes,scrollbars=yes');
win.document.writeln('');
win.document.writeln(win_html_inner);
win.document.writeln('
');
}
else{
alert("Currently no query is available for printing. \nPlease generate a query before clicking on [Print Query] button.");
}
},
// =====================================================================================================//
/**********************
* Query Report BG
**********************/
// Print Query variables
this.queryPanelObjForPrinting = {};
this.QI_Rec_ForPrinting = new Object();
this.QueryResultsForPrinting = {};
this.QueryResultsForPrintingIndex = 0;
this.QueryResultsNum = 0;
this.query_user_id=null;
this.XMLResultsStringForPrint = "";
var uniqueItems = $H();
var queryReportWin = null;
// End Print Query variables
this.ClearVariablesForPrinting = function()
{
this.queryPanelObjForPrinting = {};
this.QI_Rec_ForPrinting = new Object();
this.QueryResultsForPrinting = {};
this.QueryResultsForPrintingIndex = 0;
this.QueryResultsNum = 0;
this.query_user_id=null;
this.XMLResultsStringForPrint = "";
var uniqueItems = $H();
queryReportWin = null;
};
this.createQueryReport = function(queryNameInput,previewQueryOnly)
{
//This request is to populate the query report panel in the query results section
//If the status box is empty no need to proceed
if($('infoQueryStatusText').innerHTML=="") return;
//Clean the corresponding div before repopulating
$("infoQueryStatusReport").innerHTML="";
//Clean and populate the variables for printing
this.ClearVariablesForPrinting();
if(queryNameInput.length>0 || previewQueryOnly)
this.queryPanelObjForPrinting.name = queryNameInput;
else{
var nameObj = document.getElementById("queryName");
var v_i2b2_quey_name = i2b2.CRC.model.queryCurrent.name;
if(nameObj){
this.queryPanelObjForPrinting.name = nameObj.innerHTML;
}
}
var userIdElm = $("userIdElem");
if(userIdElm)
this.query_user_id = userIdElm.value;
var v_cnt_panels = i2b2.CRC.model.queryCurrent.panels[0].length;
if(v_cnt_panels > 0){
this.queryPanelObjForPrinting.timing = i2b2.CRC.ctrlr.QT.queryTiming;
var isTemporal = false;
if (this.queryTiming == "TEMPORAL") {
isTemporal = true;
}
this.queryPanelObjForPrinting.subQryRelationStructure = [];
this.queryPanelObjForPrinting.mainQryStructure = [];
this.queryPanelObjForPrinting.subQryStructure = [];
this.queryPanelObjForPrinting.hasSubquery = false;
for (var ip = 0; ip < i2b2.CRC.model.queryCurrent.panels.length; ip++)
{
var v_cnt_panels = i2b2.CRC.model.queryCurrent.panels[ip].length;
//Get information for each query panel
var panels = [];
for(x =0; x < v_cnt_panels; x++){
var po = {};
po.dateTo = i2b2.CRC.model.queryCurrent.panels[ip][x].dateTo;
po.dateFrom = i2b2.CRC.model.queryCurrent.panels[ip][x].dateFrom;
po.exclude = i2b2.CRC.model.queryCurrent.panels[ip][x].exclude;
po.occurs = i2b2.CRC.model.queryCurrent.panels[ip][x].occurs;
po.relevance = i2b2.CRC.model.queryCurrent.panels[ip][x].relevance;
po.timing = i2b2.CRC.model.queryCurrent.panels[ip][x].timing;
po.subquery = false;
if (isTemporal && ip>0){
po.name = "Event" + ip;
po.subquery = true;
}
var v_items = i2b2.CRC.model.queryCurrent.panels[ip][x].items;
var v_strDateTo = null;
var v_strDateFrom = null;
//Handle JS Dates
if((po.dateTo == null) ||
(po.dateTo == undefined) ||
(po.dateTo == false)
){
v_strDateTo = "none";
}
else{
v_strDateTo =
po.dateTo.Month +"/"+
po.dateTo.Day +"/" +
po.dateTo.Year;
}
po.dateTo = v_strDateTo
//Handle JS Dates
if((po.dateFrom == null) ||
(po.dateFrom == undefined) ||
(po.dateFrom == false)
){
po.strDateFrom = "none";
}
else{
v_strDateFrom =
po.dateFrom.Month +"/"+
po.dateFrom.Day +"/" +
po.dateFrom.Year;
}
po.dateFrom = v_strDateFrom;
po.items = [];
for(n = 0; n < v_items.length; n++){
var itemObj = {};
itemObj.tooltip = v_items[n].origData.tooltip? v_items[n].origData.tooltip:"";
itemObj.name = v_items[n].origData.result_instance_id ?
(v_items[n].origData.title ? v_items[n].origData.title :
(v_items[n].origData.titleCRC ? v_items[n].origData.titleCRC : ""))
:(v_items[n].origData.newName ? v_items[n].origData.newName
: (v_items[n].origData.name?v_items[n].origData.name:""));
itemObj.hasChildren = v_items[n].origData.hasChildren;
po.items.push(itemObj);
//itemObj.level =
}
panels[x] = po;
}
if(panels.length>0){
if (isTemporal)
{
if (ip > 0)
this.queryPanelObjForPrinting.subQryStructure.push(panels);
else
this.queryPanelObjForPrinting.mainQryStructure.push(panels);
}
else
this.queryPanelObjForPrinting.mainQryStructure.push(panels);
}
}
if(isTemporal)
{
var evntRelDiv = document.getElementById('temporalbuilders');
if(evntRelDiv)
{
var relationNodes = evntRelDiv.childNodes;
this.queryPanelObjForPrinting.subQryRelationStructure = [];
var subQryRelationStructureIndex = 0;
for(i=0; i < relationNodes.length; i++)
{
var thisRelNode = relationNodes[i];
var rel = {};
rel.spans = [];
var spanIndex = 0;
var spanObj = {};
var bytime1 = false;
var bytime2 = false;
var allChildren = thisRelNode.childNodes;
for(j=0; j < allChildren.length; j++)
{
var currentNode = allChildren[j];
if(currentNode.id){
if(currentNode.id.indexOf("preloc1") >= 0)
{
rel.firstQryJoinCol = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf("instanceopf1") >= 0)
{
rel.firstQryOp = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf("instancevent1") >= 0)
{
rel.firstQryEvntNm = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf("postloc") >= 0)
{
rel.operator = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf("preloc2") >= 0)
{
rel.secondQryJoinCol = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf("instanceopf2") >= 0)
{
rel.secondQryOp = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf("instancevent2") >= 0)
{
rel.secondQryEvntNm = getSelectedValueFromOptions(currentNode.options);
}
if((currentNode.id.indexOf('bytime1') >= 0) && currentNode.checked)
{
bytime1 = true;
}
if(currentNode.id.indexOf('byspan1') >= 0 && bytime1)
{
spanObj.oprator = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf('bytimevalue1') >= 0 && bytime1)
{
spanObj.value = currentNode.value;
}
if(currentNode.id.indexOf('bytimeunit1') >= 0 && bytime1)
{
spanObj.units = getSelectedValueFromOptions(currentNode.options);
rel.spans[spanIndex++] = spanObj;
}
if((currentNode.id.indexOf('bytime2') >= 0) && currentNode.checked)
{
bytime2 = true;
spanObj = {};
}
if(currentNode.id.indexOf('byspan2') >= 0 && bytime2)
{
spanObj.oprator = getSelectedValueFromOptions(currentNode.options);
}
if(currentNode.id.indexOf('bytimevalue2') >= 0 && bytime2)
{
spanObj.value = currentNode.value;
}
if(currentNode.id.indexOf('bytimeunit2') >= 0 && bytime2)
{
spanObj.units = getSelectedValueFromOptions(currentNode.options);
rel.spans[spanIndex++] = spanObj;
}
}
}
if(allChildren.length > 0)
this.queryPanelObjForPrinting.subQryRelationStructure[subQryRelationStructureIndex++] = rel ;
}
}
}
//All variables are ready to print.
var infoQueryStatusTextObj = $('infoQueryStatusText');
this.createHTMLForPrinting(previewQueryOnly);
}
else{
alert("Currently no query is available for printing. \nPlease generate a query before clicking on [Print Query] button.");
}
};
this.PrintQueryTemplate = ""+
"Query Report "+
// ""+
" "+
" "+
" "+
""+
""+
"";
this.PrintQueryBody =
""+
""+
"
"+
"
Print Report "+
"
Query Report
"+
"
"+
"
Query Definition
"+
""+
"
"+
"
"+
"
"+
"
Query Results
"+
"
" +
"
Print Report "+
"
";
this.createHTMLForPrinting = function(previewQueryOnly)
{
var QueryReportWin = null;
var QueryReportDiv = null;
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var browserIsIE = false;
if (msie > 0)
browserIsIE = true;
if(!(window.ActiveXObject) && "ActiveXObject" in window)
browserIsIE = true;
var savedHTML = null;
if(this.queryPanelObjForPrinting.mainQryStructure.length > 0){
if( previewQueryOnly){
if(browserIsIE){
i2b2.CRC.ctrlr.QT.queryReportViewer.yuiPanel = null;
i2b2.CRC.ctrlr.QT.queryReportViewer.show();
QueryReportDiv = jQuery(i2b2.CRC.ctrlr.QT.queryReportViewer.yuiPanel.body)//.find('#queryReport-viewer-body');
}
else{ //Open a new window for printing query for non-IE browsers
QueryReportWin = window.open("",'shrinePrintWindow','width=800,height=750,menubar=yes,resizable=yes,scrollbars=yes');
//Request came for query preview generation. Need to load the child window with template
// if(previewQueryOnly){
var doc = QueryReportWin.document;
doc.write(this.PrintQueryTemplate);
doc.write(this.PrintQueryBody);
doc.close();
// }
}
}
else
{
QueryReportDiv = $('infoQueryStatusReport');
QueryReportDiv.innerHTML=this.PrintQueryBody;
var printLinks = $$('.no-print');
if(printLinks)
printLinks.each(function(printLink){
var link = printLink.down('a');
if(link)
link.href="javascript:i2b2.CRC.ctrlr.QT.PrintElem('infoQueryStatusReport')";
});
}
//Populate the query details section
try{
if(QueryReportWin)
this.getQueryDetails(this.queryPanelObjForPrinting,this.query_user_id,previewQueryOnly,QueryReportWin,"queryDetailsTable");
if(QueryReportDiv)
this.getQueryDetails(this.queryPanelObjForPrinting,this.query_user_id,previewQueryOnly,false,"queryDetailsTable");
}
catch(e)
{
console.error(e);
}
//Populate the query description section
try{
if(QueryReportWin)
this.getQrTiming(this.queryPanelObjForPrinting,QueryReportWin,"qdHeaderTable");
if(QueryReportDiv)
this.getQrTiming(this.queryPanelObjForPrinting,false,"qdHeaderTable");
}
catch(e)
{
console.error(e);
}
//Populate the query structure description section
var qdDescription = this.getQueryDescription(this.queryPanelObjForPrinting.mainQryStructure);
if(qdDescription)
{
try{
var Row = "
";
var Cell = "" + "All Groups" + " ";
Row = Row + Cell;
if(QueryReportWin)
jQuery("#qdContainerTable",QueryReportWin.document).append(Row);
if(QueryReportDiv)
jQuery("#qdContainerTable").append(Row);
if(QueryReportWin)
jQuery("#qdContainerTable",QueryReportWin.document).append(qdDescription);
if(QueryReportDiv)
jQuery("#qdContainerTable").append(qdDescription);
}
catch(e)
{
console.error(e);
}
}
//Populate temporal query events description section
var qdDescription = this.getQueryDescription(this.queryPanelObjForPrinting.subQryStructure);
if(qdDescription)
{
try{
var Row = "
";
var Cell = "" + "All Events" + " ";
Row = Row + Cell;
if(QueryReportWin)
jQuery("#temporalQryEventsContainerTable",QueryReportWin.document).append(Row);
if(QueryReportDiv)
jQuery("#temporalQryEventsContainerTable").append(Row);
if(QueryReportWin)
jQuery("#temporalQryEventsContainerTable",QueryReportWin.document).append(qdDescription);
if(QueryReportDiv)
jQuery("#temporalQryEventsContainerTable").append(qdDescription);
}
catch(e)
{
console.error(e);
}
}
//Populate temporal query events relation section
if(this.queryPanelObjForPrinting.subQryStructure && this.queryPanelObjForPrinting.subQryStructure.length>0){
var temporalQEventsRelTable = null;
if(QueryReportWin)
temporalQEventsRelTable = QueryReportWin.document.getElementById("temporalQryEventsRelationsTable");
if(QueryReportDiv)
temporalQEventsRelTable = $("temporalQryEventsRelationsTable");
try{
var qdDescription = this.getTemporalQueryEventRelations(temporalQEventsRelTable);
}
catch(e)
{
console.error(e);
}
}
if(!previewQueryOnly){
//Populate the query results section
var resultsArray = i2b2.CRC.view.graphs.parseInputIntoArray(i2b2.CRC.ctrlr.currentQueryResults.resultString, true);
if(resultsArray && resultsArray.length>0){
try{
if(QueryReportWin)
this.createResultsForPrint(resultsArray,QueryReportWin);
else{
this.createResultsForPrint(resultsArray,false);
}
}
catch(e)
{
console.error(e);
}
}
else // There is no results, so no need to show Query Results section
{
var resultTitleDiv = null;
if(QueryReportWin)
resultTitleDiv = QueryReportWin.document.getElementById("qrsTitle");
if(QueryReportDiv)
resultTitleDiv = $("qrsTitle");
if(resultTitleDiv){
resultTitleDiv.parentNode.removeChild(resultTitleDiv);
}
}
}
else // This window is to only show the query structure preview, so no need to show Query Results section
{
var resultTitleDiv = null;
if(QueryReportWin)
resultTitleDiv = QueryReportWin.document.getElementById("qrsTitle");
if(QueryReportDiv)
resultTitleDiv = $("qrsTitle");
if(resultTitleDiv){
resultTitleDiv.parentNode.removeChild(resultTitleDiv);
}
}
var loaderDiv = null;
if(QueryReportWin)
loaderDiv = QueryReportWin.document.getElementById("QueryReportLoading");
if(QueryReportDiv){
// if(browserIsIE && printFromId)
loaderDiv = jQuery(QueryReportDiv).find('#QueryReportLoading');
// else
// loaderDiv = jQuery("#infoQueryStatusReport #QueryReportLoading");
}
if(loaderDiv)
jQuery(loaderDiv).addClass("no-show");
var resultsDiv = null;
if(QueryReportWin)
resultsDiv = QueryReportWin.document.getElementById("QueryReportContainer");
if(QueryReportDiv){
// if(browserIsIE && printFromId)
resultsDiv = jQuery(QueryReportDiv).find('#QueryReportContainer');
// else
// resultsDiv = $("#infoQueryStatusReport #QueryReportContainer");
}
if(resultsDiv)
jQuery(resultsDiv).removeClass("no-show");
if(browserIsIE && previewQueryOnly)
{
// this.PrintElem();
// jQuery(resultsDiv).html(savedHTML);
}
}
else{
alert("Currently no query is available for printing. \nPlease generate a query before clicking on [Print Query] button.");
}
};
this.getQueryDetails = function(queryObj,query_user_id,previewQueryOnly,QueryReportWin,objId){
var username = this.getQueryUserFullName(query_user_id);
var instanceRec = this.QI_Rec_ForPrinting;
var dateInfoProvided = false;
var diff = "";
var text = "";
var qrNameNotProvided = false;
if(queryObj.name.length <= 0){
text = 'No Query Name is currently provided';
qrNameNotProvided = true;
}
else{
if(previewQueryOnly)
text = 'The query is entitled "' + queryObj.name + '"';
else
text = 'The query entitled "' + queryObj.name ;
}
var formattedResObj = i2b2.CRC.ctrlr.currentQueryResults;
var resString = formattedResObj.resultString;
var computeTime = null;
if(resString.toLowerCase().indexOf("compute time")>0)
{
var textCompTime = resString.match(new RegExp("Compute Time" + "(.*)" + "\n"));
if(textCompTime.length>0)
{
var compText = textCompTime[0];
var splitcompText = compText.split(":");
if(splitcompText && splitcompText.length>1)
computeTime = splitcompText[1];
}
}
text = (qrNameNotProvided ? 'The query "' : '') + text +
'" was completed in '+ computeTime + '. This query was performed by "'+ username +'".';
if(QueryReportWin)
jQuery("#" + objId,QueryReportWin.document).append('' + text.toString() + ' ');
else
jQuery("#" + objId).append('' + text.toString() + ' ');
};
this.getQrTiming = function(queryObj,QueryReportWin,objId){
var tdText = "";
if(queryObj.timing)
{
switch(queryObj.timing)
{
case "ANY":
tdText = " Temporal Constraint: Treat All Groups Independently";
break;
case "SAMEVISIT":
tdText = " Temporal Constraint: Selected groups occur in the same financial encounter";
break;
case "TEMPORAL": //Temporal query
query_order = "Groups occur in the same sequence from left to right";
tdText = " Temporal Constraint: Population in which events occur";
}
if(QueryReportWin)
jQuery("#" + objId,QueryReportWin.document).append('' + tdText + ' ');
else
jQuery("#" + objId).append('' + tdText + ' ');
}
};
this.getQueryDescription = function(queryObj) {
var elemToAppend = "";
if(queryObj.length > 0)
{
elemToAppend = "";
var panelNum = 0;
elemToAppend = elemToAppend + "
";
var tdObj = "";
queryObj.each(function(queryData){
var andCounter = 0;
var subQryEventNameDisplayed = false;
queryData.each(function(panelData){
var orCounter = 0;
var numItemsInPanel = panelData.items.length;
var panelContdivObj = "";
var PanelTableTrObj = "
";
var PanelTableTd1Obj = "
";
PanelTableTrObj = PanelTableTrObj + PanelTableTd1Obj;
var PanelTableTd2Obj = "";
panelNum++ ;
var panelOperatorDivId = "PanelOp-" + panelNum;
var panelOperatorDiv = "";
if(andCounter == 0){
andCounter++ ;
if (panelData.exclude)
{
panelOperatorDiv = panelOperatorDiv + "NOT";
panelContdivObj = panelContdivObj + " notOpPanel";
}
}
else
{
var text = "AND";
if (panelData.exclude)
{
text = "AND NOT";
panelContdivObj = panelContdivObj + " notOpPanel";
}
panelOperatorDiv = panelOperatorDiv + text;
andCounter++ ;
}
var panelItemDiv = "
";
var panelTiming = "";
switch(panelData.timing)
{
case "ANY":
panelTiming = "Independent of Visit";
break;
case "SAMEVISIT":
panelTiming = "Occurs in Same Encounter";
break;
case "SAMEINSTANCENUM":
panelTiming = "Items Instance will be the same";
break;
}
var panelDateFrom = "";
if(panelData.dateFrom)
{
if(panelData.dateFrom.Month && panelData.dateFrom.Day && panelData.dateFrom.Year)
panelDateFrom = panelData.dateFrom.Month + "/" + panelData.dateFrom.Day + "/" + panelData.dateFrom.Year;
else
{
panelDateFrom = panelData.dateFrom;
}
}
var panelDateTo = "";
if(panelData.dateTo)
{
if(panelData.dateTo.Month && panelData.dateTo.Day && panelData.dateTo.Year)
panelDateTo = panelData.dateTo.Month + "/" + panelData.dateTo.Day + "/" + panelData.dateTo.Year;
else
{
panelDateTo = panelData.dateTo;
}
}
var panelDateRangeText = "From earliest date available to latest date available";
if(panelData.dateFrom && panelData.dateTo)
{
if(panelDateFrom == "none")
panelDateFrom = "earliest date available";
if(panelDateTo == "none")
panelDateTo = "latest date available";
panelDateRangeText = "From " + panelDateFrom + " to " + panelDateTo;
}
else
{
if(panelDateFrom == "none")
panelDateFrom = "earliest date available";
if(panelDateTo == "none")
panelDateTo = "latest date available";
if(panelData.dateFrom && !panelData.dateTo)
panelDateRangeText = "From " + panelDateFrom + " to latest date available";
if(!panelData.dateFrom && panelData.dateTo)
panelDateRangeText = "From earliest date available to " + panelDateTo;
}
var panelItemOccurrenceText = "# of times an item is recorded is > " + panelData.occurs;
panelData.items.each(function(itemData){
var data = itemData;
if(!(typeof itemData.origData == 'undefined'))
data = itemData.origData;
var qrPanelItemTableObj = "
";
var qrPanelItemTableTrObj = "";
var imageObj = null;
//Evaluate the lab values
var str_lab_values = "";
if(data.LabValues){
var v_lab_values = data.LabValues;
if(v_lab_values.GeneralValueType == "NUMBER") {
var labOp = "";
switch(v_lab_values.NumericOp)
{
case "LT":
labOp = " <";
break;
case "LE":
labOp = " <=";
break;
case "EQ":
labOp = " =";
break;
case "BETWEEN":
labOp = " Between";
break;
case "GE":
labOp = " >=";
break;
case "GT":
labOp = " >";
break;
}
str_lab_values =
labOp +" ";
if((v_lab_values.ValueLow != null) ||
(v_lab_values.ValueLow != undefined)
){
str_lab_values +=
v_lab_values.ValueLow + " - "+
v_lab_values.ValueHigh;
} else {
str_lab_values +=
v_lab_values.Value;
}
str_lab_values += " "+ v_lab_values.UnitsCtrl;
}
//String
else if((v_lab_values.ValueString != null) ||
(v_lab_values.ValueString != undefined)
){
str_lab_values =
"By String: "+
v_lab_values.ValueString;
}
//Flag
else if((v_lab_values.ValueFlag != null) ||
(v_lab_values.ValueFlag != undefined)
){
var v_flag = "Normal";
if(v_lab_values.ValueFlag == "H"){
v_flag = "High";
}
else if(v_lab_values.ValueFlag == "L"){
v_flag = "Low";
}
str_lab_values =
"By Flag: "+ v_flag;
}
// End evaluate lab values
}
if(data.hasChildren) //It is a previous query inside a query, so no item-icon provided
{
if( data.hasChildren.indexOf("LA") >=0 )
{
imageObj = " ";
}
else
{
imageObj = " ";
}
}
if(imageObj)
{
var nameText = "";
if(data.newName)
nameText = data.newName;
else
nameText = data.name;
var qrPanelItemTableTdObj = "" + imageObj + "
" + " " + nameText + str_lab_values + "
" + " ";
}
else
{
var qrPanelItemTableTdObj = "" + data.name + str_lab_values + " ";
}
qrPanelItemTableTrObj = qrPanelItemTableTrObj + qrPanelItemTableTdObj;
qrPanelItemTableObj = qrPanelItemTableObj + qrPanelItemTableTrObj + " ";
qrPanelItemTableTrObj = "";
qrPanelItemTableTdObj = "" + data.tooltip + " ";
qrPanelItemTableTrObj = qrPanelItemTableTrObj + qrPanelItemTableTdObj + " ";
qrPanelItemTableObj = qrPanelItemTableObj + qrPanelItemTableTrObj;
qrPanelItemTableTrObj = "";
qrPanelItemTableTdObj = "" + panelTiming + " " ;
qrPanelItemTableTrObj = qrPanelItemTableTrObj + qrPanelItemTableTdObj + " ";
qrPanelItemTableObj = qrPanelItemTableObj + qrPanelItemTableTrObj;
qrPanelItemTableTrObj = "";
qrPanelItemTableTdObj = "" + panelDateRangeText + " " ;
qrPanelItemTableTrObj = qrPanelItemTableTrObj + qrPanelItemTableTdObj + " ";
qrPanelItemTableObj = qrPanelItemTableObj + qrPanelItemTableTrObj;
qrPanelItemTableTrObj = "";
qrPanelItemTableTdObj = "" + panelItemOccurrenceText + " " ;
qrPanelItemTableTrObj = qrPanelItemTableTrObj + qrPanelItemTableTdObj + " ";
qrPanelItemTableObj = qrPanelItemTableObj + qrPanelItemTableTrObj;
qrPanelItemTableObj = qrPanelItemTableObj + "
";
panelItemDiv = panelItemDiv + "
" + qrPanelItemTableObj + "
";
if(++orCounter < numItemsInPanel)
{
var orDiv = "
" + "OR" + "
";
panelItemDiv = panelItemDiv + orDiv;
}
});
panelItemDiv = panelItemDiv + "
";
PanelTableTd2Obj = PanelTableTd2Obj + panelItemDiv + "
";
PanelTableTrObj = PanelTableTrObj + PanelTableTd2Obj + " ";
PanelTableObj = PanelTableObj + PanelTableTrObj + "";
panelContdivObj = panelContdivObj + "\">" + PanelTableObj + "
";
panelOperatorDiv = panelOperatorDiv + "";
if(panelData.subquery)
{
if(!subQryEventNameDisplayed){
var eventNameDiv = "" + panelData.name + "
";
tdObj = tdObj + eventNameDiv + panelOperatorDiv + panelContdivObj;
subQryEventNameDisplayed = true;
}
else
tdObj = tdObj + panelOperatorDiv + panelContdivObj;
}
else
tdObj = tdObj + panelOperatorDiv + panelContdivObj;
});
});
}
if(elemToAppend)
elemToAppend = elemToAppend + tdObj + " ";
return elemToAppend;
};
this.getTemporalQueryEventRelations = function(eventsRelTable){
if(this.queryPanelObjForPrinting.subQryRelationStructure.length > 0 )
{
var Row = new Element('tr');
var Cell = new Element('td',{'width':'5px'});
var divInCell = new Element('div',{'class':'tabSpace'});
Row.insert(Cell.insert(divInCell));
Cell = new Element('td',{'class':'eventsRelHdr'}).update('Order of Events');
Row.insert(Cell);
var tempDiv = new Element('div');
tempDiv.insert(Row);
jQuery(eventsRelTable).append(jQuery(tempDiv).html());
}
this.queryPanelObjForPrinting.subQryRelationStructure.each(function(relation){
var Row = new Element('tr');
var Cell = new Element('td',{'width':'5px'});
var divInCell = new Element('div',{'class':'tabSpace'});
Row.insert(Cell.insert(divInCell));
Cell = new Element('td', {'class' : 'eventsRel'});
var mnSpan = new Element('span', {'class' : 'eventsRelSpan'});
var mainSpan = new Element('center');
var textFirst = relation.firstQryJoinCol + " " + relation.firstQryOp + " occurrence for " + relation.firstQryEvntNm;
var firstSpan = new Element('span').update(textFirst);
mainSpan.insert(firstSpan).insert(new Element('br'));
var relationOperator = "";
switch(relation.operator)
{
case "LESS":
relationOperator = "Occurs Before";
break;
case "LESSEQUAL":
relationOperator = "Occurs On Or Before";
break;
case "EQUAL":
relationOperator = "Occurs Simultaneously With";
break;
case "GREATER":
relationOperator = "Occurs After";
break;
case "GREATEREQUAL":
relationOperator = "Occurs On or After";
break;
default:
break;
}
var textOperator = relationOperator.length>0 ? relationOperator : relation.operator;
var opSpan = new Element('span').update(textOperator);
mainSpan.insert(opSpan).insert(new Element('br'));
var textSecond = relation.secondQryJoinCol + " of " + relation.secondQryOp + " occurrence of " + relation.secondQryEvntNm;
var secondSpan = new Element('span').update(textSecond);
mainSpan.insert(secondSpan).insert(new Element('br'));
var firstSpan = true;
relation.spans.each(function(thisSpan){
switch(thisSpan.oprator)
{
case "GREATER" :
thisSpan.oprator = ">";
break;
case "GREATEREQUAL" :
thisSpan.oprator = ">=";
break;
case "EQUAL" :
thisSpan.oprator = "=";
break;
case "LESSEQUAL" :
thisSpan.oprator = "<=";
break;
case "LESS" :
thisSpan.oprator = "<";
break;
default:
break;
}
var text = "";
if(firstSpan)
{
text = " By " + thisSpan.oprator + " " + thisSpan.value + " " + thisSpan.units;
firstSpan = false;
}
else
{
text = " And " + thisSpan.oprator + " " + thisSpan.value + " " + thisSpan.units;
}
mainSpan.insert((new Element('span')).update(text)).insert(new Element('br'));
});
mnSpan.insert(mainSpan);
Row.insert((Cell).insert(mnSpan));
var tempDiv = new Element('div');
tempDiv.insert(Row);
jQuery(eventsRelTable).append(jQuery(tempDiv).html());
});
};
this.createResultsForPrint = function(dataArray,child){
var _2DResultsArray = i2b2.CRC.view.downloadData.getFormattedResults(dataArray);
if(_2DResultsArray && _2DResultsArray.length>0)
{
//Populate the tables
var clonedArray = _2DResultsArray.slice(0);
var allSites = $H();
var allSitesRow = clonedArray[0];
if(allSitesRow && allSitesRow.length>0)
{
for(var x = 1; x < allSitesRow.length ; x++)
{
var siteName = allSitesRow[x];
allSites.set(siteName,x); //SiteName,Index pairs
}
}
clonedArray = _2DResultsArray.slice(0);
var allUniqueBreakDowns = $H();
for(var i = 0 ; i < clonedArray.length ; i++)
{
var brkDownEntry = clonedArray[i][0];
if(brkDownEntry.length>0)
{
var tmpBrkDown = brkDownEntry.split("|");
if(tmpBrkDown && tmpBrkDown.length>1)
{
thisBrkDown = tmpBrkDown[0];
allUniqueBreakDowns.set(thisBrkDown,thisBrkDown);
}
}
}
//Take care of the patient number element separately
//Create the data array for table creation
clonedArray = _2DResultsArray.slice(0);
var dataArray = new Array();
var thisRow = clonedArray[0].slice(0);
thisRow[0] = "";
dataArray.push(thisRow);
thisRow = clonedArray[1].slice(0);
thisRow[0] = "Total Patients Count";
dataArray.push(thisRow);
if(dataArray && dataArray.length>0)
{
jQuery('#tablesContainer').append(" ");
jQuery('#tablesContainer').append("Total Number of Cases
" );
var sortArray = i2b2.CRC.ctrlr.QT.createShorterDataArray(dataArray);
if(sortArray && sortArray.length>0)
i2b2.CRC.ctrlr.QT.createTable(sortArray);
else
i2b2.CRC.ctrlr.QT.createTable(dataArray);
}
//Create tables for the breakdowns
allUniqueBreakDowns.each(function(brkDown)
{
clonedArray = _2DResultsArray.slice(0);
dataArray = new Array();
var thisRow = _2DResultsArray[0].slice(0);
thisRow[0] = "";
dataArray.push(thisRow);
var category = "";
for(var i = 1; i=0)
{
thisRow = clonedArray[i];
var tmpBrkDown = thisbrkDown.split("|");
if(tmpBrkDown && tmpBrkDown.length>1)
{
category = tmpBrkDown[0];
thisRow[0][0] = tmpBrkDown[1];
}
dataArray.push(thisRow);
}
}
if(dataArray && dataArray.length>0)
{
jQuery('#tablesContainer').append(" ");
jQuery('#tablesContainer').append("Total Unique Patients by " + category +"
" );
var sortArray = i2b2.CRC.ctrlr.QT.createShorterDataArray(dataArray);
if(sortArray && sortArray.length>0)
i2b2.CRC.ctrlr.QT.createTable(sortArray);
else
i2b2.CRC.ctrlr.QT.createTable(dataArray);
}
});
//Populate charts
jQuery('#tablesContainer').append(" ");
i2b2.CRC.view.graphs.createGraphs("graphsContainer", i2b2.CRC.ctrlr.currentQueryResults.resultString, true);
}
};
this.createShorterDataArray = function(dataArray)
{
try{
if(dataArray.length>0)
{
var siteRow = dataArray[0];
var totalNumOfSites = siteRow.length - 1;
if(totalNumOfSites > 10)
{
var finalArr = [];
var loopNum = 0;
var totalLoopsRequired = Math.floor(totalNumOfSites/10);
if(totalNumOfSites%10 >0)
totalLoopsRequired++;
while(loopNum";
for(var j = 0 ; j < thisRow.length ; j++)
{
content += "" + thisRow[j] + " ";
}
content += "";
}
else
{
content += "";
var thisRowIsHeader = false;
for(var j = 0 ; j < thisRow.length ; j++)
{
var thisRowColItem = thisRow[j];
if(thisRowColItem)
{
if(i2b2.h.isMinObfuscation(thisRowColItem.trim())){
thisRowColItem = 0;
}
if(i==0 && j==0)
content += " ";
else{
if(thisRowColItem==' '){
if(j == 0)
thisRowIsHeader = true;
if(thisRowIsHeader)
content += " ";
else
content += " ";
}
else{
if(thisRowIsHeader)
content += "" + thisRowColItem + " ";
else
content += "" + thisRowColItem + " ";
}
}
}
else{
if(j == 0)
thisRowIsHeader = true;
if(thisRowIsHeader)
content += " ";
else
content += " ";
}
}
content += " ";
}
}
content += "";
jQuery('#tablesContainer').append(content);
}
this.getQueryUserFullName = function(query_user_id)
{
var returnValue = query_user_id;
if(query_user_id)
{
try {
var response = i2b2.PM.ajax.getUser("CRC:PrintQueryNew", {user_id:query_user_id});
response.parse();
var data = response.model[0];
if (data.full_name) { returnValue = data.full_name;}
}
catch (e) {}
}
return returnValue;
};
function getSelectedValueFromOptions(options)
{
var value = null;
for(k = 0; k < options.length; k++) {
var thisOption = options[k];
if(thisOption.selected == true)
{
value = options[k].innerHTML;
break;
}
}
return value;
};
this.PrintElem = function(divIdToPrint)
{
// Popup(jQuery("#" + divToPrint).html());
if(jQuery("#" + divIdToPrint)){
var contents = jQuery("#" + divIdToPrint).html();
var frame1 = jQuery("");
frame1[0].name = "frame1";
frame1.css({ "position": "absolute", "top": "-1000000px" });
jQuery("body").append(frame1);
var frameDoc = frame1[0].contentWindow ? frame1[0].contentWindow : frame1[0].contentDocument.document ? frame1[0].contentDocument.document : frame1[0].contentDocument;
frameDoc.document.open();
//Create a new HTML document.
frameDoc.document.write("Query Report ");
//Append the external CSS file.
frameDoc.document.write(" ");
frameDoc.document.write(' ');
frameDoc.document.write("");
//Append the DIV contents.
frameDoc.document.write(contents);
frameDoc.document.write('');
frameDoc.document.close();
setTimeout(function () {
window.frames["frame1"].focus();
window.frames["frame1"].print();
frame1.remove();
}, 500);
}
else
alert("Query report can't be printed!");
};
/**********************
* End Query Report BG
**********************/
}
console.timeEnd('execute time');
console.groupEnd();