![JAR search and dependency download from the Maven repository](/logo.png)
webclient.js-i2b2.cells.ONT.ONT_sdx_CONCPT.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of i2b2-shrine Show documentation
Show all versions of i2b2-shrine Show documentation
Standalone service to to run the AKTIN broker and aggregator
together with an i2b2 query frontend.
The newest version!
/**
* @projectDescription Ontology Concept SDX data controller object.
* @inherits i2b2.sdx.TypeControllers
* @namespace i2b2.sdx.TypeControllers.CONCPT
* @author Nick Benik, Griffin Weber MD PhD
* @version 1.3
* ----------------------------------------------------------------------------------------
* updated 9-15-08: RC4 launch [Nick Benik]
*/
console.group('Load & Execute component file: ONT > SDX > CONCPT');
console.time('execute time');
i2b2.sdx.TypeControllers.CONCPT = {};
i2b2.sdx.TypeControllers.CONCPT.model = {};
//*********************************************************************************
//ENCAPSULATE DATA
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.getEncapsulateInfo = function() {
// this function returns the encapsulation head information
return {sdxType: 'CONCPT', sdxKeyName: 'key', sdxControlCell:'ONT', sdxDisplayNameKey: 'name'};
}
//*********************************************************************************
//GENERATE HTML (DEFAULT HANDLER)
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.RenderHTML= function(sdxData, options, targetDiv) {
// OPTIONS:
// title: string
// showchildren: true | false
// cssClass: string
// icon: [data object]
// root: (filename of img, appended to i2b2_root+cellDir + '/assets')
// rootExp: (filename of img, appended to i2b2_root+cellDir + '/assets')
// branch: (filename of img, appended to i2b2_root+cellDir + '/assets')
// branchExp: (filename of img, appended to i2b2_root+cellDir + '/assets')
// leaf: (filename of img, appended to i2b2_root+cellDir + '/assets')
// leafExp: (filename of img, appended to i2b2_root+cellDir + '/assets')
// dragdrop: string (function name)
// context: string
// click: string
// dblclick: string
if (Object.isUndefined(options)) { options = {}; }
var render = {html: retHtml, htmlID: id};
var conceptId = sdxData.name;
var id = "ONT_TID-" + i2b2.GUID();
// process drag drop controllers
if (!Object.isUndefined(options.dragdrop)) {
// NOTE TO SELF: should attachment of node dragdrop controller be handled by the SDX system as well?
// This would ensure removal of the onmouseover call in a cross-browser way
var sDD = ' onmouseover="' + options.dragdrop + '(\''+ targetDiv.id +'\',\'' + id + '\')" ';
} else {
var sDD = '';
}
// process allowing children to be viewed
var bCanExp = false;
if (sdxData.origData.hasChildren.substring(1,0) === "C"){
// render as category
icon = 'root';
sDD = '';
sIG = ' isGroup="Y"';
bCanExp = true;
} else if (sdxData.origData.hasChildren.substring(1,0) === "F") {
// render as possibly having children
icon = 'branch';
bCanExp = true;
//var sCanExpand = ' canExpand="Y"';
} else if (sdxData.origData.hasChildren.substring(1,0) === "O") {
// render as possibly having children
icon = 'root';
bCanExp = true;
//var sCanExpand = ' canExpand="Y"';
} else if (sdxData.origData.hasChildren.substring(1,0) === "D") {
// render as possibly having children
icon = 'branch';
bCanExp = true;
//var sCanExpand = ' canExpand="Y"';
} else {
// render as not having children
var icon = 'leaf';
bCanExp = false;
}
// user can override
if (Object.isBoolean(options.showchildren)) {
if (!options.showchildren) bCanExp = false;
}
if(sdxData.origData.hasOwnProperty('parent') && typeof sdxData.origData.parent !== "undefined"){ // WEBCLIENT-190
if (sdxData.origData.parent.hasChildren.substring(2,1) === "I" && sdxData.origData.isModifier){
sdxData.origData.hasChildren = sdxData.origData.hasChildren.replace("A","I");
}
}
if (sdxData.origData.hasChildren.substring(2,1) === "I")
{
bCanExp = true;
sDD = " style='color: #c0c0c0;' ";
}
else if (sdxData.origData.hasChildren.substring(2,1) === "H")
{
sDD += " style='color: #c00000;' ";
}
else if ((!Object.isUndefined(sdxData.origData.synonym_cd)) && (sdxData.origData.synonym_cd != 'N'))
{
sDD += " style='color: #0000ff;' ";
}
render.canExpand = bCanExp;
render.iconType = 'CONCPT_'+icon;
if (!Object.isUndefined(icon)) {
var icn = (eval('options.icon.'+icon));
if (!Object.isUndefined(icn)) { render.icon = i2b2.hive.cfg.urlFramework + 'cells/ONT/assets/'+ icn }
var icn = (eval('options.icon.'+icon+'Exp'));
if (!Object.isUndefined(icn)) { render.iconExp = i2b2.hive.cfg.urlFramework + 'cells/ONT/assets/'+ icn }
// in cases of one set icon, copy valid icon to the missing icon
if (Object.isUndefined(render.icon) && !Object.isUndefined(render.iconExp)) { sdxData.icon = render.iconExp; }
if (!Object.isUndefined(render.icon) && Object.isUndefined(render.iconExp)) { sdxData.iconExp = render.icon; }
}
// cleanup
if (Object.isUndefined(render.icon)) {
console.warn("[SDX RenderHTML] no '"+icon+"' icon has been set in the options passed");
console.dir(options);
render.icon = '';
render.iconExp = '';
}
// handle the event controllers
var sMainEvents = sDD;
var sImgEvents = sDD;
switch(icon) {
case "root":
if (options.click) {sMainEvents += ' onclick="'+ options.click +'" '; }
if (options.dblclick) {sMainEvents += ' ondblclick="'+ options.dblclick +'" '; }
if (options.context) {sMainEvents += ' oncontext="'+ options.context +'" '; } else {retHtml += ' oncontextmenu="return false" '; }
break;
case "branch":
if (options.click) { sMainEvents += ' onclick="'+ options.click +'" '; }
if (options.dblclick) { sMainEvents += ' ondblclick="'+ options.dblclick +'" '; }
if (options.context) { sMainEvents += ' oncontext="'+ options.context +'" '; } else {retHtml += ' oncontextmenu="return false" '; }
break;
default:
sMainEvents += ' oncontextmenu="return false" ';
}
//Added to provide tooltip information for concepts/terms
var v_tooltip = '';
try{
if (($('ONTNAVshowShortTooltips').checked) || ($('ONTFINDshowShortTooltips').checked) )
{
v_tooltip += 'title="'+ sdxData.origData.name;
} else
{
v_tooltip += 'title="'+ sdxData.origData.tooltip;
}
if ((($('ONTNAVshowCodeTooltips').checked) || ($('ONTFINDshowCodeTooltips').checked) )
&& !Object.isUndefined(sdxData.origData.basecode))
{
v_tooltip += " - " + sdxData.origData.basecode;
}
v_tooltip += '" ';
}
catch(e){
v_tooltip = '';
}
// **** Render the HTML ***
var retHtml = '';
retHtml += '';
render.html = retHtml;
render.htmlID = id;
return { renderData: render, origData: sdxData.origData, sdxInfo: sdxData.sdxInfo };
}
//*********************************************************************************
//HANDLE HOVER OVER TARGET ENTRY (DEFAULT HANDLER)
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.onHoverOver = function(e, id, ddProxy) {
var el = $(id);
if (el) { Element.addClassName(el,"ddCONCPTTarget"); }
}
//*********************************************************************************
//HANDLE HOVER OVER TARGET EXIT (DEFAULT HANDLER)
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.onHoverOut = function(e, id, ddProxy) {
var el = $(id);
if (el) { Element.removeClassName(el,"ddCONCPTTarget"); }
}
//*********************************************************************************
//ADD DATA TO TREENODE (DEFAULT HANDLER)
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.AppendTreeNode = function(yuiTree, yuiRootNode, sdxDataPack, callbackLoader) {
var myobj = { html: sdxDataPack.renderData.html, nodeid: sdxDataPack.renderData.htmlID}
var tmpNode = new YAHOO.widget.HTMLNode(myobj, yuiRootNode, false, true);
if (sdxDataPack.renderData.iconType != 'CONCPT_item' && !Object.isUndefined(callbackLoader)) {
// add the callback to load child nodes
sdxDataPack.sdxInfo.sdxLoadChildren = callbackLoader;
}
tmpNode.data.i2b2_SDX = sdxDataPack;
tmpNode.toggle = function() {
if (!this.tree.locked && ( this.hasChildren(true) ) ) {
var data = this.data.i2b2_SDX.renderData;
var img = this.getContentEl();
img = Element.select(img,'img')[0];
if (this.expanded) {
img.src = data.icon;
this.collapse();
} else {
img.src = data.iconExp;
this.expand();
}
}
};
if (sdxDataPack.renderData.iconType == 'CONCPT_leaf' || !sdxDataPack.renderData.canExpand) { tmpNode.dynamicLoadComplete = true; }
return tmpNode;
}
//*********************************************************************************
//GET CHILD RECORDS (DEFAULT HANDELER)
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.LoadChildrenFromTreeview = function(node, onCompleteCallback) {
if ((node.tree.id == 'ontSearchModifiersResults') || (!$('ONTNAVdisableModifiers').checked && node.tree.id == 'ontNavResults')) {
i2b2.sdx.TypeControllers.CONCPT.LoadModifiers(node, onCompleteCallback, true);
} else {
i2b2.sdx.TypeControllers.CONCPT.LoadConcepts(node, onCompleteCallback, false);
}
}
i2b2.sdx.TypeControllers.CONCPT.LoadConcepts = function(node, onCompleteCallback, modifier) {
var scopedCallback = new i2b2_scopedCallback();
scopedCallback.scope = node.data.i2b2_SDX;
scopedCallback.callback = function(results){
var cl_node = node;
var cl_key = key;
var cl_onCompleteCB = onCompleteCallback;
var cl_options = options;
// THIS function is used to process the AJAX results of the getChild call
// results data object contains the following attributes:
// refXML: xmlDomObject <--- for data processing
// msgRequest: xml (string)
// msgResponse: xml (string)
// error: boolean
// errorStatus: string [only with error=true]
// errorMsg: string [only with error=true]
// TODO: REFACTOR THIS! (Roll into COMM message sniffer?)
try {
i2b2.ONT.view[i2b2.ONT.view.main.currentTab].queryRequest = results.msgRequest;
i2b2.ONT.view[i2b2.ONT.view.main.currentTab].queryResponse = results.msgResponse;
} catch(e) {}
// handle any errors in the message
if (results.error) {
// process the specific error
switch (node.tree.id) {
case "ontNavResults":
var t = i2b2.ONT.view.nav.params;
break;
case "ontSearchCodesResults":
var t = i2b2.ONT.view.find.params;
break;
case "ontSearchModifiersResults":
var t = i2b2.ONT.view.find.params;
break;
case "ontSearchNamesResults":
var t = i2b2.ONT.view.find.params;
break;
default:
var t = i2b2.ONT.params;
}
var errorCode = results.refXML.getElementsByTagName('status')[0].firstChild.nodeValue;
var eaction = false;
if (errorCode == "MAX_EXCEEDED") {
var eaction = confirm("The number of terms that were returned exceeds the maximum number currently set as " + t.max + ". Would you like to increase it to " + (t.max * 5) + " so you can try again?");
}
else {
alert("The following error has occurred:\n" + errorCode);
}
// re-fire the call with no max limit if the user requested so
if (eaction) {
// TODO: Implement param routing from node's container
//var mod_options = Object.clone(cl_options);
//delete mod_options.ont_max_records;
//i2b2.ONT.ajax.GetChildConcepts("ONT:SDX:Concept", mod_options, scopedCallback );
// return true;
t.max = t.max * 5;
}
// ROLLBACK the tree changes
cl_onCompleteCB();
// reset dynamic load state for the node (total hack of YUI Treeview)
node.collapse();
node.dynamicLoadComplete = false;
node.expanded = false;
node.childrenRendered = false;
node._dynLoad = true;
// uber-elite code (fix the style settings)
var tc = node.getToggleEl().className;
tc = tc.substring(0, tc.length - 1) + 'p';
node.getToggleEl().className = tc;
// fix the icon image
var img = node.getContentEl();
img = Element.select(img, 'img')[0];
img.src = node.data.i2b2_SDX.renderData.icon;
node.tree.removeChildren(node); // WEBCLIENT-189
return false;
}
if (modifier) {
var c = results.refXML.getElementsByTagName('modifier');
} else {
var c = results.refXML.getElementsByTagName('concept');
}
for(var i=0; i<1*c.length; i++) {
/*
var o = new Object;
o.xmlOrig = c[i];
o.parent = this.origData;
if (modifier) {
o.isModifier = true;
o.applied_path = i2b2.h.getXNodeVal(c[i],'applied_path');
} else {
o.isModifier = false;
}
o.name = i2b2.h.getXNodeVal(c[i],'name');
//o.hasChildren = i2b2.h.getXNodeVal(c[i],'visualattributes').substring(0,2);
o.hasChildren = YAHOO.lang.trim(i2b2.h.getXNodeVal(c[i],'visualattributes').substring(0,3));
o.level = i2b2.h.getXNodeVal(c[i],'level');
o.key = i2b2.h.getXNodeVal(c[i],'key');
if (cl_options.ont_short_tooltip) {
o.tooltip = o.name;
} else {
o.tooltip = i2b2.h.getXNodeVal(c[i],'tooltip');
}
o.icd9 = '';
o.table_name = i2b2.h.getXNodeVal(c[i],'tablename');
o.column_name = i2b2.h.getXNodeVal(c[i],'columnname');
o.operator = i2b2.h.getXNodeVal(c[i],'operator');
o.total_num = i2b2.h.getXNodeVal(c[i],'totalnum');
o.dim_code = i2b2.h.getXNodeVal(c[i],'dimcode');
o.basecode = i2b2.h.getXNodeVal(c[i],'basecode');
if (cl_options.ont_show_concept_code && o.basecode != undefined) {
o.tooltip += "(" + o.basecode + ")";
}
// append the data node
var sdxDataNode = i2b2.sdx.Master.EncapsulateData('CONCPT',o);
*/
var sdxDataNode = i2b2.sdx.TypeControllers.CONCPT.MakeObject(c[i], modifier, cl_options, this.origData);
if (modifier) {
var renderOptions = {
title: i2b2.h.getXNodeVal(c[i],'name'),
dragdrop: "i2b2.sdx.TypeControllers.CONCPT.AttachDrag2Data",
dblclick: "i2b2.ONT.view.nav.ToggleNode(this,'"+cl_node.tree.id+"')",
icon: {
root: "sdx_ONT_MODIFIER_root.gif",
rootExp: "sdx_ONT_MODIFIER_root-exp.gif",
branch: "sdx_ONT_MODIFIER_branch.gif",
branchExp: "sdx_ONT_MODIFIER_branch-exp.gif",
leaf: "sdx_ONT_MODIFIER_leaf.gif"
}
};
} else {
var renderOptions = {
title: i2b2.h.getXNodeVal(c[i],'name'),
dragdrop: "i2b2.sdx.TypeControllers.CONCPT.AttachDrag2Data",
dblclick: "i2b2.ONT.view.nav.ToggleNode(this,'"+cl_node.tree.id+"')",
icon: {
root: "sdx_ONT_CONCPT_root.gif",
rootExp: "sdx_ONT_CONCPT_root-exp.gif",
branch: "sdx_ONT_CONCPT_branch.gif",
branchExp: "sdx_ONT_CONCPT_branch-exp.gif",
leaf: "sdx_ONT_CONCPT_leaf.gif"
}
};
}
var sdxRenderData = i2b2.sdx.Master.RenderHTML(cl_node.tree.id, sdxDataNode, renderOptions);
i2b2.sdx.Master.AppendTreeNode(cl_node.tree, cl_node, sdxRenderData);
}
// handle the YUI treeview
cl_onCompleteCB();
}
var key = node.data.i2b2_SDX.sdxInfo.sdxKeyValue;
// TODO: Implement param routing from node's container
var options = {};
switch (node.tree.id) {
case "ontNavResults":
var t = i2b2.ONT.view.nav.params;
break;
case "ontSearchCodesResults":
var t = i2b2.ONT.view.find.params;
break;
case "ontSearchModifiersResults":
var t = i2b2.ONT.view.find.params;
break;
case "ontSearchNamesResults":
var t = i2b2.ONT.view.find.params;
break;
default:
var t = i2b2.ONT.params;
}
options.ont_hidden_records = t.hiddens;
options.ont_max_records = "max='"+t.max+"' ";
options.ont_synonym_records = t.synonyms;
options.ont_patient_count = t.patientCount;
options.ont_short_tooltip = t.shortTooltip;
options.ont_show_concept_code = t.showConceptCode;
options.concept_key_value = key;
if (t.modifiers == undefined || t.modifiers == false)
{
options.version = i2b2.ClientVersion;
} else {
options.version = "1.5";
}
i2b2.ONT.ajax.GetChildConcepts("ONT:SDX:Concept", options, scopedCallback );
}
i2b2.sdx.TypeControllers.CONCPT.MakeObject = function(c, modifier, cl_options, origData, objectType) {
var o = new Object;
o.xmlOrig = c;
o.parent = origData;
if (modifier) {
o.isModifier = true;
o.applied_path = i2b2.h.getXNodeVal(c,'applied_path');
} else {
o.isModifier = false;
}
o.name = i2b2.h.getXNodeVal(c,'name');
if (objectType != undefined && objectType == "QM") {
o.id = i2b2.h.getXNodeVal(c,'query_master_id');
o.title = "(PrevQuery)" + o.name;
} else if (objectType != undefined && objectType == "PR") {
o.title = "PATIENT:HIVE:" + origData.patient_id;
o.patient_id = origData.patient_id;
} else if (objectType != undefined && objectType == "WRKF") {
o.title = origData.annotation;
o.folder_id = origData.key;
} else if (objectType != undefined && (objectType == "PRS" || objectType == "ENS")) {
o.result_instance_id = i2b2.h.getXNodeVal(c,'result_instance_id');
o.title = i2b2.h.getXNodeVal(c,'description');
}
//o.hasChildren = i2b2.h.getXNodeVal(c[i],'visualattributes').substring(0,2);
if (i2b2.h.getXNodeVal(c,'visualattributes') != undefined) {
o.hasChildren = YAHOO.lang.trim(i2b2.h.getXNodeVal(c,'visualattributes').substring(0,3));
}
o.level = i2b2.h.getXNodeVal(c,'level');
o.key = i2b2.h.getXNodeVal(c,'key');
if (cl_options != undefined && cl_options.ont_short_tooltip) {
o.tooltip = o.name;
} else {
o.tooltip = i2b2.h.getXNodeVal(c,'tooltip');
}
o.icd9 = '';
o.table_name = i2b2.h.getXNodeVal(c,'tablename');
o.column_name = i2b2.h.getXNodeVal(c,'columnname');
o.operator = i2b2.h.getXNodeVal(c,'operator');
o.total_num = i2b2.h.getXNodeVal(c,'totalnum');
o.synonym_cd = i2b2.h.getXNodeVal(c,'synonym_cd');
o.dim_code = i2b2.h.getXNodeVal(c,'dimcode');
o.basecode = i2b2.h.getXNodeVal(c,'basecode');
if (cl_options != undefined && cl_options.ont_show_concept_code && o.basecode != undefined) {
o.tooltip += "(" + o.basecode + ")";
}
// append the data node
if (objectType != undefined && (objectType == "PR" || objectType == "QM" || objectType == "PRS" || objectType == "ENS" || objectType == "WRKF")) {
return (i2b2.sdx.Master.EncapsulateData(objectType,o));
} else {
return (i2b2.sdx.Master.EncapsulateData('CONCPT',o));
}
}
i2b2.sdx.TypeControllers.CONCPT.LoadModifiers = function(node, onCompleteCallback, modifier) {
var scopedCallback = new i2b2_scopedCallback();
scopedCallback.scope = node.data.i2b2_SDX;
scopedCallback.callback = function(results){
var cl_node = node;
var cl_key = key;
var cl_onCompleteCB = onCompleteCallback;
var cl_options = options;
// THIS function is used to process the AJAX results of the getChild call
// results data object contains the following attributes:
// refXML: xmlDomObject <--- for data processing
// msgRequest: xml (string)
// msgResponse: xml (string)
// error: boolean
// errorStatus: string [only with error=true]
// errorMsg: string [only with error=true]
// TODO: REFACTOR THIS! (Roll into COMM message sniffer?)
try {
i2b2.ONT.view[i2b2.ONT.view.main.currentTab].queryRequest = results.msgRequest;
i2b2.ONT.view[i2b2.ONT.view.main.currentTab].queryResponse = results.msgResponse;
} catch(e) {}
// handle any errors in the message
if (results.error) {
// process the specific error
// ROLLBACK the tree changes
cl_onCompleteCB();
// reset dynamic load state for the node (total hack of YUI Treeview)
node.collapse();
node.dynamicLoadComplete = false;
node.expanded = false;
node.childrenRendered = false;
node._dynLoad = true;
// uber-elite code (fix the style settings)
var tc = node.getToggleEl().className;
tc = tc.substring(0, tc.length - 1) + 'p';
node.getToggleEl().className = tc;
// fix the icon image
var img = node.getContentEl();
img = Element.select(img, 'img')[0];
img.src = node.data.i2b2_SDX.renderData.icon;
i2b2.sdx.TypeControllers.CONCPT.LoadConcepts(node, onCompleteCallback, false);
return false;
}
var c = results.refXML.getElementsByTagName('modifier');
for(var i=0; i<1*c.length; i++) {
var sdxDataNode = i2b2.sdx.TypeControllers.CONCPT.MakeObject(c[i], modifier, cl_options, this.origData);
if (modifier) {
var renderOptions = {
title: i2b2.h.getXNodeVal(c[i],'name'),
dragdrop: "i2b2.sdx.TypeControllers.CONCPT.AttachDrag2Data",
dblclick: "i2b2.ONT.view.nav.ToggleNode(this,'"+cl_node.tree.id+"')",
icon: {
root: "sdx_ONT_MODIFIER_root.gif",
rootExp: "sdx_ONT_MODIFIER_root-exp.gif",
branch: "sdx_ONT_MODIFIER_branch.gif",
branchExp: "sdx_ONT_MODIFIER_branch-exp.gif",
leaf: "sdx_ONT_MODIFIER_leaf.gif"
}
};
} else {
var renderOptions = {
title: i2b2.h.getXNodeVal(c[i],'name'),
dragdrop: "i2b2.sdx.TypeControllers.CONCPT.AttachDrag2Data",
dblclick: "i2b2.ONT.view.nav.ToggleNode(this,'"+cl_node.tree.id+"')",
icon: {
root: "sdx_ONT_CONCPT_root.gif",
rootExp: "sdx_ONT_CONCPT_root-exp.gif",
branch: "sdx_ONT_CONCPT_branch.gif",
branchExp: "sdx_ONT_CONCPT_branch-exp.gif",
leaf: "sdx_ONT_CONCPT_leaf.gif"
}
};
}
var sdxRenderData = i2b2.sdx.Master.RenderHTML(cl_node.tree.id, sdxDataNode, renderOptions);
i2b2.sdx.Master.AppendTreeNode(cl_node.tree, cl_node, sdxRenderData);
}
// handle the YUI treeview
//mm 10-7 cl_onCompleteCB();
if ((node.data.i2b2_SDX.origData.hasChildren != "DA") && (node.data.i2b2_SDX.origData.hasChildren != "OAE") &&
(node.data.i2b2_SDX.origData.hasChildren != "DAE") && (node.data.i2b2_SDX.origData.hasChildren != "OA") ){
i2b2.sdx.TypeControllers.CONCPT.LoadConcepts(node, onCompleteCallback, false);
} else {
cl_onCompleteCB();
}
}
var key = node.data.i2b2_SDX.sdxInfo.sdxKeyValue;
// TODO: Implement param routing from node's container
var options = {};
switch (node.tree.id) {
case "ontNavResults":
var t = i2b2.ONT.view.nav.params;
break;
case "ontSearchModifiersResults":
var t = i2b2.ONT.view.find.params;
break;
case "ontSearchCodesResults":
var t = i2b2.ONT.view.find.params;
break;
case "ontSearchNamesResults":
// case "ontSearchCodesResults", "ontSearchNamesResults", "ontSearchModifiersResults":
var t = i2b2.ONT.view.find.params;
break;
default:
var t = i2b2.ONT.params;
}
options.ont_hidden_records = t.hiddens;
options.ont_max_records = "max='"+t.max+"' ";
options.ont_synonym_records = t.synonyms;
options.ont_patient_count = t.patientCount;
options.ont_short_tooltip = t.shortTooltip;
options.ont_show_concept_code = t.showConceptCode;
options.concept_key_value = key;
if ((node.data.i2b2_SDX.origData.hasChildren == "DA") ||
(node.data.i2b2_SDX.origData.hasChildren == "DAE") ||
(node.data.i2b2_SDX.origData.hasChildren == "OA") ||
(node.data.i2b2_SDX.origData.hasChildren == "OAE")
){
options.modifier_key_value = node.data.i2b2_SDX.origData.key;
options.modifier_applied_path = node.data.i2b2_SDX.origData.applied_path;
var realdata = node.data.i2b2_SDX.origData;
while ((realdata.hasChildren != "FA") && (realdata.hasChildren != "CA")
&& (realdata.hasChildren != "FAE") && (realdata.hasChildren != "CAE")
) {
realdata = realdata.parent;
}
options.modifier_applied_concept = realdata.key;//node.data.i2b2_SDX.origData.parent.key;
i2b2.ONT.ajax.GetChildModifiers("ONT:SDX:Concept", options, scopedCallback );
} else {
i2b2.ONT.ajax.GetModifiers("ONT:SDX:Concept", options, scopedCallback );
}
}
//*********************************************************************************
//ATTACH DRAG TO DATA (DEFAULT HANDLER)
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.AttachDrag2Data = function(divParentID, divDataID){
if (Object.isUndefined($(divDataID))) { return false; }
// get the i2b2 data from the yuiTree node
var tvTree = YAHOO.widget.TreeView.getTree(divParentID);
var tvNode = tvTree.getNodeByProperty('nodeid', divDataID);
if (!Object.isUndefined(tvNode.DDProxy)) { return true; }
// attach DD
var t = new i2b2.sdx.TypeControllers.CONCPT.DragDrop(divDataID)
t.yuiTree = tvTree;
t.yuiTreeNode = tvNode;
tvNode.DDProxy = t;
// clear the mouseover attachment function
var tdn = $(divDataID);
if (!Object.isUndefined(tdn.onmouseover)) {
try {
delete tdn.onmouseover;
} catch(e) {
tdn.onmouseover;
}
}
if (!Object.isUndefined(tdn.attributes)) {
for (var i=0;i maxX) {posX = maxX;}
if (posX < 6) {posX = 6;}
if (posY > maxY) {posY = maxY;}
if (posY < 6) {posY = 6;}
YAHOO.util.Dom.setStyle(el, "left", posX + "px");
YAHOO.util.Dom.setStyle(el, "top", posY + "px");
}
this.cachePosition(oCoord.x, oCoord.y);
this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);
};
i2b2.sdx.TypeControllers.CONCPT.DragDrop.prototype.onDragOver = function(e, id) {
// fire the onHoverOver (use SDX so targets can override default event handler)
i2b2.sdx.Master.onHoverOver('CONCPT', e, id, this);
};
i2b2.sdx.TypeControllers.CONCPT.DragDrop.prototype.onDragOut = function(e, id) {
// fire the onHoverOut handler (use SDX so targets can override default event handlers)
i2b2.sdx.Master.onHoverOut('CONCPT', e, id, this);
};
i2b2.sdx.TypeControllers.CONCPT.DragDrop.prototype.onDragDrop = function(e, id) {
i2b2.sdx.Master.onHoverOut('CONCPT', e, id, this);
// retreive the concept data from the dragged element
draggedData = this.yuiTreeNode.data.i2b2_SDX;
// exit if we are a root node
if ((draggedData.origData.hasChildren=="CA") || (draggedData.origData.hasChildren=="OA") || (draggedData.origData.hasChildren=="OAE")) { return false; }
i2b2.sdx.Master.ProcessDrop(draggedData, id);
};
//*********************************************************************************
// DROP HANDLER
//!!!! DO NOT EDIT - ATTACH YOUR OWN CUSTOM ROUTINE USING
//!!!! THE i2b2.sdx.Master.setHandlerCustom FUNCTION
//*********************************************************************************
i2b2.sdx.TypeControllers.CONCPT.DropHandler = function(sdxData) {
alert('[Concept DROPPED] You need to create your own custom drop event handler.');
}
console.timeEnd('execute time');
console.groupEnd();
© 2015 - 2025 Weber Informatics LLC | Privacy Policy