fhirbuilder
Version:
Another FHIR Tool to build FHIR Resources
142 lines (141 loc) • 5.38 kB
TypeScript
import { IIdentifier, IElement, IReference, ICodeableConcept, IHumanName, IContactPoint, IAddress, IAttachment, IPeriod, IRelatedPersonCommunication, AdministrativeGenderType } from 'fhirtypes/dist/r4';
import { RelatedPerson } from '../../models';
import { DomainResourceBuilder, IBuildable } from '../base';
import { ExtractUnderscoreKeys } from '../../../core/commons/utils';
type PrimitiveExtensionFields = ExtractUnderscoreKeys<RelatedPerson>;
/**
* @description Interface for chaining the building of a RelatedPerson
* @interface IRelatedPersonBuilder
* @extends {IBuildable<RelatedPerson>}
*/
interface IRelatedPersonBuilder extends IBuildable<RelatedPerson> {
addIdentifier(value: IIdentifier): this;
setActive(value: boolean): this;
setPatient(value: IReference): this;
addRelationship(value: ICodeableConcept): this;
addName(value: IHumanName): this;
addTelecom(value: IContactPoint): this;
setGender(value: AdministrativeGenderType): this;
setBirthDate(value: string): this;
addAddress(value: IAddress): this;
addPhoto(value: IAttachment): this;
setPeriod(value: IPeriod): this;
addCommunication(value: IRelatedPersonCommunication): this;
}
/**
* @version R4 (v4.0.1)
* @summary FHIR® Specification by HL7®
* @description Class for building a RelatedPerson
* @class RelatedPersonBuilder
* @extends {DomainResourceBuilder}
* @implements {IRelatedPersonBuilder}
* @author Roberto Araneda Espinoza
*/
export declare class RelatedPersonBuilder extends DomainResourceBuilder implements IRelatedPersonBuilder {
private readonly relatedPerson;
constructor();
/**
* @description Sets the resource type to RelatedPerson
* @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 {RelatedPerson}
*/
build(): RelatedPerson;
/**
* @description Adds a value to the identifier array
* @description Identifier for a person within a particular scope.
* @param value - the value to add
* @returns {this}
*/
addIdentifier(value: IIdentifier): this;
/**
* @description Sets the active value
* @description Whether this related person record is in active use.
* @param value - the value to set
* @returns {this}
*/
setActive(value: boolean): this;
/**
* @description Sets the patient value
* @description The patient this person is related to.
* @param value - the value to set
* @returns {this}
*/
setPatient(value: IReference): this;
/**
* @description Adds a value to the relationship array
* @description The nature of the relationship between a patient and the related person.
* @param value - the value to add
* @returns {this}
*/
addRelationship(value: ICodeableConcept): this;
/**
* @description Adds a value to the name array
* @description A name associated with the person.
* @param value - the value to add
* @returns {this}
*/
addName(value: IHumanName): this;
/**
* @description Adds a value to the telecom array
* @description A contact detail for the person, e.g. a telephone number or an email address.
* @param value - the value to add
* @returns {this}
*/
addTelecom(value: IContactPoint): this;
/**
* @description Sets the gender value
* @description Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
* @param value - the value to set
* @returns {this}
*/
setGender(value: AdministrativeGenderType): this;
/**
* @description Sets the birthDate value
* @description The date on which the related person was born.
* @param value - the value to set
* @returns {this}
*/
setBirthDate(value: string): this;
/**
* @description Adds a value to the address array
* @description Address where the related person can be contacted or visited.
* @param value - the value to add
* @returns {this}
*/
addAddress(value: IAddress): this;
/**
* @description Adds a value to the photo array
* @description Image of the person.
* @param value - the value to add
* @returns {this}
*/
addPhoto(value: IAttachment): this;
/**
* @description Sets the period value
* @description The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.
* @param value - the value to set
* @returns {this}
*/
setPeriod(value: IPeriod): this;
/**
* @description Adds a value to the communication array
* @description A language which may be used to communicate with about the patient's health.
* @param value - the value to add
* @returns {this}
*/
addCommunication(value: IRelatedPersonCommunication): this;
}
export {};