Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* @projectDescription (GUI-only) Controller for CRC Query Tool's Lab Values constraint dialog box.
* @inherits i2b2.CRC.view
* @namespace i2b2.CRC.view.modalLabValues
* @author Nick Benik, Griffin Weber MD PhD, Shawn Murphy
* @version 1.6
* ----------------------------------------------------------------------------------------
* updated 9-15-08: 1.3 RC4 launch [Nick Benik]
* updated 7-28-12 1.6 [Shawn Murphy]
*/
// Known Bugs:
// double value to right of concept name when populate previous query
i2b2.CRC.view.modalLabValues = {
formdata: {},
cfgTestInfo: {
name: 'RND-TEST',
flagType: 'NA',
flags: [{name:'Abnormal', value:'A'},{name:'Normal', value:'@'}],
valueValidate: {
onlyPos: true,
onlyInt: true,
maxString: 0
},
valueType: 'PosFloat',
valueUnitsCurrent: 0, // index into Units[]
valueUnits: {},
rangeInfo: {},
enumInfo: {}
},
// snm0
//===================================================================================
// Gets called when a click occurs on the value bar graphic and the operator and
// values are set.
//
updateValue: function(e) {
// The method is to embed the reference to the value label of the bar
// in the anchor of the href and then get it and extract the value and
// place it in the select drop down and text box.
try {
var targ; // href of bar item that was clicked
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
// make href into a string and get the anchor of it
var sTarg = targ.toString();
var iTargAnchor = sTarg.lastIndexOf("#");
if (iTargAnchor < 0) return; // no anchor
var sTargAnchor = sTarg.substring(iTargAnchor+1);
if (sTargAnchor.length <= 1) return; //no anchor
//alert(sTargAnchor);
var sTargNumber = $(sTargAnchor).innerHTML;
// after getting the bar label get the value and put it in the slots
if ((sTargAnchor == 'lblToxL') || (sTargAnchor == 'lblLofL') || (sTargAnchor == 'lblHofL')) {
$('mlvfrmOperator').selectedIndex=1;
//$('mlvfrmOperator').value='LE';
i2b2.CRC.view.modalLabValues.formdata.numericOperator = 'LE';
$('mlvfrmNumericValue').value = sTargNumber;
}
if ((sTargAnchor == 'lblToxH') || (sTargAnchor == 'lblLofH') || (sTargAnchor == 'lblHofH')) {
$('mlvfrmOperator').selectedIndex=5;
i2b2.CRC.view.modalLabValues.formdata.numericOperator = 'GE';
$('mlvfrmNumericValue').value = sTargNumber;
}
}
catch(eError) {
alert("Error: updateValue: " + eError.description);
}
},
// snm0
// ================================================================================================== //
show: function(panelIndex, queryPanelController, key, extData, isModifier) {
if (Object.isUndefined(i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup][panelIndex])) { return; }
var fd = i2b2.CRC.view.modalLabValues.formdata;
var dm = i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup][panelIndex];
// save info for callback
this.qpi = panelIndex;
this.cpc = queryPanelController;
i2b2.CRC.view.modalLabValues.isModifier = isModifier;
i2b2.CRC.view.modalLabValues.itemNumber = extData.itemNumber;
//this.isModifier = isMod;
this.key = key;
this.i2b2Data = extData;
// Create SimpleDialog control
if (!this.sd) {
this.sd = new YAHOO.widget.SimpleDialog("itemLabRange", {
zindex: 700,
width: "600px",
fixedcenter: true,
constraintoviewport: true,
modal: true,
buttons: [{
text: "OK",
isDefault: true,
handler:
(function() {
var closure_qpi = i2b2.CRC.view.modalLabValues.qpi;
var closure_cpc = i2b2.CRC.view.modalLabValues.cpc;
var closure_key = i2b2.CRC.view.modalLabValues.key;
var closure_number = i2b2.CRC.view.modalLabValues.itemNumber;
// submit value(s)
if (this.submit()) {
var pd = i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup][closure_qpi];
// find the correct item in the panel
for (var i=0; i 0) {
this.cfgByMetadata(mdnodes[0]);
} else {
// no LabValue configuration
return false;
}
if (i2b2.CRC.view.modalLabValues.isModifier) {
if (!this.i2b2Data.ModValues && this.i2b2Data.origData.ModValues) {
// copy server delivered Lab Values to our scope
this.i2b2Data.ModValues = this.i2b2Data.origData.ModValues;
}
var tmpLab = this.i2b2Data.ModValues;
} else {
if (!this.i2b2Data.LabValues && this.i2b2Data.origData.LabValues) {
// copy server delivered Lab Values to our scope
this.i2b2Data.LabValues = this.i2b2Data.origData.LabValues;
}
var tmpLab = this.i2b2Data.LabValues;
}
// load any data already attached to the node
if (tmpLab) {
switch(tmpLab.MatchBy) {
case "FLAG":
fd.selectedType = "FLAG";
$("mlvfrmTypeFLAG").checked = true;
var tn = $("mlvfrmFlagValue");
for (var i=0; i -1) {
tn.options[i].selected = true;
} else {
tn.options[i].selected = false;
}
}
}
break;
}
} else {
// snm0
// set the form to show value selection if available
$("mlvfrmTypeVALUE").checked = true;
fd.selectedType = 'VALUE';
// snm0
}
// show the form
this.sd.show();
this.Redraw();
},
// ================================================================================================== //
changeHandler: function(e) {
var dm = i2b2.CRC.view.modalLabValues.cfgTestInfo;
var fd = i2b2.CRC.view.modalLabValues.formdata;
if (fd.ignoreChanges) { return true; }
// get the DOM node that fired the event
var tn;
if (e.target) {
tn = e.target;
} else {
if (e.srcElement) tn = e.srcElement;
if (tn.nodeType == 3) tn = tn.parentNode;
}
// process
switch(tn.id) {
case "mlvfrmTypeNONE":
fd.selectedType = 'NONE';
break;
case "mlvfrmTypeFLAG":
fd.selectedType = 'FLAG';
break;
case "mlvfrmTypeVALUE":
fd.selectedType = 'VALUE';
break;
case "mlvfrmFlagValue":
fd.flagValue = tn.options[tn.selectedIndex].value;
break;
case "mlvfrmOperator":
var i1 = $('mlvfrmUnits');
fd.numericOperator = tn.options[tn.selectedIndex].value;
fd.valueUnitsCurrent = i1.selectedIndex;
break;
case "mlvfrmStringOperator":
fd.stringOperator = tn.options[tn.selectedIndex].value;
break;
case "mlvfrmDbOperator":
fd.dbOperator = tn.checked;
break;
case "mlvfrmEnumValue":
fd.enumIndex = tn.selectedIndex;
fd.enumValue = tn.options[fd.enumIndex].innerHTML;
break;
case "mlvfrmUnits":
var u1 = $('mlvfrmUnits');
// convert entered values
var cvD = dm.valueUnits[fd.unitIndex].multFactor;
var cvM = dm.valueUnits[u1.selectedIndex].multFactor;
var lst = [$('mlvfrmNumericValue'), $('mlvfrmNumericValueLow'), $('mlvfrmNumericValueHigh')];
/*
for (var i=0;i 0) {
dm.valueValidate.maxString = t;
} else {
dm.valueValidate.maxString = false;
}
break;
case "largestring":
dm.valueType = "LRGSTR";
dm.valueValidate.onlyPos = false;
dm.valueValidate.onlyInt = false;
// extract max string setting
try {
var t = refXML.getElementsByTagName('MaxStringLength')[0].firstChild.nodeValue;
t = parseInt(t);
} catch(e) {
var t = -1;
}
if (t > 0) {
dm.valueValidate.maxString = t;
} else {
dm.valueValidate.maxString = false;
}
break;
case "Enum":
dm.valueType = "ENUM";
dm.valueValidate.onlyPos = false;
dm.valueValidate.onlyInt = false;
dm.valueValidate.maxString = false;
// extract the enum data
var t1 = i2b2.h.XPath(refXML,"descendant::EnumValues/Val");
//var t = i2b2.h.XPath(refXML,"descendant::EnumValues/Val/text()");
//var t2 = [];
var sn = $('mlvfrmEnumValue');
// clear the drop down
while( sn.hasChildNodes() ) { sn.removeChild( sn.lastChild ); }
var t2 = new Array();
for (var i=0; i section
var t = i2b2.h.XPath(refXML,"descendant::CommentsDeterminingExclusion/Com/text()");
var t2 = [];
for (var i=0; i 0) {
for (var i=0;i -1 ) {
dm.enumInfo[i2] = null;
}
}
// clean up the array
dm.enumInfo = dm.enumInfo.compact();
}
}
// clear & populate the Enum dropdown
// populate values
var count = 0;
//for (var i in dm.enumInfo) {
/*for (var i in dm.enumInfo) {
//for (var i=0; i0) {
// d.excluded = true;
//}
// Equal Units
//if (i2b2.h.XPath(refXML,"descendant::UnitValues/descendant::ExcludingUnits[text()='"+t[i]+"']").length>0) {
// d.excluded = true;
//}
// does unit require conversion?
try {
d.multFactor = i2b2.h.XPath(refXML,"descendant::UnitValues/descendant::ConvertingUnits[Units/text()='"+t[i]+"']/MultiplyingFactor/text()")[0].nodeValue;
} catch(e) {
d.multFactor = 1;
}
tProcessing.set(t[i], d);
}
// get our master unit (the first NormalUnits encountered that is not disabled)
var t = i2b2.h.XPath(refXML,"descendant::UnitValues/descendant::NormalUnits/text()");
var t2 = [];
for (var i=0; i parseFloat(iv2))) {
errorMsg.push(" - The low value is larger than the high value\n");
}
//snm0
// CONVERT VALUES TO MASTER UNITS
if (fd.unitIndex == -1) { // no units were in XML
tmpLabValue.UnitsCtrl = "";
break;
}
if ((dm.valueUnits[fd.unitIndex] == undefined) || (dm.valueUnits[fd.unitIndex] == "")) {
alert('The units for this value are blank.');
return false;
}
// snm0
if (dm.valueUnits[fd.unitIndex].excluded) {
alert('You cannot set a numerical value using the current Unit Of Measure.');
return false;
}
if (dm.valueUnits.find(function(o){ return ((o.masterUnit === true) && (o.excluded===true)); })) {
alert('You cannot set a numerical value because the master Unit Of Measure is declared as invalid.');
return false;
}
try {
var convtMult = dm.valueUnits[fd.unitIndex].multFactor;
if (tmpLabValue.ValueHigh) tmpLabValue.ValueHigh = (tmpLabValue.ValueHigh * convtMult);
if (tmpLabValue.ValueLow) tmpLabValue.ValueLow = (tmpLabValue.ValueLow * convtMult);
if (tmpLabValue.Value) tmpLabValue.Value = (tmpLabValue.Value * convtMult);
for (var i=0; i dm.valueValidate.maxString)) {
errorMsg.push(" - Input is over the "+dm.valueValidate.maxString+" character limit.\n");
} else if (sv.length == 0) {
errorMsg.push("The text for this value are blank.");
} else {
tmpLabValue.ValueString = $('mlvfrmStrValue').value;
}
break;
case "STR":
tmpLabValue.GeneralValueType = "STRING";
tmpLabValue.SpecificValueType = "STRING";
tmpLabValue.StringOp = fd.stringOperator;
var sv = $('mlvfrmStrValue').value;
if (dm.valueValidate.maxString && (sv.length > dm.valueValidate.maxString)) {
errorMsg.push(" - Input is over the "+dm.valueValidate.maxString+" character limit.\n");
} else if (sv.length == 0) {
errorMsg.push("The text for this value are blank.");
} else {
tmpLabValue.ValueString = $('mlvfrmStrValue').value;
}
break;
case "ENUM":
tmpLabValue.GeneralValueType = "ENUM";
tmpLabValue.SpecificValueType = "ENUM";
tmpLabValue.ValueEnum = [];
tmpLabValue.NameEnum = [];
var t = $('mlvfrmEnumValue').options;
for (var i=0; i