fhirbuilder
Version:
Another FHIR Tool to build FHIR Resources
238 lines (237 loc) • 10.4 kB
TypeScript
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 {};