UNPKG

fhirbuilder

Version:
238 lines (237 loc) 10.4 kB
import { IIdentifier, IElement, IReference, ICodeableConcept, IAttachment, IContactPoint, IHealthcareServiceEligibility, IHealthcareServiceAvailableTime, IHealthcareServiceNotAvailable } from 'fhirtypes/dist/r4'; import { HealthcareService } from '../../models'; import { DomainResourceBuilder, IBuildable } from '../base'; import { ExtractUnderscoreKeys } from '../../../core/commons/utils'; type PrimitiveExtensionFields = ExtractUnderscoreKeys<HealthcareService>; /** * @description Interface for chaining the building of a HealthcareService * @interface IHealthcareServiceBuilder * @extends {IBuildable<HealthcareService>} */ interface IHealthcareServiceBuilder extends IBuildable<HealthcareService> { addIdentifier(value: IIdentifier): this; setActive(value: boolean): this; setProvidedBy(value: IReference): this; addCategory(value: ICodeableConcept): this; addType(value: ICodeableConcept): this; addSpecialty(value: ICodeableConcept): this; addLocation(value: IReference): this; setName(value: string): this; setComment(value: string): this; setExtraDetails(value: string): this; setPhoto(value: IAttachment): this; addTelecom(value: IContactPoint): this; addCoverageArea(value: IReference): this; addServiceProvisionCode(value: ICodeableConcept): this; addEligibility(value: IHealthcareServiceEligibility): this; addProgram(value: ICodeableConcept): this; addCharacteristic(value: ICodeableConcept): this; addCommunication(value: ICodeableConcept): this; addReferralMethod(value: ICodeableConcept): this; setAppointmentRequired(value: boolean): this; addAvailableTime(value: IHealthcareServiceAvailableTime): this; addNotAvailable(value: IHealthcareServiceNotAvailable): this; setAvailabilityExceptions(value: string): this; addEndpoint(value: IReference): this; } /** * @version R4 (v4.0.1) * @summary FHIR® Specification by HL7® * @description Class for building a HealthcareService * @class HealthcareServiceBuilder * @extends {DomainResourceBuilder} * @implements {IHealthcareServiceBuilder} * @author Roberto Araneda Espinoza */ export declare class HealthcareServiceBuilder extends DomainResourceBuilder implements IHealthcareServiceBuilder { private readonly healthcareService; constructor(); /** * @description Sets the resource type to HealthcareService * @param json - the json to parse * @returns {this} */ fromJSON(json: unknown): this; /** * @description Adds a primitive extension to the element * @param param - the field to add the extension to * @param extension - the extension to add * @returns {this} * @example addPrimitiveExtension('_value', { value: 'test' }) */ addPrimitiveExtension(param: PrimitiveExtensionFields, extension: IElement): this; /** * @description Builds the model * @returns {HealthcareService} */ build(): HealthcareService; /** * @description Adds a value to the identifier array * @description External identifiers for this item. * @param value - the value to add * @returns {this} */ addIdentifier(value: IIdentifier): this; /** * @description Sets the active value * @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. * @param value - the value to set * @returns {this} */ setActive(value: boolean): this; /** * @description Sets the providedBy value * @description The organization that provides this healthcare service. * @param value - the value to set * @returns {this} */ setProvidedBy(value: IReference): this; /** * @description Adds a value to the category array * @description Identifies the broad category of service being performed or delivered. * @param value - the value to add * @returns {this} */ addCategory(value: ICodeableConcept): this; /** * @description Adds a value to the type array * @description The specific type of service that may be delivered or performed. * @param value - the value to add * @returns {this} */ addType(value: ICodeableConcept): this; /** * @description Adds a value to the specialty array * @description Collection of specialties handled by the service site. This is more of a medical term. * @param value - the value to add * @returns {this} */ addSpecialty(value: ICodeableConcept): this; /** * @description Adds a value to the location array * @description The location(s) where this healthcare service may be provided. * @param value - the value to add * @returns {this} */ addLocation(value: IReference): this; /** * @description Sets the name value * @description Further description of the service as it would be presented to a consumer while searching. * @param value - the value to set * @returns {this} */ setName(value: string): this; /** * @description Sets the comment value * @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. * @param value - the value to set * @returns {this} */ setComment(value: string): this; /** * @description Sets the extraDetails value * @description Extra details about the service that can't be placed in the other fields. * @param value - the value to set * @returns {this} */ setExtraDetails(value: string): this; /** * @description Sets the photo value * @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. * @param value - the value to set * @returns {this} */ setPhoto(value: IAttachment): this; /** * @description Adds a value to the telecom array * @description List of contacts related to this specific healthcare service. * @param value - the value to add * @returns {this} */ addTelecom(value: IContactPoint): this; /** * @description Adds a value to the coverageArea array * @description The location(s) that this service is available to (not where the service is provided). * @param value - the value to add * @returns {this} */ addCoverageArea(value: IReference): this; /** * @description Adds a value to the serviceProvisionCode array * @description The code(s) that detail the conditions under which the healthcare service is available/offered. * @param value - the value to add * @returns {this} */ addServiceProvisionCode(value: ICodeableConcept): this; /** * @description Adds a value to the eligibility array * @description Does this service have specific eligibility requirements that need to be met in order to use the service? * @param value - the value to add * @returns {this} */ addEligibility(value: IHealthcareServiceEligibility): this; /** * @description Adds a value to the program array * @description Programs that this service is applicable to. * @param value - the value to add * @returns {this} */ addProgram(value: ICodeableConcept): this; /** * @description Adds a value to the characteristic array * @description Collection of characteristics (attributes). * @param value - the value to add * @returns {this} */ addCharacteristic(value: ICodeableConcept): this; /** * @description Adds a value to the communication array * @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. * @param value - the value to add * @returns {this} */ addCommunication(value: ICodeableConcept): this; /** * @description Adds a value to the referralMethod array * @description Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required. * @param value - the value to add * @returns {this} */ addReferralMethod(value: ICodeableConcept): this; /** * @description Sets the appointmentRequired value * @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. * @param value - the value to set * @returns {this} */ setAppointmentRequired(value: boolean): this; /** * @description Adds a value to the availableTime array * @description A collection of times that the Service Site is available. * @param value - the value to add * @returns {this} */ addAvailableTime(value: IHealthcareServiceAvailableTime): this; /** * @description Adds a value to the notAvailable array * @description The HealthcareService is not available during this period of time due to the provided reason. * @param value - the value to add * @returns {this} */ addNotAvailable(value: IHealthcareServiceNotAvailable): this; /** * @description Sets the availabilityExceptions value * @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. * @param value - the value to set * @returns {this} */ setAvailabilityExceptions(value: string): this; /** * @description Adds a value to the endpoint array * @description Technical endpoints providing access to services operated for the specific healthcare services defined at this resource. * @param value - the value to add * @returns {this} */ addEndpoint(value: IReference): this; } export {};