fhirbuilder
Version:
Another FHIR Tool to build FHIR Resources
52 lines (51 loc) • 1.9 kB
TypeScript
import { IAddress, IAttachment, ICodeableConcept, ICoding, IContactPoint, IElement, IHumanName, IIdentifier, IMeta, IPeriod, IQuantity, IReference } from 'fhirtypes/dist/r4';
import { Extension } from '../../models';
import { IBuildable } from '../base/IBuildable';
import { ElementBuilder } from '../base/ElementBuilder';
import { UnderscoreKeys } from '../base/resource-type-map.interface';
interface TypeMap {
valueId: string;
valueAddress: IAddress;
valueAttachment: IAttachment;
valueBoolean: boolean;
valueCanonical: string;
valueCode: string;
valueCodeableConcept: ICodeableConcept;
valueCoding: ICoding;
valueContactPoint: IContactPoint;
valueDate: string;
valueDateTime: string;
valueDecimal: number;
valueIdentifier: IIdentifier;
valueInstant: string;
valueInteger: number;
valueMarkdown: string;
valueString: string;
valueTime: string;
valueUnsignedInt: number;
valueUri: string;
valueUrl: string;
valueUuid: string;
valueOid: string;
valuePeriod: IPeriod;
valuePositiveInt: number;
valueQuantity: IQuantity;
valueReference: IReference;
valueMeta: IMeta;
valueHumanName: IHumanName;
}
type ExtensionValue<T extends keyof TypeMap> = TypeMap[T];
type PrimitiveExtensionFields = keyof Pick<Extension, UnderscoreKeys<Extension>>;
interface IExtensionBuilder extends IBuildable<Extension> {
setUrl(url: string): this;
setValue<T extends keyof TypeMap>(type: T, value: ExtensionValue<T>): this;
}
export declare class ExtensionBuilder extends ElementBuilder implements IExtensionBuilder {
private readonly extension;
constructor();
addPrimitiveExtension(param: PrimitiveExtensionFields, extension: IElement): this;
setUrl(url: string): this;
build(): Extension;
setValue<T extends keyof TypeMap>(type: T, value: ExtensionValue<T>): this;
}
export {};