aidbox-react 1.10.1 → 1.11.1

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.
@@ -8,6 +8,7 @@ export * from './utils/date';
8
8
  export * from './utils/error';
9
9
  export * from './utils/tests';
10
10
  export * from './utils/uuid';
11
+ export * from './utils/fhir';
11
12
  export * from './hooks/bus';
12
13
  export * from './hooks/service';
13
14
  export * from './hooks/crud';
package/dist/cjs/index.js CHANGED
@@ -150,6 +150,58 @@ function resolveServiceMap(promiseMap) {
150
150
  });
151
151
  }
152
152
 
153
+ function isEmpty(data) {
154
+ if (Array.isArray(data)) {
155
+ return data.length === 0;
156
+ }
157
+ if (typeof data === 'object' && data !== null) {
158
+ return Object.keys(data).length === 0;
159
+ }
160
+ return false;
161
+ }
162
+ function cleanEmptyValues(data) {
163
+ if (Array.isArray(data)) {
164
+ return data.map((item) => {
165
+ return isEmpty(item) ? null : cleanEmptyValues(item);
166
+ });
167
+ }
168
+ if (typeof data === 'object' && data !== null) {
169
+ const cleaned = {};
170
+ for (const [key, value] of Object.entries(data)) {
171
+ const cleanedValue = cleanEmptyValues(value);
172
+ if (!isEmpty(cleanedValue)) {
173
+ cleaned[key] = cleanedValue;
174
+ }
175
+ }
176
+ return cleaned;
177
+ }
178
+ if (typeof data === 'undefined') {
179
+ return null;
180
+ }
181
+ return data;
182
+ }
183
+ function isNull(value) {
184
+ return value === null || value === undefined;
185
+ }
186
+ function removeNullsFromDicts(data) {
187
+ if (Array.isArray(data)) {
188
+ return data.map(removeNullsFromDicts);
189
+ }
190
+ if (typeof data === 'object' && data !== null) {
191
+ const result = {};
192
+ for (const [key, value] of Object.entries(data)) {
193
+ if (!isNull(value)) {
194
+ result[key] = removeNullsFromDicts(value);
195
+ }
196
+ }
197
+ return result;
198
+ }
199
+ if (typeof data === 'undefined') {
200
+ return null;
201
+ }
202
+ return data;
203
+ }
204
+
153
205
  const inactiveMapping = {
154
206
  DocumentReference: {
155
207
  searchField: 'status',
@@ -214,36 +266,46 @@ function getInactiveSearchParam(resourceType) {
214
266
  }
215
267
  return {};
216
268
  }
217
- function createFHIRResource(resource, searchParams) {
269
+ function createFHIRResource(resource, searchParams, dropNullsFromDicts = true) {
218
270
  return __awaiter(this, void 0, void 0, function* () {
219
- return service(create(resource, searchParams));
271
+ return service(create(resource, searchParams, dropNullsFromDicts));
220
272
  });
221
273
  }
222
- function create(resource, searchParams) {
274
+ function create(resource, searchParams, dropNullsFromDicts = true) {
275
+ let cleanedResource = resource;
276
+ if (dropNullsFromDicts) {
277
+ cleanedResource = removeNullsFromDicts(cleanedResource);
278
+ }
279
+ cleanedResource = cleanEmptyValues(cleanedResource);
223
280
  return {
224
281
  method: 'POST',
225
- url: `/${resource.resourceType}`,
282
+ url: `/${cleanedResource.resourceType}`,
226
283
  params: searchParams,
227
- data: resource,
284
+ data: cleanedResource,
228
285
  };
229
286
  }
230
- function updateFHIRResource(resource, searchParams) {
287
+ function updateFHIRResource(resource, searchParams, dropNullsFromDicts = true) {
231
288
  return __awaiter(this, void 0, void 0, function* () {
232
- return service(update(resource, searchParams));
289
+ return service(update(resource, searchParams, dropNullsFromDicts));
233
290
  });
234
291
  }
235
- function update(resource, searchParams) {
292
+ function update(resource, searchParams, dropNullsFromDicts = true) {
293
+ let cleanedResource = resource;
294
+ if (dropNullsFromDicts) {
295
+ cleanedResource = removeNullsFromDicts(cleanedResource);
296
+ }
297
+ cleanedResource = cleanEmptyValues(cleanedResource);
236
298
  if (searchParams) {
237
299
  return {
238
300
  method: 'PUT',
239
- url: `/${resource.resourceType}`,
240
- data: resource,
301
+ url: `/${cleanedResource.resourceType}`,
302
+ data: cleanedResource,
241
303
  params: searchParams,
242
304
  };
243
305
  }
244
- if (resource.id) {
245
- const versionId = resource.meta && resource.meta.versionId;
246
- return Object.assign({ method: 'PUT', url: `/${resource.resourceType}/${resource.id}`, data: resource }, (versionId ? { headers: { 'If-Match': versionId } } : {}));
306
+ if (cleanedResource.id) {
307
+ const versionId = cleanedResource.meta && cleanedResource.meta.versionId;
308
+ return Object.assign({ method: 'PUT', url: `/${cleanedResource.resourceType}/${cleanedResource.id}`, data: cleanedResource }, (versionId ? { headers: { 'If-Match': versionId } } : {}));
247
309
  }
248
310
  throw new Error('Resourse id and search parameters are not specified');
249
311
  }
@@ -318,16 +380,21 @@ function findFHIRResource(resourceType, params, extraPath) {
318
380
  }
319
381
  });
320
382
  }
321
- function saveFHIRResource(resource) {
383
+ function saveFHIRResource(resource, dropNullsFromDicts = true) {
322
384
  return __awaiter(this, void 0, void 0, function* () {
323
- return service(save(resource));
385
+ return service(save(resource, dropNullsFromDicts));
324
386
  });
325
387
  }
326
- function save(resource) {
388
+ function save(resource, dropNullsFromDicts = true) {
327
389
  const versionId = resource.meta && resource.meta.versionId;
328
- return Object.assign({ method: resource.id ? 'PUT' : 'POST', data: resource, url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}` }, (resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}));
390
+ let cleanedResource = resource;
391
+ if (dropNullsFromDicts) {
392
+ cleanedResource = removeNullsFromDicts(cleanedResource);
393
+ }
394
+ cleanedResource = cleanEmptyValues(cleanedResource);
395
+ return Object.assign({ method: resource.id ? 'PUT' : 'POST', data: cleanedResource, url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}` }, (resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}));
329
396
  }
330
- function saveFHIRResources(resources, bundleType) {
397
+ function saveFHIRResources(resources, bundleType, dropNullsFromDicts = true) {
331
398
  return __awaiter(this, void 0, void 0, function* () {
332
399
  return service({
333
400
  method: 'POST',
@@ -335,10 +402,15 @@ function saveFHIRResources(resources, bundleType) {
335
402
  data: {
336
403
  type: bundleType,
337
404
  entry: resources.map((resource) => {
338
- const versionId = resource.meta && resource.meta.versionId;
405
+ let cleanedResource = resource;
406
+ if (dropNullsFromDicts) {
407
+ cleanedResource = removeNullsFromDicts(cleanedResource);
408
+ }
409
+ cleanedResource = cleanEmptyValues(cleanedResource);
410
+ const versionId = cleanedResource.meta && cleanedResource.meta.versionId;
339
411
  return {
340
- resource,
341
- request: Object.assign({ method: resource.id ? 'PUT' : 'POST', url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}` }, (resource.id && versionId ? { ifMatch: versionId } : {})),
412
+ resource: cleanedResource,
413
+ request: Object.assign({ method: cleanedResource.id ? 'PUT' : 'POST', url: `/${cleanedResource.resourceType}${cleanedResource.id ? '/' + cleanedResource.id : ''}` }, (cleanedResource.id && versionId ? { ifMatch: versionId } : {})),
342
414
  };
343
415
  }),
344
416
  },
@@ -3242,6 +3314,7 @@ exports.applyFHIRService = applyFHIRService;
3242
3314
  exports.applyFHIRServices = applyFHIRServices;
3243
3315
  exports.axiosInstance = axiosInstance;
3244
3316
  exports.buildQueryParams = buildQueryParams;
3317
+ exports.cleanEmptyValues = cleanEmptyValues;
3245
3318
  exports.create = create;
3246
3319
  exports.createBus = createBus;
3247
3320
  exports.createFHIRResource = createFHIRResource;
@@ -3288,6 +3361,7 @@ exports.parseFHIRDateTime = parseFHIRDateTime;
3288
3361
  exports.parseFHIRTime = parseFHIRTime;
3289
3362
  exports.patch = patch;
3290
3363
  exports.patchFHIRResource = patchFHIRResource;
3364
+ exports.removeNullsFromDicts = removeNullsFromDicts;
3291
3365
  exports.resetInstanceToken = resetInstanceToken;
3292
3366
  exports.resolveArray = resolveArray;
3293
3367
  exports.resolveMap = resolveMap;
@@ -3,19 +3,19 @@ import { AidboxReference, AidboxResource, ValueSet, Bundle, BundleEntry, id } fr
3
3
  import { RemoteDataResult } from '../libs/remoteData';
4
4
  import { SearchParams } from './search';
5
5
  export type WithId<T extends AidboxResource> = T & Required<Pick<T, 'id'>>;
6
- export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
7
- export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
8
- export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
9
- export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
6
+ export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
7
+ export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
8
+ export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
9
+ export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
10
10
  export declare function getFHIRResource<R extends AidboxResource>(reference: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
11
11
  export declare function get<R extends AidboxResource>(reference: AidboxReference<R>): AxiosRequestConfig;
12
12
  export declare function getFHIRResources<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
13
13
  export declare function getAllFHIRResources<R extends AidboxResource>(resourceType: string, params: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
14
14
  export declare function list<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): AxiosRequestConfig;
15
15
  export declare function findFHIRResource<R extends AidboxResource>(resourceType: R['resourceType'], params: SearchParams, extraPath?: string): Promise<RemoteDataResult<WithId<R>>>;
16
- export declare function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>>;
17
- export declare function save<R extends AidboxResource>(resource: R): AxiosRequestConfig;
18
- export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
16
+ export declare function saveFHIRResource<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
17
+ export declare function save<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): AxiosRequestConfig;
18
+ export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch', dropNullsFromDicts?: boolean): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
19
19
  type NullableRecursivePartial<T> = {
20
20
  [P in keyof T]?: NullableRecursivePartial<T[P]> | null;
21
21
  };
@@ -0,0 +1,3 @@
1
+ export declare function cleanEmptyValues(data: any): any;
2
+ export declare function removeNullsFromDicts(data: any): any;
3
+ //# sourceMappingURL=fhir.d.ts.map
@@ -8,6 +8,7 @@ export * from './utils/date';
8
8
  export * from './utils/error';
9
9
  export * from './utils/tests';
10
10
  export * from './utils/uuid';
11
+ export * from './utils/fhir';
11
12
  export * from './hooks/bus';
12
13
  export * from './hooks/service';
13
14
  export * from './hooks/crud';
package/dist/esm/index.js CHANGED
@@ -149,6 +149,58 @@ function resolveServiceMap(promiseMap) {
149
149
  });
150
150
  }
151
151
 
152
+ function isEmpty(data) {
153
+ if (Array.isArray(data)) {
154
+ return data.length === 0;
155
+ }
156
+ if (typeof data === 'object' && data !== null) {
157
+ return Object.keys(data).length === 0;
158
+ }
159
+ return false;
160
+ }
161
+ function cleanEmptyValues(data) {
162
+ if (Array.isArray(data)) {
163
+ return data.map((item) => {
164
+ return isEmpty(item) ? null : cleanEmptyValues(item);
165
+ });
166
+ }
167
+ if (typeof data === 'object' && data !== null) {
168
+ const cleaned = {};
169
+ for (const [key, value] of Object.entries(data)) {
170
+ const cleanedValue = cleanEmptyValues(value);
171
+ if (!isEmpty(cleanedValue)) {
172
+ cleaned[key] = cleanedValue;
173
+ }
174
+ }
175
+ return cleaned;
176
+ }
177
+ if (typeof data === 'undefined') {
178
+ return null;
179
+ }
180
+ return data;
181
+ }
182
+ function isNull(value) {
183
+ return value === null || value === undefined;
184
+ }
185
+ function removeNullsFromDicts(data) {
186
+ if (Array.isArray(data)) {
187
+ return data.map(removeNullsFromDicts);
188
+ }
189
+ if (typeof data === 'object' && data !== null) {
190
+ const result = {};
191
+ for (const [key, value] of Object.entries(data)) {
192
+ if (!isNull(value)) {
193
+ result[key] = removeNullsFromDicts(value);
194
+ }
195
+ }
196
+ return result;
197
+ }
198
+ if (typeof data === 'undefined') {
199
+ return null;
200
+ }
201
+ return data;
202
+ }
203
+
152
204
  const inactiveMapping = {
153
205
  DocumentReference: {
154
206
  searchField: 'status',
@@ -213,36 +265,46 @@ function getInactiveSearchParam(resourceType) {
213
265
  }
214
266
  return {};
215
267
  }
216
- function createFHIRResource(resource, searchParams) {
268
+ function createFHIRResource(resource, searchParams, dropNullsFromDicts = true) {
217
269
  return __awaiter(this, void 0, void 0, function* () {
218
- return service(create(resource, searchParams));
270
+ return service(create(resource, searchParams, dropNullsFromDicts));
219
271
  });
220
272
  }
221
- function create(resource, searchParams) {
273
+ function create(resource, searchParams, dropNullsFromDicts = true) {
274
+ let cleanedResource = resource;
275
+ if (dropNullsFromDicts) {
276
+ cleanedResource = removeNullsFromDicts(cleanedResource);
277
+ }
278
+ cleanedResource = cleanEmptyValues(cleanedResource);
222
279
  return {
223
280
  method: 'POST',
224
- url: `/${resource.resourceType}`,
281
+ url: `/${cleanedResource.resourceType}`,
225
282
  params: searchParams,
226
- data: resource,
283
+ data: cleanedResource,
227
284
  };
228
285
  }
229
- function updateFHIRResource(resource, searchParams) {
286
+ function updateFHIRResource(resource, searchParams, dropNullsFromDicts = true) {
230
287
  return __awaiter(this, void 0, void 0, function* () {
231
- return service(update(resource, searchParams));
288
+ return service(update(resource, searchParams, dropNullsFromDicts));
232
289
  });
233
290
  }
234
- function update(resource, searchParams) {
291
+ function update(resource, searchParams, dropNullsFromDicts = true) {
292
+ let cleanedResource = resource;
293
+ if (dropNullsFromDicts) {
294
+ cleanedResource = removeNullsFromDicts(cleanedResource);
295
+ }
296
+ cleanedResource = cleanEmptyValues(cleanedResource);
235
297
  if (searchParams) {
236
298
  return {
237
299
  method: 'PUT',
238
- url: `/${resource.resourceType}`,
239
- data: resource,
300
+ url: `/${cleanedResource.resourceType}`,
301
+ data: cleanedResource,
240
302
  params: searchParams,
241
303
  };
242
304
  }
243
- if (resource.id) {
244
- const versionId = resource.meta && resource.meta.versionId;
245
- return Object.assign({ method: 'PUT', url: `/${resource.resourceType}/${resource.id}`, data: resource }, (versionId ? { headers: { 'If-Match': versionId } } : {}));
305
+ if (cleanedResource.id) {
306
+ const versionId = cleanedResource.meta && cleanedResource.meta.versionId;
307
+ return Object.assign({ method: 'PUT', url: `/${cleanedResource.resourceType}/${cleanedResource.id}`, data: cleanedResource }, (versionId ? { headers: { 'If-Match': versionId } } : {}));
246
308
  }
247
309
  throw new Error('Resourse id and search parameters are not specified');
248
310
  }
@@ -317,16 +379,21 @@ function findFHIRResource(resourceType, params, extraPath) {
317
379
  }
318
380
  });
319
381
  }
320
- function saveFHIRResource(resource) {
382
+ function saveFHIRResource(resource, dropNullsFromDicts = true) {
321
383
  return __awaiter(this, void 0, void 0, function* () {
322
- return service(save(resource));
384
+ return service(save(resource, dropNullsFromDicts));
323
385
  });
324
386
  }
325
- function save(resource) {
387
+ function save(resource, dropNullsFromDicts = true) {
326
388
  const versionId = resource.meta && resource.meta.versionId;
327
- return Object.assign({ method: resource.id ? 'PUT' : 'POST', data: resource, url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}` }, (resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}));
389
+ let cleanedResource = resource;
390
+ if (dropNullsFromDicts) {
391
+ cleanedResource = removeNullsFromDicts(cleanedResource);
392
+ }
393
+ cleanedResource = cleanEmptyValues(cleanedResource);
394
+ return Object.assign({ method: resource.id ? 'PUT' : 'POST', data: cleanedResource, url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}` }, (resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}));
328
395
  }
329
- function saveFHIRResources(resources, bundleType) {
396
+ function saveFHIRResources(resources, bundleType, dropNullsFromDicts = true) {
330
397
  return __awaiter(this, void 0, void 0, function* () {
331
398
  return service({
332
399
  method: 'POST',
@@ -334,10 +401,15 @@ function saveFHIRResources(resources, bundleType) {
334
401
  data: {
335
402
  type: bundleType,
336
403
  entry: resources.map((resource) => {
337
- const versionId = resource.meta && resource.meta.versionId;
404
+ let cleanedResource = resource;
405
+ if (dropNullsFromDicts) {
406
+ cleanedResource = removeNullsFromDicts(cleanedResource);
407
+ }
408
+ cleanedResource = cleanEmptyValues(cleanedResource);
409
+ const versionId = cleanedResource.meta && cleanedResource.meta.versionId;
338
410
  return {
339
- resource,
340
- request: Object.assign({ method: resource.id ? 'PUT' : 'POST', url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}` }, (resource.id && versionId ? { ifMatch: versionId } : {})),
411
+ resource: cleanedResource,
412
+ request: Object.assign({ method: cleanedResource.id ? 'PUT' : 'POST', url: `/${cleanedResource.resourceType}${cleanedResource.id ? '/' + cleanedResource.id : ''}` }, (cleanedResource.id && versionId ? { ifMatch: versionId } : {})),
341
413
  };
342
414
  }),
343
415
  },
@@ -3182,4 +3254,4 @@ function withRender(config) {
3182
3254
  };
3183
3255
  }
3184
3256
 
3185
- export { FHIRDateFormat, FHIRDateTimeFormat, FHIRTimeFormat, RenderRemoteData, SharedStateInitializationError, applyDataTransformer, applyErrorTransformer, applyFHIRService, applyFHIRServices, axiosInstance, buildQueryParams, create, createBus, createFHIRResource, createSharedState, deleteFHIRResource, ensure, extractBundleResources, extractErrorCode, extractErrorDescription, extractFHIRDate, extractFHIRTime, findFHIRResource, forceDelete, forceDeleteFHIRResource, formatError, formatFHIRDate, formatFHIRDateTime, formatFHIRTime, get, getAllFHIRResources, getConcepts, getFHIRResource, getFHIRResources, getIncludedResource, getIncludedResources, getMainResources, getReference, getToken, getUserInfo, investigate, isBackendError, isFHIRDateEqual, isOperationOutcome, isReference, list, login, makeFHIRDateTime, makeReference, mapFailure, mapSuccess, markAsDeleted, parseFHIRDate, parseFHIRDateTime, parseFHIRTime, patch, patchFHIRResource, resetInstanceToken, resolveArray, resolveMap, resolveServiceMap, save, saveFHIRResource, saveFHIRResources, sequenceArray, sequenceMap, service, setInstanceBaseURL, setInstanceToken, transformToBundleEntry, update, updateFHIRResource, useCRUD, usePager, useService, uuid4, withRender, withRootAccess };
3257
+ export { FHIRDateFormat, FHIRDateTimeFormat, FHIRTimeFormat, RenderRemoteData, SharedStateInitializationError, applyDataTransformer, applyErrorTransformer, applyFHIRService, applyFHIRServices, axiosInstance, buildQueryParams, cleanEmptyValues, create, createBus, createFHIRResource, createSharedState, deleteFHIRResource, ensure, extractBundleResources, extractErrorCode, extractErrorDescription, extractFHIRDate, extractFHIRTime, findFHIRResource, forceDelete, forceDeleteFHIRResource, formatError, formatFHIRDate, formatFHIRDateTime, formatFHIRTime, get, getAllFHIRResources, getConcepts, getFHIRResource, getFHIRResources, getIncludedResource, getIncludedResources, getMainResources, getReference, getToken, getUserInfo, investigate, isBackendError, isFHIRDateEqual, isOperationOutcome, isReference, list, login, makeFHIRDateTime, makeReference, mapFailure, mapSuccess, markAsDeleted, parseFHIRDate, parseFHIRDateTime, parseFHIRTime, patch, patchFHIRResource, removeNullsFromDicts, resetInstanceToken, resolveArray, resolveMap, resolveServiceMap, save, saveFHIRResource, saveFHIRResources, sequenceArray, sequenceMap, service, setInstanceBaseURL, setInstanceToken, transformToBundleEntry, update, updateFHIRResource, useCRUD, usePager, useService, uuid4, withRender, withRootAccess };
@@ -3,19 +3,19 @@ import { AidboxReference, AidboxResource, ValueSet, Bundle, BundleEntry, id } fr
3
3
  import { RemoteDataResult } from '../libs/remoteData';
4
4
  import { SearchParams } from './search';
5
5
  export type WithId<T extends AidboxResource> = T & Required<Pick<T, 'id'>>;
6
- export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
7
- export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
8
- export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
9
- export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
6
+ export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
7
+ export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
8
+ export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
9
+ export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
10
10
  export declare function getFHIRResource<R extends AidboxResource>(reference: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
11
11
  export declare function get<R extends AidboxResource>(reference: AidboxReference<R>): AxiosRequestConfig;
12
12
  export declare function getFHIRResources<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
13
13
  export declare function getAllFHIRResources<R extends AidboxResource>(resourceType: string, params: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
14
14
  export declare function list<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): AxiosRequestConfig;
15
15
  export declare function findFHIRResource<R extends AidboxResource>(resourceType: R['resourceType'], params: SearchParams, extraPath?: string): Promise<RemoteDataResult<WithId<R>>>;
16
- export declare function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>>;
17
- export declare function save<R extends AidboxResource>(resource: R): AxiosRequestConfig;
18
- export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
16
+ export declare function saveFHIRResource<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
17
+ export declare function save<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): AxiosRequestConfig;
18
+ export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch', dropNullsFromDicts?: boolean): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
19
19
  type NullableRecursivePartial<T> = {
20
20
  [P in keyof T]?: NullableRecursivePartial<T[P]> | null;
21
21
  };
@@ -0,0 +1,3 @@
1
+ export declare function cleanEmptyValues(data: any): any;
2
+ export declare function removeNullsFromDicts(data: any): any;
3
+ //# sourceMappingURL=fhir.d.ts.map
package/dist/index.d.ts CHANGED
@@ -56,19 +56,19 @@ declare function resolveServiceMap<I, F>(promiseMap: PromiseRemoteDataResultMap<
56
56
  declare function resolveServiceMap<I, F>(promiseMap: PromiseRemoteDataMap<I, F>): Promise<RemoteData<I, F[]>>;
57
57
 
58
58
  type WithId<T extends AidboxResource> = T & Required<Pick<T, 'id'>>;
59
- declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
60
- declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
61
- declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
62
- declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
59
+ declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
60
+ declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
61
+ declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
62
+ declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
63
63
  declare function getFHIRResource<R extends AidboxResource>(reference: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
64
64
  declare function get<R extends AidboxResource>(reference: AidboxReference<R>): AxiosRequestConfig;
65
65
  declare function getFHIRResources<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
66
66
  declare function getAllFHIRResources<R extends AidboxResource>(resourceType: string, params: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
67
67
  declare function list<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): AxiosRequestConfig;
68
68
  declare function findFHIRResource<R extends AidboxResource>(resourceType: R['resourceType'], params: SearchParams, extraPath?: string): Promise<RemoteDataResult<WithId<R>>>;
69
- declare function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>>;
70
- declare function save<R extends AidboxResource>(resource: R): AxiosRequestConfig;
71
- declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
69
+ declare function saveFHIRResource<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
70
+ declare function save<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): AxiosRequestConfig;
71
+ declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch', dropNullsFromDicts?: boolean): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
72
72
  type NullableRecursivePartial<T> = {
73
73
  [P in keyof T]?: NullableRecursivePartial<T[P]> | null;
74
74
  };
@@ -148,6 +148,9 @@ declare function getUserInfo(): Promise<User>;
148
148
 
149
149
  declare function uuid4(): string;
150
150
 
151
+ declare function cleanEmptyValues(data: any): any;
152
+ declare function removeNullsFromDicts(data: any): any;
153
+
151
154
  interface BaseAction {
152
155
  type: unknown;
153
156
  }
@@ -213,4 +216,4 @@ type RenderRemoteDataProps<S, E = any> = RenderRemoteDataBasicProps<S> & RenderC
213
216
  declare function RenderRemoteData<S, E = any>(props: RenderRemoteDataProps<S, E>): JSX.Element | null;
214
217
  declare function withRender<E = any>(config: RenderConfig<E>): <S>(props: RenderRemoteDataProps<S, E>) => JSX.Element;
215
218
 
216
- export { CRUDManager, FHIRDateFormat, FHIRDateTimeFormat, FHIRTimeFormat, LoginService, PagerManager, PromiseRemoteDataMap, PromiseRemoteDataResultMap, RemoteDataMap, RemoteDataResultMap, RenderRemoteData, ResourcesMap, SearchParam, SearchParams, ServiceManager, SharedStateInitializationError, StateManager, Token, WithId, applyDataTransformer, applyErrorTransformer, applyFHIRService, applyFHIRServices, axiosInstance, buildQueryParams, create, createBus, createFHIRResource, createSharedState, deleteFHIRResource, ensure, extractBundleResources, extractErrorCode, extractErrorDescription, extractFHIRDate, extractFHIRTime, findFHIRResource, forceDelete, forceDeleteFHIRResource, formatError, formatFHIRDate, formatFHIRDateTime, formatFHIRTime, get, getAllFHIRResources, getConcepts, getFHIRResource, getFHIRResources, getIncludedResource, getIncludedResources, getMainResources, getReference, getToken, getUserInfo, investigate, isBackendError, isFHIRDateEqual, isOperationOutcome, isReference, list, login, makeFHIRDateTime, makeReference, mapFailure, mapSuccess, markAsDeleted, parseFHIRDate, parseFHIRDateTime, parseFHIRTime, patch, patchFHIRResource, resetInstanceToken, resolveArray, resolveMap, resolveServiceMap, save, saveFHIRResource, saveFHIRResources, sequenceArray, sequenceMap, service, setInstanceBaseURL, setInstanceToken, transformToBundleEntry, update, updateFHIRResource, useCRUD, usePager, useService, uuid4, withRender, withRootAccess };
219
+ export { CRUDManager, FHIRDateFormat, FHIRDateTimeFormat, FHIRTimeFormat, LoginService, PagerManager, PromiseRemoteDataMap, PromiseRemoteDataResultMap, RemoteDataMap, RemoteDataResultMap, RenderRemoteData, ResourcesMap, SearchParam, SearchParams, ServiceManager, SharedStateInitializationError, StateManager, Token, WithId, applyDataTransformer, applyErrorTransformer, applyFHIRService, applyFHIRServices, axiosInstance, buildQueryParams, cleanEmptyValues, create, createBus, createFHIRResource, createSharedState, deleteFHIRResource, ensure, extractBundleResources, extractErrorCode, extractErrorDescription, extractFHIRDate, extractFHIRTime, findFHIRResource, forceDelete, forceDeleteFHIRResource, formatError, formatFHIRDate, formatFHIRDateTime, formatFHIRTime, get, getAllFHIRResources, getConcepts, getFHIRResource, getFHIRResources, getIncludedResource, getIncludedResources, getMainResources, getReference, getToken, getUserInfo, investigate, isBackendError, isFHIRDateEqual, isOperationOutcome, isReference, list, login, makeFHIRDateTime, makeReference, mapFailure, mapSuccess, markAsDeleted, parseFHIRDate, parseFHIRDateTime, parseFHIRTime, patch, patchFHIRResource, removeNullsFromDicts, resetInstanceToken, resolveArray, resolveMap, resolveServiceMap, save, saveFHIRResource, saveFHIRResources, sequenceArray, sequenceMap, service, setInstanceBaseURL, setInstanceToken, transformToBundleEntry, update, updateFHIRResource, useCRUD, usePager, useService, uuid4, withRender, withRootAccess };
package/lib/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './utils/date';
8
8
  export * from './utils/error';
9
9
  export * from './utils/tests';
10
10
  export * from './utils/uuid';
11
+ export * from './utils/fhir';
11
12
  export * from './hooks/bus';
12
13
  export * from './hooks/service';
13
14
  export * from './hooks/crud';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAE9B,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAE7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAE9B,cAAc,+BAA+B,CAAC"}
package/lib/index.js CHANGED
@@ -11,6 +11,7 @@ tslib_1.__exportStar(require("./utils/date"), exports);
11
11
  tslib_1.__exportStar(require("./utils/error"), exports);
12
12
  tslib_1.__exportStar(require("./utils/tests"), exports);
13
13
  tslib_1.__exportStar(require("./utils/uuid"), exports);
14
+ tslib_1.__exportStar(require("./utils/fhir"), exports);
14
15
  tslib_1.__exportStar(require("./hooks/bus"), exports);
15
16
  tslib_1.__exportStar(require("./hooks/service"), exports);
16
17
  tslib_1.__exportStar(require("./hooks/crud"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAElC,2DAAiC;AACjC,8DAAoC;AACpC,4DAAkC;AAClC,6DAAmC;AACnC,0DAAgC;AAEhC,uDAA6B;AAC7B,wDAA8B;AAC9B,wDAA8B;AAC9B,uDAA6B;AAE7B,sDAA4B;AAC5B,0DAAgC;AAChC,uDAA6B;AAC7B,+DAAqC;AACrC,wDAA8B;AAE9B,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAElC,2DAAiC;AACjC,8DAAoC;AACpC,4DAAkC;AAClC,6DAAmC;AACnC,0DAAgC;AAEhC,uDAA6B;AAC7B,wDAA8B;AAC9B,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAE7B,sDAA4B;AAC5B,0DAAgC;AAChC,uDAA6B;AAC7B,+DAAqC;AACrC,wDAA8B;AAE9B,wEAA8C"}
@@ -3,19 +3,19 @@ import { AidboxReference, AidboxResource, ValueSet, Bundle, BundleEntry, id } fr
3
3
  import { RemoteDataResult } from '../libs/remoteData';
4
4
  import { SearchParams } from './search';
5
5
  export type WithId<T extends AidboxResource> = T & Required<Pick<T, 'id'>>;
6
- export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
7
- export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
8
- export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
9
- export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
6
+ export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
7
+ export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
8
+ export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
9
+ export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams, dropNullsFromDicts?: boolean): AxiosRequestConfig;
10
10
  export declare function getFHIRResource<R extends AidboxResource>(reference: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
11
11
  export declare function get<R extends AidboxResource>(reference: AidboxReference<R>): AxiosRequestConfig;
12
12
  export declare function getFHIRResources<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
13
13
  export declare function getAllFHIRResources<R extends AidboxResource>(resourceType: string, params: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
14
14
  export declare function list<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): AxiosRequestConfig;
15
15
  export declare function findFHIRResource<R extends AidboxResource>(resourceType: R['resourceType'], params: SearchParams, extraPath?: string): Promise<RemoteDataResult<WithId<R>>>;
16
- export declare function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>>;
17
- export declare function save<R extends AidboxResource>(resource: R): AxiosRequestConfig;
18
- export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
16
+ export declare function saveFHIRResource<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): Promise<RemoteDataResult<WithId<R>>>;
17
+ export declare function save<R extends AidboxResource>(resource: R, dropNullsFromDicts?: boolean): AxiosRequestConfig;
18
+ export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch', dropNullsFromDicts?: boolean): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
19
19
  type NullableRecursivePartial<T> = {
20
20
  [P in keyof T]?: NullableRecursivePartial<T[P]> | null;
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fhir.d.ts","sourceRoot":"","sources":["../../src/services/fhir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAE/G,OAAO,EAAa,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAiBxC,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAuE3E,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,cAAc,EAC7D,QAAQ,EAAE,CAAC,EACX,YAAY,CAAC,EAAE,YAAY,GAC5B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtC;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,kBAAkB,CAO7G;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,cAAc,EAC7D,QAAQ,EAAE,CAAC,EACX,YAAY,CAAC,EAAE,YAAY,GAC5B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtC;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,kBAAkB,CAsB7G;AAED,wBAAsB,eAAe,CAAC,CAAC,SAAS,cAAc,EAC1D,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtC;AAED,wBAAgB,GAAG,CAAC,CAAC,SAAS,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAK/F;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAC3D,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,EAC/B,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAE9C;AAED,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAC9D,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAkC9C;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,cAAc,EACzC,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,EAC/B,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,MAAM,GACnB,kBAAkB,CAMpB;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAC3D,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,EAC/B,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAmBtC;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAElH;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,GAAG,kBAAkB,CAS9E;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAC5D,SAAS,EAAE,CAAC,EAAE,EACd,UAAU,EAAE,aAAa,GAAG,OAAO,GACpC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAoB9C;AAED,KAAK,wBAAwB,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CACzD,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAC5D,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC,EAChF,YAAY,CAAC,EAAE,YAAY,GAC5B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtC;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,cAAc,EAC1C,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EACzE,YAAY,CAAC,EAAE,YAAY,GAC5B,kBAAkB,CAmBpB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,cAAc,EAC7D,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtC;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAcxG;AAED,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAClE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEtC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,cAAc,EAChD,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,EAC/B,gBAAgB,EAAE,EAAE,GAAG,YAAY,GACpC,kBAAkB,CAapB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAMxG;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EAClD,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,GACjB,eAAe,CAAC,CAAC,CAAC,CAMpB;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,cAAc,EAChD,QAAQ,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACjC,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,CAOhC;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,cAAc,IAAI;KAChD,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS;QAAE,YAAY,EAAE,CAAC,CAAA;KAAE,GAAG,CAAC,EAAE,GAAG,KAAK;CACxE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAcnG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAExD,SAAS,EAAE,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,EAChC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,GAC9B,CAAC,GAAG,SAAS,CAOf;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,cAAc,EAEzD,SAAS,EAAE,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,EAChC,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,GAChC,CAAC,EAAE,CAEL;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAQlH;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAM1G;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,GAAG,GAAG,EACpE,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEzC;AAOD,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAuBlH;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,GAAG,GAAG,EACrE,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,EACnC,IAAI,GAAE,aAAa,GAAG,OAAuB,GAC9C,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CASjD"}
1
+ {"version":3,"file":"fhir.d.ts","sourceRoot":"","sources":["../../src/services/fhir.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applyFHIRServices = exports.transformToBundleEntry = exports.applyFHIRService = exports.getConcepts = exports.getMainResources = exports.getIncludedResources = exports.getIncludedResource = exports.extractBundleResources = exports.isReference = exports.makeReference = exports.getReference = exports.forceDelete = exports.forceDeleteFHIRResource = exports.markAsDeleted = exports.deleteFHIRResource = exports.patch = exports.patchFHIRResource = exports.saveFHIRResources = exports.save = exports.saveFHIRResource = exports.findFHIRResource = exports.list = exports.getAllFHIRResources = exports.getFHIRResources = exports.get = exports.getFHIRResource = exports.update = exports.updateFHIRResource = exports.create = exports.createFHIRResource = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var remoteData_1 = require("../libs/remoteData");
6
+ var fhir_1 = require("../utils/fhir");
6
7
  var instance_1 = require("./instance");
7
8
  var service_1 = require("./service");
8
9
  var inactiveMapping = {
@@ -70,43 +71,57 @@ function getInactiveSearchParam(resourceType) {
70
71
  }
71
72
  return {};
72
73
  }
73
- function createFHIRResource(resource, searchParams) {
74
+ function createFHIRResource(resource, searchParams, dropNullsFromDicts) {
75
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
74
76
  return tslib_1.__awaiter(this, void 0, void 0, function () {
75
77
  return tslib_1.__generator(this, function (_a) {
76
- return [2 /*return*/, (0, service_1.service)(create(resource, searchParams))];
78
+ return [2 /*return*/, (0, service_1.service)(create(resource, searchParams, dropNullsFromDicts))];
77
79
  });
78
80
  });
79
81
  }
80
82
  exports.createFHIRResource = createFHIRResource;
81
- function create(resource, searchParams) {
83
+ function create(resource, searchParams, dropNullsFromDicts) {
84
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
85
+ var cleanedResource = resource;
86
+ if (dropNullsFromDicts) {
87
+ cleanedResource = (0, fhir_1.removeNullsFromDicts)(cleanedResource);
88
+ }
89
+ cleanedResource = (0, fhir_1.cleanEmptyValues)(cleanedResource);
82
90
  return {
83
91
  method: 'POST',
84
- url: "/".concat(resource.resourceType),
92
+ url: "/".concat(cleanedResource.resourceType),
85
93
  params: searchParams,
86
- data: resource,
94
+ data: cleanedResource,
87
95
  };
88
96
  }
89
97
  exports.create = create;
90
- function updateFHIRResource(resource, searchParams) {
98
+ function updateFHIRResource(resource, searchParams, dropNullsFromDicts) {
99
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
91
100
  return tslib_1.__awaiter(this, void 0, void 0, function () {
92
101
  return tslib_1.__generator(this, function (_a) {
93
- return [2 /*return*/, (0, service_1.service)(update(resource, searchParams))];
102
+ return [2 /*return*/, (0, service_1.service)(update(resource, searchParams, dropNullsFromDicts))];
94
103
  });
95
104
  });
96
105
  }
97
106
  exports.updateFHIRResource = updateFHIRResource;
98
- function update(resource, searchParams) {
107
+ function update(resource, searchParams, dropNullsFromDicts) {
108
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
109
+ var cleanedResource = resource;
110
+ if (dropNullsFromDicts) {
111
+ cleanedResource = (0, fhir_1.removeNullsFromDicts)(cleanedResource);
112
+ }
113
+ cleanedResource = (0, fhir_1.cleanEmptyValues)(cleanedResource);
99
114
  if (searchParams) {
100
115
  return {
101
116
  method: 'PUT',
102
- url: "/".concat(resource.resourceType),
103
- data: resource,
117
+ url: "/".concat(cleanedResource.resourceType),
118
+ data: cleanedResource,
104
119
  params: searchParams,
105
120
  };
106
121
  }
107
- if (resource.id) {
108
- var versionId = resource.meta && resource.meta.versionId;
109
- return tslib_1.__assign({ method: 'PUT', url: "/".concat(resource.resourceType, "/").concat(resource.id), data: resource }, (versionId ? { headers: { 'If-Match': versionId } } : {}));
122
+ if (cleanedResource.id) {
123
+ var versionId = cleanedResource.meta && cleanedResource.meta.versionId;
124
+ return tslib_1.__assign({ method: 'PUT', url: "/".concat(cleanedResource.resourceType, "/").concat(cleanedResource.id), data: cleanedResource }, (versionId ? { headers: { 'If-Match': versionId } } : {}));
110
125
  }
111
126
  throw new Error('Resourse id and search parameters are not specified');
112
127
  }
@@ -211,20 +226,28 @@ function findFHIRResource(resourceType, params, extraPath) {
211
226
  });
212
227
  }
213
228
  exports.findFHIRResource = findFHIRResource;
214
- function saveFHIRResource(resource) {
229
+ function saveFHIRResource(resource, dropNullsFromDicts) {
230
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
215
231
  return tslib_1.__awaiter(this, void 0, void 0, function () {
216
232
  return tslib_1.__generator(this, function (_a) {
217
- return [2 /*return*/, (0, service_1.service)(save(resource))];
233
+ return [2 /*return*/, (0, service_1.service)(save(resource, dropNullsFromDicts))];
218
234
  });
219
235
  });
220
236
  }
221
237
  exports.saveFHIRResource = saveFHIRResource;
222
- function save(resource) {
238
+ function save(resource, dropNullsFromDicts) {
239
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
223
240
  var versionId = resource.meta && resource.meta.versionId;
224
- return tslib_1.__assign({ method: resource.id ? 'PUT' : 'POST', data: resource, url: "/".concat(resource.resourceType).concat(resource.id ? '/' + resource.id : '') }, (resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}));
241
+ var cleanedResource = resource;
242
+ if (dropNullsFromDicts) {
243
+ cleanedResource = (0, fhir_1.removeNullsFromDicts)(cleanedResource);
244
+ }
245
+ cleanedResource = (0, fhir_1.cleanEmptyValues)(cleanedResource);
246
+ return tslib_1.__assign({ method: resource.id ? 'PUT' : 'POST', data: cleanedResource, url: "/".concat(resource.resourceType).concat(resource.id ? '/' + resource.id : '') }, (resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}));
225
247
  }
226
248
  exports.save = save;
227
- function saveFHIRResources(resources, bundleType) {
249
+ function saveFHIRResources(resources, bundleType, dropNullsFromDicts) {
250
+ if (dropNullsFromDicts === void 0) { dropNullsFromDicts = true; }
228
251
  return tslib_1.__awaiter(this, void 0, void 0, function () {
229
252
  return tslib_1.__generator(this, function (_a) {
230
253
  return [2 /*return*/, (0, service_1.service)({
@@ -233,10 +256,15 @@ function saveFHIRResources(resources, bundleType) {
233
256
  data: {
234
257
  type: bundleType,
235
258
  entry: resources.map(function (resource) {
236
- var versionId = resource.meta && resource.meta.versionId;
259
+ var cleanedResource = resource;
260
+ if (dropNullsFromDicts) {
261
+ cleanedResource = (0, fhir_1.removeNullsFromDicts)(cleanedResource);
262
+ }
263
+ cleanedResource = (0, fhir_1.cleanEmptyValues)(cleanedResource);
264
+ var versionId = cleanedResource.meta && cleanedResource.meta.versionId;
237
265
  return {
238
- resource: resource,
239
- request: tslib_1.__assign({ method: resource.id ? 'PUT' : 'POST', url: "/".concat(resource.resourceType).concat(resource.id ? '/' + resource.id : '') }, (resource.id && versionId ? { ifMatch: versionId } : {})),
266
+ resource: cleanedResource,
267
+ request: tslib_1.__assign({ method: cleanedResource.id ? 'PUT' : 'POST', url: "/".concat(cleanedResource.resourceType).concat(cleanedResource.id ? '/' + cleanedResource.id : '') }, (cleanedResource.id && versionId ? { ifMatch: versionId } : {})),
240
268
  };
241
269
  }),
242
270
  },
@@ -1 +1 @@
1
- {"version":3,"file":"fhir.js","sourceRoot":"","sources":["../../src/services/fhir.ts"],"names":[],"mappings":";;;;AAGA,iDAAmF;AACnF,uCAA8C;AAE9C,qCAAoC;AAkBpC,IAAM,eAAe,GAAoB;IACrC,iBAAiB,EAAE;QACf,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,kBAAkB;KAC5B;IACD,WAAW,EAAE;QACT,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,kBAAkB;KAC5B;IACD,QAAQ,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,UAAU;KACpB;IACD,QAAQ,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,KAAK;KACf;IACD,IAAI,EAAE;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,kBAAkB;KAC5B;IACD,YAAY,EAAE;QACV,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,KAAK;KACf;IACD,OAAO,EAAE;QACL,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,KAAK;KACf;IACD,IAAI,EAAE;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,KAAK;KACf;IACD,IAAI,EAAE;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,kBAAkB;KAC5B;IACD,aAAa,EAAE;QACX,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,kBAAkB;KAC5B;CACJ,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAU;IACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB;;IAChD,IAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAE3C,IAAI,IAAI,EAAE;QACN;YACI,GAAC,UAAG,IAAI,CAAC,WAAW,SAAM,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC;eAC3C;KACL;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAsB,kBAAkB,CACpC,QAAW,EACX,YAA2B;;;YAE3B,sBAAO,IAAA,iBAAO,EAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAC;;;CAClD;AALD,gDAKC;AAED,SAAgB,MAAM,CAA2B,QAAW,EAAE,YAA2B;IACrF,OAAO;QACH,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,CAAE;QAChC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,QAAQ;KACjB,CAAC;AACN,CAAC;AAPD,wBAOC;AAED,SAAsB,kBAAkB,CACpC,QAAW,EACX,YAA2B;;;YAE3B,sBAAO,IAAA,iBAAO,EAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAC;;;CAClD;AALD,gDAKC;AAED,SAAgB,MAAM,CAA2B,QAAW,EAAE,YAA2B;IACrF,IAAI,YAAY,EAAE;QACd,OAAO;YACH,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,CAAE;YAChC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,YAAY;SACvB,CAAC;KACL;IAED,IAAI,QAAQ,CAAC,EAAE,EAAE;QACb,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAE3D,0BACI,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,cAAI,QAAQ,CAAC,EAAE,CAAE,EAC/C,IAAI,EAAE,QAAQ,IACX,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC9D;KACL;IAED,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC3E,CAAC;AAtBD,wBAsBC;AAED,SAAsB,eAAe,CACjC,SAA6B;;;YAE7B,sBAAO,IAAA,iBAAO,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC;;;CAClC;AAJD,0CAIC;AAED,SAAgB,GAAG,CAA2B,SAA6B;IACvE,OAAO;QACH,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,WAAI,SAAS,CAAC,YAAY,cAAI,SAAS,CAAC,EAAE,CAAE;KACpD,CAAC;AACN,CAAC;AALD,kBAKC;AAED,SAAsB,gBAAgB,CAClC,YAA+B,EAC/B,YAA0B,EAC1B,SAAkB;;;YAElB,sBAAO,IAAA,iBAAO,EAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,EAAC;;;CAC/D;AAND,4CAMC;AAED,SAAsB,mBAAmB,CACrC,YAAoB,EACpB,MAAoB,EACpB,SAAkB;;;;;;wBAEW,qBAAM,gBAAgB,CAAI,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAA;;oBAAjF,oBAAoB,GAAG,SAA0D;oBAEvF,IAAI,IAAA,sBAAS,EAAC,oBAAoB,CAAC,EAAE;wBACjC,sBAAO,oBAAoB,EAAC;qBAC/B;oBAEG,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC;;;yBAEtC,IAAI;oBACH,QAAQ,GAAG,MAAA,YAAY,CAAC,IAAI,0CAAE,IAAI,CAAC,UAAC,IAAI;wBACxC,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;oBACpC,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,QAAQ,EAAE;wBACX,wBAAM;qBACT;oBAEgB,qBAAM,IAAA,iBAAO,EAAC;4BAC3B,MAAM,EAAE,KAAK;4BACb,GAAG,EAAE,QAAQ,CAAC,GAAG;yBACpB,CAAC,EAAA;;oBAHI,QAAQ,GAAG,SAGf;oBAEF,IAAI,IAAA,sBAAS,EAAC,QAAQ,CAAC,EAAE;wBACrB,sBAAO,QAAQ,EAAC;qBACnB;oBAED,YAAY,yCACL,QAAQ,CAAC,IAAI,KAChB,KAAK,kDAAM,YAAY,CAAC,KAAM,SAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,UACzD,CAAC;;wBAGN,sBAAO,IAAA,oBAAO,EAAC,YAAY,CAAC,EAAC;;;;CAChC;AAtCD,kDAsCC;AAED,SAAgB,IAAI,CAChB,YAA+B,EAC/B,YAA0B,EAC1B,SAAkB;IAElB,OAAO;QACH,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,WAAI,YAAY,cAAI,SAAS,CAAE,CAAC,CAAC,CAAC,WAAI,YAAY,CAAE;QACrE,MAAM,wCAAO,YAAY,GAAK,sBAAsB,CAAC,YAAY,CAAC,CAAE;KACvE,CAAC;AACN,CAAC;AAVD,oBAUC;AAED,SAAsB,gBAAgB,CAClC,YAA+B,EAC/B,MAAoB,EACpB,SAAkB;;;;;wBAED,qBAAM,gBAAgB,CAAI,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAA;;oBAArE,QAAQ,GAAG,SAA0D;oBAE3E,IAAI,IAAA,sBAAS,EAAC,QAAQ,CAAC,EAAE;wBACrB,sBAAO,QAAQ,EAAC;qBACnB;oBAEK,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAgB,CAAC;oBAErF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;wBACxB,sBAAO,IAAA,oBAAO,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC;qBAChC;yBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/B,sBAAO,IAAA,oBAAO,EAAC,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,EAAC;qBAC5F;yBAAM;wBACH,sBAAO,IAAA,oBAAO,EAAC;gCACX,iBAAiB,EAAE,0BAA0B;gCAC7C,KAAK,EAAE,0BAA0B;6BACpC,CAAC,EAAC;qBACN;;;;;CACJ;AAvBD,4CAuBC;AAED,SAAsB,gBAAgB,CAA2B,QAAW;;;YACxE,sBAAO,IAAA,iBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC;;;CAClC;AAFD,4CAEC;AAED,SAAgB,IAAI,CAA2B,QAAW;IACtD,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IAE3D,0BACI,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EACpC,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,SAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAE,IACpE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7E;AACN,CAAC;AATD,oBASC;AAED,SAAsB,iBAAiB,CACnC,SAAc,EACd,UAAmC;;;YAEnC,sBAAO,IAAA,iBAAO,EAAC;oBACX,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE;wBACF,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ;4BAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;4BAE3D,OAAO;gCACH,QAAQ,UAAA;gCACR,OAAO,qBACH,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EACpC,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,SAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAE,IACpE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9D;6BACJ,CAAC;wBACN,CAAC,CAAC;qBACL;iBACJ,CAAC,EAAC;;;CACN;AAvBD,8CAuBC;AAMD,SAAsB,iBAAiB,CACnC,QAAgF,EAChF,YAA2B;;;YAE3B,sBAAO,IAAA,iBAAO,EAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAC;;;CACjD;AALD,8CAKC;AAED,SAAgB,KAAK,CACjB,QAAyE,EACzE,YAA2B;IAE3B,IAAI,YAAY,EAAE;QACd,OAAO;YACH,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,CAAE;YAChC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,YAAY;SACvB,CAAC;KACL;IAED,IAAI,QAAQ,CAAC,EAAE,EAAE;QACb,OAAO;YACH,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,cAAI,QAAQ,CAAC,EAAE,CAAE;YAC/C,IAAI,EAAE,QAAQ;SACjB,CAAC;KACL;IAED,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC3E,CAAC;AAtBD,sBAsBC;AAED,SAAsB,kBAAkB,CACpC,QAA4B;;;YAE5B,sBAAO,IAAA,iBAAO,EAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAC;;;CAC3C;AAJD,gDAIC;AAED,SAAgB,aAAa,CAA2B,QAA4B;;IAChF,IAAM,mBAAmB,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEnE,IAAI,CAAC,mBAAmB,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,sCAA+B,QAAQ,CAAC,YAAY,0BAAuB,CAAC,CAAC;KAChG;IAED,OAAO;QACH,MAAM,EAAE,OAAO;QACf,GAAG,EAAE,WAAI,QAAQ,CAAC,YAAY,cAAI,QAAQ,CAAC,EAAE,CAAE;QAC/C,IAAI;YACA,GAAC,mBAAmB,CAAC,WAAW,IAAG,mBAAmB,CAAC,KAAK;eAC/D;KACJ,CAAC;AACN,CAAC;AAdD,sCAcC;AAED,SAAsB,uBAAuB,CACzC,QAA4B;;;YAE5B,sBAAO,IAAA,iBAAO,EAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAC;;;CACnE;AAJD,0DAIC;AAED,SAAgB,WAAW,CACvB,YAA+B,EAC/B,gBAAmC;IAEnC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC5B,OAAO;YACH,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,WAAI,YAAY,CAAE;YACvB,MAAM,EAAE,gBAAgB;SAC3B,CAAC;KACL;IAED,OAAO;QACH,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,WAAI,YAAY,cAAI,gBAAgB,CAAE;KAC9C,CAAC;AACN,CAAC;AAhBD,kCAgBC;AAED,SAAgB,YAAY,CAA2B,QAAW,EAAE,OAAgB;IAChF,0BACI,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnC,EAAE,EAAE,QAAQ,CAAC,EAAG,IACb,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACjC;AACN,CAAC;AAND,oCAMC;AAED,SAAgB,aAAa,CACzB,YAAoB,EACpB,EAAU,EACV,OAAgB;IAEhB,OAAO;QACH,YAAY,cAAA;QACZ,EAAE,IAAA;QACF,OAAO,SAAA;KACV,CAAC;AACN,CAAC;AAVD,sCAUC;AAED,SAAgB,WAAW,CACvB,QAAgC;IAEhC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAChC,UAAC,SAAS;QACN,OAAA,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,OAAO,CACtG,SAAS,CACZ,KAAK,CAAC,CAAC;IAFR,CAEQ,CACf,CAAC,MAAM,CAAC;AACb,CAAC;AATD,kCASC;AAMD,SAAgB,sBAAsB,CAA2B,MAAiB;IAC9E,IAAM,qBAAqB,GAAG,EAAqB,CAAC;IACpD,IAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACnC,OAAO,CAAC,OAAO,CAAC,UAAS,KAAK;QAC1B,IAAM,IAAI,GAAG,KAAK,CAAC,QAAS,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC9B,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SACpC;QACD,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,KAAK,CAAC,qBAAqB,EAAE;QACpC,GAAG,EAAE,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAA3C,CAA2C;KAClE,CAAC,CAAC;AACP,CAAC;AAdD,wDAcC;AAED,SAAgB,mBAAmB;AAC/B,2DAA2D;AAC3D,SAAgC,EAChC,SAA6B;IAE7B,IAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa,EAAE;QAChB,OAAO,SAAS,CAAC;KACpB;IACD,IAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,UAAC,QAAW,IAAK,OAAA,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAA5B,CAA4B,CAAC,CAAC;IACrF,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAXD,kDAWC;AAED,SAAgB,oBAAoB;AAChC,2DAA2D;AAC3D,SAAgC,EAChC,YAA+B;IAE/B,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAQ,CAAC;AAClD,CAAC;AAND,oDAMC;AAED,SAAgB,gBAAgB,CAA2B,MAAiB,EAAE,YAA+B;IACzG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACf,OAAO,EAAE,CAAC;KACb;IAED,OAAO,MAAM,CAAC,KAAK;SACd,MAAM,CAAC,UAAC,KAAK,YAAK,OAAA,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,YAAY,MAAK,YAAY,CAAA,EAAA,CAAC;SAChE,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,QAAS,EAAf,CAAe,CAAC,CAAC;AACzC,CAAC;AARD,4CAQC;AAED,SAAgB,WAAW,CAAC,UAAkB,EAAE,MAAqB;IACjE,OAAO,IAAA,iBAAO,EAAC;QACX,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,oBAAa,UAAU,aAAU;QACtC,MAAM,uBAAO,MAAM,CAAE;KACxB,CAAC,CAAC;AACP,CAAC;AAND,kCAMC;AAED,SAAsB,gBAAgB,CAClC,OAA2B;;;YAE3B,sBAAO,IAAA,iBAAO,EAAe,OAAO,CAAC,EAAC;;;CACzC;AAJD,4CAIC;AAED,IAAM,WAAW,GAAG,UAAC,GAAW;IAC5B,IAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,SAAgB,sBAAsB,CAA2B,MAA0B;IAC/E,IAAA,MAAM,GAAsC,MAAM,OAA5C,EAAE,GAAG,GAAiC,MAAM,IAAvC,EAAE,IAAI,GAA2B,MAAM,KAAjC,EAAE,MAAM,GAAmB,MAAM,OAAzB,EAAE,KAAiB,MAAM,QAAX,EAAZ,OAAO,mBAAG,EAAE,KAAA,CAAY;IAE3D,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;QACjB,OAAO,IAAI,CAAC;KACf;IACD,IAAM,OAAO,GAAG;QACZ,MAAM,QAAA;QACN,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;KACrE,CAAC;IAEF,CAAC,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,UAAC,MAAM;QAC/E,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACjB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpD,CAAC,CAAC,IAAA,2BAAgB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACzB;IACL,CAAC,CAAC,CAAC;IAEH,6CACO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACnC,OAAO,SAAA,IACT;AACN,CAAC;AAvBD,wDAuBC;AAED,SAAsB,iBAAiB,CACnC,QAAmC,EACnC,IAA6C;IAA7C,qBAAA,EAAA,oBAA6C;;;YAE7C,sBAAO,IAAA,iBAAO,EAAuB;oBACjC,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE;wBACF,IAAI,MAAA;wBACJ,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,KAAK,IAAI,EAAd,CAAc,CAAC;qBAChF;iBACJ,CAAC,EAAC;;;CACN;AAZD,8CAYC"}
1
+ {"version":3,"file":"fhir.js","sourceRoot":"","sources":["../../src/services/fhir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function cleanEmptyValues(data: any): any;
2
+ export declare function removeNullsFromDicts(data: any): any;
3
+ //# sourceMappingURL=fhir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fhir.d.ts","sourceRoot":"","sources":["../../src/utils/fhir.ts"],"names":[],"mappings":"AAYA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAuB/C;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAoBnD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeNullsFromDicts = exports.cleanEmptyValues = void 0;
4
+ function isEmpty(data) {
5
+ if (Array.isArray(data)) {
6
+ return data.length === 0;
7
+ }
8
+ if (typeof data === 'object' && data !== null) {
9
+ return Object.keys(data).length === 0;
10
+ }
11
+ return false;
12
+ }
13
+ function cleanEmptyValues(data) {
14
+ if (Array.isArray(data)) {
15
+ return data.map(function (item) {
16
+ return isEmpty(item) ? null : cleanEmptyValues(item);
17
+ });
18
+ }
19
+ if (typeof data === 'object' && data !== null) {
20
+ var cleaned = {};
21
+ for (var _i = 0, _a = Object.entries(data); _i < _a.length; _i++) {
22
+ var _b = _a[_i], key = _b[0], value = _b[1];
23
+ var cleanedValue = cleanEmptyValues(value);
24
+ if (!isEmpty(cleanedValue)) {
25
+ cleaned[key] = cleanedValue;
26
+ }
27
+ }
28
+ return cleaned;
29
+ }
30
+ if (typeof data === 'undefined') {
31
+ return null;
32
+ }
33
+ return data;
34
+ }
35
+ exports.cleanEmptyValues = cleanEmptyValues;
36
+ function isNull(value) {
37
+ return value === null || value === undefined;
38
+ }
39
+ function removeNullsFromDicts(data) {
40
+ if (Array.isArray(data)) {
41
+ return data.map(removeNullsFromDicts);
42
+ }
43
+ if (typeof data === 'object' && data !== null) {
44
+ var result = {};
45
+ for (var _i = 0, _a = Object.entries(data); _i < _a.length; _i++) {
46
+ var _b = _a[_i], key = _b[0], value = _b[1];
47
+ if (!isNull(value)) {
48
+ result[key] = removeNullsFromDicts(value);
49
+ }
50
+ }
51
+ return result;
52
+ }
53
+ if (typeof data === 'undefined') {
54
+ return null;
55
+ }
56
+ return data;
57
+ }
58
+ exports.removeNullsFromDicts = removeNullsFromDicts;
59
+ //# sourceMappingURL=fhir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fhir.js","sourceRoot":"","sources":["../../src/utils/fhir.ts"],"names":[],"mappings":";;;AAAA,SAAS,OAAO,CAAC,IAAS;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;KAC5B;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KACzC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAS;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI;YACjB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;KACN;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QAC3C,IAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAA2B,UAAoB,EAApB,KAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAAtC,IAAA,WAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAClB,IAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACxB,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;aAC/B;SACJ;QACD,OAAO,OAAO,CAAC;KAClB;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC7B,OAAO,IAAI,CAAC;KACf;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAvBD,4CAuBC;AAED,SAAS,MAAM,CAAC,KAAU;IACtB,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AACjD,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAS;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;KACzC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QAC3C,IAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAA2B,UAAoB,EAApB,KAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAAtC,IAAA,WAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAChB,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;aAC7C;SACJ;QACD,OAAO,MAAM,CAAC;KACjB;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC7B,OAAO,IAAI,CAAC;KACf;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AApBD,oDAoBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidbox-react",
3
- "version": "1.10.1",
3
+ "version": "1.11.1",
4
4
  "scripts": {
5
5
  "build": "tsc & rollup -c",
6
6
  "prebuild": "rimraf lib/* & rimraf dist/*",
package/src/index.ts CHANGED
@@ -10,6 +10,7 @@ export * from './utils/date';
10
10
  export * from './utils/error';
11
11
  export * from './utils/tests';
12
12
  export * from './utils/uuid';
13
+ export * from './utils/fhir';
13
14
 
14
15
  export * from './hooks/bus';
15
16
  export * from './hooks/service';
@@ -2,6 +2,7 @@ import { AxiosRequestConfig } from 'axios';
2
2
  import { AidboxReference, AidboxResource, ValueSet, Bundle, BundleEntry, id } from 'shared/src/contrib/aidbox';
3
3
 
4
4
  import { isFailure, RemoteDataResult, success, failure } from '../libs/remoteData';
5
+ import { cleanEmptyValues, removeNullsFromDicts } from '../utils/fhir';
5
6
  import { buildQueryParams } from './instance';
6
7
  import { SearchParams } from './search';
7
8
  import { service } from './service';
@@ -93,44 +94,66 @@ function getInactiveSearchParam(resourceType: string) {
93
94
 
94
95
  export async function createFHIRResource<R extends AidboxResource>(
95
96
  resource: R,
96
- searchParams?: SearchParams
97
+ searchParams?: SearchParams,
98
+ dropNullsFromDicts = true
97
99
  ): Promise<RemoteDataResult<WithId<R>>> {
98
- return service(create(resource, searchParams));
100
+ return service(create(resource, searchParams, dropNullsFromDicts));
99
101
  }
100
102
 
101
- export function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig {
103
+ export function create<R extends AidboxResource>(
104
+ resource: R,
105
+ searchParams?: SearchParams,
106
+ dropNullsFromDicts = true
107
+ ): AxiosRequestConfig {
108
+ let cleanedResource = resource;
109
+ if (dropNullsFromDicts) {
110
+ cleanedResource = removeNullsFromDicts(cleanedResource);
111
+ }
112
+ cleanedResource = cleanEmptyValues(cleanedResource);
113
+
102
114
  return {
103
115
  method: 'POST',
104
- url: `/${resource.resourceType}`,
116
+ url: `/${cleanedResource.resourceType}`,
105
117
  params: searchParams,
106
- data: resource,
118
+ data: cleanedResource,
107
119
  };
108
120
  }
109
121
 
110
122
  export async function updateFHIRResource<R extends AidboxResource>(
111
123
  resource: R,
112
- searchParams?: SearchParams
124
+ searchParams?: SearchParams,
125
+ dropNullsFromDicts = true
113
126
  ): Promise<RemoteDataResult<WithId<R>>> {
114
- return service(update(resource, searchParams));
127
+ return service(update(resource, searchParams, dropNullsFromDicts));
115
128
  }
116
129
 
117
- export function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig {
130
+ export function update<R extends AidboxResource>(
131
+ resource: R,
132
+ searchParams?: SearchParams,
133
+ dropNullsFromDicts = true
134
+ ): AxiosRequestConfig {
135
+ let cleanedResource = resource;
136
+ if (dropNullsFromDicts) {
137
+ cleanedResource = removeNullsFromDicts(cleanedResource);
138
+ }
139
+ cleanedResource = cleanEmptyValues(cleanedResource);
140
+
118
141
  if (searchParams) {
119
142
  return {
120
143
  method: 'PUT',
121
- url: `/${resource.resourceType}`,
122
- data: resource,
144
+ url: `/${cleanedResource.resourceType}`,
145
+ data: cleanedResource,
123
146
  params: searchParams,
124
147
  };
125
148
  }
126
149
 
127
- if (resource.id) {
128
- const versionId = resource.meta && resource.meta.versionId;
150
+ if (cleanedResource.id) {
151
+ const versionId = cleanedResource.meta && cleanedResource.meta.versionId;
129
152
 
130
153
  return {
131
154
  method: 'PUT',
132
- url: `/${resource.resourceType}/${resource.id}`,
133
- data: resource,
155
+ url: `/${cleanedResource.resourceType}/${cleanedResource.id}`,
156
+ data: cleanedResource,
134
157
  ...(versionId ? { headers: { 'If-Match': versionId } } : {}),
135
158
  };
136
159
  }
@@ -236,16 +259,24 @@ export async function findFHIRResource<R extends AidboxResource>(
236
259
  }
237
260
  }
238
261
 
239
- export async function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>> {
240
- return service(save(resource));
262
+ export async function saveFHIRResource<R extends AidboxResource>(
263
+ resource: R,
264
+ dropNullsFromDicts: boolean = true
265
+ ): Promise<RemoteDataResult<WithId<R>>> {
266
+ return service(save(resource, dropNullsFromDicts));
241
267
  }
242
268
 
243
- export function save<R extends AidboxResource>(resource: R): AxiosRequestConfig {
269
+ export function save<R extends AidboxResource>(resource: R, dropNullsFromDicts: boolean = true): AxiosRequestConfig {
244
270
  const versionId = resource.meta && resource.meta.versionId;
271
+ let cleanedResource = resource;
272
+ if (dropNullsFromDicts) {
273
+ cleanedResource = removeNullsFromDicts(cleanedResource);
274
+ }
275
+ cleanedResource = cleanEmptyValues(cleanedResource);
245
276
 
246
277
  return {
247
278
  method: resource.id ? 'PUT' : 'POST',
248
- data: resource,
279
+ data: cleanedResource,
249
280
  url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}`,
250
281
  ...(resource.id && versionId ? { headers: { 'If-Match': versionId } } : {}),
251
282
  };
@@ -253,7 +284,8 @@ export function save<R extends AidboxResource>(resource: R): AxiosRequestConfig
253
284
 
254
285
  export async function saveFHIRResources<R extends AidboxResource>(
255
286
  resources: R[],
256
- bundleType: 'transaction' | 'batch'
287
+ bundleType: 'transaction' | 'batch',
288
+ dropNullsFromDicts: boolean = true
257
289
  ): Promise<RemoteDataResult<Bundle<WithId<R>>>> {
258
290
  return service({
259
291
  method: 'POST',
@@ -261,14 +293,19 @@ export async function saveFHIRResources<R extends AidboxResource>(
261
293
  data: {
262
294
  type: bundleType,
263
295
  entry: resources.map((resource) => {
264
- const versionId = resource.meta && resource.meta.versionId;
296
+ let cleanedResource = resource;
297
+ if (dropNullsFromDicts) {
298
+ cleanedResource = removeNullsFromDicts(cleanedResource);
299
+ }
300
+ cleanedResource = cleanEmptyValues(cleanedResource);
301
+ const versionId = cleanedResource.meta && cleanedResource.meta.versionId;
265
302
 
266
303
  return {
267
- resource,
304
+ resource: cleanedResource,
268
305
  request: {
269
- method: resource.id ? 'PUT' : 'POST',
270
- url: `/${resource.resourceType}${resource.id ? '/' + resource.id : ''}`,
271
- ...(resource.id && versionId ? { ifMatch: versionId } : {}),
306
+ method: cleanedResource.id ? 'PUT' : 'POST',
307
+ url: `/${cleanedResource.resourceType}${cleanedResource.id ? '/' + cleanedResource.id : ''}`,
308
+ ...(cleanedResource.id && versionId ? { ifMatch: versionId } : {}),
272
309
  },
273
310
  };
274
311
  }),
@@ -395,7 +432,7 @@ export type ResourcesMap<T extends AidboxResource> = {
395
432
  export function extractBundleResources<T extends AidboxResource>(bundle: Bundle<T>): ResourcesMap<T> {
396
433
  const entriesByResourceType = {} as ResourcesMap<T>;
397
434
  const entries = bundle.entry || [];
398
- entries.forEach(function(entry) {
435
+ entries.forEach(function (entry) {
399
436
  const type = entry.resource!.resourceType;
400
437
  if (!entriesByResourceType[type]) {
401
438
  entriesByResourceType[type] = [];
@@ -0,0 +1,62 @@
1
+ function isEmpty(data: any): boolean {
2
+ if (Array.isArray(data)) {
3
+ return data.length === 0;
4
+ }
5
+
6
+ if (typeof data === 'object' && data !== null) {
7
+ return Object.keys(data).length === 0;
8
+ }
9
+
10
+ return false;
11
+ }
12
+
13
+ export function cleanEmptyValues(data: any): any {
14
+ if (Array.isArray(data)) {
15
+ return data.map((item) => {
16
+ return isEmpty(item) ? null : cleanEmptyValues(item);
17
+ });
18
+ }
19
+
20
+ if (typeof data === 'object' && data !== null) {
21
+ const cleaned: Record<string, any> = {};
22
+ for (const [key, value] of Object.entries(data)) {
23
+ const cleanedValue = cleanEmptyValues(value);
24
+ if (!isEmpty(cleanedValue)) {
25
+ cleaned[key] = cleanedValue;
26
+ }
27
+ }
28
+ return cleaned;
29
+ }
30
+
31
+ if (typeof data === 'undefined') {
32
+ return null;
33
+ }
34
+
35
+ return data;
36
+ }
37
+
38
+ function isNull(value: any): boolean {
39
+ return value === null || value === undefined;
40
+ }
41
+
42
+ export function removeNullsFromDicts(data: any): any {
43
+ if (Array.isArray(data)) {
44
+ return data.map(removeNullsFromDicts);
45
+ }
46
+
47
+ if (typeof data === 'object' && data !== null) {
48
+ const result: Record<string, any> = {};
49
+ for (const [key, value] of Object.entries(data)) {
50
+ if (!isNull(value)) {
51
+ result[key] = removeNullsFromDicts(value);
52
+ }
53
+ }
54
+ return result;
55
+ }
56
+
57
+ if (typeof data === 'undefined') {
58
+ return null;
59
+ }
60
+
61
+ return data;
62
+ }