@medplum/core 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +5 -5
- package/dist/cjs/index.cjs.map +4 -4
- package/dist/cjs/index.d.ts +296 -12
- package/dist/esm/index.d.ts +296 -12
- package/dist/esm/index.mjs +5 -5
- package/dist/esm/index.mjs.map +4 -4
- package/package.json +1 -1
package/dist/esm/index.d.ts
CHANGED
|
@@ -142,6 +142,33 @@ export declare class AndAtom extends BooleanInfixOperatorAtom {
|
|
|
142
142
|
|
|
143
143
|
export declare function append<T>(array: T[] | undefined, value: T): T[];
|
|
144
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Adds default values to `existingValue` for the given `key` and its children. If `key` is undefined,
|
|
147
|
+
* default values are added to all elements in `elements`. Default values consist of all fixed and pattern
|
|
148
|
+
* values defined in the relevant elements.
|
|
149
|
+
* @param existingValue - The
|
|
150
|
+
* @param elements - The elements to which default values should be added.
|
|
151
|
+
* @param key - (optional) The key of the element(s) for which default values should be added. Elements with nested
|
|
152
|
+
* keys are also included. If undefined, default values for all elements are added.
|
|
153
|
+
* @returns `existingValue` with default values added
|
|
154
|
+
*/
|
|
155
|
+
export declare function applyDefaultValuesToElement(existingValue: object, elements: Record<string, InternalSchemaElement>, key?: string): object;
|
|
156
|
+
|
|
157
|
+
export declare function applyDefaultValuesToElementWithVisitor(existingValue: any, path: string, element: InternalSchemaElement, elements: Record<string, InternalSchemaElement>, schema: InternalTypeSchema): any;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Adds default values to `resource` based on the supplied `schema`. Default values includes all required fixed and pattern
|
|
161
|
+
* values specified on elements in the schema. If an element has a fixed/pattern value but is optional, i.e.
|
|
162
|
+
* `element.min === 0`, the default value is not added.
|
|
163
|
+
*
|
|
164
|
+
* @param resource - The resource to which default values should be added.
|
|
165
|
+
* @param schema - The schema to use for adding default values.
|
|
166
|
+
* @returns A clone of `resource` with default values added.
|
|
167
|
+
*/
|
|
168
|
+
export declare function applyDefaultValuesToResource(resource: Resource, schema: InternalTypeSchema): Resource;
|
|
169
|
+
|
|
170
|
+
export declare function applyFixedOrPatternValue(inputValue: any, key: string, element: InternalSchemaElement, elements: Record<string, InternalSchemaElement>): any;
|
|
171
|
+
|
|
145
172
|
export declare class ArithemticOperatorAtom extends BooleanInfixOperatorAtom {
|
|
146
173
|
readonly impl: (x: number, y: number) => number | boolean;
|
|
147
174
|
constructor(operator: string, left: Atom, right: Atom, impl: (x: number, y: number) => number | boolean);
|
|
@@ -237,8 +264,25 @@ export declare interface BotEvent<T = Resource | Hl7Message | string | Record<st
|
|
|
237
264
|
readonly contentType: string;
|
|
238
265
|
readonly input: T;
|
|
239
266
|
readonly secrets: Record<string, ProjectSecret>;
|
|
267
|
+
readonly traceId?: string;
|
|
240
268
|
}
|
|
241
269
|
|
|
270
|
+
export declare function buildElementsContext({ parentContext, path, elements, profileUrl, debugMode, }: {
|
|
271
|
+
/** The most recent `ElementsContextType` in which this context is being built. */
|
|
272
|
+
parentContext: ElementsContextType | undefined;
|
|
273
|
+
/** The FHIR path from the root resource to which the keys of `elements` are relative. */
|
|
274
|
+
path: string;
|
|
275
|
+
/**
|
|
276
|
+
* The mapping of keys to `InternalSchemaElement` at the current `path` relative to the
|
|
277
|
+
* root resource. This should be either `InternalTypeSchema.elements` or `SliceDefinition.elements`.
|
|
278
|
+
*/
|
|
279
|
+
elements: Record<string, InternalSchemaElement>;
|
|
280
|
+
/** The URL, if any, of the resource profile or extension from which the `elements` collection originated. */
|
|
281
|
+
profileUrl?: string;
|
|
282
|
+
/** Whether debug logging is enabled */
|
|
283
|
+
debugMode?: boolean;
|
|
284
|
+
}): ElementsContextType | undefined;
|
|
285
|
+
|
|
242
286
|
export declare function buildTypeName(components: string[]): string;
|
|
243
287
|
|
|
244
288
|
/**
|
|
@@ -395,6 +439,7 @@ export declare const ContentType: {
|
|
|
395
439
|
readonly SVG: "image/svg+xml";
|
|
396
440
|
readonly TEXT: "text/plain";
|
|
397
441
|
readonly TYPESCRIPT: "text/typescript";
|
|
442
|
+
readonly PING: "x-application/ping";
|
|
398
443
|
};
|
|
399
444
|
|
|
400
445
|
/**
|
|
@@ -519,6 +564,30 @@ export declare class DotAtom extends InfixOperatorAtom {
|
|
|
519
564
|
toString(): string;
|
|
520
565
|
}
|
|
521
566
|
|
|
567
|
+
/**
|
|
568
|
+
* Information for the set of elements at a given path within in a resource. This mostly exists to
|
|
569
|
+
* normalize access to elements regardless of whether they are from a profile, extension, or slice.
|
|
570
|
+
*/
|
|
571
|
+
export declare type ElementsContextType = {
|
|
572
|
+
/** The FHIR path from the root resource to which the keys of `elements` are relative. */
|
|
573
|
+
path: string;
|
|
574
|
+
/**
|
|
575
|
+
* The mapping of keys to `InternalSchemaElement` at the current `path` relative to the
|
|
576
|
+
* root resource. `elements` originate from either `InternalTypeSchema.elements` or
|
|
577
|
+
* `SliceDefinition.elements` when the elements context is created within a slice.
|
|
578
|
+
*/
|
|
579
|
+
elements: Record<string, InternalSchemaElement>;
|
|
580
|
+
/**
|
|
581
|
+
* Similar mapping as `elements`, but with keys being the full path from the root resource rather
|
|
582
|
+
* than relative to `path`, in other words, the keys of the Record are `${path}.${key}`.
|
|
583
|
+
*/
|
|
584
|
+
elementsByPath: Record<string, InternalSchemaElement>;
|
|
585
|
+
/** The URL, if any, of the resource profile or extension from which the `elements` collection originated. */
|
|
586
|
+
profileUrl: string | undefined;
|
|
587
|
+
/** Whether debug logging is enabled */
|
|
588
|
+
debugMode: boolean;
|
|
589
|
+
};
|
|
590
|
+
|
|
522
591
|
export declare interface ElementType {
|
|
523
592
|
code: string;
|
|
524
593
|
targetProfile?: string[];
|
|
@@ -1186,6 +1255,8 @@ export declare function getDataType(type: string, profileUrl?: string): Internal
|
|
|
1186
1255
|
*/
|
|
1187
1256
|
export declare function getDateProperty(date: string | undefined): Date | undefined;
|
|
1188
1257
|
|
|
1258
|
+
export declare function getDefaultValuesForNewSliceEntry(key: string, slice: SliceDefinition, slicing: SlicingRules, schema: InternalTypeSchema): Resource;
|
|
1259
|
+
|
|
1189
1260
|
/**
|
|
1190
1261
|
* Returns a display string for the resource.
|
|
1191
1262
|
* @param resource - The input resource.
|
|
@@ -1197,9 +1268,10 @@ export declare function getDisplayString(resource: Resource): string;
|
|
|
1197
1268
|
* Returns an element definition by type and property name.
|
|
1198
1269
|
* @param typeName - The type name.
|
|
1199
1270
|
* @param propertyName - The property name.
|
|
1271
|
+
* @param profileUrl - (optional) The URL of the current resource profile
|
|
1200
1272
|
* @returns The element definition if found.
|
|
1201
1273
|
*/
|
|
1202
|
-
export declare function getElementDefinition(typeName: string, propertyName: string): InternalSchemaElement | undefined;
|
|
1274
|
+
export declare function getElementDefinition(typeName: string, propertyName: string, profileUrl?: string): InternalSchemaElement | undefined;
|
|
1203
1275
|
|
|
1204
1276
|
/**
|
|
1205
1277
|
* Returns an element definition from mapping of elements by property name.
|
|
@@ -1255,7 +1327,17 @@ export declare function getIdentifier(resource: Resource, system: string): strin
|
|
|
1255
1327
|
*/
|
|
1256
1328
|
export declare function getImageSrc(resource: Resource): string | undefined;
|
|
1257
1329
|
|
|
1258
|
-
export declare function getNestedProperty(value: TypedValue, key: string
|
|
1330
|
+
export declare function getNestedProperty(value: TypedValue, key: string, options?: {
|
|
1331
|
+
profileUrl?: string;
|
|
1332
|
+
}): (TypedValue | TypedValue[] | undefined)[];
|
|
1333
|
+
|
|
1334
|
+
/**
|
|
1335
|
+
* Returns the difference between two paths which is often suitable to use as a key in a `Record<string, InternalSchemaElement>`
|
|
1336
|
+
* @param parentPath - The parent path that will be removed from `path`.
|
|
1337
|
+
* @param path - The element path that should be a child of `parentPath`.
|
|
1338
|
+
* @returns - The difference between `path` and `parentPath` or `undefined` if `path` is not a child of `parentPath`.
|
|
1339
|
+
*/
|
|
1340
|
+
export declare function getPathDifference(parentPath: string, path: string): string | undefined;
|
|
1259
1341
|
|
|
1260
1342
|
/**
|
|
1261
1343
|
* Returns a human friendly display name for a FHIR element definition path.
|
|
@@ -1338,18 +1420,28 @@ export declare function getStatus(outcome: OperationOutcome): number;
|
|
|
1338
1420
|
* This function returns the value and the type.
|
|
1339
1421
|
* @param input - The base context (FHIR resource or backbone element).
|
|
1340
1422
|
* @param path - The property path.
|
|
1423
|
+
* @param options - (optional) Additional options
|
|
1341
1424
|
* @returns The value of the property and the property type.
|
|
1342
1425
|
*/
|
|
1343
|
-
export declare function getTypedPropertyValue(input: TypedValue, path: string): TypedValue[] | TypedValue | undefined;
|
|
1426
|
+
export declare function getTypedPropertyValue(input: TypedValue, path: string, options?: GetTypedPropertyValueOptions): TypedValue[] | TypedValue | undefined;
|
|
1427
|
+
|
|
1428
|
+
export declare interface GetTypedPropertyValueOptions {
|
|
1429
|
+
/** (optional) URL of a resource profile for type resolution */
|
|
1430
|
+
profileUrl?: string;
|
|
1431
|
+
}
|
|
1344
1432
|
|
|
1345
1433
|
/**
|
|
1346
1434
|
* Returns the value of the property and the property type using a type schema.
|
|
1347
|
-
* @param
|
|
1435
|
+
* @param typedValue - The base context (FHIR resource or backbone element).
|
|
1348
1436
|
* @param path - The property path.
|
|
1349
1437
|
* @param element - The property element definition.
|
|
1350
1438
|
* @returns The value of the property and the property type.
|
|
1351
1439
|
*/
|
|
1352
|
-
export declare function getTypedPropertyValueWithSchema(
|
|
1440
|
+
export declare function getTypedPropertyValueWithSchema(typedValue: TypedValue, path: string, element: InternalSchemaElement): TypedValue[] | TypedValue | undefined;
|
|
1441
|
+
|
|
1442
|
+
export declare function getValueSliceName(value: any, slices: SliceDefinitionWithTypes[], discriminators: SliceDiscriminator[], profileUrl: string | undefined): string | undefined;
|
|
1443
|
+
|
|
1444
|
+
export declare function getWebSocketUrl(path: string, baseUrl: URL | string): string;
|
|
1353
1445
|
|
|
1354
1446
|
/**
|
|
1355
1447
|
* Global schema singleton.
|
|
@@ -1772,6 +1864,8 @@ export declare class IsAtom extends BooleanInfixOperatorAtom {
|
|
|
1772
1864
|
|
|
1773
1865
|
export declare function isCompletedSubscriptionRequest(subscriptionRequest: SubscriptionRequest | PendingSubscriptionRequest): subscriptionRequest is SubscriptionRequest;
|
|
1774
1866
|
|
|
1867
|
+
export declare function isComplexTypeCode(code: string): boolean;
|
|
1868
|
+
|
|
1775
1869
|
export declare function isContextVersionRequired(event: string): event is FhircastEventVersionRequired;
|
|
1776
1870
|
|
|
1777
1871
|
export declare function isCreated(outcome: OperationOutcome): boolean;
|
|
@@ -1911,6 +2005,8 @@ export declare function isResourceType(resourceType: string): boolean;
|
|
|
1911
2005
|
*/
|
|
1912
2006
|
export declare function isResourceTypeSchema(typeSchema: InternalTypeSchema): boolean;
|
|
1913
2007
|
|
|
2008
|
+
export declare function isSliceDefinitionWithTypes(slice: SliceDefinition): slice is SliceDefinitionWithTypes;
|
|
2009
|
+
|
|
1914
2010
|
/**
|
|
1915
2011
|
* Returns true if the input array is an array of strings.
|
|
1916
2012
|
* @param arr - Input array.
|
|
@@ -2202,6 +2298,7 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
2202
2298
|
private readonly onUnauthenticated?;
|
|
2203
2299
|
private readonly autoBatchTime;
|
|
2204
2300
|
private readonly autoBatchQueue;
|
|
2301
|
+
private subscriptionManager?;
|
|
2205
2302
|
private medplumServer?;
|
|
2206
2303
|
private clientId?;
|
|
2207
2304
|
private clientSecret?;
|
|
@@ -2647,7 +2744,7 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
2647
2744
|
* @param resourceType - The FHIR resource type.
|
|
2648
2745
|
* @param id - The resource ID.
|
|
2649
2746
|
* @param options - Optional fetch options.
|
|
2650
|
-
* @returns The resource if available
|
|
2747
|
+
* @returns The resource if available.
|
|
2651
2748
|
*/
|
|
2652
2749
|
readResource<K extends ResourceType>(resourceType: K, id: string, options?: RequestInit): ReadablePromise<ExtractResource<K>>;
|
|
2653
2750
|
/**
|
|
@@ -2668,7 +2765,7 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
2668
2765
|
* @category Read
|
|
2669
2766
|
* @param reference - The FHIR reference object.
|
|
2670
2767
|
* @param options - Optional fetch options.
|
|
2671
|
-
* @returns The resource if available
|
|
2768
|
+
* @returns The resource if available.
|
|
2672
2769
|
*/
|
|
2673
2770
|
readReference<T extends Resource>(reference: Reference<T>, options?: RequestInit): ReadablePromise<T>;
|
|
2674
2771
|
/**
|
|
@@ -2684,9 +2781,10 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
2684
2781
|
* If the schema is already cached, the promise is resolved immediately.
|
|
2685
2782
|
* @category Schema
|
|
2686
2783
|
* @param profileUrl - The FHIR URL of the profile
|
|
2687
|
-
* @
|
|
2784
|
+
* @param options - (optional) Additional options
|
|
2785
|
+
* @returns Promise with an array of URLs of the profile(s) loaded.
|
|
2688
2786
|
*/
|
|
2689
|
-
requestProfileSchema(profileUrl: string): Promise<
|
|
2787
|
+
requestProfileSchema(profileUrl: string, options?: RequestProfileSchemaOptions): Promise<string[]>;
|
|
2690
2788
|
/**
|
|
2691
2789
|
* Reads resource history by resource type and ID.
|
|
2692
2790
|
*
|
|
@@ -2725,7 +2823,7 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
2725
2823
|
* @param id - The resource ID.
|
|
2726
2824
|
* @param vid - The version ID.
|
|
2727
2825
|
* @param options - Optional fetch options.
|
|
2728
|
-
* @returns The resource if available
|
|
2826
|
+
* @returns The resource if available.
|
|
2729
2827
|
*/
|
|
2730
2828
|
readVersion<K extends ResourceType>(resourceType: K, id: string, vid: string, options?: RequestInit): ReadablePromise<ExtractResource<K>>;
|
|
2731
2829
|
/**
|
|
@@ -3168,7 +3266,7 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
3168
3266
|
* @param options - Optional fetch options.
|
|
3169
3267
|
* @returns Promise to the result. If waiting for response, the result is the response body. Otherwise, it is an operation outcome.
|
|
3170
3268
|
*/
|
|
3171
|
-
pushToAgent(agent: Agent | Reference<Agent>, destination: Device | Reference<Device
|
|
3269
|
+
pushToAgent(agent: Agent | Reference<Agent>, destination: Device | Reference<Device> | string, body: any, contentType?: string, waitForResponse?: boolean, options?: RequestInit): Promise<any>;
|
|
3172
3270
|
/**
|
|
3173
3271
|
* @category Authentication
|
|
3174
3272
|
* @returns The Login State
|
|
@@ -3322,10 +3420,11 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
3322
3420
|
* @param method - The HTTP method (GET, POST, etc).
|
|
3323
3421
|
* @param url - The target URL.
|
|
3324
3422
|
* @param options - Optional fetch request init options.
|
|
3423
|
+
* @param state - Optional request state.
|
|
3325
3424
|
* @returns The JSON content body if available.
|
|
3326
3425
|
*/
|
|
3327
3426
|
private request;
|
|
3328
|
-
private
|
|
3427
|
+
private parseBody;
|
|
3329
3428
|
private fetchWithRetry;
|
|
3330
3429
|
private logRequest;
|
|
3331
3430
|
private logResponse;
|
|
@@ -3535,6 +3634,70 @@ export declare class MedplumClient extends EventTarget_2 {
|
|
|
3535
3634
|
*/
|
|
3536
3635
|
private setupStorageListener;
|
|
3537
3636
|
private retryCatch;
|
|
3637
|
+
/**
|
|
3638
|
+
* Gets the `SubscriptionManager` for WebSocket subscriptions.
|
|
3639
|
+
*
|
|
3640
|
+
* @category Subscriptions
|
|
3641
|
+
* @returns the `SubscriptionManager` for this client.
|
|
3642
|
+
*/
|
|
3643
|
+
getSubscriptionManager(): SubscriptionManager;
|
|
3644
|
+
/**
|
|
3645
|
+
* Subscribes to a given criteria, listening to notifications over WebSockets.
|
|
3646
|
+
*
|
|
3647
|
+
* This uses Medplum's `WebSocket Subscriptions` under the hood.
|
|
3648
|
+
*
|
|
3649
|
+
* A `SubscriptionEmitter` is returned from this function, which can be used to listen for updates to resources described by the given criteria.
|
|
3650
|
+
*
|
|
3651
|
+
* When subscribing to the same criteria multiple times, the same `SubscriptionEmitter` will be returned, and a reference count will be incremented.
|
|
3652
|
+
*
|
|
3653
|
+
* -----
|
|
3654
|
+
* @example
|
|
3655
|
+
* ```ts
|
|
3656
|
+
* const emitter = medplum.subscribeToCriteria('Communication');
|
|
3657
|
+
*
|
|
3658
|
+
* emitter.addEventListener('message', (bundle: Bundle) => {
|
|
3659
|
+
* // Called when a `Communication` resource is created or modified
|
|
3660
|
+
* console.log(bundle?.entry?.[1]?.resource); // Logs the `Communication` resource that was updated
|
|
3661
|
+
* });
|
|
3662
|
+
* ```
|
|
3663
|
+
*
|
|
3664
|
+
* @category Subscriptions
|
|
3665
|
+
* @param criteria - The criteria to subscribe to.
|
|
3666
|
+
* @returns a `SubscriptionEmitter` that emits `Bundle` resources containing changes to resources based on the given criteria.
|
|
3667
|
+
*/
|
|
3668
|
+
subscribeToCriteria(criteria: string): SubscriptionEmitter;
|
|
3669
|
+
/**
|
|
3670
|
+
* Unsubscribes from the given criteria.
|
|
3671
|
+
*
|
|
3672
|
+
* When called the same amount of times as proceeding calls to `subscribeToCriteria` on a given `criteria`,
|
|
3673
|
+
* the criteria is fully removed from the `SubscriptionManager`.
|
|
3674
|
+
*
|
|
3675
|
+
* @category Subscriptions
|
|
3676
|
+
* @param criteria - The criteria to unsubscribe from.
|
|
3677
|
+
*/
|
|
3678
|
+
unsubscribeFromCriteria(criteria: string): void;
|
|
3679
|
+
/**
|
|
3680
|
+
* Get the master `SubscriptionEmitter` for the `SubscriptionManager`.
|
|
3681
|
+
*
|
|
3682
|
+
* The master `SubscriptionEmitter` gets messages for all subscribed `criteria` as well as WebSocket errors, `connect` and `disconnect` events, and the `close` event.
|
|
3683
|
+
*
|
|
3684
|
+
* It can also be used to listen for `heartbeat` messages.
|
|
3685
|
+
*
|
|
3686
|
+
*------
|
|
3687
|
+
* @example
|
|
3688
|
+
* ### Listening for `heartbeat`:
|
|
3689
|
+
* ```ts
|
|
3690
|
+
* const masterEmitter = medplum.getMasterSubscriptionEmitter();
|
|
3691
|
+
*
|
|
3692
|
+
* masterEmitter.addEventListener('heartbeat', (bundle: Bundle<SubscriptionStatus>) => {
|
|
3693
|
+
* console.log(bundle?.entry?.[0]?.resource); // A `SubscriptionStatus` of type `heartbeat`
|
|
3694
|
+
* });
|
|
3695
|
+
*
|
|
3696
|
+
* ```
|
|
3697
|
+
* @category Subscriptions
|
|
3698
|
+
* @returns the master `SubscriptionEmitter` from the `SubscriptionManager`.
|
|
3699
|
+
*/
|
|
3700
|
+
getMasterSubscriptionEmitter(): SubscriptionEmitter;
|
|
3538
3701
|
}
|
|
3539
3702
|
|
|
3540
3703
|
/**
|
|
@@ -4474,6 +4637,11 @@ export declare function removeDuplicates(arr: TypedValue[]): TypedValue[];
|
|
|
4474
4637
|
*/
|
|
4475
4638
|
export declare function reorderBundle(bundle: Bundle): Bundle;
|
|
4476
4639
|
|
|
4640
|
+
export declare interface RequestProfileSchemaOptions {
|
|
4641
|
+
/** (optional) Whether to include nested profiles, e.g. from extensions. Defaults to false. */
|
|
4642
|
+
expandProfile?: boolean;
|
|
4643
|
+
}
|
|
4644
|
+
|
|
4477
4645
|
/**
|
|
4478
4646
|
* Returns the ID portion of a reference.
|
|
4479
4647
|
* @param input - A FHIR reference or resource.
|
|
@@ -4500,6 +4668,26 @@ export declare interface ResourceVisitor {
|
|
|
4500
4668
|
|
|
4501
4669
|
export declare type ResourceWithCode = Resource & Code;
|
|
4502
4670
|
|
|
4671
|
+
export declare class RobustWebSocket extends TypedEventTarget<RobustWebSocketEventMap> {
|
|
4672
|
+
private ws;
|
|
4673
|
+
private messageBuffer;
|
|
4674
|
+
bufferedAmount: number;
|
|
4675
|
+
extensions: string;
|
|
4676
|
+
constructor(url: string);
|
|
4677
|
+
get readyState(): number;
|
|
4678
|
+
close(): void;
|
|
4679
|
+
send(message: string): void;
|
|
4680
|
+
}
|
|
4681
|
+
|
|
4682
|
+
export declare type RobustWebSocketEventMap = {
|
|
4683
|
+
open: {
|
|
4684
|
+
type: 'open';
|
|
4685
|
+
};
|
|
4686
|
+
message: MessageEvent;
|
|
4687
|
+
error: Event;
|
|
4688
|
+
close: CloseEvent;
|
|
4689
|
+
};
|
|
4690
|
+
|
|
4503
4691
|
export declare const RXNORM = "http://www.nlm.nih.gov/research/umls/rxnorm";
|
|
4504
4692
|
|
|
4505
4693
|
/**
|
|
@@ -4543,6 +4731,8 @@ export declare interface SearchRequest<T extends Resource = Resource> {
|
|
|
4543
4731
|
include?: IncludeTarget[];
|
|
4544
4732
|
revInclude?: IncludeTarget[];
|
|
4545
4733
|
summary?: 'true' | 'text' | 'data';
|
|
4734
|
+
format?: string;
|
|
4735
|
+
pretty?: boolean;
|
|
4546
4736
|
}
|
|
4547
4737
|
|
|
4548
4738
|
/**
|
|
@@ -4599,8 +4789,14 @@ export declare interface SliceDefinition {
|
|
|
4599
4789
|
elements: Record<string, InternalSchemaElement>;
|
|
4600
4790
|
min: number;
|
|
4601
4791
|
max: number;
|
|
4792
|
+
binding?: ElementDefinitionBinding;
|
|
4602
4793
|
}
|
|
4603
4794
|
|
|
4795
|
+
export declare type SliceDefinitionWithTypes = SliceDefinition & {
|
|
4796
|
+
type: NonNullable<SliceDefinition['type']>;
|
|
4797
|
+
typeSchema?: InternalTypeSchema;
|
|
4798
|
+
};
|
|
4799
|
+
|
|
4604
4800
|
export declare interface SliceDiscriminator {
|
|
4605
4801
|
path: string;
|
|
4606
4802
|
type: string;
|
|
@@ -4620,6 +4816,15 @@ export declare interface SortRule {
|
|
|
4620
4816
|
descending?: boolean;
|
|
4621
4817
|
}
|
|
4622
4818
|
|
|
4819
|
+
/**
|
|
4820
|
+
* Splits a string into an array of strings using the specified delimiter.
|
|
4821
|
+
* Unlike the built-in split function, this function will split the string into a maximum of exactly n parts.
|
|
4822
|
+
* Trailing empty strings are included in the result.
|
|
4823
|
+
* @param str - The string to split.
|
|
4824
|
+
* @param delim - The delimiter.
|
|
4825
|
+
* @param n - The maximum number of parts to split the string into.
|
|
4826
|
+
* @returns The resulting array of strings.
|
|
4827
|
+
*/
|
|
4623
4828
|
export declare function splitN(str: string, delim: string, n: number): string[];
|
|
4624
4829
|
|
|
4625
4830
|
/**
|
|
@@ -4663,6 +4868,85 @@ export declare type StringMap = {
|
|
|
4663
4868
|
*/
|
|
4664
4869
|
export declare function structureMapTransform(structureMap: StructureMap, input: TypedValue[], loader?: (url: string) => StructureMap[]): TypedValue[];
|
|
4665
4870
|
|
|
4871
|
+
/**
|
|
4872
|
+
* An `EventTarget` that emits events when new subscription notifications come in over WebSockets.
|
|
4873
|
+
*
|
|
4874
|
+
* -----
|
|
4875
|
+
*
|
|
4876
|
+
* ### Events emitted:
|
|
4877
|
+
*
|
|
4878
|
+
* - `connect` - A new subscription is connected to the `SubscriptionManager` and `message` events for this subscription can be expected.
|
|
4879
|
+
* - `disconnect` - The specified subscription is no longer being monitored by the `SubscriptionManager`.
|
|
4880
|
+
* - `error` - An error has occurred.
|
|
4881
|
+
* - `message` - A message containing a notification `Bundle` has been received.
|
|
4882
|
+
* - `close` - The WebSocket has been closed.
|
|
4883
|
+
* - `heartbeat` - A `heartbeat` message has been received.
|
|
4884
|
+
*/
|
|
4885
|
+
export declare class SubscriptionEmitter extends TypedEventTarget<SubscriptionEventMap> {
|
|
4886
|
+
private criteria;
|
|
4887
|
+
constructor(...criteria: string[]);
|
|
4888
|
+
getCriteria(): Set<string>;
|
|
4889
|
+
/**
|
|
4890
|
+
* @internal
|
|
4891
|
+
* @param criteria - The criteria to add to this `SubscriptionEmitter`.
|
|
4892
|
+
*/
|
|
4893
|
+
_addCriteria(criteria: string): void;
|
|
4894
|
+
/**
|
|
4895
|
+
* @internal
|
|
4896
|
+
* @param criteria - The criteria to remove from this `SubscriptionEmitter`.
|
|
4897
|
+
*/
|
|
4898
|
+
_removeCriteria(criteria: string): void;
|
|
4899
|
+
}
|
|
4900
|
+
|
|
4901
|
+
export declare type SubscriptionEventMap = {
|
|
4902
|
+
connect: {
|
|
4903
|
+
type: 'connect';
|
|
4904
|
+
payload: {
|
|
4905
|
+
subscriptionId: string;
|
|
4906
|
+
};
|
|
4907
|
+
};
|
|
4908
|
+
disconnect: {
|
|
4909
|
+
type: 'disconnect';
|
|
4910
|
+
payload: {
|
|
4911
|
+
subscriptionId: string;
|
|
4912
|
+
};
|
|
4913
|
+
};
|
|
4914
|
+
error: {
|
|
4915
|
+
type: 'error';
|
|
4916
|
+
payload: Error;
|
|
4917
|
+
};
|
|
4918
|
+
message: {
|
|
4919
|
+
type: 'message';
|
|
4920
|
+
payload: Bundle;
|
|
4921
|
+
};
|
|
4922
|
+
close: {
|
|
4923
|
+
type: 'close';
|
|
4924
|
+
};
|
|
4925
|
+
heartbeat: {
|
|
4926
|
+
type: 'heartbeat';
|
|
4927
|
+
payload: Bundle;
|
|
4928
|
+
};
|
|
4929
|
+
};
|
|
4930
|
+
|
|
4931
|
+
export declare class SubscriptionManager {
|
|
4932
|
+
private readonly medplum;
|
|
4933
|
+
private ws;
|
|
4934
|
+
private masterSubEmitter?;
|
|
4935
|
+
private criteriaEntries;
|
|
4936
|
+
private criteriaEntriesBySubscriptionId;
|
|
4937
|
+
private wsClosed;
|
|
4938
|
+
constructor(medplum: MedplumClient, wsUrl: URL | string);
|
|
4939
|
+
private setupWebSocketListeners;
|
|
4940
|
+
private emitConnect;
|
|
4941
|
+
private emitError;
|
|
4942
|
+
private getTokenForCriteria;
|
|
4943
|
+
addCriteria(criteria: string): SubscriptionEmitter;
|
|
4944
|
+
removeCriteria(criteria: string): void;
|
|
4945
|
+
closeWebSocket(): void;
|
|
4946
|
+
getCriteriaCount(): number;
|
|
4947
|
+
getMasterEmitter(): SubscriptionEmitter;
|
|
4948
|
+
}
|
|
4949
|
+
|
|
4666
4950
|
/**
|
|
4667
4951
|
* A `FHIRcast` subscription request.
|
|
4668
4952
|
*
|