UNPKG

@phema/cql-execution

Version:

An execution framework for the Clinical Quality Language (CQL)

64 lines (51 loc) 2.23 kB
"use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var _require = require('./datatypes/datatypes'), Code = _require.Code, ValueSet = _require.ValueSet; var CodeService = /*#__PURE__*/function () { function CodeService() { var valueSetsJson = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, CodeService); this.valueSets = {}; for (var oid in valueSetsJson) { this.valueSets[oid] = {}; for (var version in valueSetsJson[oid]) { var codes = valueSetsJson[oid][version].map(function (code) { return new Code(code.code, code.system, code.version); }); this.valueSets[oid][version] = new ValueSet(oid, version, codes); } } } _createClass(CodeService, [{ key: "findValueSetsByOid", value: function findValueSetsByOid(oid) { return this.valueSets[oid] ? Object.values(this.valueSets[oid]) : []; } }, { key: "findValueSet", value: function findValueSet(oid, version) { if (version != null) { return this.valueSets[oid] != null ? this.valueSets[oid][version] : undefined; } else { var 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;