cql-execution
Version:
An execution framework for the Clinical Quality Language (CQL)
485 lines (386 loc) • 12.9 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var After, Contains, DT, DateTime, Equal, Equivalent, Except, Exception, Expression, IVL, In, IncludedIn, Includes, Indexer, Intersect, LIST, Length, NotEqual, ProperIncludedIn, ProperIncludes, STRING, SameAs, ThreeValuedLogic, Union, build, equals, equivalent, ref, typeIsArray,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
Expression = require('./expression').Expression;
ThreeValuedLogic = require('../datatypes/logic').ThreeValuedLogic;
DateTime = require('../datatypes/datetime').DateTime;
Exception = require('../datatypes/exception').Exception;
typeIsArray = require('../util/util').typeIsArray;
ref = require('../util/comparison'), equals = ref.equals, equivalent = ref.equivalent;
build = require('./builder').build;
DT = require('./datetime');
LIST = require('./list');
IVL = require('./interval');
STRING = require('./string');
module.exports.Equal = Equal = (function(superClass) {
extend(Equal, superClass);
function Equal(json) {
Equal.__super__.constructor.apply(this, arguments);
}
Equal.prototype.exec = function(ctx) {
var args;
args = this.execArgs(ctx);
if (!((args[0] != null) && (args[1] != null))) {
return null;
}
return equals.apply(null, this.execArgs(ctx));
};
return Equal;
})(Expression);
module.exports.Equivalent = Equivalent = (function(superClass) {
extend(Equivalent, superClass);
function Equivalent(json) {
Equivalent.__super__.constructor.apply(this, arguments);
}
Equivalent.prototype.exec = function(ctx) {
var a, b, ref1;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a == null) && (b == null)) {
return true;
} else if ((a == null) || (b == null)) {
return false;
} else {
return equivalent(a, b);
}
};
return Equivalent;
})(Expression);
module.exports.NotEqual = NotEqual = (function(superClass) {
extend(NotEqual, superClass);
function NotEqual(json) {
NotEqual.__super__.constructor.apply(this, arguments);
}
NotEqual.prototype.exec = function(ctx) {
var args;
args = this.execArgs(ctx);
if (!((args[0] != null) && (args[1] != null))) {
return null;
}
return ThreeValuedLogic.not(equals.apply(null, this.execArgs(ctx)));
};
return NotEqual;
})(Expression);
module.exports.Union = Union = (function(superClass) {
extend(Union, superClass);
function Union(json) {
Union.__super__.constructor.apply(this, arguments);
}
Union.prototype.exec = function(ctx) {
var a, b, lib, ref1;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a == null) || (b == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(a):
return LIST;
default:
return IVL;
}
})();
return lib.doUnion(a, b);
};
return Union;
})(Expression);
module.exports.Except = Except = (function(superClass) {
extend(Except, superClass);
function Except(json) {
Except.__super__.constructor.apply(this, arguments);
}
Except.prototype.exec = function(ctx) {
var a, b, lib, ref1;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a == null) || (b == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(a):
return LIST;
default:
return IVL;
}
})();
return lib.doExcept(a, b);
};
return Except;
})(Expression);
module.exports.Intersect = Intersect = (function(superClass) {
extend(Intersect, superClass);
function Intersect(json) {
Intersect.__super__.constructor.apply(this, arguments);
}
Intersect.prototype.exec = function(ctx) {
var a, b, lib, ref1;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a == null) || (b == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(a):
return LIST;
default:
return IVL;
}
})();
return lib.doIntersect(a, b);
};
return Intersect;
})(Expression);
module.exports.Indexer = Indexer = (function(superClass) {
extend(Indexer, superClass);
function Indexer(json) {
Indexer.__super__.constructor.apply(this, arguments);
}
Indexer.prototype.exec = function(ctx) {
var index, operand, ref1;
ref1 = this.execArgs(ctx), operand = ref1[0], index = ref1[1];
if ((operand == null) || (index == null)) {
return null;
}
if (index < 0 || index >= operand.length) {
return null;
}
return operand[index];
};
return Indexer;
})(Expression);
module.exports.In = In = (function(superClass) {
extend(In, superClass);
function In(json) {
var ref1;
In.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
In.prototype.exec = function(ctx) {
var container, item, lib, ref1;
ref1 = this.execArgs(ctx), item = ref1[0], container = ref1[1];
if ((container == null) || (item == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(container):
return LIST;
default:
return IVL;
}
})();
return lib.doContains(container, item, this.precision);
};
return In;
})(Expression);
module.exports.Contains = Contains = (function(superClass) {
extend(Contains, superClass);
function Contains(json) {
var ref1;
Contains.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
Contains.prototype.exec = function(ctx) {
var container, item, lib, ref1;
ref1 = this.execArgs(ctx), container = ref1[0], item = ref1[1];
if ((container == null) || (item == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(container):
return LIST;
default:
return IVL;
}
})();
return lib.doContains(container, item, this.precision);
};
return Contains;
})(Expression);
module.exports.Includes = Includes = (function(superClass) {
extend(Includes, superClass);
function Includes(json) {
var ref1;
Includes.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
Includes.prototype.exec = function(ctx) {
var contained, container, lib, ref1;
ref1 = this.execArgs(ctx), container = ref1[0], contained = ref1[1];
if ((container == null) || (contained == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(container):
return LIST;
default:
return IVL;
}
})();
return lib.doIncludes(container, contained, this.precision);
};
return Includes;
})(Expression);
module.exports.IncludedIn = IncludedIn = (function(superClass) {
extend(IncludedIn, superClass);
function IncludedIn(json) {
var ref1;
IncludedIn.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
IncludedIn.prototype.exec = function(ctx) {
var contained, container, lib, ref1;
ref1 = this.execArgs(ctx), contained = ref1[0], container = ref1[1];
if ((container == null) || (contained == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(container):
return LIST;
default:
return IVL;
}
})();
return lib.doIncludes(container, contained, this.precision);
};
return IncludedIn;
})(Expression);
module.exports.ProperIncludes = ProperIncludes = (function(superClass) {
extend(ProperIncludes, superClass);
function ProperIncludes(json) {
var ref1;
ProperIncludes.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
ProperIncludes.prototype.exec = function(ctx) {
var contained, container, lib, ref1;
ref1 = this.execArgs(ctx), container = ref1[0], contained = ref1[1];
if ((container == null) || (contained == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(container):
return LIST;
default:
return IVL;
}
})();
return lib.doProperIncludes(container, contained, this.precision);
};
return ProperIncludes;
})(Expression);
module.exports.ProperIncludedIn = ProperIncludedIn = (function(superClass) {
extend(ProperIncludedIn, superClass);
function ProperIncludedIn(json) {
var ref1;
ProperIncludedIn.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
ProperIncludedIn.prototype.exec = function(ctx) {
var contained, container, lib, ref1;
ref1 = this.execArgs(ctx), contained = ref1[0], container = ref1[1];
if ((container == null) || (contained == null)) {
return null;
}
lib = (function() {
switch (false) {
case !typeIsArray(container):
return LIST;
default:
return IVL;
}
})();
return lib.doProperIncludes(container, contained, this.precision);
};
return ProperIncludedIn;
})(Expression);
module.exports.Length = Length = (function(superClass) {
extend(Length, superClass);
function Length(json) {
Length.__super__.constructor.apply(this, arguments);
}
Length.prototype.exec = function(ctx) {
var arg;
arg = this.execArgs(ctx);
if (arg != null) {
return arg.length;
} else {
return null;
}
};
return Length;
})(Expression);
module.exports.After = After = (function(superClass) {
extend(After, superClass);
function After(json) {
var ref1;
After.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
After.prototype.exec = function(ctx) {
var a, b, lib, ref1;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a == null) || (b == null)) {
return null;
}
lib = (function() {
switch (false) {
case !(a instanceof DateTime):
return DT;
default:
return IVL;
}
})();
return lib.doAfter(a, b, this.precision);
};
return After;
})(Expression);
module.exports.Before = After = (function(superClass) {
extend(After, superClass);
function After(json) {
var ref1;
After.__super__.constructor.apply(this, arguments);
this.precision = (ref1 = json.precision) != null ? ref1.toLowerCase() : void 0;
}
After.prototype.exec = function(ctx) {
var a, b, lib, ref1;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a == null) || (b == null)) {
return null;
}
lib = (function() {
switch (false) {
case !(a instanceof DateTime):
return DT;
default:
return IVL;
}
})();
return lib.doBefore(a, b, this.precision);
};
return After;
})(Expression);
module.exports.SameAs = SameAs = (function(superClass) {
extend(SameAs, superClass);
function SameAs(json) {
SameAs.__super__.constructor.apply(this, arguments);
this.precision = json.precision;
}
SameAs.prototype.exec = function(ctx) {
var a, b, ref1, ref2;
ref1 = this.execArgs(ctx), a = ref1[0], b = ref1[1];
if ((a != null) && (b != null)) {
return a.sameAs(b, (ref2 = this.precision) != null ? ref2.toLowerCase() : void 0);
} else {
return null;
}
};
return SameAs;
})(Expression);
}).call(this);
//# sourceMappingURL=overloaded.js.map