cql-execution
Version:
An execution framework for the Clinical Quality Language (CQL)
386 lines (290 loc) • 9.89 kB
JavaScript
// Generated by CoffeeScript 1.9.3
(function() {
var Address, Attachment, BackboneElement, CORE, CodeableConcept, Coding, ContactPoint, DT, DomainResource, Element, ElementDefinition, Extension, HumanName, Identifier, Narrative, Parameters, Period, Practitioner, PractitionerQualificationComponent, Quantity, Range, Ratio, Reference, Resource, SampledData, 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 PractitionerQualificationComponent
@exports PractitionerQualificationComponent as PractitionerQualificationComponent
*/
PractitionerQualificationComponent = (function(superClass) {
extend(PractitionerQualificationComponent, superClass);
function PractitionerQualificationComponent(json) {
this.json = json;
PractitionerQualificationComponent.__super__.constructor.call(this, this.json);
}
/**
An identifier that applies to this person's qualification in this role.
@returns {Array} an array of {@link Identifier} objects
*/
PractitionerQualificationComponent.prototype.identifier = function() {
var i, item, len, ref, results;
if (this.json['identifier']) {
ref = this.json['identifier'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Identifier(item));
}
return results;
}
};
/**
Coded representation of the qualification.
@returns {CodeableConcept}
*/
PractitionerQualificationComponent.prototype.code = function() {
if (this.json['code']) {
return new CodeableConcept(this.json['code']);
}
};
/**
Period during which the qualification is valid.
@returns {Period}
*/
PractitionerQualificationComponent.prototype.period = function() {
if (this.json['period']) {
return new Period(this.json['period']);
}
};
/**
Organization that regulates and issues the qualification.
@returns {Reference}
*/
PractitionerQualificationComponent.prototype.issuer = function() {
if (this.json['issuer']) {
return new Reference(this.json['issuer']);
}
};
return PractitionerQualificationComponent;
})(BackboneElement);
/**
A person who is directly or indirectly involved in the provisioning of healthcare.
@class Practitioner
@exports Practitioner as Practitioner
*/
Practitioner = (function(superClass) {
extend(Practitioner, superClass);
function Practitioner(json) {
this.json = json;
Practitioner.__super__.constructor.call(this, this.json);
}
/**
An identifier that applies to this person in this role.
@returns {Array} an array of {@link Identifier} objects
*/
Practitioner.prototype.identifier = function() {
var i, item, len, ref, results;
if (this.json['identifier']) {
ref = this.json['identifier'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Identifier(item));
}
return results;
}
};
/**
A name associated with the person.
@returns {HumanName}
*/
Practitioner.prototype.name = function() {
if (this.json['name']) {
return new HumanName(this.json['name']);
}
};
/**
A contact detail for the practitioner, e.g. a telephone number or an email address.
@returns {Array} an array of {@link ContactPoint} objects
*/
Practitioner.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;
}
};
/**
The postal address where the practitioner can be found or visited or to which mail can be delivered.
@returns {Array} an array of {@link Address} objects
*/
Practitioner.prototype.address = function() {
var i, item, len, ref, results;
if (this.json['address']) {
ref = this.json['address'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Address(item));
}
return results;
}
};
/**
Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
@returns {Array} an array of {@link String} objects
*/
Practitioner.prototype.gender = function() {
return this.json['gender'];
};
/**
The date and time of birth for the practitioner.
@returns {Array} an array of {@link Date} objects
*/
Practitioner.prototype.birthDate = function() {
if (this.json['birthDate']) {
return DT.DateTime.parse(this.json['birthDate']);
}
};
/**
Image of the person.
@returns {Array} an array of {@link Attachment} objects
*/
Practitioner.prototype.photo = function() {
var i, item, len, ref, results;
if (this.json['photo']) {
ref = this.json['photo'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Attachment(item));
}
return results;
}
};
/**
The organization that the practitioner represents.
@returns {Reference}
*/
Practitioner.prototype.organization = function() {
if (this.json['organization']) {
return new Reference(this.json['organization']);
}
};
/**
Roles which this practitioner is authorized to perform for the organization.
@returns {Array} an array of {@link CodeableConcept} objects
*/
Practitioner.prototype.role = function() {
var i, item, len, ref, results;
if (this.json['role']) {
ref = this.json['role'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new CodeableConcept(item));
}
return results;
}
};
/**
Specific specialty of the practitioner.
@returns {Array} an array of {@link CodeableConcept} objects
*/
Practitioner.prototype.specialty = function() {
var i, item, len, ref, results;
if (this.json['specialty']) {
ref = this.json['specialty'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new CodeableConcept(item));
}
return results;
}
};
/**
The period during which the person is authorized to act as a practitioner in these role(s) for the organization.
@returns {Period}
*/
Practitioner.prototype.period = function() {
if (this.json['period']) {
return new Period(this.json['period']);
}
};
/**
The location(s) at which this practitioner provides care.
@returns {Array} an array of {@link Reference} objects
*/
Practitioner.prototype.location = function() {
var i, item, len, ref, results;
if (this.json['location']) {
ref = this.json['location'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new Reference(item));
}
return results;
}
};
/**
Qualifications obtained by training and certification.
@returns {Array} an array of {@link PractitionerQualificationComponent} objects
*/
Practitioner.prototype.qualification = function() {
var i, item, len, ref, results;
if (this.json['qualification']) {
ref = this.json['qualification'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new PractitionerQualificationComponent(item));
}
return results;
}
};
/**
A language the practitioner is able to use in patient communication.
@returns {Array} an array of {@link CodeableConcept} objects
*/
Practitioner.prototype.communication = function() {
var i, item, len, ref, results;
if (this.json['communication']) {
ref = this.json['communication'];
results = [];
for (i = 0, len = ref.length; i < len; i++) {
item = ref[i];
results.push(new CodeableConcept(item));
}
return results;
}
};
return Practitioner;
})(DomainResource);
module.exports.Practitioner = Practitioner;
}).call(this);
//# sourceMappingURL=practitioner.js.map