Skip to main content

@medplum/core

Enumerations

Classes

Interfaces

Type Aliases

QueryTypes

Ƭ QueryTypes: URLSearchParams | string[][] | Record<string, any> | string | undefined

QueryTypes defines the different ways to specify FHIR search parameters.

Can be any valid input to the URLSearchParams() constructor.

TypeScript definitions for URLSearchParams do not match runtime behavior. The official spec only accepts string values. Web browsers and Node.js automatically coerce values to strings. See: https://github.com/microsoft/TypeScript/issues/32951

Defined in

packages/core/src/client.ts:224


FhirFilterExpression

Ƭ FhirFilterExpression: FhirFilterComparison | FhirFilterNegation | FhirFilterConnective

The FhirFilterExpression type is the base type of all filter expressions.

Defined in

packages/core/src/filter/types.ts:6


ProfileResource

Ƭ ProfileResource: Patient | Practitioner | RelatedPerson

Defined in

packages/core/src/utils.ts:25

Variables

MEDPLUM_VERSION

Const MEDPLUM_VERSION: string

Defined in

packages/core/src/client.ts:43


allOk

Const allOk: OperationOutcome

Defined in

packages/core/src/outcomes.ts:13


created

Const created: OperationOutcome

Defined in

packages/core/src/outcomes.ts:27


notModified

Const notModified: OperationOutcome

Defined in

packages/core/src/outcomes.ts:41


notFound

Const notFound: OperationOutcome

Defined in

packages/core/src/outcomes.ts:55


unauthorized

Const unauthorized: OperationOutcome

Defined in

packages/core/src/outcomes.ts:69


forbidden

Const forbidden: OperationOutcome

Defined in

packages/core/src/outcomes.ts:83


gone

Const gone: OperationOutcome

Defined in

packages/core/src/outcomes.ts:97


tooManyRequests

Const tooManyRequests: OperationOutcome

Defined in

packages/core/src/outcomes.ts:111


accepted

Const accepted: OperationOutcome

Defined in

packages/core/src/outcomes.ts:125


DEFAULT_SEARCH_COUNT

Const DEFAULT_SEARCH_COUNT: 20

Defined in

packages/core/src/search/search.ts:4


globalSchema

Const globalSchema: IndexedStructureDefinition

Global schema singleton.

Defined in

packages/core/src/types.ts:470

Functions

convertToTransactionBundle

convertToTransactionBundle(bundle): Bundle

Takes a bundle and creates a Transaction Type bundle

Parameters

NameTypeDescription
bundleBundle<Resource>The Bundle object that we'll receive from the search query

Returns

Bundle

transaction type bundle

Defined in

packages/core/src/bundle.ts:13


parseMappingLanguage

parseMappingLanguage(input): StructureMap

Parses a FHIR Mapping Language document into an AST.

Parameters

NameTypeDescription
inputstringThe FHIR Mapping Language document to parse.

Returns

StructureMap

The AST representing the document.

Defined in

packages/core/src/fhirmapper/parse.ts:369


parseFilterParameter

parseFilterParameter(input): FhirFilterExpression

Parses a FHIR _filter parameter expression into an AST.

Parameters

NameTypeDescription
inputstringThe FHIR _filter parameter expression.

Returns

FhirFilterExpression

The AST representing the filters.

Defined in

packages/core/src/filter/parse.ts:46


formatAddress

formatAddress(address, options?): string

Formats a FHIR Address as a string.

Parameters

NameTypeDescription
addressAddressThe address to format.
options?AddressFormatOptionsOptional address format options.

Returns

string

The formatted address string.

Defined in

packages/core/src/format.ts:35


formatHumanName

formatHumanName(name, options?): string

Formats a FHIR HumanName as a string.

Parameters

NameTypeDescription
nameHumanNameThe name to format.
options?HumanNameFormatOptionsOptional name format options.

Returns

string

The formatted name string.

Defined in

packages/core/src/format.ts:69


formatGivenName

formatGivenName(name): string

Formats the given name portion of a FHIR HumanName element.

Parameters

NameTypeDescription
nameHumanNameThe name to format.

Returns

string

The formatted given name string.

Defined in

packages/core/src/format.ts:100


formatFamilyName

formatFamilyName(name): string

Formats the family name portion of a FHIR HumanName element.

Parameters

NameTypeDescription
nameHumanNameThe name to format.

Returns

string

The formatted family name string.

Defined in

packages/core/src/format.ts:113


isValidDate

isValidDate(date): boolean

Returns true if the given date object is a valid date. Dates can be invalid if created by parsing an invalid string.

Parameters

NameTypeDescription
dateDateA date object.

Returns

boolean

Returns true if the date is a valid date.

Defined in

packages/core/src/format.ts:123


formatDate

formatDate(date, locales?, options?): string

Formats a FHIR date string as a human readable string. Handles missing values and invalid dates.

Parameters

NameTypeDescription
dateundefined | stringThe date to format.
locales?LocalesArgumentOptional locales.
options?DateTimeFormatOptionsOptional date format options.

Returns

string

The formatted date string.

Defined in

packages/core/src/format.ts:135


formatTime

formatTime(time, locales?, options?): string

Formats a FHIR time string as a human readable string. Handles missing values and invalid dates.

Parameters

NameTypeDescription
timeundefined | stringThe date to format.
locales?LocalesArgumentOptional locales.
options?DateTimeFormatOptionsOptional time format options.

Returns

string

The formatted time string.

Defined in

packages/core/src/format.ts:159


formatDateTime

formatDateTime(dateTime, locales?, options?): string

Formats a FHIR dateTime string as a human readable string. Handles missing values and invalid dates.

Parameters

NameTypeDescription
dateTimeundefined | stringThe dateTime to format.
locales?LocalesArgumentOptional locales.
options?DateTimeFormatOptionsOptional dateTime format options.

Returns

string

The formatted dateTime string.

Defined in

packages/core/src/format.ts:182


formatPeriod

formatPeriod(period, locales?, options?): string

Formats a FHIR Period as a human readable string.

Parameters

NameTypeDescription
periodundefined | PeriodThe period to format.
locales?LocalesArgumentOptional locales.
options?DateTimeFormatOptionsOptional period format options.

Returns

string

The formatted period string.

Defined in

packages/core/src/format.ts:204


formatTiming

formatTiming(timing): string

Formats a FHIR Timing as a human readable string.

Parameters

NameTypeDescription
timingundefined | TimingThe timing to format.

Returns

string

The formatted timing string.

Defined in

packages/core/src/format.ts:250


formatRange

formatRange(range, precision?, exclusive?): string

Returns a human-readable string for a FHIR Range datatype, taking into account one-sided ranges

Parameters

NameTypeDefault valueDescription
rangeundefined | RangeundefinedA FHIR Range element
precision?numberundefinedNumber of decimal places to display in the rendered quantity values
exclusivebooleanfalseIf true, one-sided ranges will be rendered with the '>' or '<' bounds rather than '>=' or '<='

Returns

string

A human-readable string representation of the Range

Defined in

packages/core/src/format.ts:301


formatQuantity

formatQuantity(quantity, precision?): string

Returns a human-readable string for a FHIR Quantity datatype, taking into account units and comparators

Parameters

NameTypeDescription
quantityundefined | QuantityA FHIR Quantity element
precision?numberNumber of decimal places to display in the rendered quantity values

Returns

string

A human-readable string representation of the Quantity

Defined in

packages/core/src/format.ts:343


formatMoney

formatMoney(money): string

Parameters

NameType
moneyundefined | Money

Returns

string

Defined in

packages/core/src/format.ts:373


formatCodeableConcept

formatCodeableConcept(codeableConcept): string

Formats a CodeableConcept element as a string.

Parameters

NameTypeDescription
codeableConceptundefined | CodeableConceptA FHIR CodeableConcept element

Returns

string

The codeable concept as a string.

Defined in

packages/core/src/format.ts:390


formatCoding

formatCoding(coding): string

Formats a Coding element as a string.

Parameters

NameTypeDescription
codingundefined | CodingA FHIR Coding element

Returns

string

The coding as a string.

Defined in

packages/core/src/format.ts:408


formatObservationValue

formatObservationValue(obs): string

Formats a FHIR Observation resource value as a string.

Parameters

NameTypeDescription
obsundefined | Observation | ObservationComponentA FHIR Observation resource.

Returns

string

A human-readable string representation of the Observation.

Defined in

packages/core/src/format.ts:417


parseJWTPayload

parseJWTPayload(token): Record<string, number | string>

Parses the JWT payload.

Parameters

NameTypeDescription
tokenstringJWT token

Returns

Record<string, number | string>

Defined in

packages/core/src/jwt.ts:23


badRequest

badRequest(details, expression?): OperationOutcome

Parameters

NameType
detailsstring
expression?string

Returns

OperationOutcome

Defined in

packages/core/src/outcomes.ts:139


validationError

validationError(details): OperationOutcome

Parameters

NameType
detailsstring

Returns

OperationOutcome

Defined in

packages/core/src/outcomes.ts:155


isOperationOutcome

isOperationOutcome(value): value is OperationOutcome

Parameters

NameType
valueunknown

Returns

value is OperationOutcome

Defined in

packages/core/src/outcomes.ts:170


isOk

isOk(outcome): boolean

Parameters

NameType
outcomeOperationOutcome

Returns

boolean

Defined in

packages/core/src/outcomes.ts:174


isNotFound

isNotFound(outcome): boolean

Parameters

NameType
outcomeOperationOutcome

Returns

boolean

Defined in

packages/core/src/outcomes.ts:178


isGone

isGone(outcome): boolean

Parameters

NameType
outcomeOperationOutcome

Returns

boolean

Defined in

packages/core/src/outcomes.ts:182


getStatus

getStatus(outcome): number

Parameters

NameType
outcomeOperationOutcome

Returns

number

Defined in

packages/core/src/outcomes.ts:186


assertOk

assertOk<T>(outcome, resource): asserts resource is T

Asserts that the operation completed successfully and that the resource is defined.

Type parameters

Name
T

Parameters

NameTypeDescription
outcomeOperationOutcomeThe operation outcome.
resourceundefined | TThe resource that may or may not have been returned.

Returns

asserts resource is T

Defined in

packages/core/src/outcomes.ts:213


normalizeOperationOutcome

normalizeOperationOutcome(error): OperationOutcome

Normalizes an error object into an OperationOutcome.

Parameters

NameTypeDescription
errorunknownThe error value which could be a string, Error, OperationOutcome, or other unknown type.

Returns

OperationOutcome

The normalized OperationOutcome.

Defined in

packages/core/src/outcomes.ts:234


normalizeErrorString

normalizeErrorString(error): string

Normalizes an error object into a displayable error string.

Parameters

NameTypeDescription
errorunknownThe error value which could be a string, Error, OperationOutcome, or other unknown type.

Returns

string

A display string for the error.

Defined in

packages/core/src/outcomes.ts:249


operationOutcomeToString

operationOutcomeToString(outcome): string

Returns a string represenation of the operation outcome.

Parameters

NameTypeDescription
outcomeOperationOutcomeThe operation outcome.

Returns

string

The string representation of the operation outcome.

Defined in

packages/core/src/outcomes.ts:270


isResourceType

isResourceType(resourceType): boolean

Returns true if the given string is a valid FHIR resource type.

isResourceType('Patient'); // true
isResourceType('XYZ'); // false

Note that this depends on globalSchema, which is populated by the StructureDefinition loader.

In a server context, you can load all schema definitions:

import { indexStructureDefinitionBundle } from '@medplum/core';
import { readJson } from '@medplum/definitions';
import { Bundle } from '@medplum/fhirtypes';

indexStructureDefinitionBundle(readJson('fhir/r4/profiles-resources.json') as Bundle);

In a client context, you can load the schema definitions using MedplumClient:

import { MedplumClient } from '@medplum/core';

const medplum = new MedplumClient();
await medplum.requestSchema('Patient');

Parameters

NameTypeDescription
resourceTypestringThe candidate resource type string.

Returns

boolean

True if the resource type is a valid FHIR resource type.

Defined in

packages/core/src/schema.ts:85


validateResourceType

validateResourceType(resourceType): void

Validates that the given string is a valid FHIR resource type. On success, silently returns void. On failure, throws an OperationOutcomeError.

validateResourceType('Patient'); // nothing
validateResourceType('XYZ'); // throws OperationOutcomeError

Note that this depends on globalSchema, which is populated by the StructureDefinition loader.

In a server context, you can load all schema definitions:

import { indexStructureDefinitionBundle } from '@medplum/core';
import { readJson } from '@medplum/definitions';
import { Bundle } from '@medplum/fhirtypes';

indexStructureDefinitionBundle(readJson('fhir/r4/profiles-resources.json') as Bundle);

In a client context, you can load the schema definitions using MedplumClient:

import { MedplumClient } from '@medplum/core';

const medplum = new MedplumClient();
await medplum.requestSchema('Patient');

Parameters

NameTypeDescription
resourceTypestringThe candidate resource type string.

Returns

void

True if the resource type is a valid FHIR resource type.

Defined in

packages/core/src/schema.ts:128


validateResource

validateResource<T>(resource): void

Validates a candidate FHIR resource object. On success, silently returns void. On failure, throws an OperationOutcomeError with issues for each violation.

validateResource({ resourceType: 'Patient' }); // nothing
validateResource({ resourceType: 'XYZ' }); // throws OperationOutcomeError

Note that this depends on globalSchema, which is populated by the StructureDefinition loader.

In a server context, you can load all schema definitions:

import { indexStructureDefinitionBundle } from '@medplum/core';
import { readJson } from '@medplum/definitions';
import { Bundle } from '@medplum/fhirtypes';

indexStructureDefinitionBundle(readJson('fhir/r4/profiles-resources.json') as Bundle);

In a client context, you can load the schema definitions using MedplumClient:

import { MedplumClient } from '@medplum/core';

const medplum = new MedplumClient();
await medplum.requestSchema('Patient');

Type parameters

NameType
Textends Resource

Parameters

NameType
resourceT

Returns

void

True if the resource type is a valid FHIR resource type.

Defined in

packages/core/src/schema.ts:171


checkForNull

checkForNull(value, path, issues): void

Recursively checks for null values in an object.

Note that "null" is a special value in JSON that is not allowed in FHIR.

Parameters

NameTypeDescription
valueunknownInput value of any type.
pathstringPath string to the value for OperationOutcome.
issuesOperationOutcomeIssue[]Output list of issues.

Returns

void

Defined in

packages/core/src/schema.ts:447


createStructureIssue

createStructureIssue(expression, details): OperationOutcomeIssue

Parameters

NameType
expressionstring
detailsstring

Returns

OperationOutcomeIssue

Defined in

packages/core/src/schema.ts:473


getSearchParameterDetails

getSearchParameterDetails(resourceType, searchParam): SearchParameterDetails

Returns the type details of a SearchParameter.

The SearchParameter resource has a "type" parameter, but that is missing some critical information.

For example: 1) The "date" type includes "date", "datetime", and "period". 2) The "token" type includes enums and booleans. 3) Arrays/multiple values are not reflected at all.

Parameters

NameTypeDescription
resourceTypestringThe root resource type.
searchParamSearchParameterThe search parameter.

Returns

SearchParameterDetails

The search parameter type details.

Defined in

packages/core/src/search/details.ts:38


getExpressionForResourceType

getExpressionForResourceType(resourceType, expression): string | undefined

Parameters

NameType
resourceTypestring
expressionstring

Returns

string | undefined

Defined in

packages/core/src/search/details.ts:145


matchesSearchRequest

matchesSearchRequest(resource, searchRequest): boolean

Determines if the resource matches the search request.

Parameters

NameTypeDescription
resourceResourceThe resource that was created or updated.
searchRequestSearchRequest<Resource>The subscription criteria as a search request.

Returns

boolean

True if the resource satisfies the search request.

Defined in

packages/core/src/search/match.ts:13


parseSearchRequest

parseSearchRequest<T>(resourceType, query): SearchRequest<T>

Parses a search URL into a search request.

Type parameters

NameType
Textends Resource = Resource

Parameters

NameTypeDescription
resourceTypeT["resourceType"]The FHIR resource type.
queryRecord<string, undefined | string | string[]>The collection of query string parameters.

Returns

SearchRequest<T>

A parsed SearchRequest.

Defined in

packages/core/src/search/search.ts:115


parseSearchUrl

parseSearchUrl<T>(url): SearchRequest<T>

Parses a search URL into a search request.

Type parameters

NameType
Textends Resource = Resource

Parameters

NameTypeDescription
urlURLThe search URL.

Returns

SearchRequest<T>

A parsed SearchRequest.

Defined in

packages/core/src/search/search.ts:137


parseSearchDefinition

parseSearchDefinition<T>(url): SearchRequest<T>

Parses a URL string into a SearchRequest.

Type parameters

NameType
Textends Resource = Resource

Parameters

NameTypeDescription
urlstringThe URL to parse.

Returns

SearchRequest<T>

Parsed search definition.

Defined in

packages/core/src/search/search.ts:147


formatSearchQuery

formatSearchQuery(definition): string

Formats a search definition object into a query string. Note: The return value does not include the resource type.

Parameters

NameTypeDescription
definitionSearchRequest<Resource>The search definition.

Returns

string

Formatted URL.

Defined in

packages/core/src/search/search.ts:354


indexStructureDefinitionBundle

indexStructureDefinitionBundle(bundle): void

Indexes a bundle of StructureDefinitions for faster lookup.

See

IndexedStructureDefinition for more details on indexed StructureDefinitions.

Parameters

NameTypeDescription
bundleBundle<Resource>A FHIR bundle StructureDefinition resources.

Returns

void

Defined in

packages/core/src/types.ts:140


indexStructureDefinition

indexStructureDefinition(structureDefinition): void

Indexes a StructureDefinition for fast lookup.

See

IndexedStructureDefinition for more details on indexed StructureDefinitions.

Parameters

NameTypeDescription
structureDefinitionStructureDefinitionThe original StructureDefinition.

Returns

void

Defined in

packages/core/src/types.ts:154


indexSearchParameterBundle

indexSearchParameterBundle(bundle): void

Indexes a bundle of SearchParameter resources for faster lookup.

See

IndexedStructureDefinition for more details on indexed StructureDefinitions.

Parameters

NameTypeDescription
bundleBundle<SearchParameter>A FHIR bundle SearchParameter resources.

Returns

void

Defined in

packages/core/src/types.ts:236


indexSearchParameter

indexSearchParameter(searchParam): void

Indexes a SearchParameter resource for fast lookup. Indexes by SearchParameter.code, which is the query string parameter name.

See

IndexedStructureDefinition for more details on indexed StructureDefinitions.

Parameters

NameTypeDescription
searchParamSearchParameterThe SearchParameter resource.

Returns

void

Defined in

packages/core/src/types.ts:251


getElementDefinitionTypeName

getElementDefinitionTypeName(elementDefinition): string

Returns the type name for an ElementDefinition.

Parameters

NameTypeDescription
elementDefinitionElementDefinitionThe element definition.

Returns

string

The Medplum type name.

Defined in

packages/core/src/types.ts:318


buildTypeName

buildTypeName(components): string

Parameters

NameType
componentsstring[]

Returns

string

Defined in

packages/core/src/types.ts:325


isResourceTypeSchema

isResourceTypeSchema(typeSchema): boolean

Returns true if the type schema is a non-abstract FHIR resource.

Parameters

NameTypeDescription
typeSchemaTypeSchemaThe type schema to check.

Returns

boolean

True if the type schema is a non-abstract FHIR resource.

Defined in

packages/core/src/types.ts:337


getResourceTypes

getResourceTypes(): ResourceType[]

Returns an array of all resource types. Note that this is based on globalSchema, and will only return resource types that are currently in memory.

Returns

ResourceType[]

An array of all resource types.

Defined in

packages/core/src/types.ts:352


getResourceTypeSchema

getResourceTypeSchema(resourceType): TypeSchema

Returns the type schema for the resource type.

Parameters

NameTypeDescription
resourceTypestringThe resource type.

Returns

TypeSchema

The type schema for the resource type.

Defined in

packages/core/src/types.ts:367


getSearchParameters

getSearchParameters(resourceType): Record<string, SearchParameter> | undefined

Returns the search parameters for the resource type indexed by search code.

Parameters

NameTypeDescription
resourceTypestringThe resource type.

Returns

Record<string, SearchParameter> | undefined

The search parameters for the resource type indexed by search code.

Defined in

packages/core/src/types.ts:376


getPropertyDisplayName

getPropertyDisplayName(path): string

Returns a human friendly display name for a FHIR element definition path.

Parameters

NameTypeDescription
pathstringThe FHIR element definition path.

Returns

string

The best guess of the display name.

Defined in

packages/core/src/types.ts:385


getElementDefinition

getElementDefinition(typeName, propertyName): ElementDefinition | undefined

Returns an element definition by type and property name. Handles content references.

Parameters

NameTypeDescription
typeNamestringThe type name.
propertyNamestringThe property name.

Returns

ElementDefinition | undefined

The element definition if found.

Defined in

packages/core/src/types.ts:422


isResource

isResource<T>(value): value is T

Typeguard to validate that an object is a FHIR resource

Type parameters

NameType
Textends Resource = Resource

Parameters

NameTypeDescription
valueundefined | null | string | T | Reference<T>The object to check

Returns

value is T

True if the input is of type 'object' and contains property 'resourceType'

Defined in

packages/core/src/types.ts:450


isReference

isReference<T>(value): value is Reference<T> & Object

Typeguard to validate that an object is a FHIR resource

Type parameters

NameType
Textends Resource

Parameters

NameTypeDescription
valueundefined | null | string | T | Reference<T>The object to check

Returns

value is Reference<T> & Object

True if the input is of type 'object' and contains property 'reference'

Defined in

packages/core/src/types.ts:461


createReference

createReference<T>(resource): Reference<T>

Creates a reference resource.

Type parameters

NameType
Textends Resource

Parameters

NameTypeDescription
resourceTThe FHIR reesource.

Returns

Reference<T>

A reference resource.

Defined in

packages/core/src/utils.ts:40


getReferenceString

getReferenceString(resource): string

Returns a reference string for a resource.

Parameters

NameTypeDescription
resourceResourceThe FHIR resource.

Returns

string

A reference string of the form resourceType/id.

Defined in

packages/core/src/utils.ts:51


resolveId

resolveId(reference): string | undefined

Returns the ID portion of a reference.

Parameters

NameTypeDescription
referenceundefined | Reference<Resource>A FHIR reference.

Returns

string | undefined

The ID portion of a reference.

Defined in

packages/core/src/utils.ts:60


isProfileResource

isProfileResource(resource): resource is ProfileResource

Returns true if the resource is a "ProfileResource".

Parameters

NameTypeDescription
resourceResourceThe FHIR resource.

Returns

resource is ProfileResource

True if the resource is a "ProfileResource".

Defined in

packages/core/src/utils.ts:69


getDisplayString

getDisplayString(resource): string

Returns a display string for the resource.

Parameters

NameTypeDescription
resourceResourceThe input resource.

Returns

string

Human friendly display string.

Defined in

packages/core/src/utils.ts:82


getImageSrc

getImageSrc(resource): string | undefined

Returns an image URL for the resource, if one is available.

Parameters

NameTypeDescription
resourceResourceThe input resource.

Returns

string | undefined

The image URL for the resource or undefined.

Defined in

packages/core/src/utils.ts:142


getDateProperty

getDateProperty(date): Date | undefined

Returns a Date property as a Date. When working with JSON objects, Dates are often serialized as ISO-8601 strings. When that happens, we need to safely convert to a proper Date object.

Parameters

NameTypeDescription
dateundefined | stringThe date property value, which could be a string or a Date object.

Returns

Date | undefined

A Date object.

Defined in

packages/core/src/utils.ts:180


calculateAge

calculateAge(birthDateStr, endDateStr?): Object

Calculates the age in years from the birth date.

Parameters

NameTypeDescription
birthDateStrstringThe birth date or start date in ISO-8601 format YYYY-MM-DD.
endDateStr?stringOptional end date in ISO-8601 format YYYY-MM-DD. Default value is today.

Returns

Object

The age in years, months, and days.

NameType
yearsnumber
monthsnumber
daysnumber

Defined in

packages/core/src/utils.ts:190


calculateAgeString

calculateAgeString(birthDateStr, endDateStr?): string | undefined

Calculates the age string for display using the age appropriate units. If the age is greater than or equal to 2 years, then the age is displayed in years. If the age is greater than or equal to 1 month, then the age is displayed in months. Otherwise, the age is displayed in days.

Parameters

NameTypeDescription
birthDateStrstringThe birth date or start date in ISO-8601 format YYYY-MM-DD.
endDateStr?stringOptional end date in ISO-8601 format YYYY-MM-DD. Default value is today.

Returns

string | undefined

The age string.

Defined in

packages/core/src/utils.ts:232


getQuestionnaireAnswers

getQuestionnaireAnswers(response): Record<string, QuestionnaireResponseItemAnswer>

Returns all questionnaire answers as a map by link ID.

Parameters

NameTypeDescription
responseQuestionnaireResponseThe questionnaire response resource.

Returns

Record<string, QuestionnaireResponseItemAnswer>

Questionnaire answers mapped by link ID.

Defined in

packages/core/src/utils.ts:248


getIdentifier

getIdentifier(resource, system): string | undefined

Returns the resource identifier for the given system.

If multiple identifiers exist with the same system, the first one is returned.

If the system is not found, then returns undefined.

Parameters

NameTypeDescription
resourceResourceThe resource to check.
systemstringThe identifier system.

Returns

string | undefined

The identifier value if found; otherwise undefined.

Defined in

packages/core/src/utils.ts:286


getExtensionValue

getExtensionValue(resource, ...urls): string | undefined

Returns an extension value by extension URLs.

Parameters

NameTypeDescription
resourceanyThe base resource.
...urlsstring[]Array of extension URLs. Each entry represents a nested extension.

Returns

string | undefined

The extension value if found; undefined otherwise.

Defined in

packages/core/src/utils.ts:306


getExtension

getExtension(resource, ...urls): Extension | undefined

Returns an extension by extension URLs.

Parameters

NameTypeDescription
resourceanyThe base resource.
...urlsstring[]Array of extension URLs. Each entry represents a nested extension.

Returns

Extension | undefined

The extension object if found; undefined otherwise.

Defined in

packages/core/src/utils.ts:324


stringify

stringify(value, pretty?): string

FHIR JSON stringify. Removes properties with empty string values. Removes objects with zero properties. See: https://www.hl7.org/fhir/json.html

Parameters

NameTypeDescription
valueanyThe input value.
pretty?booleanOptional flag to pretty-print the JSON.

Returns

string

The resulting JSON string.

Defined in

packages/core/src/utils.ts:345


isEmpty

isEmpty(v): boolean

Returns true if the value is empty (null, undefined, empty string, or empty object).

Parameters

NameTypeDescription
vanyAny value.

Returns

boolean

True if the value is an empty string or an empty object.

Defined in

packages/core/src/utils.ts:374


deepEquals

deepEquals(object1, object2, path?): boolean

Resource equality. Ignores meta.versionId and meta.lastUpdated.

Parameters

NameTypeDescription
object1unknownThe first object.
object2unknownThe second object.
path?string-

Returns

boolean

True if the objects are equal.

Defined in

packages/core/src/utils.ts:389


deepClone

deepClone<T>(input): T

Creates a deep clone of the input value.

Limitations:

  • Only supports JSON primitives and arrays.
  • Does not support Functions, lambdas, etc.
  • Does not support circular references.

See: https://web.dev/structured-clone/ See: https://stackoverflow.com/questions/40488190/how-is-structured-clone-algorithm-different-from-deep-copy

Type parameters

Name
T

Parameters

NameTypeDescription
inputTThe input to clone.

Returns

T

A deep clone of the input.

Defined in

packages/core/src/utils.ts:463


isUUID

isUUID(input): boolean

Returns true if the input string is a UUID.

Parameters

NameTypeDescription
inputstringThe input string.

Returns

boolean

True if the input string matches the UUID format.

Defined in

packages/core/src/utils.ts:472


isObject

isObject(obj): obj is Record<string, unknown>

Returns true if the input is an object.

Parameters

NameType
objunknown

Returns

obj is Record<string, unknown>

True if the input is a non-null non-undefined object.

Defined in

packages/core/src/utils.ts:481


isStringArray

isStringArray(arr): arr is string[]

Returns true if the input array is an array of strings.

Parameters

NameTypeDescription
arrany[]Input array.

Returns

arr is string[]

True if the input array is an array of strings.

Defined in

packages/core/src/utils.ts:490


arrayBufferToHex

arrayBufferToHex(arrayBuffer): string

Converts an ArrayBuffer to hex string. See: https://stackoverflow.com/a/55200387

Parameters

NameTypeDescription
arrayBufferArrayBufferThe input array buffer.

Returns

string

The resulting hex string.

Defined in

packages/core/src/utils.ts:507


arrayBufferToBase64

arrayBufferToBase64(arrayBuffer): string

Converts an ArrayBuffer to a base-64 encoded string.

Parameters

NameTypeDescription
arrayBufferArrayBufferThe input array buffer.

Returns

string

The base-64 encoded string.

Defined in

packages/core/src/utils.ts:521


capitalize

capitalize(word): string

Parameters

NameType
wordstring

Returns

string

Defined in

packages/core/src/utils.ts:530


isLowerCase

isLowerCase(c): boolean

Parameters

NameType
cstring

Returns

boolean

Defined in

packages/core/src/utils.ts:534


getCodeBySystem

getCodeBySystem(concept, system): string | undefined

Tries to find a code string for a given system within a given codeable concept.

Parameters

NameTypeDescription
conceptCodeableConceptThe codeable concept.
systemstringThe system string.

Returns

string | undefined

The code if found; otherwise undefined.

Defined in

packages/core/src/utils.ts:544


setCodeBySystem

setCodeBySystem(concept, system, code): void

Sets a code for a given system within a given codeable concept.

Parameters

NameTypeDescription
conceptCodeableConceptThe codeable concept.
systemstringThe system string.
codestringThe code value.

Returns

void

Defined in

packages/core/src/utils.ts:554


findObservationInterval

findObservationInterval(definition, patient, value, category?): ObservationDefinitionQualifiedInterval | undefined

Tries to find an observation interval for the given patient and value.

Parameters

NameTypeDescription
definitionObservationDefinitionThe observation definition.
patientPatientThe patient.
valuenumberThe observation value.
category?"reference" | "critical" | "absolute"-

Returns

ObservationDefinitionQualifiedInterval | undefined

The observation interval if found; otherwise undefined.

Defined in

packages/core/src/utils.ts:573


findObservationReferenceRange

findObservationReferenceRange(definition, patient, names): ObservationDefinitionQualifiedInterval | undefined

Tries to find an observation reference range for the given patient and condition names.

Parameters

NameTypeDescription
definitionObservationDefinitionThe observation definition.
patientPatientThe patient.
namesstring[]The condition names.

Returns

ObservationDefinitionQualifiedInterval | undefined

The observation interval if found; otherwise undefined.

Defined in

packages/core/src/utils.ts:594


matchesRange

matchesRange(value, range, precision?): boolean

Returns true if the value is in the range accounting for precision.

Parameters

NameTypeDescription
valuenumberThe numeric value.
rangeRangeThe numeric range.
precision?numberOptional precision in number of digits.

Returns

boolean

True if the value is within the range.

Defined in

packages/core/src/utils.ts:659


preciseRound

preciseRound(a, precision): number

Returns the input number rounded to the specified number of digits.

Parameters

NameTypeDescription
anumberThe input number.
precisionnumberThe precision in number of digits.

Returns

number

The number rounded to the specified number of digits.

Defined in

packages/core/src/utils.ts:672


preciseEquals

preciseEquals(a, b, precision?): boolean

Returns true if the two numbers are equal to the given precision.

Parameters

NameTypeDescription
anumberThe first number.
bnumberThe second number.
precision?numberOptional precision in number of digits.

Returns

boolean

True if the two numbers are equal to the given precision.

Defined in

packages/core/src/utils.ts:683


preciseLessThan

preciseLessThan(a, b, precision?): boolean

Returns true if the first number is less than the second number to the given precision.

Parameters

NameTypeDescription
anumberThe first number.
bnumberThe second number.
precision?numberOptional precision in number of digits.

Returns

boolean

True if the first number is less than the second number to the given precision.

Defined in

packages/core/src/utils.ts:694


preciseGreaterThan

preciseGreaterThan(a, b, precision?): boolean

Returns true if the first number is greater than the second number to the given precision.

Parameters

NameTypeDescription
anumberThe first number.
bnumberThe second number.
precision?numberOptional precision in number of digits.

Returns

boolean

True if the first number is greater than the second number to the given precision.

Defined in

packages/core/src/utils.ts:705


preciseLessThanOrEquals

preciseLessThanOrEquals(a, b, precision?): boolean

Returns true if the first number is less than or equal to the second number to the given precision.

Parameters

NameTypeDescription
anumberThe first number.
bnumberThe second number.
precision?numberOptional precision in number of digits.

Returns

boolean

True if the first number is less than or equal to the second number to the given precision.

Defined in

packages/core/src/utils.ts:716


preciseGreaterThanOrEquals

preciseGreaterThanOrEquals(a, b, precision?): boolean

Returns true if the first number is greater than or equal to the second number to the given precision.

Parameters

NameTypeDescription
anumberThe first number.
bnumberThe second number.
precision?numberOptional precision in number of digits.

Returns

boolean

True if the first number is greater than or equal to the second number to the given precision.

Defined in

packages/core/src/utils.ts:727