@haste-health/client 0.16.0 → 0.126.3

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/src/http/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { Bundle, id } from "@haste-health/fhir-types/r4/types";
3
3
  import * as r4b from "@haste-health/fhir-types/r4b/types";
4
- import { FHIR_VERSION, R4, R4B } from "@haste-health/fhir-types/versions";
4
+ import { FHIR_VERSION } from "@haste-health/fhir-types/versions";
5
5
  import { OperationError, outcomeError } from "@haste-health/operation-outcomes";
6
6
 
7
7
  import { AsynchronousClient } from "../index.js";
@@ -19,6 +19,13 @@ export type HTTPClientState = {
19
19
  authenticate?: () => void;
20
20
  getAccessToken?: () => Promise<string>;
21
21
  url: string | DeriveFHIRURL;
22
+ /**
23
+ * How searches are sent. Defaults to `"GET"` (parameters in the query
24
+ * string). `"POST"` form-encodes them into a `_search` body, keeping
25
+ * identifiers out of URLs and lifting the URL length limit.
26
+ * Allows users to send PHI without worrying about it appearing in URLs.
27
+ */
28
+ searchMethod?: "GET" | "POST";
22
29
  };
23
30
 
24
31
  export type HTTPContext = {
@@ -26,52 +33,27 @@ export type HTTPContext = {
26
33
  };
27
34
 
28
35
  function parametersToQueryString(
29
- parameters: ParsedParameter<string | number>[]
36
+ parameters: ParsedParameter<string | number>[],
30
37
  ): string {
31
38
  return parameters
32
39
  .map((p) => {
33
40
  const name = p.chains ? [p.name, ...p.chains].join(".") : p.name;
34
- return `${name}${p.modifier ? `:${p.modifier}` : ""}=${p.value
35
- .map((v) => encodeURIComponent(v))
36
- .join(",")}`;
41
+ const modifier = p.modifier ? `:${p.modifier}` : "";
42
+ const value = p.value.map((v) => encodeURIComponent(v)).join(",");
43
+ return `${name}${modifier}=${value}`;
37
44
  })
38
45
  .join("&");
39
46
  }
40
47
 
41
- const pathJoin = (parts: string[], sep = "/") =>
42
- parts.join(sep).replace(new RegExp(sep + "{1,}", "g"), sep);
43
-
44
- function fhirUrlChunk(version: string) {
45
- switch (version) {
46
- case R4:
47
- return "r4";
48
- case R4B:
49
- return "r4b";
50
- default:
51
- return version;
52
- }
48
+ /** Renders a query string as a URL suffix, empty when there is none. */
49
+ function querySuffix(queryString: string): string {
50
+ return queryString ? `?${queryString}` : "";
53
51
  }
54
52
 
55
- /**
56
- * Used as default and for display purposes in admin app.
57
- * @param domain HasteHealth Domain
58
- * @param fhirVersion FHIRVersion
59
- * @returns HasteHealth VersionedURL.
60
- */
61
- export const deriveHasteHealthVersionedURL = (
62
- domain: string,
63
- fhirVersion: FHIR_VERSION
64
- ) => {
65
- return new URL(
66
- pathJoin([new URL(domain).pathname, `/${fhirUrlChunk(fhirVersion)}`]),
67
- domain
68
- ).toString();
69
- };
70
-
71
53
  async function toHTTPRequest(
72
54
  state: HTTPClientState,
73
55
  context: HTTPContext,
74
- request: FHIRRequest<FHIR_VERSION, AllInteractions>
56
+ request: FHIRRequest<FHIR_VERSION, AllInteractions>,
75
57
  ): Promise<{
76
58
  url: string;
77
59
  headers?: Record<string, string>;
@@ -83,10 +65,11 @@ async function toHTTPRequest(
83
65
  ...context.headers,
84
66
  };
85
67
 
68
+ // A string base URL is the FHIR root and is used as given. The FHIR version
69
+ // belongs to the project, so it is not appended to the path; pass a function
70
+ // if a deployment needs the URL to vary by version.
86
71
  let FHIRUrl =
87
- typeof state.url === "string"
88
- ? deriveHasteHealthVersionedURL(state.url, request.fhirVersion)
89
- : state.url(request.fhirVersion);
72
+ typeof state.url === "string" ? state.url : state.url(request.fhirVersion);
90
73
  if (!FHIRUrl.endsWith("/")) {
91
74
  FHIRUrl = FHIRUrl + "/";
92
75
  }
@@ -122,8 +105,8 @@ async function toHTTPRequest(
122
105
  const queryString = parametersToQueryString(request.parameters);
123
106
  return {
124
107
  url: new URL(
125
- `${request.resource}${queryString ? `?${queryString}` : ""}`,
126
- FHIRUrl
108
+ `${request.resource}${querySuffix(queryString)}`,
109
+ FHIRUrl,
127
110
  ).href,
128
111
  method: "PUT",
129
112
  body: JSON.stringify(request.body),
@@ -154,7 +137,7 @@ async function toHTTPRequest(
154
137
  return {
155
138
  url: new URL(
156
139
  `${request.resource}/${request.id}/_history/${request.versionId}`,
157
- FHIRUrl
140
+ FHIRUrl,
158
141
  ).href,
159
142
  method: "GET",
160
143
  headers,
@@ -173,8 +156,8 @@ async function toHTTPRequest(
173
156
  const queryString = parametersToQueryString(request.parameters);
174
157
  return {
175
158
  url: new URL(
176
- `${request.resource}${queryString ? `?${queryString}` : ""}`,
177
- FHIRUrl
159
+ `${request.resource}${querySuffix(queryString)}`,
160
+ FHIRUrl,
178
161
  ).href,
179
162
  method: "DELETE",
180
163
  headers,
@@ -183,8 +166,7 @@ async function toHTTPRequest(
183
166
  case "system": {
184
167
  const queryString = parametersToQueryString(request.parameters);
185
168
  return {
186
- url: new URL(`${queryString ? `?${queryString}` : ""}`, FHIRUrl)
187
- .href,
169
+ url: new URL(querySuffix(queryString), FHIRUrl).href,
188
170
  method: "DELETE",
189
171
  headers,
190
172
  };
@@ -199,7 +181,7 @@ async function toHTTPRequest(
199
181
  case "instance": {
200
182
  historyUrl = new URL(
201
183
  `${request.resource}/${request.id}/_history`,
202
- FHIRUrl
184
+ FHIRUrl,
203
185
  ).href;
204
186
  break;
205
187
  }
@@ -214,8 +196,7 @@ async function toHTTPRequest(
214
196
  }
215
197
 
216
198
  return {
217
- url: new URL(`${queryString ? `?${queryString}` : ""}`, historyUrl)
218
- .href,
199
+ url: new URL(querySuffix(queryString), historyUrl).href,
219
200
  method: "GET",
220
201
  headers,
221
202
  };
@@ -231,28 +212,49 @@ async function toHTTPRequest(
231
212
  };
232
213
  }
233
214
  case "search-request": {
234
- const queryString = parametersToQueryString(request.parameters);
235
- let searchURL;
236
- switch (request.level) {
237
- case "type":
238
- searchURL = new URL(
239
- `${request.resource}${queryString ? `?${queryString}` : ""}`,
240
- FHIRUrl
241
- ).href;
242
- break;
243
- case "system":
244
- searchURL = new URL(
245
- `${queryString ? `?${queryString}` : ""}`,
246
- FHIRUrl
247
- ).href;
248
- break;
249
- }
215
+ // Percent-encoded, so this works as a query string or a form body.
216
+ const parameters = parametersToQueryString(request.parameters);
217
+
218
+ if (state.searchMethod === "POST") {
219
+ let searchURL;
220
+ switch (request.level) {
221
+ case "type":
222
+ searchURL = new URL(`${request.resource}/_search`, FHIRUrl).href;
223
+ break;
224
+ case "system":
225
+ searchURL = new URL("_search", FHIRUrl).href;
226
+ break;
227
+ }
250
228
 
251
- return {
252
- url: searchURL,
253
- method: "GET",
254
- headers,
255
- };
229
+ return {
230
+ url: searchURL,
231
+ method: "POST",
232
+ body: parameters,
233
+ headers: {
234
+ ...headers,
235
+ "Content-Type": "application/x-www-form-urlencoded",
236
+ },
237
+ };
238
+ } else {
239
+ const queryString = querySuffix(parameters);
240
+
241
+ let searchURL;
242
+ switch (request.level) {
243
+ case "type":
244
+ searchURL = new URL(`${request.resource}${queryString}`, FHIRUrl)
245
+ .href;
246
+ break;
247
+ case "system":
248
+ searchURL = new URL(queryString, FHIRUrl).href;
249
+ break;
250
+ }
251
+
252
+ return {
253
+ url: searchURL,
254
+ method: "GET",
255
+ headers,
256
+ };
257
+ }
256
258
  }
257
259
 
258
260
  case "invoke-request": {
@@ -261,13 +263,13 @@ async function toHTTPRequest(
261
263
  case "instance":
262
264
  invokeURL = new URL(
263
265
  `${request.resource}/${request.id}/$${request.operation}`,
264
- FHIRUrl
266
+ FHIRUrl,
265
267
  ).href;
266
268
  break;
267
269
  case "type":
268
270
  invokeURL = new URL(
269
271
  `${request.resource}/$${request.operation}`,
270
- FHIRUrl
272
+ FHIRUrl,
271
273
  ).href;
272
274
  break;
273
275
  case "system":
@@ -289,7 +291,7 @@ export class ResponseError<Version extends FHIR_VERSION> extends Error {
289
291
  private readonly _response: FHIRResponse<Version, "error">;
290
292
  constructor(
291
293
  request: FHIRRequest<Version, AllInteractions>,
292
- response: FHIRErrorResponse<Version>
294
+ response: FHIRErrorResponse<Version>,
293
295
  ) {
294
296
  super();
295
297
  this._request = request;
@@ -309,7 +311,7 @@ export function isResponseError(e: unknown): e is ResponseError<FHIR_VERSION> {
309
311
 
310
312
  async function httpResponseToFHIRResponse<Version extends FHIR_VERSION>(
311
313
  request: FHIRRequest<Version, AllInteractions>,
312
- response: Response
314
+ response: Response,
313
315
  ): Promise<FHIRResponse<Version, AllInteractions>> {
314
316
  if (response.status >= 400) {
315
317
  switch (response.status) {
@@ -627,7 +629,7 @@ function httpMiddleware(state: HTTPClientState): MiddlewareAsync<HTTPContext> {
627
629
  const httpRequest = await toHTTPRequest(
628
630
  state,
629
631
  context.ctx,
630
- context.request
632
+ context.request,
631
633
  );
632
634
  const response = await fetch(httpRequest.url, {
633
635
  method: httpRequest.method,
@@ -636,7 +638,7 @@ function httpMiddleware(state: HTTPClientState): MiddlewareAsync<HTTPContext> {
636
638
  });
637
639
  const fhirResponse = await httpResponseToFHIRResponse(
638
640
  context.request,
639
- response
641
+ response,
640
642
  );
641
643
  fhirResponse.http = {
642
644
  status: response.status,
@@ -665,7 +667,7 @@ function httpMiddleware(state: HTTPClientState): MiddlewareAsync<HTTPContext> {
665
667
  }
666
668
 
667
669
  export default function createHTTPClient(
668
- initialState: HTTPClientState
670
+ initialState: HTTPClientState,
669
671
  ): AsynchronousClient<HTTPContext> {
670
672
  // Removing trailing slash
671
673
  const middleware = httpMiddleware(initialState);
package/src/index.ts CHANGED
@@ -148,9 +148,7 @@ export class AsynchronousClient<CTX> implements FHIRClientAsync<CTX> {
148
148
  const parsedParameters: ParsedParameter<string | number>[] =
149
149
  typeof parameters === "string"
150
150
  ? parseQuery(parameters)
151
- : parameters
152
- ? parameters
153
- : [];
151
+ : (parameters ?? []);
154
152
  const response = await this.request<typeof fhirVersion, "update">(ctx, {
155
153
  fhirVersion,
156
154
  type: "update-request",
@@ -284,9 +282,7 @@ export class AsynchronousClient<CTX> implements FHIRClientAsync<CTX> {
284
282
  const parsedParameters: ParsedParameter<string | number>[] =
285
283
  typeof parameters === "string"
286
284
  ? parseQuery(parameters)
287
- : parameters
288
- ? parameters
289
- : [];
285
+ : (parameters ?? []);
290
286
  const response = await this.request<typeof fhirVersion, "delete">(ctx, {
291
287
  fhirVersion,
292
288
  type: "delete-request",
@@ -305,9 +301,7 @@ export class AsynchronousClient<CTX> implements FHIRClientAsync<CTX> {
305
301
  const parsedParameters: ParsedParameter<string | number>[] =
306
302
  typeof parameters === "string"
307
303
  ? parseQuery(parameters)
308
- : parameters
309
- ? parameters
310
- : [];
304
+ : (parameters ?? []);
311
305
  const response = await this.request<typeof fhirVersion, "delete">(ctx, {
312
306
  fhirVersion,
313
307
  type: "delete-request",
@@ -325,9 +319,7 @@ export class AsynchronousClient<CTX> implements FHIRClientAsync<CTX> {
325
319
  const parsedParameters: ParsedParameter<string | number>[] =
326
320
  typeof parameters === "string"
327
321
  ? parseQuery(parameters)
328
- : parameters
329
- ? parameters
330
- : [];
322
+ : (parameters ?? []);
331
323
 
332
324
  const response = await this.request(ctx, {
333
325
  fhirVersion,
@@ -351,9 +343,7 @@ export class AsynchronousClient<CTX> implements FHIRClientAsync<CTX> {
351
343
  const parsedParameters: ParsedParameter<string | number>[] =
352
344
  typeof parameters === "string"
353
345
  ? parseQuery(parameters)
354
- : parameters
355
- ? parameters
356
- : [];
346
+ : (parameters ?? []);
357
347
  const response = await this.request<typeof fhirVersion, "history">(ctx, {
358
348
  fhirVersion,
359
349
  type: "history-request",
@@ -378,9 +368,7 @@ export class AsynchronousClient<CTX> implements FHIRClientAsync<CTX> {
378
368
  const parsedParameters: ParsedParameter<string | number>[] =
379
369
  typeof parameters === "string"
380
370
  ? parseQuery(parameters)
381
- : parameters
382
- ? parameters
383
- : [];
371
+ : (parameters ?? []);
384
372
  const response = await this.request<typeof fhirVersion, "history">(ctx, {
385
373
  fhirVersion,
386
374
  type: "history-request",
@@ -9,6 +9,11 @@ type Context<CTX, Request, Response> = {
9
9
  response?: Response;
10
10
  };
11
11
 
12
+ type MiddlewareOptions = { logging?: boolean };
13
+
14
+ /** Shared default so each call does not allocate a fresh options object. */
15
+ const DEFAULT_OPTIONS: MiddlewareOptions = Object.freeze({ logging: false });
16
+
12
17
  export type MiddlewareAsyncChain<
13
18
  State,
14
19
  CTX,
@@ -45,7 +50,7 @@ function createNext<
45
50
  Response = FHIRResponse<FHIR_VERSION, AllInteractions | "error">
46
51
  >(
47
52
  middlewareChain: MiddlewareAsyncChain<State, CTX, Request, Response>[],
48
- options: { logging?: boolean } = { logging: false }
53
+ options: MiddlewareOptions = DEFAULT_OPTIONS
49
54
  ): Next<State, CTX, Request, Response> {
50
55
  const [first, ...rest] = middlewareChain;
51
56
 
@@ -72,7 +77,7 @@ export function createMiddlewareAsync<
72
77
  >(
73
78
  _state: State,
74
79
  middlewareChain: MiddlewareAsyncChain<State, CTX, Request, Response>[],
75
- options: { logging?: boolean } = { logging: false }
80
+ options: MiddlewareOptions = DEFAULT_OPTIONS
76
81
  ): MiddlewareAsync<CTX, Request, Response> {
77
82
  let state = _state;
78
83
 
package/lib/.DS_Store DELETED
Binary file
package/lib/types/r4.d.ts DELETED
@@ -1,257 +0,0 @@
1
- import {
2
- Bundle,
3
- CapabilityStatement,
4
- OperationOutcome,
5
- Parameters,
6
- Resource,
7
- ResourceType,
8
- code,
9
- id,
10
- } from "@oxidized-health/fhir-types/r4/types";
11
- import { R4 } from "@oxidized-health/fhir-types/versions";
12
- import type { ParsedParameter } from "../url.js";
13
- import {
14
- Request,
15
- RequestInteractionTypes,
16
- RequestLevel,
17
- ResponseInteractionTypes,
18
- } from "./utilities.js";
19
- export interface R4InstanceInteraction extends Request<R4, "instance"> {
20
- resource: ResourceType;
21
- id: id;
22
- }
23
- export interface R4TypeInteraction extends Request<R4, "type"> {
24
- resource: ResourceType;
25
- }
26
- export interface R4SystemInteraction extends Request<R4, "system"> {}
27
- export type R4ReadRequest = R4InstanceInteraction & {
28
- type: RequestInteractionTypes["read"];
29
- };
30
- export type R4VersionReadRequest = R4InstanceInteraction & {
31
- type: RequestInteractionTypes["vread"];
32
- versionId: string;
33
- };
34
- export type R4UpdateRequest = R4InstanceInteraction & {
35
- type: RequestInteractionTypes["update"];
36
- body: Resource;
37
- };
38
- export type R4PatchRequest = R4InstanceInteraction & {
39
- type: RequestInteractionTypes["patch"];
40
- body: unknown;
41
- };
42
- export type R4InstanceDeleteRequest = R4InstanceInteraction & {
43
- type: RequestInteractionTypes["delete"];
44
- };
45
- export type R4TypeDeleteRequest = R4TypeInteraction & {
46
- parameters: ParsedParameter<string | number>[];
47
- type: RequestInteractionTypes["delete"];
48
- };
49
- export type R4SystemDeleteRequest = R4SystemInteraction & {
50
- parameters: ParsedParameter<string | number>[];
51
- type: RequestInteractionTypes["delete"];
52
- };
53
- export type R4HistoryInstanceRequest = R4InstanceInteraction & {
54
- type: RequestInteractionTypes["history"];
55
- parameters?: ParsedParameter<string | number>[];
56
- };
57
- export type R4CreateRequest = R4TypeInteraction & {
58
- type: RequestInteractionTypes["create"];
59
- body: Resource;
60
- };
61
- export type R4ConditinalUpdateRequest = R4TypeInteraction & {
62
- type: RequestInteractionTypes["update"];
63
- parameters: ParsedParameter<string | number>[];
64
- body: Resource;
65
- };
66
- export type R4TypeSearchRequest = R4TypeInteraction & {
67
- parameters: ParsedParameter<string | number>[];
68
- type: RequestInteractionTypes["search"];
69
- };
70
- export type R4TypeHistoryRequest = R4TypeInteraction & {
71
- type: RequestInteractionTypes["history"];
72
- parameters?: ParsedParameter<string | number>[];
73
- };
74
- export type R4CapabilitiesRequest = R4SystemInteraction & {
75
- type: RequestInteractionTypes["capabilities"];
76
- };
77
- export type R4BatchRequest = R4SystemInteraction & {
78
- type: RequestInteractionTypes["batch"];
79
- body: Bundle;
80
- };
81
- export type R4TransactionRequest = R4SystemInteraction & {
82
- type: RequestInteractionTypes["transaction"];
83
- body: Bundle;
84
- };
85
- export type R4SystemHistoryRequest = R4SystemInteraction & {
86
- type: RequestInteractionTypes["history"];
87
- parameters?: ParsedParameter<string | number>[];
88
- };
89
- export type R4SystemSearchRequest = R4SystemInteraction & {
90
- parameters: ParsedParameter<string | number>[];
91
- type: RequestInteractionTypes["search"];
92
- };
93
- export type R4InvokeInstanceRequest = R4InstanceInteraction & {
94
- type: RequestInteractionTypes["invoke"];
95
- operation: code;
96
- body: Resource;
97
- };
98
- export type R4InvokeTypeRequest = R4TypeInteraction & {
99
- type: RequestInteractionTypes["invoke"];
100
- operation: code;
101
- body: Resource;
102
- };
103
- export type R4InvokeSystemRequest = R4SystemInteraction & {
104
- type: RequestInteractionTypes["invoke"];
105
- operation: code;
106
- body: Resource;
107
- };
108
- export type R4FHIRRequest =
109
- | R4InvokeInstanceRequest
110
- | R4InvokeTypeRequest
111
- | R4InvokeSystemRequest
112
- | R4ReadRequest
113
- | R4VersionReadRequest
114
- | R4UpdateRequest
115
- | R4PatchRequest
116
- | R4HistoryInstanceRequest
117
- | R4InstanceDeleteRequest
118
- | R4CreateRequest
119
- | R4TypeSearchRequest
120
- | R4TypeHistoryRequest
121
- | R4TypeDeleteRequest
122
- | R4CapabilitiesRequest
123
- | R4BatchRequest
124
- | R4TransactionRequest
125
- | R4SystemHistoryRequest
126
- | R4SystemSearchRequest
127
- | R4SystemDeleteRequest
128
- | R4ConditinalUpdateRequest;
129
- export type R4ReadResponse = R4InstanceInteraction & {
130
- type: ResponseInteractionTypes["read"];
131
- body: Resource;
132
- };
133
- export type R4VersionReadResponse = R4InstanceInteraction & {
134
- type: ResponseInteractionTypes["vread"];
135
- versionId: string;
136
- body: Resource;
137
- };
138
- export type R4UpdateResponse = R4InstanceInteraction & {
139
- type: ResponseInteractionTypes["update"];
140
- created?: boolean;
141
- body: Resource;
142
- };
143
- export type R4PatchResponse = R4InstanceInteraction & {
144
- type: ResponseInteractionTypes["patch"];
145
- body: Resource;
146
- };
147
- export type R4InstanceDeleteResponse = R4InstanceInteraction & {
148
- type: ResponseInteractionTypes["delete"];
149
- };
150
- export type R4TypeDeleteResponse = R4TypeInteraction & {
151
- parameters: ParsedParameter<string | number>[];
152
- type: ResponseInteractionTypes["delete"];
153
- deletions?: {
154
- id: id;
155
- type: ResourceType;
156
- }[];
157
- };
158
- export type R4SystemDeleteResponse = R4SystemInteraction & {
159
- parameters: ParsedParameter<string | number>[];
160
- type: ResponseInteractionTypes["delete"];
161
- deletions?: {
162
- id: id;
163
- type: ResourceType;
164
- }[];
165
- };
166
- export type R4InstanceHistoryResponse = R4InstanceInteraction & {
167
- type: ResponseInteractionTypes["history"];
168
- body: Bundle;
169
- };
170
- export type R4CreateResponse = R4TypeInteraction & {
171
- type: ResponseInteractionTypes["create"];
172
- body: Resource;
173
- };
174
- export type R4TypeSearchResponse = R4TypeInteraction & {
175
- parameters: ParsedParameter<string | number>[];
176
- type: ResponseInteractionTypes["search"];
177
- body: Bundle;
178
- };
179
- export type R4TypeHistoryResponse = R4TypeInteraction & {
180
- type: ResponseInteractionTypes["history"];
181
- body: Bundle;
182
- };
183
- export type R4CapabilitiesResponse = R4SystemInteraction & {
184
- type: ResponseInteractionTypes["capabilities"];
185
- body: CapabilityStatement;
186
- };
187
- export type R4BatchResponse = R4SystemInteraction & {
188
- type: ResponseInteractionTypes["batch"];
189
- body: Bundle;
190
- };
191
- export type R4TransactionResponse = R4SystemInteraction & {
192
- type: ResponseInteractionTypes["transaction"];
193
- body: Bundle;
194
- };
195
- export type R4SystemHistoryResponse = R4SystemInteraction & {
196
- type: ResponseInteractionTypes["history"];
197
- body: Bundle;
198
- };
199
- export type R4SystemSearchResponse = R4SystemInteraction & {
200
- parameters: ParsedParameter<string | number>[];
201
- type: ResponseInteractionTypes["search"];
202
- body: Bundle;
203
- };
204
- export type R4InvokeInstanceResponse = R4InstanceInteraction & {
205
- type: ResponseInteractionTypes["invoke"];
206
- operation: code;
207
- body: Parameters;
208
- };
209
- export type R4InvokeTypeResponse = R4TypeInteraction & {
210
- type: ResponseInteractionTypes["invoke"];
211
- operation: code;
212
- body: Parameters;
213
- };
214
- export type R4InvokeSystemResponse = R4SystemInteraction & {
215
- type: ResponseInteractionTypes["invoke"];
216
- operation: code;
217
- body: Parameters;
218
- };
219
- export type R4InvokeResponse =
220
- | R4InvokeInstanceResponse
221
- | R4InvokeTypeResponse
222
- | R4InvokeSystemResponse;
223
- export type R4InvokeRequest =
224
- | R4InvokeInstanceRequest
225
- | R4InvokeTypeRequest
226
- | R4InvokeSystemRequest;
227
- interface R4ErrorResponse<Level extends keyof RequestLevel>
228
- extends Request<R4, Level> {
229
- type: ResponseInteractionTypes["error"];
230
- body: OperationOutcome;
231
- }
232
- export type R4FHIRErrorResponse =
233
- | R4ErrorResponse<"system">
234
- | R4ErrorResponse<"type">
235
- | R4ErrorResponse<"instance">;
236
- export type R4FHIRResponse =
237
- | R4FHIRErrorResponse
238
- | R4InvokeInstanceResponse
239
- | R4InvokeTypeResponse
240
- | R4InvokeSystemResponse
241
- | R4ReadResponse
242
- | R4VersionReadResponse
243
- | R4UpdateResponse
244
- | R4PatchResponse
245
- | R4InstanceHistoryResponse
246
- | R4InstanceDeleteResponse
247
- | R4CreateResponse
248
- | R4TypeSearchResponse
249
- | R4TypeHistoryResponse
250
- | R4TypeDeleteResponse
251
- | R4CapabilitiesResponse
252
- | R4BatchResponse
253
- | R4TransactionResponse
254
- | R4SystemHistoryResponse
255
- | R4SystemSearchResponse
256
- | R4SystemDeleteResponse;
257
- export {};
package/lib/types/r4.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=r4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"r4.js","sourceRoot":"","sources":["../../src/types/r4.ts"],"names":[],"mappings":""}