cql-execution
Version:
An execution framework for the Clinical Quality Language (CQL)
1,188 lines (861 loc) • 34.6 kB
JavaScript
// Generated by CoffeeScript 1.9.3
(function() {
var Address, Attachment, BackboneElement, CORE, CodeableConcept, Coding, Conformance, ConformanceDocumentComponent, ConformanceImplementationComponent, ConformanceMessagingComponent, ConformanceMessagingEventComponent, ConformanceRestComponent, ConformanceRestOperationComponent, ConformanceRestResourceComponent, ConformanceRestResourceSearchParamComponent, ConformanceRestSecurityCertificateComponent, ConformanceRestSecurityComponent, ConformanceSoftwareComponent, ContactPoint, DT, DomainResource, Element, ElementDefinition, Extension, HumanName, Identifier, Narrative, Parameters, Period, Quantity, Range, Ratio, Reference, Resource, ResourceInteractionComponent, SampledData, SystemInteractionComponent, Timing,
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;
DT = require('../cql-datatypes');
CORE = require('./core');
Element = CORE.Element;
Resource = CORE.Resource;
Timing = CORE.Timing;
Period = CORE.Period;
Parameters = CORE.Parameters;
Coding = CORE.Coding;
Resource = CORE.Resource;
Range = CORE.Range;
Quantity = CORE.Quantity;
Attachment = CORE.Attachment;
BackboneElement = CORE.BackboneElement;
DomainResource = CORE.DomainResource;
ContactPoint = CORE.ContactPoint;
ElementDefinition = CORE.ElementDefinition;
Extension = CORE.Extension;
HumanName = CORE.HumanName;
Address = CORE.Address;
Ratio = CORE.Ratio;
SampledData = CORE.SampledData;
Reference = CORE.Reference;
CodeableConcept = CORE.CodeableConcept;
Identifier = CORE.Identifier;
Narrative = CORE.Narrative;
Element = CORE.Element;
/**
Embedded class
@class ConformanceSoftwareComponent
@exports ConformanceSoftwareComponent as ConformanceSoftwareComponent
*/
ConformanceSoftwareComponent = (function(superClass) {
extend(ConformanceSoftwareComponent, superClass);
function ConformanceSoftwareComponent(json) {
this.json = json;
ConformanceSoftwareComponent.__super__.constructor.call(this, this.json);
}
/**
Name software is known by.
@returns {Array} an array of {@link String} objects
*/
ConformanceSoftwareComponent.prototype.name = function() {
return this.json['name'];
};
/**
The version identifier for the software covered by this statement.
@returns {Array} an array of {@link String} objects
*/
ConformanceSoftwareComponent.prototype.version = function() {
return this.json['version'];
};
/**
Date this version of the software released.
@returns {Array} an array of {@link Date} objects
*/
ConformanceSoftwareComponent.prototype.releaseDate = function() {
if (this.json['releaseDate']) {
return DT.DateTime.parse(this.json['releaseDate']);
}
};
return ConformanceSoftwareComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceImplementationComponent
@exports ConformanceImplementationComponent as ConformanceImplementationComponent
*/
ConformanceImplementationComponent = (function(superClass) {
extend(ConformanceImplementationComponent, superClass);
function ConformanceImplementationComponent(json) {
this.json = json;
ConformanceImplementationComponent.__super__.constructor.call(this, this.json);
}
/**
Information about the specific installation that this conformance statement relates to.
@returns {Array} an array of {@link String} objects
*/
ConformanceImplementationComponent.prototype.description = function() {
return this.json['description'];
};
/**
A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.
@returns {Array} an array of {@link String} objects
*/
ConformanceImplementationComponent.prototype.url = function() {
return this.json['url'];
};
return ConformanceImplementationComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceRestSecurityCertificateComponent
@exports ConformanceRestSecurityCertificateComponent as ConformanceRestSecurityCertificateComponent
*/
ConformanceRestSecurityCertificateComponent = (function(superClass) {
extend(ConformanceRestSecurityCertificateComponent, superClass);
function ConformanceRestSecurityCertificateComponent(json) {
this.json = json;
ConformanceRestSecurityCertificateComponent.__super__.constructor.call(this, this.json);
}
/**
Mime type for certificate.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestSecurityCertificateComponent.prototype.type = function() {
return this.json['type'];
};
/**
Actual certificate.
@returns {Array} an array of {@link } objects
*/
ConformanceRestSecurityCertificateComponent.prototype.blob = function() {
return this.json['blob'];
};
return ConformanceRestSecurityCertificateComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceRestSecurityComponent
@exports ConformanceRestSecurityComponent as ConformanceRestSecurityComponent
*/
ConformanceRestSecurityComponent = (function(superClass) {
extend(ConformanceRestSecurityComponent, superClass);
function ConformanceRestSecurityComponent(json) {
this.json = json;
ConformanceRestSecurityComponent.__super__.constructor.call(this, this.json);
}
/**
Server adds CORS headers when responding to requests - this enables javascript applications to use the server.
@returns {Array} an array of {@link boolean} objects
*/
ConformanceRestSecurityComponent.prototype.cors = function() {
return this.json['cors'];
};
/**
Types of security services are supported/required by the system.
@returns {Array} an array of {@link CodeableConcept} objects
*/
ConformanceRestSecurityComponent.prototype.service = function() {
var i, item, len, ref, results;
if (this.json['service']) {
ref = this.json['service'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new CodeableConcept(item));
}
return results;
}
};
/**
General description of how security works.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestSecurityComponent.prototype.description = function() {
return this.json['description'];
};
/**
Certificates associated with security profiles.
@returns {Array} an array of {@link ConformanceRestSecurityCertificateComponent} objects
*/
ConformanceRestSecurityComponent.prototype.certificate = function() {
var i, item, len, ref, results;
if (this.json['certificate']) {
ref = this.json['certificate'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceRestSecurityCertificateComponent(item));
}
return results;
}
};
return ConformanceRestSecurityComponent;
})(BackboneElement);
/**
Embedded class
@class ResourceInteractionComponent
@exports ResourceInteractionComponent as ResourceInteractionComponent
*/
ResourceInteractionComponent = (function(superClass) {
extend(ResourceInteractionComponent, superClass);
function ResourceInteractionComponent(json) {
this.json = json;
ResourceInteractionComponent.__super__.constructor.call(this, this.json);
}
/**
Coded identifier of the operation, supported by the system resource.
@returns {Array} an array of {@link String} objects
*/
ResourceInteractionComponent.prototype.code = function() {
return this.json['code'];
};
/**
Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.
@returns {Array} an array of {@link String} objects
*/
ResourceInteractionComponent.prototype.documentation = function() {
return this.json['documentation'];
};
return ResourceInteractionComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceRestResourceSearchParamComponent
@exports ConformanceRestResourceSearchParamComponent as ConformanceRestResourceSearchParamComponent
*/
ConformanceRestResourceSearchParamComponent = (function(superClass) {
extend(ConformanceRestResourceSearchParamComponent, superClass);
function ConformanceRestResourceSearchParamComponent(json) {
this.json = json;
ConformanceRestResourceSearchParamComponent.__super__.constructor.call(this, this.json);
}
/**
The name of the search parameter used in the interface.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceSearchParamComponent.prototype.name = function() {
return this.json['name'];
};
/**
A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceSearchParamComponent.prototype.definition = function() {
return this.json['definition'];
};
/**
The type of value a search parameter refers to, and how the content is interpreted.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceSearchParamComponent.prototype.type = function() {
return this.json['type'];
};
/**
This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceSearchParamComponent.prototype.documentation = function() {
return this.json['documentation'];
};
/**
Types of resource (if a resource is referenced).
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceSearchParamComponent.prototype.target = function() {
return this.json['target'];
};
/**
Chained names supported.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceSearchParamComponent.prototype.chain = function() {
return this.json['chain'];
};
return ConformanceRestResourceSearchParamComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceRestResourceComponent
@exports ConformanceRestResourceComponent as ConformanceRestResourceComponent
*/
ConformanceRestResourceComponent = (function(superClass) {
extend(ConformanceRestResourceComponent, superClass);
function ConformanceRestResourceComponent(json) {
this.json = json;
ConformanceRestResourceComponent.__super__.constructor.call(this, this.json);
}
/**
A type of resource exposed via the restful interface.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceComponent.prototype.type = function() {
return this.json['type'];
};
/**
A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.
@returns {Reference}
*/
ConformanceRestResourceComponent.prototype.profile = function() {
if (this.json['profile']) {
return new Reference(this.json['profile']);
}
};
/**
Identifies a restful operation supported by the solution.
@returns {Array} an array of {@link ResourceInteractionComponent} objects
*/
ConformanceRestResourceComponent.prototype.interaction = function() {
var i, item, len, ref, results;
if (this.json['interaction']) {
ref = this.json['interaction'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ResourceInteractionComponent(item));
}
return results;
}
};
/**
Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceComponent.prototype.versioning = function() {
return this.json['versioning'];
};
/**
A flag for whether the server is able to return past versions as part of the vRead operation.
@returns {Array} an array of {@link boolean} objects
*/
ConformanceRestResourceComponent.prototype.readHistory = function() {
return this.json['readHistory'];
};
/**
A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.
@returns {Array} an array of {@link boolean} objects
*/
ConformanceRestResourceComponent.prototype.updateCreate = function() {
return this.json['updateCreate'];
};
/**
A list of _include values supported by the server.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestResourceComponent.prototype.searchInclude = function() {
return this.json['searchInclude'];
};
/**
Additional search parameters for implementations to support and/or make use of.
@returns {Array} an array of {@link ConformanceRestResourceSearchParamComponent} objects
*/
ConformanceRestResourceComponent.prototype.searchParam = function() {
var i, item, len, ref, results;
if (this.json['searchParam']) {
ref = this.json['searchParam'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceRestResourceSearchParamComponent(item));
}
return results;
}
};
return ConformanceRestResourceComponent;
})(BackboneElement);
/**
Embedded class
@class SystemInteractionComponent
@exports SystemInteractionComponent as SystemInteractionComponent
*/
SystemInteractionComponent = (function(superClass) {
extend(SystemInteractionComponent, superClass);
function SystemInteractionComponent(json) {
this.json = json;
SystemInteractionComponent.__super__.constructor.call(this, this.json);
}
/**
A coded identifier of the operation, supported by the system.
@returns {Array} an array of {@link String} objects
*/
SystemInteractionComponent.prototype.code = function() {
return this.json['code'];
};
/**
Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.
@returns {Array} an array of {@link String} objects
*/
SystemInteractionComponent.prototype.documentation = function() {
return this.json['documentation'];
};
return SystemInteractionComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceRestOperationComponent
@exports ConformanceRestOperationComponent as ConformanceRestOperationComponent
*/
ConformanceRestOperationComponent = (function(superClass) {
extend(ConformanceRestOperationComponent, superClass);
function ConformanceRestOperationComponent(json) {
this.json = json;
ConformanceRestOperationComponent.__super__.constructor.call(this, this.json);
}
/**
The name of a query, which is used in the _query parameter when the query is called.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestOperationComponent.prototype.name = function() {
return this.json['name'];
};
/**
Where the formal definition can be found.
@returns {Reference}
*/
ConformanceRestOperationComponent.prototype.definition = function() {
if (this.json['definition']) {
return new Reference(this.json['definition']);
}
};
return ConformanceRestOperationComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceRestComponent
@exports ConformanceRestComponent as ConformanceRestComponent
*/
ConformanceRestComponent = (function(superClass) {
extend(ConformanceRestComponent, superClass);
function ConformanceRestComponent(json) {
this.json = json;
ConformanceRestComponent.__super__.constructor.call(this, this.json);
}
/**
Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestComponent.prototype.mode = function() {
return this.json['mode'];
};
/**
Information about the system's restful capabilities that apply across all applications, such as security.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestComponent.prototype.documentation = function() {
return this.json['documentation'];
};
/**
Information about security of implementation.
@returns {ConformanceRestSecurityComponent}
*/
ConformanceRestComponent.prototype.security = function() {
if (this.json['security']) {
return new ConformanceRestSecurityComponent(this.json['security']);
}
};
/**
A specification of the restful capabilities of the solution for a specific resource type.
@returns {Array} an array of {@link ConformanceRestResourceComponent} objects
*/
ConformanceRestComponent.prototype.resource = function() {
var i, item, len, ref, results;
if (this.json['resource']) {
ref = this.json['resource'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceRestResourceComponent(item));
}
return results;
}
};
/**
A specification of restful operations supported by the system.
@returns {Array} an array of {@link SystemInteractionComponent} objects
*/
ConformanceRestComponent.prototype.interaction = function() {
var i, item, len, ref, results;
if (this.json['interaction']) {
ref = this.json['interaction'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new SystemInteractionComponent(item));
}
return results;
}
};
/**
Definition of an operation or a named query and with its parameters and their meaning and type.
@returns {Array} an array of {@link ConformanceRestOperationComponent} objects
*/
ConformanceRestComponent.prototype.operation = function() {
var i, item, len, ref, results;
if (this.json['operation']) {
ref = this.json['operation'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceRestOperationComponent(item));
}
return results;
}
};
/**
A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.
@returns {Array} an array of {@link String} objects
*/
ConformanceRestComponent.prototype.documentMailbox = function() {
return this.json['documentMailbox'];
};
return ConformanceRestComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceMessagingEventComponent
@exports ConformanceMessagingEventComponent as ConformanceMessagingEventComponent
*/
ConformanceMessagingEventComponent = (function(superClass) {
extend(ConformanceMessagingEventComponent, superClass);
function ConformanceMessagingEventComponent(json) {
this.json = json;
ConformanceMessagingEventComponent.__super__.constructor.call(this, this.json);
}
/**
A coded identifier of a supported messaging event.
@returns {Coding}
*/
ConformanceMessagingEventComponent.prototype.code = function() {
if (this.json['code']) {
return new Coding(this.json['code']);
}
};
/**
The impact of the content of the message.
@returns {Array} an array of {@link String} objects
*/
ConformanceMessagingEventComponent.prototype.category = function() {
return this.json['category'];
};
/**
The mode of this event declaration - whether application is sender or receiver.
@returns {Array} an array of {@link String} objects
*/
ConformanceMessagingEventComponent.prototype.mode = function() {
return this.json['mode'];
};
/**
A list of the messaging transport protocol(s) identifiers, supported by this endpoint.
@returns {Array} an array of {@link Coding} objects
*/
ConformanceMessagingEventComponent.prototype.protocol = function() {
var i, item, len, ref, results;
if (this.json['protocol']) {
ref = this.json['protocol'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Coding(item));
}
return results;
}
};
/**
A resource associated with the event. This is the resource that defines the event.
@returns {Array} an array of {@link String} objects
*/
ConformanceMessagingEventComponent.prototype.focus = function() {
return this.json['focus'];
};
/**
Information about the request for this event.
@returns {Reference}
*/
ConformanceMessagingEventComponent.prototype.request = function() {
if (this.json['request']) {
return new Reference(this.json['request']);
}
};
/**
Information about the response for this event.
@returns {Reference}
*/
ConformanceMessagingEventComponent.prototype.response = function() {
if (this.json['response']) {
return new Reference(this.json['response']);
}
};
/**
Guidance on how this event is handled, such as internal system trigger points, business rules, etc.
@returns {Array} an array of {@link String} objects
*/
ConformanceMessagingEventComponent.prototype.documentation = function() {
return this.json['documentation'];
};
return ConformanceMessagingEventComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceMessagingComponent
@exports ConformanceMessagingComponent as ConformanceMessagingComponent
*/
ConformanceMessagingComponent = (function(superClass) {
extend(ConformanceMessagingComponent, superClass);
function ConformanceMessagingComponent(json) {
this.json = json;
ConformanceMessagingComponent.__super__.constructor.call(this, this.json);
}
/**
An address to which messages and/or replies are to be sent.
@returns {Array} an array of {@link String} objects
*/
ConformanceMessagingComponent.prototype.endpoint = function() {
return this.json['endpoint'];
};
/**
Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).
@returns {Array} an array of {@link Number} objects
*/
ConformanceMessagingComponent.prototype.reliableCache = function() {
return this.json['reliableCache'];
};
/**
Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.
@returns {Array} an array of {@link String} objects
*/
ConformanceMessagingComponent.prototype.documentation = function() {
return this.json['documentation'];
};
/**
A description of the solution's support for an event at this end point.
@returns {Array} an array of {@link ConformanceMessagingEventComponent} objects
*/
ConformanceMessagingComponent.prototype.event = function() {
var i, item, len, ref, results;
if (this.json['event']) {
ref = this.json['event'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceMessagingEventComponent(item));
}
return results;
}
};
return ConformanceMessagingComponent;
})(BackboneElement);
/**
Embedded class
@class ConformanceDocumentComponent
@exports ConformanceDocumentComponent as ConformanceDocumentComponent
*/
ConformanceDocumentComponent = (function(superClass) {
extend(ConformanceDocumentComponent, superClass);
function ConformanceDocumentComponent(json) {
this.json = json;
ConformanceDocumentComponent.__super__.constructor.call(this, this.json);
}
/**
Mode of this document declaration - whether application is producer or consumer.
@returns {Array} an array of {@link String} objects
*/
ConformanceDocumentComponent.prototype.mode = function() {
return this.json['mode'];
};
/**
A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.
@returns {Array} an array of {@link String} objects
*/
ConformanceDocumentComponent.prototype.documentation = function() {
return this.json['documentation'];
};
/**
A constraint on a resource used in the document.
@returns {Reference}
*/
ConformanceDocumentComponent.prototype.profile = function() {
if (this.json['profile']) {
return new Reference(this.json['profile']);
}
};
return ConformanceDocumentComponent;
})(BackboneElement);
/**
A conformance statement is a set of requirements for a desired implementation or a description of how a target application fulfills those requirements in a particular implementation.
@class Conformance
@exports Conformance as Conformance
*/
Conformance = (function(superClass) {
extend(Conformance, superClass);
function Conformance(json) {
this.json = json;
Conformance.__super__.constructor.call(this, this.json);
}
/**
The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.identifier = function() {
return this.json['identifier'];
};
/**
The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.version = function() {
return this.json['version'];
};
/**
A free text natural language name identifying the conformance statement.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.name = function() {
return this.json['name'];
};
/**
Name of Organization publishing this conformance statement.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.publisher = function() {
return this.json['publisher'];
};
/**
Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.
@returns {Array} an array of {@link ContactPoint} objects
*/
Conformance.prototype.telecom = function() {
var i, item, len, ref, results;
if (this.json['telecom']) {
ref = this.json['telecom'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ContactPoint(item));
}
return results;
}
};
/**
A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.description = function() {
return this.json['description'];
};
/**
The status of this conformance statement.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.status = function() {
return this.json['status'];
};
/**
A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.
@returns {Array} an array of {@link boolean} objects
*/
Conformance.prototype.experimental = function() {
return this.json['experimental'];
};
/**
The date (and optionally time) when the conformance statement was published.
@returns {Array} an array of {@link Date} objects
*/
Conformance.prototype.date = function() {
if (this.json['date']) {
return DT.DateTime.parse(this.json['date']);
}
};
/**
Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.
@returns {ConformanceSoftwareComponent}
*/
Conformance.prototype.software = function() {
if (this.json['software']) {
return new ConformanceSoftwareComponent(this.json['software']);
}
};
/**
Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.
@returns {ConformanceImplementationComponent}
*/
Conformance.prototype.implementation = function() {
if (this.json['implementation']) {
return new ConformanceImplementationComponent(this.json['implementation']);
}
};
/**
The version of the FHIR specification on which this conformance statement is based.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.fhirVersion = function() {
return this.json['fhirVersion'];
};
/**
A flag that indicates whether the application accepts unknown elements as part of a resource.
@returns {Array} an array of {@link boolean} objects
*/
Conformance.prototype.acceptUnknown = function() {
return this.json['acceptUnknown'];
};
/**
A list of the formats supported by this implementation.
@returns {Array} an array of {@link String} objects
*/
Conformance.prototype.format = function() {
return this.json['format'];
};
/**
A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.
@returns {Array} an array of {@link Reference} objects
*/
Conformance.prototype.profile = function() {
var i, item, len, ref, results;
if (this.json['profile']) {
ref = this.json['profile'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Reference(item));
}
return results;
}
};
/**
A definition of the restful capabilities of the solution, if any.
@returns {Array} an array of {@link ConformanceRestComponent} objects
*/
Conformance.prototype.rest = function() {
var i, item, len, ref, results;
if (this.json['rest']) {
ref = this.json['rest'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceRestComponent(item));
}
return results;
}
};
/**
A description of the messaging capabilities of the solution.
@returns {Array} an array of {@link ConformanceMessagingComponent} objects
*/
Conformance.prototype.messaging = function() {
var i, item, len, ref, results;
if (this.json['messaging']) {
ref = this.json['messaging'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceMessagingComponent(item));
}
return results;
}
};
/**
A document definition.
@returns {Array} an array of {@link ConformanceDocumentComponent} objects
*/
Conformance.prototype.document = function() {
var i, item, len, ref, results;
if (this.json['document']) {
ref = this.json['document'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new ConformanceDocumentComponent(item));
}
return results;
}
};
return Conformance;
})(DomainResource);
module.exports.Conformance = Conformance;
}).call(this);
//# sourceMappingURL=conformance.js.map