UNPKG

fhirbuilder

Version:
210 lines (209 loc) 7.29 kB
"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;