fhirbuilder
Version:
Another FHIR Tool to build FHIR Resources
142 lines (141 loc) • 5.75 kB
TypeScript
import { IIdentifier, IElement, IEpisodeOfCareStatusHistory, ICodeableConcept, IEpisodeOfCareDiagnosis, IReference, IPeriod, EpisodeOfCareStatusType } from 'fhirtypes/dist/r4';
import { EpisodeOfCare } from '../../models';
import { DomainResourceBuilder, IBuildable } from '../base';
import { ExtractUnderscoreKeys } from '../../../core/commons/utils';
type PrimitiveExtensionFields = ExtractUnderscoreKeys<EpisodeOfCare>;
/**
* @description Interface for chaining the building of a EpisodeOfCare
* @interface IEpisodeOfCareBuilder
* @extends {IBuildable<EpisodeOfCare>}
*/
interface IEpisodeOfCareBuilder extends IBuildable<EpisodeOfCare> {
addIdentifier(value: IIdentifier): this;
setStatus(value: EpisodeOfCareStatusType): this;
addStatusHistory(value: IEpisodeOfCareStatusHistory): this;
addType(value: ICodeableConcept): this;
addDiagnosis(value: IEpisodeOfCareDiagnosis): this;
setPatient(value: IReference): this;
setManagingOrganization(value: IReference): this;
setPeriod(value: IPeriod): this;
addReferralRequest(value: IReference): this;
setCareManager(value: IReference): this;
addTeam(value: IReference): this;
addAccount(value: IReference): this;
}
/**
* @version R4 (v4.0.1)
* @summary FHIR® Specification by HL7®
* @description Class for building a EpisodeOfCare
* @class EpisodeOfCareBuilder
* @extends {DomainResourceBuilder}
* @implements {IEpisodeOfCareBuilder}
* @author Roberto Araneda Espinoza
*/
export declare class EpisodeOfCareBuilder extends DomainResourceBuilder implements IEpisodeOfCareBuilder {
private readonly episodeOfCare;
constructor();
/**
* @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 {EpisodeOfCare}
*/
build(): EpisodeOfCare;
/**
* @description Adds a value to the identifier array
* @description The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.
* @param value - the value to add
* @returns {this}
*/
addIdentifier(value: IIdentifier): this;
/**
* @description Sets the status value
* @description planned | waitlist | active | onhold | finished | cancelled.
* @param value - the value to set
* @returns {this}
*/
setStatus(value: EpisodeOfCareStatusType): this;
/**
* @description Adds a value to the statusHistory array
* @description The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).
* @param value - the value to add
* @returns {this}
*/
addStatusHistory(value: IEpisodeOfCareStatusHistory): this;
/**
* @description Adds a value to the type array
* @description A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.
* @param value - the value to add
* @returns {this}
*/
addType(value: ICodeableConcept): this;
/**
* @description Adds a value to the diagnosis array
* @description The list of diagnosis relevant to this episode of care.
* @param value - the value to add
* @returns {this}
*/
addDiagnosis(value: IEpisodeOfCareDiagnosis): this;
/**
* @description Sets the patient value
* @description The patient who is the focus of this episode of care.
* @param value - the value to set
* @returns {this}
*/
setPatient(value: IReference): this;
/**
* @description Sets the managingOrganization value
* @description The organization that has assumed the specific responsibilities for the specified duration.
* @param value - the value to set
* @returns {this}
*/
setManagingOrganization(value: IReference): this;
/**
* @description Sets the period value
* @description The interval during which the managing organization assumes the defined responsibility.
* @param value - the value to set
* @returns {this}
*/
setPeriod(value: IPeriod): this;
/**
* @description Adds a value to the referralRequest array
* @description Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.
* @param value - the value to add
* @returns {this}
*/
addReferralRequest(value: IReference): this;
/**
* @description Sets the careManager value
* @description The practitioner that is the care manager/care coordinator for this patient.
* @param value - the value to set
* @returns {this}
*/
setCareManager(value: IReference): this;
/**
* @description Adds a value to the team array
* @description The list of practitioners that may be facilitating this episode of care for specific purposes.
* @param value - the value to add
* @returns {this}
*/
addTeam(value: IReference): this;
/**
* @description Adds a value to the account array
* @description The set of accounts that may be used for billing for this EpisodeOfCare.
* @param value - the value to add
* @returns {this}
*/
addAccount(value: IReference): this;
/**
* @description Sets the resource type to EpisodeOfCare
* @param json - the json to parse
* @returns {this}
*/
fromJSON(json: unknown): this;
}
export {};