cql-execution
Version:
An execution framework for the Clinical Quality Language (CQL)
72 lines (62 loc) • 1.96 kB
JavaScript
// Generated by CoffeeScript 1.9.3
(function() {
var Code, CodeService, ValueSet, ref;
ref = require('./datatypes/datatypes'), Code = ref.Code, ValueSet = ref.ValueSet;
CodeService = (function() {
function CodeService(valueSetsJson) {
var code, codes, oid, version;
if (valueSetsJson == null) {
valueSetsJson = {};
}
this.valueSets = {};
for (oid in valueSetsJson) {
this.valueSets[oid] = {};
for (version in valueSetsJson[oid]) {
codes = (function() {
var i, len, ref1, results1;
ref1 = valueSetsJson[oid][version];
results1 = [];
for (i = 0, len = ref1.length; i < len; i++) {
code = ref1[i];
results1.push(new Code(code.code, code.system, code.version));
}
return results1;
})();
this.valueSets[oid][version] = new ValueSet(oid, version, codes);
}
}
}
CodeService.prototype.findValueSetsByOid = function(oid) {
var ref1, results1, valueSet, version;
ref1 = this.valueSets[oid];
results1 = [];
for (version in ref1) {
valueSet = ref1[version];
results1.push(valueSet);
}
return results1;
};
CodeService.prototype.findValueSet = function(oid, version) {
var ref1, results;
if (version != null) {
return (ref1 = this.valueSets[oid]) != null ? ref1[version] : void 0;
} else {
results = this.findValueSetsByOid(oid);
if (results.length === 0) {
return null;
} else {
return results.reduce(function(a, b) {
if (a.version > b.version) {
return a;
} else {
return b;
}
});
}
}
};
return CodeService;
})();
module.exports.CodeService = CodeService;
}).call(this);
//# sourceMappingURL=cql-code-service.js.map