UNPKG

fhirbuilder

Version:
231 lines (230 loc) 9.61 kB
import { IIdentifier, IElement, IReference, ICodeableConcept, IPeriod, ICarePlanActivity, IAnnotation } from 'fhirtypes/dist/r4'; import { CarePlan } from '../../models'; import { DomainResourceBuilder, IBuildable } from '../base'; import { ExtractUnderscoreKeys } from '../../../core/commons/utils'; import { CarePlanIntentType, RequestStatusType } from 'fhirtypes/dist/r4/types'; type PrimitiveExtensionFields = ExtractUnderscoreKeys<CarePlan>; /** * @description Interface for chaining the building of a CarePlan * @interface ICarePlanBuilder * @extends {IBuildable<CarePlan>} */ interface ICarePlanBuilder extends IBuildable<CarePlan> { addIdentifier(value: IIdentifier): this; addInstantiatesCanonical(value: string): this; addInstantiatesUri(value: string): this; addBasedOn(value: IReference): this; addReplaces(value: IReference): this; addPartOf(value: IReference): this; setStatus(value: RequestStatusType): this; setIntent(value: CarePlanIntentType): this; addCategory(value: ICodeableConcept): this; setTitle(value: string): this; setDescription(value: string): this; setSubject(value: IReference): this; setEncounter(value: IReference): this; setPeriod(value: IPeriod): this; setCreated(value: string): this; setAuthor(value: IReference): this; addContributor(value: IReference): this; addCareTeam(value: IReference): this; addAddresses(value: IReference): this; addSupportingInfo(value: IReference): this; addGoal(value: IReference): this; addActivity(value: ICarePlanActivity): this; addNote(value: IAnnotation): this; } /** * @version R4 (v4.0.1) * @summary FHIR® Specification by HL7® * @description Class for building a CarePlan * @class CarePlanBuilder * @extends {DomainResourceBuilder} * @implements {ICarePlanBuilder} * @author Roberto Araneda Espinoza */ export declare class CarePlanBuilder extends DomainResourceBuilder implements ICarePlanBuilder { private readonly carePlan; constructor(); /** * @description Sets the resource type to CarePlan * @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<T extends PrimitiveExtensionFields>(param: T, extension: IElement): this; /** * @description Builds the model * @returns {CarePlan} */ build(): CarePlan; /** * @description Adds a value to the identifier array * @description Business identifiers assigned to this care plan by the performer or other systems which remain constant as the resource is updated and propagates from server to server. * @param value - the value to add * @returns {this} */ addIdentifier(value: IIdentifier): this; /** * @description Adds a value to the instantiatesCanonical array * @description The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan. * @param value - the value to add * @returns {this} */ addInstantiatesCanonical(value: string): this; /** * @description Adds a value to the instantiatesUri array * @description The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan. * @param value - the value to add * @returns {this} */ addInstantiatesUri(value: string): this; /** * @description Adds a value to the basedOn array * @description A care plan that is fulfilled in whole or in part by this care plan. * @param value - the value to add * @returns {this} */ addBasedOn(value: IReference): this; /** * @description Adds a value to the replaces array * @description Completed or terminated care plan whose function is taken by this new care plan. * @param value - the value to add * @returns {this} */ addReplaces(value: IReference): this; /** * @description Adds a value to the partOf array * @description A larger care plan of which this particular care plan is a component or step. * @param value - the value to add * @returns {this} */ addPartOf(value: IReference): this; /** * @description Sets the status value * @description Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record. * @param value - the value to set * @returns {this} */ setStatus(value: RequestStatusType): this; /** * @description Sets the intent value * @description Indicates the level of authority/intentionality associated with the care plan and where the care plan fits into the workflow chain. * @param value - the value to set * @returns {this} */ setIntent(value: CarePlanIntentType): this; /** * @description Adds a value to the category array * @description Identifies what "kind" of plan this is to support differentiation between multiple co-existing plans; e.g. "Home health", "psychiatric", "asthma", "disease management", "wellness plan", etc. * @param value - the value to add * @returns {this} */ addCategory(value: ICodeableConcept): this; /** * @description Sets the title value * @description Human-friendly name for the care plan. * @param value - the value to set * @returns {this} */ setTitle(value: string): this; /** * @description Sets the description value * @description A description of the scope and nature of the plan. * @param value - the value to set * @returns {this} */ setDescription(value: string): this; /** * @description Sets the subject value * @description Identifies the patient or group whose intended care is described by the plan. * @param value - the value to set * @returns {this} */ setSubject(value: IReference): this; /** * @description Sets the encounter value * @description The Encounter during which this CarePlan was created or to which the creation of this record is tightly associated. * @param value - the value to set * @returns {this} */ setEncounter(value: IReference): this; /** * @description Sets the period value * @description Indicates when the plan did (or is intended to) come into effect and end. * @param value - the value to set * @returns {this} */ setPeriod(value: IPeriod): this; /** * @description Sets the created value * @description Represents when this particular CarePlan record was created in the system, which is often a system-generated date. * @param value - the value to set * @returns {this} */ setCreated(value: string): this; /** * @description Sets the author value * @description When populated, the author is responsible for the care plan. The care plan is attributed to the author. * @param value - the value to set * @returns {this} */ setAuthor(value: IReference): this; /** * @description Adds a value to the contributor array * @description Identifies the individual(s) or organization who provided the contents of the care plan. * @param value - the value to add * @returns {this} */ addContributor(value: IReference): this; /** * @description Adds a value to the careTeam array * @description Identifies all people and organizations who are expected to be involved in the care envisioned by this plan. * @param value - the value to add * @returns {this} */ addCareTeam(value: IReference): this; /** * @description Adds a value to the addresses array * @description Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan. * @param value - the value to add * @returns {this} */ addAddresses(value: IReference): this; /** * @description Adds a value to the supportingInfo array * @description Identifies portions of the patient's record that specifically influenced the formation of the plan. These might include comorbidities, recent procedures, limitations, recent assessments, etc. * @param value - the value to add * @returns {this} */ addSupportingInfo(value: IReference): this; /** * @description Adds a value to the goal array * @description Describes the intended objective(s) of carrying out the care plan. * @param value - the value to add * @returns {this} */ addGoal(value: IReference): this; /** * @description Adds a value to the activity array * @description Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc. * @param value - the value to add * @returns {this} */ addActivity(value: ICarePlanActivity): this; /** * @description Adds a value to the note array * @description General notes about the care plan not covered elsewhere. * @param value - the value to add * @returns {this} */ addNote(value: IAnnotation): this; } export {};