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