cql-execution
Version:
An execution framework for the Clinical Quality Language (CQL)
105 lines (91 loc) • 4.32 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var CodeDef, CodeSystemDef, ConceptDef, ExpressionDef, FunctionDef, Library, ParameterDef, Results, ValueSetDef, ref;
module.exports.Library = Library = (function() {
function Library(json, libraryManager) {
var code, codesystem, concept, expr, i, j, k, l, len, len1, len2, len3, len4, len5, len6, len7, m, n, o, p, param, ref, ref1, ref10, ref11, ref12, ref13, ref14, ref15, ref16, ref17, ref18, ref19, ref2, ref20, ref21, ref22, ref23, ref3, ref4, ref5, ref6, ref7, ref8, ref9, u, valueset;
this.source = json;
this.usings = [];
ref2 = (ref = (ref1 = json.library.usings) != null ? ref1.def : void 0) != null ? ref : [];
for (i = 0, len = ref2.length; i < len; i++) {
u = ref2[i];
if (u.localIdentifier !== "System") {
this.usings.push({
"name": u.localIdentifier,
"version": u.version
});
}
}
this.parameters = {};
ref5 = (ref3 = (ref4 = json.library.parameters) != null ? ref4.def : void 0) != null ? ref3 : [];
for (j = 0, len1 = ref5.length; j < len1; j++) {
param = ref5[j];
this.parameters[param.name] = new ParameterDef(param);
}
this.codesystems = {};
ref8 = (ref6 = (ref7 = json.library.codeSystems) != null ? ref7.def : void 0) != null ? ref6 : [];
for (k = 0, len2 = ref8.length; k < len2; k++) {
codesystem = ref8[k];
this.codesystems[codesystem.name] = new CodeSystemDef(codesystem);
}
this.valuesets = {};
ref11 = (ref9 = (ref10 = json.library.valueSets) != null ? ref10.def : void 0) != null ? ref9 : [];
for (l = 0, len3 = ref11.length; l < len3; l++) {
valueset = ref11[l];
this.valuesets[valueset.name] = new ValueSetDef(valueset);
}
this.codes = {};
ref14 = (ref12 = (ref13 = json.library.codes) != null ? ref13.def : void 0) != null ? ref12 : [];
for (m = 0, len4 = ref14.length; m < len4; m++) {
code = ref14[m];
this.codes[code.name] = new CodeDef(code);
}
this.concepts = {};
ref17 = (ref15 = (ref16 = json.library.concepts) != null ? ref16.def : void 0) != null ? ref15 : [];
for (n = 0, len5 = ref17.length; n < len5; n++) {
concept = ref17[n];
this.concepts[concept.name] = new ConceptDef(concept);
}
this.expressions = {};
ref20 = (ref18 = (ref19 = json.library.statements) != null ? ref19.def : void 0) != null ? ref18 : [];
for (o = 0, len6 = ref20.length; o < len6; o++) {
expr = ref20[o];
this.expressions[expr.name] = expr.type === "FunctionDef" ? new FunctionDef(expr) : new ExpressionDef(expr);
}
this.includes = {};
ref23 = (ref21 = (ref22 = json.library.includes) != null ? ref22.def : void 0) != null ? ref21 : [];
for (p = 0, len7 = ref23.length; p < len7; p++) {
expr = ref23[p];
if (libraryManager) {
this.includes[expr.localIdentifier] = libraryManager.resolve(expr.path, expr.version);
}
}
}
Library.prototype.get = function(identifier) {
return this.expressions[identifier] || this.includes[identifier];
};
Library.prototype.getValueSet = function(identifier, libraryName) {
var ref;
if (this.valuesets[identifier] != null) {
return this.valuesets[identifier];
}
return (ref = this.includes[libraryName]) != null ? ref.valuesets[identifier] : void 0;
};
Library.prototype.getCodeSystem = function(identifier) {
return this.codesystems[identifier];
};
Library.prototype.getCode = function(identifier) {
return this.codes[identifier];
};
Library.prototype.getConcept = function(identifier) {
return this.concepts[identifier];
};
Library.prototype.getParameter = function(name) {
return this.parameters[name];
};
return Library;
})();
ref = require('./expressions'), ExpressionDef = ref.ExpressionDef, FunctionDef = ref.FunctionDef, ParameterDef = ref.ParameterDef, ValueSetDef = ref.ValueSetDef, CodeSystemDef = ref.CodeSystemDef, CodeDef = ref.CodeDef, ConceptDef = ref.ConceptDef;
Results = require('../runtime/results').Results;
}).call(this);
//# sourceMappingURL=library.js.map