@icure/api 4.0.77 → 4.0.82

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.
Files changed (129) hide show
  1. package/icc-api/api/IccAnonymousAccessApi.d.ts +5 -5
  2. package/icc-api/api/IccAnonymousAccessApi.js +5 -5
  3. package/icc-api/api/IccAnonymousAccessApi.js.map +1 -1
  4. package/icc-api/api/IccCodeApi.d.ts +7 -0
  5. package/icc-api/api/IccCodeApi.js +15 -0
  6. package/icc-api/api/IccCodeApi.js.map +1 -1
  7. package/icc-api/api/IccContactApi.d.ts +13 -8
  8. package/icc-api/api/IccContactApi.js +28 -19
  9. package/icc-api/api/IccContactApi.js.map +1 -1
  10. package/icc-api/api/IccDeviceApi.d.ts +109 -0
  11. package/icc-api/api/IccDeviceApi.js +230 -0
  12. package/icc-api/api/IccDeviceApi.js.map +1 -0
  13. package/icc-api/api/IccHcpartyApi.d.ts +16 -0
  14. package/icc-api/api/IccHcpartyApi.js +37 -0
  15. package/icc-api/api/IccHcpartyApi.js.map +1 -1
  16. package/icc-api/api/IccHelementApi.d.ts +20 -3
  17. package/icc-api/api/IccHelementApi.js +43 -5
  18. package/icc-api/api/IccHelementApi.js.map +1 -1
  19. package/icc-api/api/IccPatientApi.d.ts +5 -2
  20. package/icc-api/api/IccPatientApi.js +3 -1
  21. package/icc-api/api/IccPatientApi.js.map +1 -1
  22. package/icc-api/api/IccReplicationApi.d.ts +46 -0
  23. package/icc-api/api/IccReplicationApi.js +87 -0
  24. package/icc-api/api/IccReplicationApi.js.map +1 -0
  25. package/icc-api/api/IccTmpApi.d.ts +22 -0
  26. package/icc-api/api/IccTmpApi.js +54 -0
  27. package/icc-api/api/IccTmpApi.js.map +1 -1
  28. package/icc-api/api/IccUserApi.d.ts +21 -3
  29. package/icc-api/api/IccUserApi.js +44 -3
  30. package/icc-api/api/IccUserApi.js.map +1 -1
  31. package/icc-api/iccApi.d.ts +2 -0
  32. package/icc-api/iccApi.js +2 -0
  33. package/icc-api/iccApi.js.map +1 -1
  34. package/icc-api/index.d.ts +4 -0
  35. package/icc-api/index.js +4 -0
  36. package/icc-api/index.js.map +1 -1
  37. package/icc-api/model/AbstractFilterDevice.d.ts +15 -0
  38. package/icc-api/model/AbstractFilterDevice.js +21 -0
  39. package/icc-api/model/AbstractFilterDevice.js.map +1 -0
  40. package/icc-api/model/AbstractFilterHealthcareParty.d.ts +15 -0
  41. package/icc-api/model/AbstractFilterHealthcareParty.js +21 -0
  42. package/icc-api/model/AbstractFilterHealthcareParty.js.map +1 -0
  43. package/icc-api/model/AbstractFilterUser.d.ts +15 -0
  44. package/icc-api/model/AbstractFilterUser.js +21 -0
  45. package/icc-api/model/AbstractFilterUser.js.map +1 -0
  46. package/icc-api/model/Annotation.d.ts +38 -0
  47. package/icc-api/model/Annotation.js +24 -0
  48. package/icc-api/model/Annotation.js.map +1 -0
  49. package/icc-api/model/Content.d.ts +3 -1
  50. package/icc-api/model/Content.js +1 -1
  51. package/icc-api/model/Content.js.map +1 -1
  52. package/icc-api/model/Device.d.ts +81 -0
  53. package/icc-api/model/Device.js +14 -0
  54. package/icc-api/model/Device.js.map +1 -0
  55. package/icc-api/model/FilterChainDevice.d.ts +18 -0
  56. package/icc-api/model/FilterChainDevice.js +10 -0
  57. package/icc-api/model/FilterChainDevice.js.map +1 -0
  58. package/icc-api/model/FilterChainHealthcareParty.d.ts +18 -0
  59. package/icc-api/model/FilterChainHealthcareParty.js +10 -0
  60. package/icc-api/model/FilterChainHealthcareParty.js.map +1 -0
  61. package/icc-api/model/FilterChainUser.d.ts +18 -0
  62. package/icc-api/model/FilterChainUser.js +10 -0
  63. package/icc-api/model/FilterChainUser.js.map +1 -0
  64. package/icc-api/model/FlowItem.d.ts +2 -0
  65. package/icc-api/model/FlowItem.js.map +1 -1
  66. package/icc-api/model/HealthElement.d.ts +3 -1
  67. package/icc-api/model/HealthElement.js.map +1 -1
  68. package/icc-api/model/HealthcareParty.d.ts +12 -2
  69. package/icc-api/model/HealthcareParty.js +1 -1
  70. package/icc-api/model/HealthcareParty.js.map +1 -1
  71. package/icc-api/model/IndexedIdentifier.d.ts +17 -0
  72. package/icc-api/model/IndexedIdentifier.js +10 -0
  73. package/icc-api/model/IndexedIdentifier.js.map +1 -0
  74. package/icc-api/model/ModelHelper.d.ts +1 -1
  75. package/icc-api/model/ModelHelper.js +21 -14
  76. package/icc-api/model/ModelHelper.js.map +1 -1
  77. package/icc-api/model/PaginatedListDevice.d.ts +20 -0
  78. package/icc-api/model/PaginatedListDevice.js +10 -0
  79. package/icc-api/model/PaginatedListDevice.js.map +1 -0
  80. package/icc-api/model/Patient.d.ts +3 -3
  81. package/icc-api/model/ReplicateCommand.d.ts +21 -0
  82. package/icc-api/model/ReplicateCommand.js +21 -0
  83. package/icc-api/model/ReplicateCommand.js.map +1 -0
  84. package/icc-api/model/ReplicatorResponse.d.ts +19 -0
  85. package/icc-api/model/ReplicatorResponse.js +21 -0
  86. package/icc-api/model/ReplicatorResponse.js.map +1 -0
  87. package/icc-api/model/Service.d.ts +28 -1
  88. package/icc-api/model/Service.js.map +1 -1
  89. package/icc-api/model/TimeSeries.d.ts +24 -0
  90. package/icc-api/model/TimeSeries.js +24 -0
  91. package/icc-api/model/TimeSeries.js.map +1 -0
  92. package/icc-api/model/TimeTable.d.ts +0 -1
  93. package/icc-api/model/TimeTable.js.map +1 -1
  94. package/icc-api/model/TimeTableItem.d.ts +1 -0
  95. package/icc-api/model/TimeTableItem.js.map +1 -1
  96. package/icc-api/model/User.d.ts +9 -1
  97. package/icc-api/model/User.js.map +1 -1
  98. package/icc-api/model/UserAndHealthcareParty.d.ts +21 -0
  99. package/icc-api/model/UserAndHealthcareParty.js +13 -0
  100. package/icc-api/model/UserAndHealthcareParty.js.map +1 -0
  101. package/icc-api/model/models.d.ts +11 -0
  102. package/icc-api/model/models.js +11 -0
  103. package/icc-api/model/models.js.map +1 -1
  104. package/icc-x-api/icc-accesslog-x-api.d.ts +1 -3
  105. package/icc-x-api/icc-bekmehr-x-api.js +4 -4
  106. package/icc-x-api/icc-bekmehr-x-api.js.map +1 -1
  107. package/icc-x-api/icc-calendar-item-x-api.d.ts +1 -3
  108. package/icc-x-api/icc-contact-x-api.d.ts +2 -1
  109. package/icc-x-api/icc-contact-x-api.js +7 -0
  110. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  111. package/icc-x-api/icc-crypto-x-api.d.ts +23 -4
  112. package/icc-x-api/icc-crypto-x-api.js +133 -32
  113. package/icc-x-api/icc-crypto-x-api.js.map +1 -1
  114. package/icc-x-api/icc-hcparty-x-api.d.ts +4 -0
  115. package/icc-x-api/icc-hcparty-x-api.js +23 -1
  116. package/icc-x-api/icc-hcparty-x-api.js.map +1 -1
  117. package/icc-x-api/icc-patient-x-api.d.ts +2 -3
  118. package/icc-x-api/icc-patient-x-api.js +28 -2
  119. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  120. package/icc-x-api/utils/formatting-util.d.ts +3 -0
  121. package/icc-x-api/utils/formatting-util.js +9 -9
  122. package/icc-x-api/utils/formatting-util.js.map +1 -1
  123. package/icc-x-api/utils/index.d.ts +1 -0
  124. package/icc-x-api/utils/index.js +1 -0
  125. package/icc-x-api/utils/index.js.map +1 -1
  126. package/icc-x-api/utils/person-util.d.ts +4 -0
  127. package/icc-x-api/utils/person-util.js +27 -0
  128. package/icc-x-api/utils/person-util.js.map +1 -0
  129. package/package.json +1 -1
@@ -24,7 +24,9 @@ class IccCryptoXApi {
24
24
  //for each delegate, it stores the list of delegators and the corresponding delegateEncryptedHcPartyKey (shared HcPartyKey, from delegator to delegate, encrypted with the RSA key of the delegate)
25
25
  this.hcPartyKeysRequestsCache = {};
26
26
  this.keychainLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain.';
27
- this.hcpPreferenceKeyEhealthCert = 'eHealthCRT';
27
+ this.keychainValidityDateLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain-date.';
28
+ this.hcpPreferenceKeyEhealthCert = 'eHealthCRTCrypt';
29
+ this.hcpPreferenceKeyEhealthCertDate = 'eHealthCRTDate';
28
30
  this.hcpartyBaseApi = hcpartyBaseApi;
29
31
  this.patientBaseApi = patientBaseApi;
30
32
  this.crypto = crypto;
@@ -794,56 +796,125 @@ class IccCryptoXApi {
794
796
  saveKeychainInBrowserLocalStorageAsBase64(id, keyChainB64) {
795
797
  localStorage.setItem(this.keychainLocalStoreIdPrefix + id, keyChainB64);
796
798
  }
799
+ // noinspection JSUnusedGlobalSymbols
800
+ saveKeychainValidityDateInBrowserLocalStorage(id, date) {
801
+ if (!id)
802
+ return;
803
+ if (!date) {
804
+ localStorage.removeItem(this.keychainValidityDateLocalStoreIdPrefix + id);
805
+ }
806
+ else {
807
+ localStorage.setItem(this.keychainValidityDateLocalStoreIdPrefix + id, date);
808
+ }
809
+ }
810
+ /**
811
+ * Populate the HCP.options dict with an encrypted eHealth certificate and unencryped expiry date.
812
+ * Any potentially unencrypted certificates will be pruned from the HCP.
813
+ * @param hcpId Id of the hcp to modify
814
+ * @returns modified HCP
815
+ */
797
816
  saveKeyChainInHCPFromLocalStorage(hcpId) {
798
- return this.hcpartyBaseApi
799
- .getHealthcareParty(hcpId)
800
- .then((hcp) => {
801
- const crt = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id);
802
- const opts = hcp.options || {};
803
- _.set(opts, this.hcpPreferenceKeyEhealthCert, crt);
804
- hcp.options = opts;
805
- return hcp;
806
- })
807
- .then((hcp) => {
808
- return this.hcpartyBaseApi.modifyHealthcareParty(hcp);
817
+ return __awaiter(this, void 0, void 0, function* () {
818
+ return yield this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => __awaiter(this, void 0, void 0, function* () {
819
+ let aesKey = null;
820
+ try {
821
+ aesKey = _.find(yield this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id], hcp.id), (delegator) => delegator.delegatorId === hcp.id).key;
822
+ }
823
+ catch (e) {
824
+ console.error('Error while importing the AES key.');
825
+ }
826
+ if (!aesKey) {
827
+ console.error('No encryption key!');
828
+ }
829
+ const opts = hcp.options || {};
830
+ const crt = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id);
831
+ if (!!aesKey && !!crt) {
832
+ let crtEncrypted = null;
833
+ try {
834
+ crtEncrypted = yield this.AES.encrypt(aesKey, new Uint8Array(binary_utils_1.string2ua(atob(crt))));
835
+ }
836
+ catch (e) {
837
+ console.error('Error while encrypting the certificate', e);
838
+ }
839
+ // add the encrypted certificate to the options
840
+ _.set(opts, this.hcpPreferenceKeyEhealthCert, binary_utils_1.ua2string(new Uint8Array(crtEncrypted)));
841
+ }
842
+ const crtValidityDate = this.getKeychainValidityDateInBrowserLocalStorage(hcp.id);
843
+ if (!!crtValidityDate) {
844
+ _.set(opts, this.hcpPreferenceKeyEhealthCertDate, crtValidityDate);
845
+ }
846
+ hcp.options = opts;
847
+ return hcp;
848
+ }));
809
849
  });
810
850
  }
811
851
  importKeychainInBrowserFromHCP(hcpId) {
812
- return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => {
813
- const crt = _.get(hcp.options, this.hcpPreferenceKeyEhealthCert);
814
- if (crt) {
815
- this.saveKeychainInBrowserLocalStorageAsBase64(hcp.id, crt);
852
+ return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => __awaiter(this, void 0, void 0, function* () {
853
+ let crtCryp = null;
854
+ if (!!hcp.options && !!hcp.options[this.hcpPreferenceKeyEhealthCert]) {
855
+ crtCryp = binary_utils_1.string2ua(hcp.options[this.hcpPreferenceKeyEhealthCert]);
816
856
  }
817
- });
857
+ const crtValidityDate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCertDate);
858
+ // store the validity date
859
+ if (!!crtValidityDate) {
860
+ this.saveKeychainValidityDateInBrowserLocalStorage(hcp.id, crtValidityDate);
861
+ }
862
+ let crt = null;
863
+ let decryptionKey = null;
864
+ try {
865
+ decryptionKey = _.find(yield this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id], hcp.id), (delegator) => delegator.delegatorId === hcp.id).key;
866
+ }
867
+ catch (e) {
868
+ console.error('Error while importing the AES key.');
869
+ }
870
+ if (!decryptionKey) {
871
+ throw new Error('No encryption key! eHealth certificate cannot be decrypted.');
872
+ }
873
+ if (!!crtCryp && decryptionKey) {
874
+ try {
875
+ crt = yield this.AES.decrypt(decryptionKey, crtCryp);
876
+ }
877
+ catch (e) {
878
+ console.error(e);
879
+ }
880
+ }
881
+ if (!crt) {
882
+ throw new Error(`Error while saving certificate in browser local storage! Hcp ${hcp.id} has no certificate.`);
883
+ }
884
+ else {
885
+ this.saveKeychainInBrowserLocalStorageAsBase64(hcp.id, btoa(String.fromCharCode.apply(null, new Uint8Array(crt))));
886
+ }
887
+ return;
888
+ }));
818
889
  }
819
890
  /**
820
- * Returns true if a key has been set in the localstorage
891
+ * Synchronizes the eHealth certificate from the database into the LocalStorage, returning information on the presence
892
+ * of certificate data in either place.
893
+ *
821
894
  * @param hcpId The healthcare party id
895
+ * @returns A Promise for an object that represents the existence of a certificate in local storage and in the DB,
896
+ * through the two boolean properties "local" and "remote".
822
897
  */
823
- syncEhealthCertificate(hcpId) {
898
+ syncEhealthCertificateFromDatabase(hcpId) {
824
899
  return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp) => {
825
- const crtHCP = _.get(hcp.options, this.hcpPreferenceKeyEhealthCert);
826
- const crtLC = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id);
827
- const xor_hcp_localstorage = !(crtHCP && crtLC) && (crtHCP || crtLC);
828
- if (!xor_hcp_localstorage) {
829
- // The key is either present in the 2 sources or absent from the 2 sources
830
- return !!crtLC;
831
- }
832
- if (crtHCP) {
900
+ const remoteCertificate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCert);
901
+ const localCertificate = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id);
902
+ if (remoteCertificate) {
833
903
  return this.importKeychainInBrowserFromHCP(hcp.id)
834
- .then(() => true)
835
- .catch(() => false);
904
+ .then(() => ({ local: true, remote: true }))
905
+ .catch(() => ({ local: !!localCertificate, remote: true }));
836
906
  }
837
907
  else {
838
- return this.saveKeyChainInHCPFromLocalStorage(hcp.id)
839
- .then(() => true)
840
- .catch(() => false);
908
+ return { local: !!localCertificate, remote: !!remoteCertificate };
841
909
  }
842
910
  });
843
911
  }
844
912
  getKeychainInBrowserLocalStorageAsBase64(id) {
845
913
  return localStorage.getItem(this.keychainLocalStoreIdPrefix + id);
846
914
  }
915
+ getKeychainValidityDateInBrowserLocalStorage(id) {
916
+ return localStorage.getItem(this.keychainValidityDateLocalStoreIdPrefix + id);
917
+ }
847
918
  // noinspection JSUnusedGlobalSymbols
848
919
  loadKeychainFromBrowserLocalStorage(id) {
849
920
  const lsItem = localStorage.getItem('org.taktik.icure.ehealth.keychain.' + id);
@@ -929,6 +1000,36 @@ class IccCryptoXApi {
929
1000
  }
930
1001
  throw '### THIS SHOULD NOT HAPPEN: ' + argName + ' has an invalid value: ' + argValue + details;
931
1002
  }
1003
+ getEncryptionDecryptionKeys(healthcarePartyId, document) {
1004
+ return !document.id
1005
+ ? Promise.resolve(null)
1006
+ : this.extractKeysFromDelegationsForHcpHierarchy(healthcarePartyId, document.id, (document.encryptionKeys && Object.keys(document.encryptionKeys).length && document.encryptionKeys) || document.delegations)
1007
+ .then(({ extractedKeys }) => extractedKeys)
1008
+ .catch(() => null);
1009
+ }
1010
+ encryptDecrypt(method, content, edKey, user, documentObject) {
1011
+ return __awaiter(this, void 0, void 0, function* () {
1012
+ if (!content || !(edKey || ((user === null || user === void 0 ? void 0 : user.healthcarePartyId) && documentObject)))
1013
+ return content;
1014
+ if (edKey) {
1015
+ const importedEdKey = yield this._AES.importKey('raw', binary_utils_1.hex2ua(edKey.replace(/-/g, '')));
1016
+ try {
1017
+ return this._AES[method](importedEdKey, content);
1018
+ }
1019
+ catch (e) {
1020
+ return content;
1021
+ }
1022
+ }
1023
+ const sfks = yield this.extractKeysFromDelegationsForHcpHierarchy(user === null || user === void 0 ? void 0 : user.healthcarePartyId, documentObject === null || documentObject === void 0 ? void 0 : documentObject.id, documentObject === null || documentObject === void 0 ? void 0 : documentObject.encryptionKeys);
1024
+ const importedEdKey = yield this._AES.importKey('raw', binary_utils_1.hex2ua(sfks.extractedKeys[0].replace(/-/g, '')));
1025
+ try {
1026
+ return this._AES[method](importedEdKey, content);
1027
+ }
1028
+ catch (e) {
1029
+ return content;
1030
+ }
1031
+ });
1032
+ }
932
1033
  }
933
1034
  exports.IccCryptoXApi = IccCryptoXApi;
934
1035
  //# sourceMappingURL=icc-crypto-x-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icc-crypto-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-crypto-x-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icc-crypto-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-crypto-x-api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { IccHcpartyApi } from '../icc-api';
2
2
  import { HealthcareParty } from '../icc-api/model/HealthcareParty';
3
+ import * as models from '../icc-api/model/models';
3
4
  export declare class IccHcpartyXApi extends IccHcpartyApi {
4
5
  hcPartyKeysCache: {
5
6
  [key: string]: {
@@ -14,7 +15,10 @@ export declare class IccHcpartyXApi extends IccHcpartyApi {
14
15
  [key: string]: string;
15
16
  }, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>);
16
17
  private getHcPartyFromCache;
18
+ completeNames(hcParty?: models.HealthcareParty): models.HealthcareParty | undefined;
17
19
  putHcPartyInCache(key: string, value?: Promise<HealthcareParty> | null): Promise<HealthcareParty>;
20
+ createHealthcareParty(body?: HealthcareParty): Promise<HealthcareParty>;
21
+ createHealthcarePartyInGroup(groupId: string, body?: HealthcareParty): Promise<HealthcareParty>;
18
22
  modifyHealthcareParty(body?: HealthcareParty): Promise<HealthcareParty | any>;
19
23
  getHealthcareParty(healthcarePartyId: string, bypassCache?: boolean): Promise<HealthcareParty | any>;
20
24
  getHealthcareParties(healthcarePartyIds: string): Promise<Array<HealthcareParty> | any>;
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IccHcpartyXApi = void 0;
4
4
  const icc_api_1 = require("../icc-api");
5
+ const models = require("../icc-api/model/models");
6
+ const person_util_1 = require("./utils/person-util");
5
7
  // noinspection JSUnusedGlobalSymbols
6
8
  class IccHcpartyXApi extends icc_api_1.IccHcpartyApi {
7
9
  constructor(host, headers, fetchImpl = typeof window !== 'undefined'
@@ -28,6 +30,20 @@ class IccHcpartyXApi extends icc_api_1.IccHcpartyApi {
28
30
  }
29
31
  return null;
30
32
  }
33
+ completeNames(hcParty) {
34
+ if (!hcParty) {
35
+ return hcParty;
36
+ }
37
+ let finalHcParty = hcParty;
38
+ if ((!!finalHcParty.lastName || !!finalHcParty.name) && !person_util_1.hasName(finalHcParty, models.PersonName.UseEnum.Official)) {
39
+ finalHcParty = person_util_1.garnishPersonWithName(finalHcParty, models.PersonName.UseEnum.Official, finalHcParty.lastName, finalHcParty.firstName, finalHcParty.name);
40
+ }
41
+ if ((!finalHcParty.lastName || !finalHcParty.name) && !!person_util_1.hasName(finalHcParty, models.PersonName.UseEnum.Official)) {
42
+ let officialName = person_util_1.findName(finalHcParty, models.PersonName.UseEnum.Official);
43
+ finalHcParty = Object.assign(Object.assign({}, finalHcParty), { lastName: officialName.lastName, firstName: officialName.firstNames ? officialName.firstNames[0] : undefined, name: officialName.text });
44
+ }
45
+ return finalHcParty;
46
+ }
31
47
  putHcPartyInCache(key, value = null) {
32
48
  const hcp = value ||
33
49
  super.getHealthcareParty(key).catch((e) => {
@@ -38,12 +54,18 @@ class IccHcpartyXApi extends icc_api_1.IccHcpartyApi {
38
54
  this.hcPartyCache[key] = [Date.now() + this.CACHE_RETENTION_IN_MS, hcp];
39
55
  return hcp;
40
56
  }
57
+ createHealthcareParty(body) {
58
+ return super.createHealthcareParty(this.completeNames(body));
59
+ }
60
+ createHealthcarePartyInGroup(groupId, body) {
61
+ return super.createHealthcarePartyInGroup(groupId, this.completeNames(body));
62
+ }
41
63
  modifyHealthcareParty(body) {
42
64
  if (body && body.id) {
43
65
  console.log(`Evict key ${body.id} because of modification`);
44
66
  delete this.hcPartyCache[body.id];
45
67
  }
46
- return super.modifyHealthcareParty(body).then((hcp) => this.putHcPartyInCache(hcp.id, Promise.resolve(hcp)));
68
+ return super.modifyHealthcareParty(this.completeNames(body)).then((hcp) => this.putHcPartyInCache(hcp.id, Promise.resolve(hcp)));
47
69
  }
48
70
  getHealthcareParty(healthcarePartyId, bypassCache = false) {
49
71
  const fromCache = bypassCache ? undefined : this.getHcPartyFromCache(healthcarePartyId);
@@ -1 +1 @@
1
- {"version":3,"file":"icc-hcparty-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-hcparty-x-api.ts"],"names":[],"mappings":";;;AAAA,wCAA0C;AAG1C,qCAAqC;AACrC,MAAa,cAAe,SAAQ,uBAAa;IAK/C,YACE,IAAY,EACZ,OAAkC,EAClC,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;QAbjC,qBAAgB,GAAiD,EAAE,CAAA;QACnE,iBAAY,GAA0D,EAAE,CAAA;QAEhE,0BAAqB,GAAG,MAAO,CAAA;IAWvC,CAAC;IAEO,mBAAmB,CAAC,GAAW;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;YACrC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;SACrB;QACD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,uBAAuB,CAAC,CAAA;SAC9D;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;SAC3E;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iBAAiB,CAAC,GAAW,EAAE,QAAyC,IAAI;QAC1E,MAAM,GAAG,GACP,KAAK;YACL,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,mBAAmB,CAAC,CAAA;gBAChD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;gBAC7B,MAAM,CAAC,CAAA;YACT,CAAC,CAAC,CAAA;QACJ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;QACvE,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,qBAAqB,CAAC,IAAsB;QAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAClC;QAED,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/G,CAAC;IAED,kBAAkB,CAAC,iBAAyB,EAAE,WAAW,GAAG,KAAK;QAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;QACvF,OAAO,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IAC/D,CAAC;IAED,oBAAoB,CAAC,kBAA0B;QAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAqD,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;SAC7C;QAED,MAAM,IAAI,GAA+B,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACtF,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CACR,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,iBAAiB,CACpB,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CACtD,CACJ,CACF,CAAA;IACH,CAAC;IAED,yBAAyB;QACvB,OAAO,KAAK,CAAC,yBAAyB,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/G,CAAC;IAED,yBAAyB,CAAC,iBAAyB,EAAE,WAAW,GAAG,KAAK;QACtE,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;QAC5E,OAAO,MAAM;YACX,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpH,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;QAClD,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAEvC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC;CACF;AAhGD,wCAgGC"}
1
+ {"version":3,"file":"icc-hcparty-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-hcparty-x-api.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export declare class IccPatientXApi extends IccPatientApi {
24
24
  [key: string]: string;
25
25
  }, crypto: IccCryptoXApi, contactApi: IccContactXApi, formApi: IccFormXApi, helementApi: IccHelementXApi, invoiceApi: IccInvoiceXApi, documentApi: IccDocumentXApi, hcpartyApi: IccHcpartyXApi, classificationApi: IccClassificationXApi, calendarItemaApi: IccCalendarItemXApi, encryptedKeys?: Array<string>, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>);
26
26
  newInstance(user: models.User, p: any): Promise<models.Patient>;
27
+ completeNames(patient: models.Patient): models.Patient;
27
28
  initDelegations(patient: models.Patient, user: models.User, secretForeignKey?: string): Promise<models.Patient>;
28
29
  initConfidentialDelegation(patient: models.Patient, user: models.User): Promise<models.Patient | null>;
29
30
  createPatient(body?: models.Patient): never;
@@ -66,9 +67,7 @@ export declare class IccPatientXApi extends IccPatientApi {
66
67
  modifyPatientReferralWithUser(user: models.User, patientId: string, referralId: string, start?: number, end?: number): Promise<models.Patient | any>;
67
68
  encrypt(user: models.User, pats: Array<models.Patient>): Promise<Array<models.Patient>>;
68
69
  decrypt(user: models.User, pats: Array<models.Patient>, fillDelegations?: boolean): Promise<Array<models.Patient>>;
69
- initEncryptionKeys(user: models.User, pat: models.Patient): Promise<models.Patient & {
70
- encryptionKeys: any;
71
- }>;
70
+ initEncryptionKeys(user: models.User, pat: models.Patient): Promise<models.Patient>;
72
71
  share(user: models.User, patId: string, ownerId: string, delegateIds: Array<string>, delegationTags: {
73
72
  [key: string]: Array<string>;
74
73
  }): Promise<{
@@ -12,11 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.IccPatientXApi = void 0;
13
13
  const icc_api_1 = require("../icc-api");
14
14
  const _ = require("lodash");
15
+ const models = require("../icc-api/model/models");
15
16
  const models_1 = require("../icc-api/model/models");
16
17
  const utils_1 = require("./utils");
17
18
  const utils_2 = require("./crypto/utils");
18
19
  const ModelHelper_1 = require("../icc-api/model/ModelHelper");
19
20
  const binary_utils_1 = require("./utils/binary-utils");
21
+ const person_util_1 = require("./utils/person-util");
20
22
  // noinspection JSUnusedGlobalSymbols
21
23
  class IccPatientXApi extends icc_api_1.IccPatientApi {
22
24
  constructor(host, headers, crypto, contactApi, formApi, helementApi, invoiceApi, documentApi, hcpartyApi, classificationApi, calendarItemaApi, encryptedKeys = ['note'], fetchImpl = typeof window !== 'undefined'
@@ -50,6 +52,30 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
50
52
  }, p || {});
51
53
  return this.initDelegations(patient, user);
52
54
  }
55
+ completeNames(patient) {
56
+ var _a;
57
+ let finalPatient = patient;
58
+ if (!!finalPatient.lastName && !person_util_1.hasName(finalPatient, models.PersonName.UseEnum.Official)) {
59
+ finalPatient = person_util_1.garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Official, finalPatient.lastName, finalPatient.firstName);
60
+ }
61
+ if (!!finalPatient.maidenName && !person_util_1.hasName(finalPatient, models.PersonName.UseEnum.Maiden)) {
62
+ finalPatient = person_util_1.garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Maiden, finalPatient.maidenName, finalPatient.firstName);
63
+ }
64
+ if (!!finalPatient.alias && !person_util_1.hasName(finalPatient, models.PersonName.UseEnum.Nickname)) {
65
+ finalPatient = person_util_1.garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Nickname, finalPatient.alias, finalPatient.firstName);
66
+ }
67
+ if (!finalPatient.lastName && !!person_util_1.hasName(finalPatient, models.PersonName.UseEnum.Official)) {
68
+ let officialName = person_util_1.findName(finalPatient, models.PersonName.UseEnum.Official);
69
+ finalPatient = Object.assign(Object.assign({}, finalPatient), { lastName: officialName.lastName, firstName: (_a = officialName.firstNames) === null || _a === void 0 ? void 0 : _a[0] });
70
+ }
71
+ if (!finalPatient.maidenName && !!person_util_1.hasName(finalPatient, models.PersonName.UseEnum.Maiden)) {
72
+ finalPatient = Object.assign(Object.assign({}, finalPatient), { maidenName: person_util_1.findName(finalPatient, models.PersonName.UseEnum.Maiden).lastName });
73
+ }
74
+ if (!finalPatient.alias && !!person_util_1.hasName(finalPatient, models.PersonName.UseEnum.Nickname)) {
75
+ finalPatient = Object.assign(Object.assign({}, finalPatient), { alias: person_util_1.findName(finalPatient, models.PersonName.UseEnum.Nickname).lastName });
76
+ }
77
+ return finalPatient;
78
+ }
53
79
  initDelegations(patient, user, secretForeignKey) {
54
80
  return this.crypto
55
81
  .initObjectDelegations(patient, null, (user.healthcarePartyId || user.patientId), secretForeignKey || null)
@@ -97,7 +123,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
97
123
  }
98
124
  createPatientWithUser(user, body) {
99
125
  return body
100
- ? this.encrypt(user, [_.cloneDeep(body)])
126
+ ? this.encrypt(user, [_.cloneDeep(this.completeNames(body))])
101
127
  .then((pats) => super.createPatient(pats[0]))
102
128
  .then((p) => this.decrypt(user, [p]))
103
129
  .then((pats) => pats[0])
@@ -229,7 +255,7 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
229
255
  }
230
256
  modifyPatientWithUser(user, body) {
231
257
  return body
232
- ? this.encrypt(user, [_.cloneDeep(body)])
258
+ ? this.encrypt(user, [_.cloneDeep(this.completeNames(body))])
233
259
  .then((pats) => super.modifyPatient(pats[0]))
234
260
  .then((p) => this.decrypt(user, [p]))
235
261
  .then((pats) => pats[0])