fhirbuilder
Version:
Another FHIR Tool to build FHIR Resources
210 lines (209 loc) • 7.29 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HealthcareService = void 0;
const base_1 = require("../base");
const base_2 = require("../../../core/r4/validators/base");
/**
* @version R4 (v4.0.1)
* @summary FHIR® Specification by HL7®
* @description Class for HealthcareService Resource
* @property {string} resourceType
* @property {IIdentifier[]} identifier
* @property {boolean} active
* @property {IElement} _active
* @property {IReference} providedBy
* @property {ICodeableConcept[]} category
* @property {ICodeableConcept[]} type
* @property {ICodeableConcept[]} specialty
* @property {IReference[]} location
* @property {string} name
* @property {IElement} _name
* @property {string} comment
* @property {IElement} _comment
* @property {string} extraDetails
* @property {IElement} _extraDetails
* @property {IAttachment} photo
* @property {IContactPoint[]} telecom
* @property {IReference[]} coverageArea
* @property {ICodeableConcept[]} serviceProvisionCode
* @property {IHealthcareServiceEligibility[]} eligibility
* @property {ICodeableConcept[]} program
* @property {ICodeableConcept[]} characteristic
* @property {ICodeableConcept[]} communication
* @property {ICodeableConcept[]} referralMethod
* @property {boolean} appointmentRequired
* @property {IElement} _appointmentRequired
* @property {IHealthcareServiceAvailableTime[]} availableTime
* @property {IHealthcareServiceNotAvailable[]} notAvailable
* @property {string} availabilityExceptions
* @property {IElement} _availabilityExceptions
* @property {IReference[]} endpoint
* @author Roberto Araneda Espinoza
*/
class HealthcareService extends base_1.DomainResource {
/**
* @description The type of resource
*/
resourceType = 'HealthcareService';
/**
* @description External identifiers for this item.
*/
identifier;
/**
* @description This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.
*/
active;
/**
* @description Extensions for active
*/
_active;
/**
* @description The organization that provides this healthcare service.
*/
providedBy;
/**
* @description Identifies the broad category of service being performed or delivered.
*/
category;
/**
* @description The specific type of service that may be delivered or performed.
*/
type;
/**
* @description Collection of specialties handled by the service site. This is more of a medical term.
*/
specialty;
/**
* @description The location(s) where this healthcare service may be provided.
*/
location;
/**
* @description Further description of the service as it would be presented to a consumer while searching.
*/
name;
/**
* @description Extensions for name
*/
_name;
/**
* @description Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.
*/
comment;
/**
* @description Extensions for comment
*/
_comment;
/**
* @description Extra details about the service that can't be placed in the other fields.
*/
extraDetails;
/**
* @description Extensions for extraDetails
*/
_extraDetails;
/**
* @description If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.
*/
photo;
/**
* @description List of contacts related to this specific healthcare service.
*/
telecom;
/**
* @description The location(s) that this service is available to (not where the service is provided).
*/
coverageArea;
/**
* @description The code(s) that detail the conditions under which the healthcare service is available/offered.
*/
serviceProvisionCode;
/**
* @description Does this service have specific eligibility requirements that need to be met in order to use the service?
*/
eligibility;
/**
* @description Programs that this service is applicable to.
*/
program;
/**
* @description Collection of characteristics (attributes).
*/
characteristic;
/**
* @description Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used.
*/
communication;
/**
* @description Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.
*/
referralMethod;
/**
* @description Indicates whether or not a prospective consumer will require an appointment.json for a particular service at a site to be provided by the Organization. Indicates if an appointment.json is required for access to this service.
*/
appointmentRequired;
/**
* @description Extensions for appointmentRequired
*/
_appointmentRequired;
/**
* @description A collection of times that the Service Site is available.
*/
availableTime;
/**
* @description The HealthcareService is not available during this period of time due to the provided reason.
*/
notAvailable;
/**
* @description A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.
*/
availabilityExceptions;
/**
* @description Extensions for availabilityExceptions
*/
_availabilityExceptions;
/**
* @description Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.
*/
endpoint;
/**
* @description Returns a JSON representation of the model
* @returns {Record<string, any>}
*/
toJson() {
return JSON.parse(JSON.stringify(this));
}
/**
* @description Returns a string representation of the model
* @returns {string}
*/
toString() {
return `HealthcareService${JSON.stringify(this.toJson())}`;
}
/**
* @description Returns a pretty string representation of the model
* @returns {string}
*/
toPrettyString() {
return `HealthcareService${JSON.stringify(this.toJson(), null, 2)}`;
}
/**
* @description Returns a serialized string representation of the model
* @returns {string}
*/
serialize() {
return JSON.stringify(this.toJson());
}
/**
* @description Validates the model
* @returns {isValid: boolean, operationOutcome: IOperationOutcome}
*/
validate() {
return (0, base_2.ConformanceValidator)('HealthcareService', this);
}
constructor(args) {
super();
if (args)
Object.assign(this, args);
}
}
exports.HealthcareService = HealthcareService;