cql-execution
Version:
An execution framework for the Clinical Quality Language (CQL)
61 lines (51 loc) • 1.5 kB
JavaScript
// Generated by CoffeeScript 1.9.3
(function() {
var ThreeValuedLogic,
slice = [].slice,
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
module.exports.ThreeValuedLogic = ThreeValuedLogic = (function() {
function ThreeValuedLogic() {}
ThreeValuedLogic.and = function() {
var val;
val = 1 <= arguments.length ? slice.call(arguments, 0) : [];
if (indexOf.call(val, false) >= 0) {
return false;
} else if (indexOf.call(val, null) >= 0) {
return null;
} else {
return true;
}
};
ThreeValuedLogic.or = function() {
var val;
val = 1 <= arguments.length ? slice.call(arguments, 0) : [];
if (indexOf.call(val, true) >= 0) {
return true;
} else if (indexOf.call(val, null) >= 0) {
return null;
} else {
return false;
}
};
ThreeValuedLogic.xor = function() {
var val;
val = 1 <= arguments.length ? slice.call(arguments, 0) : [];
if (indexOf.call(val, null) >= 0) {
return null;
} else {
return val.reduce(function(a, b) {
return (!a ^ !b) === 1;
});
}
};
ThreeValuedLogic.not = function(val) {
if (val != null) {
return !val;
} else {
return null;
}
};
return ThreeValuedLogic;
})();
}).call(this);
//# sourceMappingURL=logic.js.map