@icure/api 4.0.99 → 4.1.0
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/icc-api/api/XHR.js +2 -12
- package/icc-api/api/XHR.js.map +1 -1
- package/icc-api/model/ModelHelper.d.ts +8 -0
- package/icc-api/model/ModelHelper.js +52 -12
- package/icc-api/model/ModelHelper.js.map +1 -1
- package/icc-api/model/models.d.ts +3 -0
- package/icc-api/model/models.js +3 -0
- package/icc-api/model/models.js.map +1 -1
- package/icc-x-api/crypto/AES.d.ts +1 -4
- package/icc-x-api/crypto/AES.js +4 -9
- package/icc-x-api/crypto/AES.js.map +1 -1
- package/icc-x-api/icc-accesslog-x-api.js +1 -1
- package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
- package/icc-x-api/icc-calendar-item-x-api.js +1 -1
- package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
- package/icc-x-api/icc-classification-x-api.js +1 -1
- package/icc-x-api/icc-classification-x-api.js.map +1 -1
- package/icc-x-api/icc-contact-x-api.js +1 -1
- package/icc-x-api/icc-contact-x-api.js.map +1 -1
- package/icc-x-api/icc-crypto-x-api.d.ts +10 -20
- package/icc-x-api/icc-crypto-x-api.js +2 -2
- package/icc-x-api/icc-crypto-x-api.js.map +1 -1
- package/icc-x-api/icc-document-x-api.d.ts +2 -2
- package/icc-x-api/icc-document-x-api.js +3 -3
- package/icc-x-api/icc-document-x-api.js.map +1 -1
- package/icc-x-api/icc-form-x-api.js +1 -1
- package/icc-x-api/icc-form-x-api.js.map +1 -1
- package/icc-x-api/icc-helement-x-api.js +1 -1
- package/icc-x-api/icc-helement-x-api.js.map +1 -1
- package/icc-x-api/icc-invoice-x-api.js +1 -1
- package/icc-x-api/icc-invoice-x-api.js.map +1 -1
- package/icc-x-api/icc-message-x-api.d.ts +2 -12
- package/icc-x-api/icc-message-x-api.js +2 -7
- package/icc-x-api/icc-message-x-api.js.map +1 -1
- package/icc-x-api/icc-patient-x-api.js +43 -43
- package/icc-x-api/icc-patient-x-api.js.map +1 -1
- package/icc-x-api/icc-receipt-x-api.d.ts +1 -1
- package/icc-x-api/icc-receipt-x-api.js +1 -1
- package/icc-x-api/icc-receipt-x-api.js.map +1 -1
- package/icc-x-api/index.js +1 -1
- package/icc-x-api/index.js.map +1 -1
- package/icc-x-api/utils/binary-utils.d.ts +2 -15
- package/icc-x-api/utils/binary-utils.js +18 -79
- package/icc-x-api/utils/binary-utils.js.map +1 -1
- package/icc-x-api/utils/index.d.ts +2 -0
- package/icc-x-api/utils/index.js +2 -0
- package/icc-x-api/utils/index.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icc-message-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-message-x-api.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"icc-message-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-message-x-api.ts"],"names":[],"mappings":";;;AAAA,wCAA0C;AAG1C,4BAA2B;AAI3B,MAAa,cAAe,SAAQ,uBAAa;IAC/C,YACE,IAAY,EACZ,OAAkC,EAC1B,MAAqB,EAC7B,YAA2E,OAAO,MAAM,KAAK,WAAW;QACtG,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,KAAK;QAET,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAPvB,WAAM,GAAN,MAAM,CAAe;QAQ7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,qCAAqC;IACrC,WAAW,CAAC,IAAU,EAAE,CAAM;QAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,sBAAsB,CAAC,IAAU,EAAE,OAAuB,EAAE,CAAM;QAChE,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CACtB;YACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,mCAAmC;YAC1C,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC7B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC9B,WAAW,EAAE,IAAI,CAAC,iBAAiB;YACnC,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;SACT,EACD,CAAC,IAAI,EAAE,CACR,CAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM;aACf,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC;aACtC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5H,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;gBAChB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;aAC9C,CAAC,CAAA;YAEF,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CACrC;YAAA,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAC3H,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,IAAI,CAAC,MAAM;iBACR,wCAAwC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;iBAClG,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAClB,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACjB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;aACjD,CAAC,CACH;iBACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACd,OAAO,QAAQ,CAAA;YACjB,CAAC,CAAC,CACL,CAAC,CACL,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACN,CAAC;CACF;AAnED,wCAmEC","sourcesContent":["import { IccMessageApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\n\nimport { Patient, User } from '../icc-api/model/models'\n\nexport class IccMessageXApi extends IccMessageApi {\n constructor(\n host: string,\n headers: { [key: string]: string },\n private crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: User, m: any) {\n return this.newInstanceWithPatient(user, null, m)\n }\n\n newInstanceWithPatient(user: User, patient: Patient | null, m: any) {\n const message = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Message',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId,\n author: user.id,\n codes: [],\n tags: [],\n },\n m || {}\n )\n\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId)\n .then((secretForeignKeys) => this.crypto.initObjectDelegations(message, patient, hcpId!, secretForeignKeys.extractedKeys[0]))\n .then((initData) => {\n _.extend(message, {\n delegations: initData.delegations,\n cryptedForeignKeys: initData.cryptedForeignKeys,\n secretForeignKeys: initData.secretForeignKeys,\n })\n\n let promise = Promise.resolve(message)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((helement) =>\n this.crypto\n .extendedDelegationsAndCryptedForeignKeys(helement, patient, hcpId!, delegateId, initData.secretId)\n .then((extraData) =>\n _.extend(helement, {\n delegations: extraData.delegations,\n cryptedForeignKeys: extraData.cryptedForeignKeys,\n })\n )\n .catch((e) => {\n console.log(e)\n return helement\n })\n ))\n )\n return promise\n })\n }\n}\n"]}
|
|
@@ -14,11 +14,11 @@ const icc_api_1 = require("../icc-api");
|
|
|
14
14
|
const _ = require("lodash");
|
|
15
15
|
const models = require("../icc-api/model/models");
|
|
16
16
|
const models_1 = require("../icc-api/model/models");
|
|
17
|
-
const utils_1 = require("./utils");
|
|
18
|
-
const utils_2 = require("./crypto/utils");
|
|
17
|
+
const utils_1 = require("./crypto/utils");
|
|
19
18
|
const ModelHelper_1 = require("../icc-api/model/ModelHelper");
|
|
20
19
|
const binary_utils_1 = require("./utils/binary-utils");
|
|
21
20
|
const person_util_1 = require("./utils/person-util");
|
|
21
|
+
const net_utils_1 = require("./utils/net-utils");
|
|
22
22
|
// noinspection JSUnusedGlobalSymbols
|
|
23
23
|
class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
24
24
|
constructor(host, headers, crypto, contactApi, formApi, helementApi, invoiceApi, documentApi, hcpartyApi, classificationApi, calendarItemaApi, encryptedKeys = ['note'], fetchImpl = typeof window !== 'undefined'
|
|
@@ -276,7 +276,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
276
276
|
: this.initEncryptionKeys(user, p))
|
|
277
277
|
.then((p) => this.crypto.extractKeysFromDelegationsForHcpHierarchy((user.healthcarePartyId || user.patientId), p.id, p.encryptionKeys))
|
|
278
278
|
.then((sfks) => this.crypto.AES.importKey('raw', binary_utils_1.hex2ua(sfks.extractedKeys[0].replace(/-/g, ''))))
|
|
279
|
-
.then((key) =>
|
|
279
|
+
.then((key) => utils_1.utils.crypt(p, (obj) => this.crypto.AES.encrypt(key, binary_utils_1.utf8_2ua(JSON.stringify(obj, (k, v) => {
|
|
280
280
|
return v instanceof ArrayBuffer || v instanceof Uint8Array
|
|
281
281
|
? binary_utils_1.b2a(new Uint8Array(v).reduce((d, b) => d + String.fromCharCode(b), ''))
|
|
282
282
|
: v;
|
|
@@ -314,7 +314,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
314
314
|
//console.log("Cannot decrypt contact", ctc.id)
|
|
315
315
|
return Promise.resolve(p);
|
|
316
316
|
}
|
|
317
|
-
return this.crypto.AES.importKey('raw', binary_utils_1.hex2ua(sfks[0].replace(/-/g, ''))).then((key) =>
|
|
317
|
+
return this.crypto.AES.importKey('raw', binary_utils_1.hex2ua(sfks[0].replace(/-/g, ''))).then((key) => utils_1.utils
|
|
318
318
|
.decrypt(p, (ec) => this.crypto.AES.decrypt(key, ec)
|
|
319
319
|
.then((dec) => {
|
|
320
320
|
const jsonContent = dec && binary_utils_1.ua2utf8(dec);
|
|
@@ -421,7 +421,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
421
421
|
},
|
|
422
422
|
patient: { success: false, error: null, modified: 0 },
|
|
423
423
|
};
|
|
424
|
-
return
|
|
424
|
+
return net_utils_1.retry(() => this.getPatientWithUser(user, patId))
|
|
425
425
|
.then((patient) => patient.encryptionKeys && Object.keys(patient.encryptionKeys || {}).length
|
|
426
426
|
? Promise.resolve(patient)
|
|
427
427
|
: this.initEncryptionKeys(user, patient).then((patient) => this.modifyPatientWithUser(user, patient)))
|
|
@@ -436,46 +436,46 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
436
436
|
return this.crypto.extractDelegationsSFKsAndEncryptionSKs(patient, ownerId).then(([delSfks, ecKeys]) => {
|
|
437
437
|
return delSfks.length
|
|
438
438
|
? Promise.all([
|
|
439
|
-
|
|
440
|
-
.findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
439
|
+
net_utils_1.retry(() => this.helementApi
|
|
440
|
+
.findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
441
441
|
.then((hes) => parentId
|
|
442
442
|
? this.helementApi
|
|
443
|
-
.findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
443
|
+
.findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
444
444
|
.then((moreHes) => _.uniqBy(hes.concat(moreHes), 'id'))
|
|
445
445
|
: hes)),
|
|
446
|
-
|
|
447
|
-
.findFormsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
446
|
+
net_utils_1.retry(() => this.formApi
|
|
447
|
+
.findFormsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
448
448
|
.then((frms) => parentId
|
|
449
449
|
? this.formApi
|
|
450
|
-
.findFormsDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
450
|
+
.findFormsDelegationsStubsByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
451
451
|
.then((moreFrms) => _.uniqBy(frms.concat(moreFrms), 'id'))
|
|
452
452
|
: frms)),
|
|
453
|
-
|
|
454
|
-
.findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))
|
|
453
|
+
net_utils_1.retry(() => this.contactApi
|
|
454
|
+
.findByHCPartyPatientSecretFKeys(ownerId, _.uniq(delSfks).join(','))
|
|
455
455
|
.then((ctcs) => parentId
|
|
456
456
|
? this.contactApi
|
|
457
|
-
.findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))
|
|
457
|
+
.findByHCPartyPatientSecretFKeys(parentId, _.uniq(delSfks).join(','))
|
|
458
458
|
.then((moreCtcs) => _.uniqBy(ctcs.concat(moreCtcs), 'id'))
|
|
459
459
|
: ctcs)),
|
|
460
|
-
|
|
461
|
-
.findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
460
|
+
net_utils_1.retry(() => this.invoiceApi
|
|
461
|
+
.findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
462
462
|
.then((ivs) => parentId
|
|
463
463
|
? this.invoiceApi
|
|
464
|
-
.findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
464
|
+
.findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
465
465
|
.then((moreIvs) => _.uniqBy(ivs.concat(moreIvs), 'id'))
|
|
466
466
|
: ivs)),
|
|
467
|
-
|
|
468
|
-
.findClassificationsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
467
|
+
net_utils_1.retry(() => this.classificationApi
|
|
468
|
+
.findClassificationsByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
469
469
|
.then((cls) => parentId
|
|
470
470
|
? this.classificationApi
|
|
471
|
-
.findClassificationsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
471
|
+
.findClassificationsByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
472
472
|
.then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))
|
|
473
473
|
: cls)),
|
|
474
|
-
|
|
475
|
-
.findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))
|
|
474
|
+
net_utils_1.retry(() => this.calendarItemApi
|
|
475
|
+
.findByHCPartyPatientSecretFKeys(ownerId, _.uniq(delSfks).join(','))
|
|
476
476
|
.then((cls) => parentId
|
|
477
477
|
? this.calendarItemApi
|
|
478
|
-
.findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))
|
|
478
|
+
.findByHCPartyPatientSecretFKeys(parentId, _.uniq(delSfks).join(','))
|
|
479
479
|
.then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))
|
|
480
480
|
: cls)),
|
|
481
481
|
]).then(([hes, frms, ctcs, ivs, cls, cis]) => {
|
|
@@ -496,7 +496,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
496
496
|
const docIds = {};
|
|
497
497
|
ctcs.forEach((c) => c.services &&
|
|
498
498
|
c.services.forEach((s) => s.content && Object.values(s.content).forEach((c) => c.documentId && (docIds[c.documentId] = 1))));
|
|
499
|
-
return
|
|
499
|
+
return net_utils_1.retry(() => this.documentApi.getDocuments(new models_1.ListOfIds({ ids: Object.keys(docIds) }))).then((docs) => {
|
|
500
500
|
const oDocs = docs.map((x) => _.assign({}, x, cloneKeysAndDelegations(x)));
|
|
501
501
|
let markerPromise = Promise.resolve(null);
|
|
502
502
|
delegateIds.forEach((delegateId) => {
|
|
@@ -684,7 +684,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
684
684
|
export(user, patId, ownerId) {
|
|
685
685
|
return this.hcpartyApi.getHealthcareParty(ownerId).then((hcp) => {
|
|
686
686
|
const parentId = hcp.parentId;
|
|
687
|
-
return
|
|
687
|
+
return net_utils_1.retry(() => this.getPatientWithUser(user, patId))
|
|
688
688
|
.then((patient) => patient.encryptionKeys && Object.keys(patient.encryptionKeys || {}).length
|
|
689
689
|
? Promise.resolve(patient)
|
|
690
690
|
: this.initEncryptionKeys(user, patient).then((patient) => this.modifyPatientWithUser(user, patient)))
|
|
@@ -695,43 +695,43 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
695
695
|
return this.crypto.extractDelegationsSFKsAndEncryptionSKs(patient, ownerId).then(([delSfks, ecKeys]) => {
|
|
696
696
|
return delSfks.length
|
|
697
697
|
? Promise.all([
|
|
698
|
-
|
|
699
|
-
.findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))
|
|
698
|
+
net_utils_1.retry(() => this.helementApi
|
|
699
|
+
.findByHCPartyPatientSecretFKeys(ownerId, _.uniq(delSfks).join(','))
|
|
700
700
|
.then((hes) => parentId
|
|
701
701
|
? this.helementApi
|
|
702
|
-
.findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))
|
|
702
|
+
.findByHCPartyPatientSecretFKeys(parentId, _.uniq(delSfks).join(','))
|
|
703
703
|
.then((moreHes) => _.uniqBy(hes.concat(moreHes), 'id'))
|
|
704
704
|
: hes)),
|
|
705
|
-
|
|
706
|
-
.findFormsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
705
|
+
net_utils_1.retry(() => this.formApi
|
|
706
|
+
.findFormsByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
707
707
|
.then((frms) => parentId
|
|
708
708
|
? this.formApi
|
|
709
|
-
.findFormsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
709
|
+
.findFormsByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
710
710
|
.then((moreFrms) => _.uniqBy(frms.concat(moreFrms), 'id'))
|
|
711
711
|
: frms)),
|
|
712
|
-
|
|
713
|
-
.findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))
|
|
712
|
+
net_utils_1.retry(() => this.contactApi
|
|
713
|
+
.findByHCPartyPatientSecretFKeys(ownerId, _.uniq(delSfks).join(','))
|
|
714
714
|
.then((ctcs) => parentId
|
|
715
715
|
? this.contactApi
|
|
716
|
-
.findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))
|
|
716
|
+
.findByHCPartyPatientSecretFKeys(parentId, _.uniq(delSfks).join(','))
|
|
717
717
|
.then((moreCtcs) => _.uniqBy(ctcs.concat(moreCtcs), 'id'))
|
|
718
718
|
: ctcs)),
|
|
719
|
-
|
|
720
|
-
.findInvoicesByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
719
|
+
net_utils_1.retry(() => this.invoiceApi
|
|
720
|
+
.findInvoicesByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
721
721
|
.then((ivs) => parentId
|
|
722
722
|
? this.invoiceApi
|
|
723
|
-
.findInvoicesByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
723
|
+
.findInvoicesByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
724
724
|
.then((moreIvs) => _.uniqBy(ivs.concat(moreIvs), 'id'))
|
|
725
725
|
: ivs)),
|
|
726
|
-
|
|
727
|
-
.findClassificationsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))
|
|
726
|
+
net_utils_1.retry(() => this.classificationApi
|
|
727
|
+
.findClassificationsByHCPartyPatientForeignKeys(ownerId, _.uniq(delSfks).join(','))
|
|
728
728
|
.then((cls) => parentId
|
|
729
729
|
? this.classificationApi
|
|
730
|
-
.findClassificationsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))
|
|
730
|
+
.findClassificationsByHCPartyPatientForeignKeys(parentId, _.uniq(delSfks).join(','))
|
|
731
731
|
.then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))
|
|
732
732
|
: cls)),
|
|
733
|
-
|
|
734
|
-
const delegationSFKs = delSfks.join(',');
|
|
733
|
+
net_utils_1.retry(() => __awaiter(this, void 0, void 0, function* () {
|
|
734
|
+
const delegationSFKs = _.uniq(delSfks).join(',');
|
|
735
735
|
try {
|
|
736
736
|
let calendarItems = yield this.calendarItemApi.findByHCPartyPatientSecretFKeys(ownerId, delegationSFKs);
|
|
737
737
|
if (parentId) {
|
|
@@ -749,7 +749,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
|
|
|
749
749
|
const docIds = {};
|
|
750
750
|
ctcs.forEach((c) => c.services &&
|
|
751
751
|
c.services.forEach((s) => s.content && Object.values(s.content).forEach((c) => c.documentId && (docIds[c.documentId] = 1))));
|
|
752
|
-
return
|
|
752
|
+
return net_utils_1.retry(() => this.documentApi.getDocuments(new models_1.ListOfIds({ ids: Object.keys(docIds) }))).then((docs) => {
|
|
753
753
|
return {
|
|
754
754
|
id: patId,
|
|
755
755
|
patient: patient,
|