@icure/api 8.6.18 → 8.7.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.
Files changed (328) hide show
  1. package/icc-api/api/IccDocumentApi.d.ts +10 -2
  2. package/icc-api/api/IccDocumentApi.js +22 -4
  3. package/icc-api/api/IccDocumentApi.js.map +1 -1
  4. package/icc-api/api/IccReceiptApi.d.ts +17 -0
  5. package/icc-api/api/IccReceiptApi.js +52 -0
  6. package/icc-api/api/IccReceiptApi.js.map +1 -1
  7. package/icc-api/model/DataAttachment.d.ts +22 -0
  8. package/icc-api/model/DataAttachment.js.map +1 -1
  9. package/icc-api/model/Document.d.ts +6 -0
  10. package/icc-api/model/Document.js.map +1 -1
  11. package/icc-api/model/Receipt.d.ts +6 -0
  12. package/icc-api/model/Receipt.js.map +1 -1
  13. package/icc-x-api/crypto/BaseExchangeDataManager.js +2 -2
  14. package/icc-x-api/crypto/BaseExchangeDataManager.js.map +1 -1
  15. package/icc-x-api/crypto/ExchangeDataManager.js +3 -3
  16. package/icc-x-api/crypto/ExchangeDataManager.js.map +1 -1
  17. package/icc-x-api/crypto/ExtendedApisUtils.d.ts +1 -1
  18. package/icc-x-api/crypto/ExtendedApisUtils.js.map +1 -1
  19. package/icc-x-api/crypto/ExtendedApisUtilsImpl.d.ts +1 -1
  20. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js +8 -2
  21. package/icc-x-api/crypto/ExtendedApisUtilsImpl.js.map +1 -1
  22. package/icc-x-api/crypto/RecoveryDataEncryption.js.map +1 -1
  23. package/icc-x-api/icc-accesslog-x-api.js +7 -7
  24. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  25. package/icc-x-api/icc-calendar-item-x-api.js +7 -7
  26. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -1
  27. package/icc-x-api/icc-classification-x-api.js +4 -5
  28. package/icc-x-api/icc-classification-x-api.js.map +1 -1
  29. package/icc-x-api/icc-code-x-api.d.ts +2 -2
  30. package/icc-x-api/icc-code-x-api.js +3 -33
  31. package/icc-x-api/icc-code-x-api.js.map +1 -1
  32. package/icc-x-api/icc-contact-x-api.js +20 -33
  33. package/icc-x-api/icc-contact-x-api.js.map +1 -1
  34. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -1
  35. package/icc-x-api/icc-document-x-api.d.ts +8 -7
  36. package/icc-x-api/icc-document-x-api.js +64 -22
  37. package/icc-x-api/icc-document-x-api.js.map +1 -1
  38. package/icc-x-api/icc-form-x-api.js +3 -4
  39. package/icc-x-api/icc-form-x-api.js.map +1 -1
  40. package/icc-x-api/icc-helement-x-api.js +11 -11
  41. package/icc-x-api/icc-helement-x-api.js.map +1 -1
  42. package/icc-x-api/icc-invoice-x-api.js +3 -4
  43. package/icc-x-api/icc-invoice-x-api.js.map +1 -1
  44. package/icc-x-api/icc-maintenance-task-x-api.js +3 -3
  45. package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
  46. package/icc-x-api/icc-patient-x-api.js +29 -29
  47. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  48. package/icc-x-api/icc-receipt-x-api.d.ts +40 -0
  49. package/icc-x-api/icc-receipt-x-api.js +79 -1
  50. package/icc-x-api/icc-receipt-x-api.js.map +1 -1
  51. package/icc-x-api/icc-topic-x-api.js.map +1 -1
  52. package/icc-x-api/index.js +1 -1
  53. package/icc-x-api/index.js.map +1 -1
  54. package/icc-x-api/utils/code-util.d.ts +23 -0
  55. package/icc-x-api/utils/code-util.js +39 -2
  56. package/icc-x-api/utils/code-util.js.map +1 -1
  57. package/icc-x-api/utils/collection-utils.d.ts +13 -0
  58. package/icc-x-api/utils/collection-utils.js +69 -0
  59. package/icc-x-api/utils/collection-utils.js.map +1 -1
  60. package/icc-x-api/utils/compression-utils.d.ts +28 -0
  61. package/icc-x-api/utils/compression-utils.js +106 -0
  62. package/icc-x-api/utils/compression-utils.js.map +1 -0
  63. package/icc-x-api/utils/crypto-utils.js +7 -7
  64. package/icc-x-api/utils/crypto-utils.js.map +1 -1
  65. package/icc-x-api/utils/formatting-util.d.ts +1 -3
  66. package/icc-x-api/utils/formatting-util.js +15 -17
  67. package/icc-x-api/utils/formatting-util.js.map +1 -1
  68. package/icc-x-api/utils/hcp-util.js +2 -3
  69. package/icc-x-api/utils/hcp-util.js.map +1 -1
  70. package/icc-x-api/utils/insurability-util.js +10 -8
  71. package/icc-x-api/utils/insurability-util.js.map +1 -1
  72. package/icc-x-api/utils/lzma-wasm.d.ts +6 -0
  73. package/icc-x-api/utils/lzma-wasm.js +81 -0
  74. package/icc-x-api/utils/lzma-wasm.js.map +1 -0
  75. package/icc-x-api/utils/mutex.d.ts +12 -0
  76. package/icc-x-api/utils/mutex.js +26 -0
  77. package/icc-x-api/utils/mutex.js.map +1 -0
  78. package/icc-x-api/utils/websocket.js +7 -7
  79. package/icc-x-api/utils/websocket.js.map +1 -1
  80. package/icc-x-api/wasm/lzma/lzma.js +2 -0
  81. package/icc-x-api/wasm/lzma/lzma.wasm +0 -0
  82. package/package.json +2 -11
  83. package/icc-x-api/utils/uuid-encoder.d.ts +0 -44
  84. package/icc-x-api/utils/uuid-encoder.js +0 -114
  85. package/icc-x-api/utils/uuid-encoder.js.map +0 -1
  86. package/test/icc-api/api/IccAgendaApi.d.ts +0 -1
  87. package/test/icc-api/api/IccAgendaApi.js +0 -64
  88. package/test/icc-api/api/IccAgendaApi.js.map +0 -1
  89. package/test/icc-api/api/IccAnonymousAccessApi.d.ts +0 -1
  90. package/test/icc-api/api/IccAnonymousAccessApi.js +0 -58
  91. package/test/icc-api/api/IccAnonymousAccessApi.js.map +0 -1
  92. package/test/icc-api/api/IccCalendarItemApi.d.ts +0 -1
  93. package/test/icc-api/api/IccCalendarItemApi.js +0 -67
  94. package/test/icc-api/api/IccCalendarItemApi.js.map +0 -1
  95. package/test/icc-api/api/IccCalendarItemTypeApi.d.ts +0 -1
  96. package/test/icc-api/api/IccCalendarItemTypeApi.js +0 -96
  97. package/test/icc-api/api/IccCalendarItemTypeApi.js.map +0 -1
  98. package/test/icc-api/api/IccCodeApi.d.ts +0 -1
  99. package/test/icc-api/api/IccCodeApi.js +0 -38
  100. package/test/icc-api/api/IccCodeApi.js.map +0 -1
  101. package/test/icc-api/api/IccDocumentApi.d.ts +0 -1
  102. package/test/icc-api/api/IccDocumentApi.js +0 -199
  103. package/test/icc-api/api/IccDocumentApi.js.map +0 -1
  104. package/test/icc-api/api/IccGroupApi.d.ts +0 -1
  105. package/test/icc-api/api/IccGroupApi.js +0 -50
  106. package/test/icc-api/api/IccGroupApi.js.map +0 -1
  107. package/test/icc-api/api/IccKeywordApi.d.ts +0 -1
  108. package/test/icc-api/api/IccKeywordApi.js +0 -64
  109. package/test/icc-api/api/IccKeywordApi.js.map +0 -1
  110. package/test/icc-api/api/IccMedicalLocationApi.d.ts +0 -1
  111. package/test/icc-api/api/IccMedicalLocationApi.js +0 -64
  112. package/test/icc-api/api/IccMedicalLocationApi.js.map +0 -1
  113. package/test/icc-api/api/IccPlaceApi.d.ts +0 -1
  114. package/test/icc-api/api/IccPlaceApi.js +0 -64
  115. package/test/icc-api/api/IccPlaceApi.js.map +0 -1
  116. package/test/icc-api/api/IccRecoveryDataApi.d.ts +0 -1
  117. package/test/icc-api/api/IccRecoveryDataApi.js +0 -95
  118. package/test/icc-api/api/IccRecoveryDataApi.js.map +0 -1
  119. package/test/icc-api/api/IccRoleApi.d.ts +0 -1
  120. package/test/icc-api/api/IccRoleApi.js +0 -34
  121. package/test/icc-api/api/IccRoleApi.js.map +0 -1
  122. package/test/icc-api/api/IccUserApi.d.ts +0 -1
  123. package/test/icc-api/api/IccUserApi.js +0 -96
  124. package/test/icc-api/api/IccUserApi.js.map +0 -1
  125. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +0 -1
  126. package/test/icc-api/e2e/IccCalendarItemApi.js +0 -46
  127. package/test/icc-api/e2e/IccCalendarItemApi.js.map +0 -1
  128. package/test/icc-api/model/modelHelpersTest.d.ts +0 -1
  129. package/test/icc-api/model/modelHelpersTest.js +0 -45
  130. package/test/icc-api/model/modelHelpersTest.js.map +0 -1
  131. package/test/icc-x-api/auth/group-switch-test.d.ts +0 -1
  132. package/test/icc-x-api/auth/group-switch-test.js +0 -81
  133. package/test/icc-x-api/auth/group-switch-test.js.map +0 -1
  134. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +0 -2
  135. package/test/icc-x-api/auth/jwt-concurrency-test.js +0 -112
  136. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +0 -1
  137. package/test/icc-x-api/auth/jwt-provider-test.d.ts +0 -1
  138. package/test/icc-x-api/auth/jwt-provider-test.js +0 -197
  139. package/test/icc-x-api/auth/jwt-provider-test.js.map +0 -1
  140. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +0 -1
  141. package/test/icc-x-api/auth/smart-auth-provider-test.js +0 -224
  142. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +0 -1
  143. package/test/icc-x-api/autofix-anonymity-test.d.ts +0 -1
  144. package/test/icc-x-api/autofix-anonymity-test.js +0 -122
  145. package/test/icc-x-api/autofix-anonymity-test.js.map +0 -1
  146. package/test/icc-x-api/confidential-entities-test.d.ts +0 -1
  147. package/test/icc-x-api/confidential-entities-test.js +0 -168
  148. package/test/icc-x-api/confidential-entities-test.js.map +0 -1
  149. package/test/icc-x-api/crud/comprehensive-crud-test.d.ts +0 -1
  150. package/test/icc-x-api/crud/comprehensive-crud-test.js +0 -276
  151. package/test/icc-x-api/crud/comprehensive-crud-test.js.map +0 -1
  152. package/test/icc-x-api/crud/entities-crud-test-interface.d.ts +0 -16
  153. package/test/icc-x-api/crud/entities-crud-test-interface.js +0 -408
  154. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +0 -1
  155. package/test/icc-x-api/crypto/anonymous-delegations-test.d.ts +0 -1
  156. package/test/icc-x-api/crypto/anonymous-delegations-test.js +0 -587
  157. package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +0 -1
  158. package/test/icc-x-api/crypto/concurrency.d.ts +0 -1
  159. package/test/icc-x-api/crypto/concurrency.js +0 -35
  160. package/test/icc-x-api/crypto/concurrency.js.map +0 -1
  161. package/test/icc-x-api/crypto/crypto-utils.d.ts +0 -1
  162. package/test/icc-x-api/crypto/crypto-utils.js +0 -79
  163. package/test/icc-x-api/crypto/crypto-utils.js.map +0 -1
  164. package/test/icc-x-api/crypto/cryptoTest.d.ts +0 -2
  165. package/test/icc-x-api/crypto/cryptoTest.js +0 -402
  166. package/test/icc-x-api/crypto/cryptoTest.js.map +0 -1
  167. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +0 -1
  168. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +0 -166
  169. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +0 -1
  170. package/test/icc-x-api/crypto/exchange-data-manager-test.d.ts +0 -1
  171. package/test/icc-x-api/crypto/exchange-data-manager-test.js +0 -674
  172. package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +0 -1
  173. package/test/icc-x-api/crypto/full-crypto-test.d.ts +0 -1
  174. package/test/icc-x-api/crypto/full-crypto-test.js +0 -454
  175. package/test/icc-x-api/crypto/full-crypto-test.js.map +0 -1
  176. package/test/icc-x-api/crypto/legacy-metadata-migration-test.d.ts +0 -1
  177. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js +0 -379
  178. package/test/icc-x-api/crypto/legacy-metadata-migration-test.js.map +0 -1
  179. package/test/icc-x-api/crypto/secure-delegations-manager-test.d.ts +0 -1
  180. package/test/icc-x-api/crypto/secure-delegations-manager-test.js +0 -278
  181. package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +0 -1
  182. package/test/icc-x-api/crypto/shamir.d.ts +0 -2
  183. package/test/icc-x-api/crypto/shamir.js +0 -167
  184. package/test/icc-x-api/crypto/shamir.js.map +0 -1
  185. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +0 -1
  186. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +0 -71
  187. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +0 -1
  188. package/test/icc-x-api/crypto/soft-deleted-data-owners.d.ts +0 -2
  189. package/test/icc-x-api/crypto/soft-deleted-data-owners.js +0 -113
  190. package/test/icc-x-api/crypto/soft-deleted-data-owners.js.map +0 -1
  191. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.d.ts +0 -1
  192. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js +0 -246
  193. package/test/icc-x-api/crypto/user-encryption-keys-manager-test.js.map +0 -1
  194. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +0 -1
  195. package/test/icc-x-api/entity-with-attachments-api-test.js +0 -142
  196. package/test/icc-x-api/entity-with-attachments-api-test.js.map +0 -1
  197. package/test/icc-x-api/filters/filters.d.ts +0 -1
  198. package/test/icc-x-api/filters/filters.js +0 -49
  199. package/test/icc-x-api/filters/filters.js.map +0 -1
  200. package/test/icc-x-api/filters/healthelement.d.ts +0 -1
  201. package/test/icc-x-api/filters/healthelement.js +0 -333
  202. package/test/icc-x-api/filters/healthelement.js.map +0 -1
  203. package/test/icc-x-api/icc-accesslog-x-api.d.ts +0 -1
  204. package/test/icc-x-api/icc-accesslog-x-api.js +0 -106
  205. package/test/icc-x-api/icc-accesslog-x-api.js.map +0 -1
  206. package/test/icc-x-api/icc-application-settings-x-api.d.ts +0 -1
  207. package/test/icc-x-api/icc-application-settings-x-api.js +0 -91
  208. package/test/icc-x-api/icc-application-settings-x-api.js.map +0 -1
  209. package/test/icc-x-api/icc-auth-api.d.ts +0 -1
  210. package/test/icc-x-api/icc-auth-api.js +0 -47
  211. package/test/icc-x-api/icc-auth-api.js.map +0 -1
  212. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +0 -1
  213. package/test/icc-x-api/icc-calendar-item-x-api.js +0 -150
  214. package/test/icc-x-api/icc-calendar-item-x-api.js.map +0 -1
  215. package/test/icc-x-api/icc-contact-x-api.d.ts +0 -1
  216. package/test/icc-x-api/icc-contact-x-api.js +0 -355
  217. package/test/icc-x-api/icc-contact-x-api.js.map +0 -1
  218. package/test/icc-x-api/icc-document-x-api.d.ts +0 -1
  219. package/test/icc-x-api/icc-document-x-api.js +0 -76
  220. package/test/icc-x-api/icc-document-x-api.js.map +0 -1
  221. package/test/icc-x-api/icc-form-x-api.d.ts +0 -1
  222. package/test/icc-x-api/icc-form-x-api.js +0 -413
  223. package/test/icc-x-api/icc-form-x-api.js.map +0 -1
  224. package/test/icc-x-api/icc-hcparty-x-api-test.d.ts +0 -1
  225. package/test/icc-x-api/icc-hcparty-x-api-test.js +0 -43
  226. package/test/icc-x-api/icc-hcparty-x-api-test.js.map +0 -1
  227. package/test/icc-x-api/icc-helement-x-api-test.d.ts +0 -1
  228. package/test/icc-x-api/icc-helement-x-api-test.js +0 -155
  229. package/test/icc-x-api/icc-helement-x-api-test.js.map +0 -1
  230. package/test/icc-x-api/icc-invoice-x-api.d.ts +0 -1
  231. package/test/icc-x-api/icc-invoice-x-api.js +0 -99
  232. package/test/icc-x-api/icc-invoice-x-api.js.map +0 -1
  233. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +0 -1
  234. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +0 -222
  235. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +0 -1
  236. package/test/icc-x-api/icc-message-x-api.d.ts +0 -1
  237. package/test/icc-x-api/icc-message-x-api.js +0 -54
  238. package/test/icc-x-api/icc-message-x-api.js.map +0 -1
  239. package/test/icc-x-api/icc-patient-x-api-test.d.ts +0 -1
  240. package/test/icc-x-api/icc-patient-x-api-test.js +0 -165
  241. package/test/icc-x-api/icc-patient-x-api-test.js.map +0 -1
  242. package/test/icc-x-api/icc-recovery-x-api.d.ts +0 -1
  243. package/test/icc-x-api/icc-recovery-x-api.js +0 -175
  244. package/test/icc-x-api/icc-recovery-x-api.js.map +0 -1
  245. package/test/icc-x-api/icc-topic-x-api.d.ts +0 -1
  246. package/test/icc-x-api/icc-topic-x-api.js +0 -269
  247. package/test/icc-x-api/icc-topic-x-api.js.map +0 -1
  248. package/test/icc-x-api/icc-user-x-api-test.d.ts +0 -1
  249. package/test/icc-x-api/icc-user-x-api-test.js +0 -99
  250. package/test/icc-x-api/icc-user-x-api-test.js.map +0 -1
  251. package/test/icc-x-api/keyless-api.d.ts +0 -1
  252. package/test/icc-x-api/keyless-api.js +0 -125
  253. package/test/icc-x-api/keyless-api.js.map +0 -1
  254. package/test/icc-x-api/patient-user.d.ts +0 -2
  255. package/test/icc-x-api/patient-user.js +0 -103
  256. package/test/icc-x-api/patient-user.js.map +0 -1
  257. package/test/icc-x-api/storage/storage.d.ts +0 -1
  258. package/test/icc-x-api/storage/storage.js +0 -48
  259. package/test/icc-x-api/storage/storage.js.map +0 -1
  260. package/test/icc-x-api/test-api-no-parent.d.ts +0 -1
  261. package/test/icc-x-api/test-api-no-parent.js +0 -79
  262. package/test/icc-x-api/test-api-no-parent.js.map +0 -1
  263. package/test/icc-x-api/test-legacy-data-support.d.ts +0 -1
  264. package/test/icc-x-api/test-legacy-data-support.js +0 -375
  265. package/test/icc-x-api/test-legacy-data-support.js.map +0 -1
  266. package/test/icc-x-api/utils/graph-test.d.ts +0 -1
  267. package/test/icc-x-api/utils/graph-test.js +0 -54
  268. package/test/icc-x-api/utils/graph-test.js.map +0 -1
  269. package/test/icc-x-api/utils/lru-temporised-async-cache-test.d.ts +0 -1
  270. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js +0 -364
  271. package/test/icc-x-api/utils/lru-temporised-async-cache-test.js.map +0 -1
  272. package/test/support/CSM-185.d.ts +0 -1
  273. package/test/support/CSM-185.js +0 -124
  274. package/test/support/CSM-185.js.map +0 -1
  275. package/test/support/CSM-243.d.ts +0 -1
  276. package/test/support/CSM-243.js +0 -120
  277. package/test/support/CSM-243.js.map +0 -1
  278. package/test/support/CSM-543.d.ts +0 -1
  279. package/test/support/CSM-543.js +0 -164
  280. package/test/support/CSM-543.js.map +0 -1
  281. package/test/support/CSM-729.d.ts +0 -1
  282. package/test/support/CSM-729.js +0 -225
  283. package/test/support/CSM-729.js.map +0 -1
  284. package/test/support/CSM-87.d.ts +0 -0
  285. package/test/support/CSM-87.js +0 -21
  286. package/test/support/CSM-87.js.map +0 -1
  287. package/test/support/CSM-93.d.ts +0 -1
  288. package/test/support/CSM-93.js +0 -112
  289. package/test/support/CSM-93.js.map +0 -1
  290. package/test/utils/FakeDataOwnerApi.d.ts +0 -32
  291. package/test/utils/FakeDataOwnerApi.js +0 -136
  292. package/test/utils/FakeDataOwnerApi.js.map +0 -1
  293. package/test/utils/FakeEncryptionKeysManager.d.ts +0 -36
  294. package/test/utils/FakeEncryptionKeysManager.js +0 -98
  295. package/test/utils/FakeEncryptionKeysManager.js.map +0 -1
  296. package/test/utils/FakeExchangeDataApi.d.ts +0 -32
  297. package/test/utils/FakeExchangeDataApi.js +0 -92
  298. package/test/utils/FakeExchangeDataApi.js.map +0 -1
  299. package/test/utils/FakeExchangeDataManager.d.ts +0 -48
  300. package/test/utils/FakeExchangeDataManager.js +0 -82
  301. package/test/utils/FakeExchangeDataManager.js.map +0 -1
  302. package/test/utils/FakeExchangeDataMapManager.d.ts +0 -12
  303. package/test/utils/FakeExchangeDataMapManager.js +0 -38
  304. package/test/utils/FakeExchangeDataMapManager.js.map +0 -1
  305. package/test/utils/FakeGenericApi.d.ts +0 -16
  306. package/test/utils/FakeGenericApi.js +0 -65
  307. package/test/utils/FakeGenericApi.js.map +0 -1
  308. package/test/utils/KeylessCryptoStrategies.d.ts +0 -23
  309. package/test/utils/KeylessCryptoStrategies.js +0 -26
  310. package/test/utils/KeylessCryptoStrategies.js.map +0 -1
  311. package/test/utils/TestApi.d.ts +0 -3
  312. package/test/utils/TestApi.js +0 -30
  313. package/test/utils/TestApi.js.map +0 -1
  314. package/test/utils/TestCollectionUtils.d.ts +0 -1
  315. package/test/utils/TestCollectionUtils.js +0 -109
  316. package/test/utils/TestCollectionUtils.js.map +0 -1
  317. package/test/utils/TestCryptoStrategies.d.ts +0 -42
  318. package/test/utils/TestCryptoStrategies.js +0 -80
  319. package/test/utils/TestCryptoStrategies.js.map +0 -1
  320. package/test/utils/TestStorage.d.ts +0 -23
  321. package/test/utils/TestStorage.js +0 -61
  322. package/test/utils/TestStorage.js.map +0 -1
  323. package/test/utils/roles.d.ts +0 -14
  324. package/test/utils/roles.js +0 -345
  325. package/test/utils/roles.js.map +0 -1
  326. package/test/utils/test_utils.d.ts +0 -87
  327. package/test/utils/test_utils.js +0 -452
  328. package/test/utils/test_utils.js.map +0 -1
@@ -1,155 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const mocha_1 = require("mocha");
13
- require("isomorphic-fetch");
14
- const icc_x_api_1 = require("../../icc-x-api");
15
- const Patient_1 = require("../../icc-api/model/Patient");
16
- const chai_1 = require("chai");
17
- const crypto_1 = require("crypto");
18
- const test_utils_1 = require("../utils/test_utils");
19
- const HealthElement_1 = require("../../icc-api/model/HealthElement");
20
- const Code_1 = require("../../icc-api/model/Code");
21
- const types_1 = require("@icure/test-setup/types");
22
- const HealthElementByIdsFilter_1 = require("../../icc-x-api/filters/HealthElementByIdsFilter");
23
- const FilterChainHealthElement_1 = require("../../icc-api/model/FilterChainHealthElement");
24
- var initApi = test_utils_1.TestUtils.initApi;
25
- const SecretIdUseOption_1 = require("../../icc-x-api/crypto/SecretIdUseOption");
26
- var UseAnyConfidential = SecretIdUseOption_1.SecretIdUseOption.UseAnyConfidential;
27
- (0, test_utils_1.setLocalStorage)(fetch);
28
- let env;
29
- function createPatient(patientApiForHcp, hcpUser) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- return patientApiForHcp.createPatientWithUser(hcpUser, yield patientApiForHcp.newInstance(hcpUser, new Patient_1.Patient({
32
- id: (0, crypto_1.randomUUID)(),
33
- firstName: 'John',
34
- lastName: 'Snow',
35
- note: 'Winter is coming',
36
- })));
37
- });
38
- }
39
- function healthElementToCreate(hElementApiForHcp, hcpUser, patient) {
40
- return hElementApiForHcp.newInstance(hcpUser, patient, new HealthElement_1.HealthElement({
41
- id: (0, crypto_1.randomUUID)(),
42
- codes: [new Code_1.Code({ type: 'LOINC', code: '95209', version: '3' })],
43
- note: 'SARS-V2',
44
- }), { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true });
45
- }
46
- describe('icc-helement-x-api Tests', () => {
47
- (0, mocha_1.before)(function () {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- this.timeout(600000);
50
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
51
- env = yield initializer.execute((0, types_1.getEnvVariables)());
52
- });
53
- });
54
- it('CreateHealthElementWithUser Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
55
- // Given
56
- const { userApi: userApiForHcp, dataOwnerApi: dataOwnerApiForHcp, patientApi: patientApiForHcp, healthcareElementApi: hElementApiForHcp, cryptoApi: cryptoApiForHcp, } = yield initApi(env, test_utils_1.hcp1Username);
57
- const hcpUser = yield userApiForHcp.getCurrentUser();
58
- const patient = yield createPatient(patientApiForHcp, hcpUser);
59
- const hElementToCreate = yield healthElementToCreate(hElementApiForHcp, hcpUser, patient);
60
- // When
61
- const createdHealthElement = yield hElementApiForHcp.createHealthElementWithUser(hcpUser, hElementToCreate);
62
- // Then
63
- const readHealthElement = yield hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id);
64
- (0, chai_1.assert)(readHealthElement != null);
65
- (0, chai_1.assert)(readHealthElement.id != null);
66
- (0, chai_1.assert)(readHealthElement.note == hElementToCreate.note);
67
- (0, chai_1.expect)(yield cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: icc_x_api_1.EntityWithDelegationTypeName.HealthElement }, undefined)).to.have.length(1);
68
- const decryptedPatientIds = yield hElementApiForHcp.decryptPatientIdOf(readHealthElement);
69
- (0, chai_1.expect)(decryptedPatientIds).to.have.length(1);
70
- (0, chai_1.expect)(decryptedPatientIds[0]).to.equal(patient.id);
71
- }));
72
- it('ModifyHealthElementWithUser Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
73
- // Given
74
- const { userApi: userApiForHcp, dataOwnerApi: dataOwnerApiForHcp, patientApi: patientApiForHcp, healthcareElementApi: hElementApiForHcp, cryptoApi: cryptoApiForHcp, } = yield initApi(env, test_utils_1.hcp1Username);
75
- const hcpUser = yield userApiForHcp.getCurrentUser();
76
- yield initApi(env, test_utils_1.hcp1Username);
77
- const patient = yield createPatient(patientApiForHcp, hcpUser);
78
- const createdHealthElement = yield hElementApiForHcp.createHealthElementWithUser(hcpUser, yield healthElementToCreate(hElementApiForHcp, hcpUser, patient));
79
- // When
80
- const newNote = 'SARS-V2 (COVID-19)';
81
- const modifiedHealthElement = yield hElementApiForHcp.modifyHealthElementWithUser(hcpUser, Object.assign(Object.assign({}, createdHealthElement), { note: newNote }));
82
- // Then
83
- const readHealthElement = yield hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id);
84
- (0, chai_1.assert)(readHealthElement != null);
85
- (0, chai_1.assert)(readHealthElement.id != null);
86
- (0, chai_1.assert)(readHealthElement.note != createdHealthElement.note);
87
- (0, chai_1.assert)(readHealthElement.note == modifiedHealthElement.note);
88
- (0, chai_1.assert)(readHealthElement.note == newNote);
89
- (0, chai_1.expect)(yield cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: icc_x_api_1.EntityWithDelegationTypeName.HealthElement }, undefined)).to.have.length(1);
90
- const decryptedPatientIds = yield hElementApiForHcp.decryptPatientIdOf(readHealthElement);
91
- (0, chai_1.expect)(decryptedPatientIds).to.have.length(1);
92
- (0, chai_1.expect)(decryptedPatientIds[0]).to.equal(patient.id);
93
- }));
94
- it('findHealthElementsByHCPartyAndPatientWithUser Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
95
- // Given
96
- const { userApi: userApiForHcp, dataOwnerApi: dataOwnerApiForHcp, patientApi: patientApiForHcp, healthcareElementApi: hElementApiForHcp, cryptoApi: cryptoApiForHcp, } = yield initApi(env, test_utils_1.hcp1Username);
97
- const hcpUser = yield userApiForHcp.getCurrentUser();
98
- const patient = (yield createPatient(patientApiForHcp, hcpUser));
99
- const createdHealthElement = yield hElementApiForHcp.createHealthElementWithUser(hcpUser, yield healthElementToCreate(hElementApiForHcp, hcpUser, patient));
100
- // When
101
- const foundHealthElements = yield hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(hcpUser, hcpUser.healthcarePartyId, patient);
102
- const foundHealthElementsUsingPost = yield hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(hcpUser, hcpUser.healthcarePartyId, patient, true);
103
- // Then
104
- (0, chai_1.assert)(foundHealthElements.length == 1, 'Found health elements should be 1');
105
- (0, chai_1.assert)(foundHealthElements[0].id == createdHealthElement.id, 'Found health element should be the same as the created one');
106
- (0, chai_1.assert)(foundHealthElementsUsingPost.length == 1, 'Found health elements using POST should be 1');
107
- (0, chai_1.assert)(foundHealthElementsUsingPost[0].id == createdHealthElement.id, 'Found health element using POST should be the same as the created one');
108
- }));
109
- it('filter healthcare element result should return same output by id', () => __awaiter(void 0, void 0, void 0, function* () {
110
- var _a;
111
- // Given
112
- const { userApi: userApiForHcp, dataOwnerApi: dataOwnerApiForHcp, patientApi: patientApiForHcp, healthcareElementApi: hElementApiForHcp, cryptoApi: cryptoApiForHcp, } = yield initApi(env, test_utils_1.hcp1Username);
113
- const hcpUser = yield userApiForHcp.getCurrentUser();
114
- const patient = (yield createPatient(patientApiForHcp, hcpUser));
115
- const createdHealthElement = yield hElementApiForHcp.createHealthElementWithUser(hcpUser, yield healthElementToCreate(hElementApiForHcp, hcpUser, patient));
116
- // When
117
- const healthElementById = yield hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id);
118
- const healthElementByFilter = yield hElementApiForHcp.filterByWithUser(hcpUser, undefined, undefined, new FilterChainHealthElement_1.FilterChainHealthElement({
119
- filter: new HealthElementByIdsFilter_1.HealthElementByIdsFilter({
120
- ids: [createdHealthElement.id],
121
- healthcarePartyId: hcpUser.healthcarePartyId,
122
- }),
123
- }));
124
- // Then
125
- // expect(foundHealthElements).to.have.length(1)
126
- // expect(foundHealthElements[0].id).to.equal(createdHealthElement.id)
127
- (0, chai_1.assert)(((_a = healthElementByFilter.rows) === null || _a === void 0 ? void 0 : _a.length) == 1, 'Found health elements should be 1');
128
- (0, chai_1.assert)(healthElementByFilter.rows[0].id == createdHealthElement.id, 'Found health element should be the same as the created one');
129
- (0, chai_1.assert)(!!healthElementById.note, 'Health element should have a note');
130
- (0, chai_1.assert)(JSON.stringify(healthElementByFilter.rows[0]) === JSON.stringify(healthElementById), 'Found health elements by id should match the one found by filter');
131
- }));
132
- it('Share with should work as expected', () => __awaiter(void 0, void 0, void 0, function* () {
133
- const api1 = yield initApi(env, test_utils_1.hcp1Username);
134
- const user1 = yield api1.userApi.getCurrentUser();
135
- const api2 = yield initApi(env, test_utils_1.hcp2Username);
136
- const user2 = yield api2.userApi.getCurrentUser();
137
- const samplePatient = yield api1.patientApi.createPatientWithUser(user1, yield api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' }));
138
- const encryptedField = 'Something encrypted';
139
- const entity = yield api1.healthcareElementApi.createHealthElementWithUser(user1, yield api1.healthcareElementApi.newInstance(user1, samplePatient, { note: encryptedField }));
140
- (0, chai_1.expect)(entity.note).to.be.equal(encryptedField);
141
- yield api2.healthcareElementApi
142
- .getHealthElementWithUser(user2, entity.id)
143
- .then(() => {
144
- throw new Error('Should not be able to get the entity');
145
- })
146
- .catch(() => {
147
- /* expected */
148
- });
149
- yield api1.healthcareElementApi.shareWith(user2.healthcarePartyId, entity);
150
- const retrieved = yield api2.healthcareElementApi.getHealthElementWithUser(user2, entity.id);
151
- (0, chai_1.expect)(retrieved.note).to.be.equal(encryptedField);
152
- (0, chai_1.expect)((yield api2.healthcareElementApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id);
153
- }));
154
- });
155
- //# sourceMappingURL=icc-helement-x-api-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-helement-x-api-test.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-helement-x-api-test.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { EntityWithDelegationTypeName, IccHelementXApi, IccPatientXApi } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { Code } from '../../icc-api/model/Code'\nimport { User } from '../../icc-api/model/User'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { HealthElementByIdsFilter } from '../../icc-x-api/filters/HealthElementByIdsFilter'\nimport { FilterChainHealthElement } from '../../icc-api/model/FilterChainHealthElement'\nimport initApi = TestUtils.initApi\nimport { SecretIdUseOption } from '../../icc-x-api/crypto/SecretIdUseOption'\nimport UseAnyConfidential = SecretIdUseOption.UseAnyConfidential\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nasync function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User) {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n}\n\nfunction healthElementToCreate(hElementApiForHcp: IccHelementXApi, hcpUser: User, patient: Patient) {\n return hElementApiForHcp.newInstance(\n hcpUser,\n patient,\n new HealthElement({\n id: randomUUID(),\n codes: [new Code({ type: 'LOINC', code: '95209', version: '3' })],\n note: 'SARS-V2',\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n}\n\ndescribe('icc-helement-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('CreateHealthElementWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const hElementToCreate = await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n\n // When\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(hcpUser, hElementToCreate)\n\n // Then\n const readHealthElement = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id!)\n assert(readHealthElement != null)\n assert(readHealthElement.id != null)\n assert(readHealthElement.note == hElementToCreate.note)\n expect(\n await cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: EntityWithDelegationTypeName.HealthElement }, undefined)\n ).to.have.length(1)\n const decryptedPatientIds = await hElementApiForHcp.decryptPatientIdOf(readHealthElement)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('ModifyHealthElementWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n await initApi(env!, hcp1Username)\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const newNote = 'SARS-V2 (COVID-19)'\n const modifiedHealthElement = await hElementApiForHcp.modifyHealthElementWithUser(hcpUser, {\n ...createdHealthElement,\n note: newNote,\n })\n\n // Then\n const readHealthElement = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id!)\n assert(readHealthElement != null)\n assert(readHealthElement.id != null)\n assert(readHealthElement.note != createdHealthElement.note)\n assert(readHealthElement.note == modifiedHealthElement.note)\n assert(readHealthElement.note == newNote)\n expect(\n await cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: EntityWithDelegationTypeName.HealthElement }, undefined)\n ).to.have.length(1)\n const decryptedPatientIds = await hElementApiForHcp.decryptPatientIdOf(readHealthElement)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('findHealthElementsByHCPartyAndPatientWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const foundHealthElements = await hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(hcpUser, hcpUser.healthcarePartyId!, patient)\n const foundHealthElementsUsingPost = await hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(\n hcpUser,\n hcpUser.healthcarePartyId!,\n patient,\n true\n )\n\n // Then\n assert(foundHealthElements.length == 1, 'Found health elements should be 1')\n assert(foundHealthElements[0].id == createdHealthElement.id, 'Found health element should be the same as the created one')\n\n assert(foundHealthElementsUsingPost.length == 1, 'Found health elements using POST should be 1')\n assert(foundHealthElementsUsingPost[0].id == createdHealthElement.id, 'Found health element using POST should be the same as the created one')\n })\n\n it('filter healthcare element result should return same output by id', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const healthElementById = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id)\n const healthElementByFilter = await hElementApiForHcp.filterByWithUser(\n hcpUser,\n undefined,\n undefined,\n new FilterChainHealthElement({\n filter: new HealthElementByIdsFilter({\n ids: [createdHealthElement.id!],\n healthcarePartyId: hcpUser.healthcarePartyId!,\n }),\n })\n )\n\n // Then\n // expect(foundHealthElements).to.have.length(1)\n // expect(foundHealthElements[0].id).to.equal(createdHealthElement.id)\n assert(healthElementByFilter.rows?.length == 1, 'Found health elements should be 1')\n assert(healthElementByFilter.rows[0].id == createdHealthElement.id, 'Found health element should be the same as the created one')\n\n assert(!!healthElementById.note, 'Health element should have a note')\n\n assert(\n JSON.stringify(healthElementByFilter.rows[0]) === JSON.stringify(healthElementById),\n 'Found health elements by id should match the one found by filter'\n )\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = await api1.healthcareElementApi.createHealthElementWithUser(\n user1,\n await api1.healthcareElementApi.newInstance(user1, samplePatient, { note: encryptedField })\n )\n expect(entity.note).to.be.equal(encryptedField)\n await api2.healthcareElementApi\n .getHealthElementWithUser(user2, entity.id)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.healthcareElementApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.healthcareElementApi.getHealthElementWithUser(user2, entity.id)\n expect(retrieved.note).to.be.equal(encryptedField)\n expect((await api2.healthcareElementApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- require("isomorphic-fetch");
13
- const test_utils_1 = require("../utils/test_utils");
14
- const mocha_1 = require("mocha");
15
- const icc_x_api_1 = require("../../icc-x-api");
16
- const icc_api_1 = require("../../icc-api");
17
- const Patient_1 = require("../../icc-api/model/Patient");
18
- const crypto_1 = require("crypto");
19
- const Invoice_1 = require("../../icc-api/model/Invoice");
20
- const chai_1 = require("chai");
21
- const types_1 = require("@icure/test-setup/types");
22
- var initApi = test_utils_1.TestUtils.initApi;
23
- const AuthenticationProvider_1 = require("../../icc-x-api/auth/AuthenticationProvider");
24
- (0, test_utils_1.setLocalStorage)(fetch);
25
- let env;
26
- describe('icc-calendar-item-x-api Tests', () => {
27
- (0, mocha_1.before)(function () {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- this.timeout(600000);
30
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
31
- env = yield initializer.execute((0, types_1.getEnvVariables)());
32
- });
33
- });
34
- function createPatient(patientApiForHcp, hcpUser) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- return patientApiForHcp.createPatientWithUser(hcpUser, yield patientApiForHcp.newInstance(hcpUser, new Patient_1.Patient({
37
- id: (0, crypto_1.randomUUID)(),
38
- firstName: 'John',
39
- lastName: 'Snow',
40
- note: 'Winter is coming',
41
- })));
42
- });
43
- }
44
- it('Test', () => __awaiter(void 0, void 0, void 0, function* () {
45
- // Given
46
- const username = env.dataOwnerDetails[test_utils_1.hcp1Username].user;
47
- const password = env.dataOwnerDetails[test_utils_1.hcp1Username].password;
48
- const authProvider = new AuthenticationProvider_1.BasicAuthenticationProvider(username, password);
49
- const userApi = new icc_x_api_1.IccUserXApi(env.iCureUrl, {}, authProvider, null, fetch);
50
- const invoiceApi = new icc_api_1.IccInvoiceApi(env.iCureUrl, {}, authProvider, fetch);
51
- const currentUser = yield userApi.getCurrentUser();
52
- }));
53
- it('Test findBy not usingPost', () => __awaiter(void 0, void 0, void 0, function* () {
54
- // Given
55
- const { userApi: userApiForHcp, dataOwnerApi: dataOwnerApiForHcp, patientApi: patientApiForHcp, cryptoApi: cryptoApiForHcp, dataOwnerApi: dateOwnerApiForHcp, entityReferenceApi: entityReferenceApiForHcp, invoiceApi: invoiceXApi, } = yield initApi(env, test_utils_1.hcp1Username);
56
- const hcpUser = yield userApiForHcp.getCurrentUser();
57
- const patient = (yield createPatient(patientApiForHcp, hcpUser));
58
- const invoice = new Invoice_1.Invoice({
59
- id: (0, crypto_1.randomUUID)(),
60
- created: new Date().getTime(),
61
- modified: new Date().getTime(),
62
- date: +new Date(),
63
- responsible: hcpUser.healthcarePartyId,
64
- author: hcpUser.id,
65
- codes: [],
66
- tags: [],
67
- user: hcpUser.id,
68
- patient: patient.id,
69
- });
70
- const invoiceToCreate = yield invoiceXApi.newInstance(hcpUser, patient, invoice);
71
- const createdInvoice = yield invoiceXApi.createInvoice(invoiceToCreate);
72
- const foundItems = yield invoiceXApi.findBy(hcpUser.healthcarePartyId, patient, false);
73
- const foundItemsUsingPost = yield invoiceXApi.findBy(hcpUser.healthcarePartyId, patient, true);
74
- (0, chai_1.assert)(foundItems.length == 1, 'Found items should be 1');
75
- (0, chai_1.assert)(foundItems[0].id == createdInvoice.id, 'Found item should be the created invoice');
76
- (0, chai_1.assert)(foundItemsUsingPost.length == 1, 'Found items using post should be 1');
77
- (0, chai_1.assert)(foundItemsUsingPost[0].id == createdInvoice.id, 'Found item using post should be the created invoice');
78
- }));
79
- it('Share with should work as expected', () => __awaiter(void 0, void 0, void 0, function* () {
80
- const api1 = yield initApi(env, test_utils_1.hcp1Username);
81
- const user1 = yield api1.userApi.getCurrentUser();
82
- const api2 = yield initApi(env, test_utils_1.hcp2Username);
83
- const user2 = yield api2.userApi.getCurrentUser();
84
- const samplePatient = yield api1.patientApi.createPatientWithUser(user1, yield api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' }));
85
- const entity = yield api1.invoiceApi.createInvoice(yield api1.invoiceApi.newInstance(user1, samplePatient));
86
- yield api2.invoiceApi
87
- .getInvoice(entity.id)
88
- .then(() => {
89
- throw new Error('Should not be able to get the entity');
90
- })
91
- .catch(() => {
92
- /* expected */
93
- });
94
- yield api1.invoiceApi.shareWith(user2.healthcarePartyId, entity);
95
- const retrieved = yield api2.invoiceApi.getInvoice(entity.id);
96
- (0, chai_1.expect)((yield api2.invoiceApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id);
97
- }));
98
- });
99
- //# sourceMappingURL=icc-invoice-x-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-invoice-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-invoice-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { before } from 'mocha'\nimport { IccPatientXApi, IccUserXApi } from '../../icc-x-api'\nimport { IccInvoiceApi } from '../../icc-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { User } from '../../icc-api/model/User'\nimport { randomUUID } from 'crypto'\nimport { Invoice } from '../../icc-api/model/Invoice'\nimport { assert, expect } from 'chai'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport initApi = TestUtils.initApi\nimport { BasicAuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\ndescribe('icc-calendar-item-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n async function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User) {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n }\n\n it('Test', async () => {\n // Given\n const username = env.dataOwnerDetails[hcp1Username].user\n const password = env.dataOwnerDetails[hcp1Username].password\n\n const authProvider = new BasicAuthenticationProvider(username, password)\n\n const userApi = new IccUserXApi(env.iCureUrl, {}, authProvider, null as any, fetch)\n const invoiceApi = new IccInvoiceApi(env.iCureUrl, {}, authProvider, fetch)\n\n const currentUser = await userApi.getCurrentUser()\n })\n\n it('Test findBy not usingPost', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n cryptoApi: cryptoApiForHcp,\n dataOwnerApi: dateOwnerApiForHcp,\n entityReferenceApi: entityReferenceApiForHcp,\n invoiceApi: invoiceXApi,\n } = await initApi(env, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n\n const invoice = new Invoice({\n id: randomUUID(),\n created: new Date().getTime(),\n modified: new Date().getTime(),\n date: +new Date(),\n responsible: hcpUser.healthcarePartyId!,\n author: hcpUser.id,\n codes: [],\n tags: [],\n user: hcpUser.id,\n patient: patient.id,\n })\n\n const invoiceToCreate = await invoiceXApi.newInstance(hcpUser, patient, invoice)\n const createdInvoice = await invoiceXApi.createInvoice(invoiceToCreate)\n\n const foundItems = await invoiceXApi.findBy(hcpUser.healthcarePartyId!, patient, false)\n const foundItemsUsingPost = await invoiceXApi.findBy(hcpUser.healthcarePartyId!, patient, true)\n\n assert(foundItems.length == 1, 'Found items should be 1')\n assert(foundItems[0].id == createdInvoice.id, 'Found item should be the created invoice')\n\n assert(foundItemsUsingPost.length == 1, 'Found items using post should be 1')\n assert(foundItemsUsingPost[0].id == createdInvoice.id, 'Found item using post should be the created invoice')\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const entity = await api1.invoiceApi.createInvoice(await api1.invoiceApi.newInstance(user1, samplePatient))\n await api2.invoiceApi\n .getInvoice(entity.id!)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.invoiceApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.invoiceApi.getInvoice(entity.id!)\n expect((await api2.invoiceApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';
@@ -1,222 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const mocha_1 = require("mocha");
13
- require("isomorphic-fetch");
14
- const icc_x_api_1 = require("../../icc-x-api");
15
- const chai_1 = require("chai");
16
- const crypto_1 = require("crypto");
17
- const test_utils_1 = require("../utils/test_utils");
18
- const MaintenanceTask_1 = require("../../icc-api/model/MaintenanceTask");
19
- const PropertyStub_1 = require("../../icc-api/model/PropertyStub");
20
- const PropertyTypeStub_1 = require("../../icc-api/model/PropertyTypeStub");
21
- const TypedValueObject_1 = require("../../icc-api/model/TypedValueObject");
22
- const Identifier_1 = require("../../icc-api/model/Identifier");
23
- const FilterChainMaintenanceTask_1 = require("../../icc-api/model/FilterChainMaintenanceTask");
24
- const MaintenanceTaskByIdsFilter_1 = require("../../icc-x-api/filters/MaintenanceTaskByIdsFilter");
25
- const MaintenanceTaskByHcPartyAndTypeFilter_1 = require("../../icc-x-api/filters/MaintenanceTaskByHcPartyAndTypeFilter");
26
- var initApi = test_utils_1.TestUtils.initApi;
27
- const MaintenanceTaskAfterDateFilter_1 = require("../../icc-x-api/filters/MaintenanceTaskAfterDateFilter");
28
- const SecureDelegation_1 = require("../../icc-api/model/SecureDelegation");
29
- var AccessLevel = SecureDelegation_1.SecureDelegation.AccessLevelEnum;
30
- const types_1 = require("@icure/test-setup/types");
31
- (0, test_utils_1.setLocalStorage)(fetch);
32
- let env;
33
- function maintenanceTaskToCreate(mTaskApiForHcp, hcpUser, delegatedTo) {
34
- return mTaskApiForHcp.newInstance(hcpUser, new MaintenanceTask_1.MaintenanceTask({
35
- id: (0, crypto_1.randomUUID)(),
36
- taskType: (0, crypto_1.randomUUID)(),
37
- status: MaintenanceTask_1.MaintenanceTask.StatusEnum.Pending,
38
- properties: [
39
- new PropertyStub_1.PropertyStub({
40
- id: 'dataOwnerConcernedId',
41
- type: new PropertyTypeStub_1.PropertyTypeStub({ type: PropertyTypeStub_1.PropertyTypeStub.TypeEnum.STRING }),
42
- typedValue: new TypedValueObject_1.TypedValueObject({
43
- type: TypedValueObject_1.TypedValueObject.TypeEnum.STRING,
44
- stringValue: delegatedTo.id,
45
- }),
46
- }),
47
- new PropertyStub_1.PropertyStub({
48
- id: 'dataOwnerConcernedPubKey',
49
- type: new PropertyTypeStub_1.PropertyTypeStub({ type: PropertyTypeStub_1.PropertyTypeStub.TypeEnum.STRING }),
50
- typedValue: new TypedValueObject_1.TypedValueObject({
51
- type: TypedValueObject_1.TypedValueObject.TypeEnum.STRING,
52
- stringValue: delegatedTo.publicKey,
53
- }),
54
- }),
55
- ],
56
- }), { additionalDelegates: { [delegatedTo.id]: AccessLevel.WRITE } });
57
- }
58
- let apiForHcp1;
59
- let hcp1User;
60
- let hcp1;
61
- let apiForHcp2;
62
- let hcp2User;
63
- let hcp2;
64
- describe('icc-x-maintenance-task-api Tests', () => {
65
- (0, mocha_1.before)(function () {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- this.timeout(600000);
68
- const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
69
- env = yield initializer.execute((0, types_1.getEnvVariables)());
70
- const hierarchicalHcps = yield (0, test_utils_1.createHcpHierarchyApis)(env);
71
- apiForHcp1 = hierarchicalHcps.grandApi;
72
- hcp1User = yield apiForHcp1.userApi.getCurrentUser();
73
- hcp1 = yield apiForHcp1.healthcarePartyApi.getCurrentHealthcareParty();
74
- apiForHcp2 = hierarchicalHcps.parentApi;
75
- hcp2User = yield apiForHcp2.userApi.getCurrentUser();
76
- hcp2 = yield apiForHcp2.healthcarePartyApi.getCurrentHealthcareParty();
77
- });
78
- });
79
- it('CreateMaintenanceTaskWithUser Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
80
- var _a, _b;
81
- // Given
82
- const taskToCreate = yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp2);
83
- // When
84
- const createdTask = yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, taskToCreate);
85
- // Then
86
- (0, chai_1.assert)(createdTask != null);
87
- (0, chai_1.assert)(createdTask.id == taskToCreate.id);
88
- const keysFor1 = yield apiForHcp1.cryptoApi.xapi.encryptionKeysOf({ entity: createdTask, type: icc_x_api_1.EntityWithDelegationTypeName.MaintenanceTask }, undefined);
89
- (0, chai_1.expect)(keysFor1).to.have.length(1);
90
- const foundTask = yield apiForHcp2.maintenanceTaskApi.getMaintenanceTaskWithUser(hcp2User, createdTask.id);
91
- (0, chai_1.assert)(foundTask.id == createdTask.id);
92
- (0, chai_1.assert)(((_a = foundTask.properties) === null || _a === void 0 ? void 0 : _a.find((prop) => { var _a; return ((_a = prop.typedValue) === null || _a === void 0 ? void 0 : _a.stringValue) == hcp2.id; })) != undefined);
93
- (0, chai_1.assert)(((_b = foundTask.properties) === null || _b === void 0 ? void 0 : _b.find((prop) => { var _a; return ((_a = prop.typedValue) === null || _a === void 0 ? void 0 : _a.stringValue) == hcp2.publicKey; })) != undefined);
94
- const keysFor2 = yield apiForHcp2.cryptoApi.xapi.encryptionKeysOf({ entity: createdTask, type: icc_x_api_1.EntityWithDelegationTypeName.MaintenanceTask }, undefined);
95
- (0, chai_1.expect)(keysFor2).to.have.length(1);
96
- (0, chai_1.expect)(keysFor2[0]).to.equal(keysFor1[0]);
97
- })).timeout(30000);
98
- it('ModifyMaintenanceTaskWithUser Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
99
- var _a, _b, _c;
100
- // Given
101
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)));
102
- const identifierToAdd = new Identifier_1.Identifier({ id: 'SYSTEM-TEST|VALUE-TEST', system: 'SYSTEM-TEST', value: 'VALUE-TEST' });
103
- // When
104
- const updatedTask = yield apiForHcp1.maintenanceTaskApi.modifyMaintenanceTaskWithUser(hcp1User, new MaintenanceTask_1.MaintenanceTask(Object.assign(Object.assign({}, createdTask), { identifier: [identifierToAdd], status: MaintenanceTask_1.MaintenanceTask.StatusEnum.Ongoing })));
105
- // Then
106
- (0, chai_1.assert)(updatedTask.id == createdTask.id);
107
- (0, chai_1.assert)(((_a = updatedTask.identifier) === null || _a === void 0 ? void 0 : _a[0].system) == identifierToAdd.system);
108
- (0, chai_1.assert)(((_b = updatedTask.identifier) === null || _b === void 0 ? void 0 : _b[0].value) == identifierToAdd.value);
109
- (0, chai_1.assert)(((_c = updatedTask.identifier) === null || _c === void 0 ? void 0 : _c[0].id) == identifierToAdd.id);
110
- (0, chai_1.assert)(updatedTask.status == MaintenanceTask_1.MaintenanceTask.StatusEnum.Ongoing);
111
- }));
112
- it('DeleteMaintenanceTaskWithUser Success for delegated HCP', () => __awaiter(void 0, void 0, void 0, function* () {
113
- // Given
114
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)));
115
- (0, chai_1.assert)(!!createdTask.id);
116
- // When
117
- const deletedTask = yield apiForHcp1.maintenanceTaskApi.deleteMaintenanceTaskWithUser(hcp1User, createdTask.id);
118
- // Then
119
- (0, chai_1.assert)(!!deletedTask);
120
- (0, chai_1.assert)(deletedTask.id === createdTask.id);
121
- }));
122
- it('DeleteMaintenanceTaskWithUser Success for HCP that which parent has delegation', () => __awaiter(void 0, void 0, void 0, function* () {
123
- // Given
124
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)));
125
- (0, chai_1.assert)(!!createdTask.id);
126
- // When
127
- const deletedTask = yield apiForHcp2.maintenanceTaskApi.deleteMaintenanceTaskWithUser(hcp1User, createdTask.id);
128
- // Then
129
- (0, chai_1.assert)(!!deletedTask);
130
- (0, chai_1.assert)(deletedTask.id === createdTask.id);
131
- }));
132
- it('DeleteMaintenanceTaskWithUser Fails for non-delegated HCP', () => __awaiter(void 0, void 0, void 0, function* () {
133
- const apiForHcp3 = yield initApi(env, test_utils_1.hcp2Username);
134
- const hcp3User = yield apiForHcp3.userApi.getCurrentUser();
135
- // Given
136
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)));
137
- (0, chai_1.assert)(!!createdTask.id);
138
- // When
139
- apiForHcp3.maintenanceTaskApi.deleteMaintenanceTaskWithUser(hcp3User, createdTask.id).then(() => {
140
- throw new Error('You should not be here');
141
- }, (e) => {
142
- (0, chai_1.assert)(!!e);
143
- });
144
- // Then
145
- const actualTask = yield apiForHcp1.maintenanceTaskApi.getMaintenanceTaskWithUser(hcp1User, createdTask.id);
146
- (0, chai_1.assert)(!!actualTask);
147
- (0, chai_1.assert)(!actualTask.deletionDate);
148
- }));
149
- it('FilterMaintenanceTaskByWithUser By Ids Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
150
- // Given
151
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)));
152
- // When
153
- const foundTask = (yield apiForHcp1.maintenanceTaskApi.filterMaintenanceTasksByWithUser(hcp1User, undefined, undefined, new FilterChainMaintenanceTask_1.FilterChainMaintenanceTask({
154
- filter: new MaintenanceTaskByIdsFilter_1.MaintenanceTaskByIdsFilter({
155
- ids: [createdTask.id],
156
- }),
157
- }))).rows[0];
158
- // Then
159
- (0, chai_1.assert)(foundTask.id == createdTask.id);
160
- }));
161
- it('FilterMaintenanceTaskByWithUser By Type Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
162
- // Given
163
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)));
164
- // When
165
- const foundTask = (yield apiForHcp1.maintenanceTaskApi.filterMaintenanceTasksByWithUser(hcp1User, undefined, undefined, new FilterChainMaintenanceTask_1.FilterChainMaintenanceTask({
166
- filter: new MaintenanceTaskByHcPartyAndTypeFilter_1.MaintenanceTaskByHcPartyAndTypeFilter({
167
- healthcarePartyId: hcp1.id,
168
- type: createdTask.taskType,
169
- }),
170
- }))).rows[0];
171
- // Then
172
- (0, chai_1.assert)(foundTask.id == createdTask.id);
173
- }));
174
- it('FilterMaintenanceTaskByWithUser After Date Success for HCP', () => __awaiter(void 0, void 0, void 0, function* () {
175
- // Given
176
- const startTimestamp = new Date().getTime() + 1000;
177
- const taskToCreate = Object.assign(Object.assign({}, (yield maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1))), { created: startTimestamp });
178
- const createdTask = (yield apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, new MaintenanceTask_1.MaintenanceTask(taskToCreate)));
179
- // When
180
- const foundTask = (yield apiForHcp1.maintenanceTaskApi.filterMaintenanceTasksByWithUser(hcp1User, undefined, undefined, new FilterChainMaintenanceTask_1.FilterChainMaintenanceTask({
181
- filter: new MaintenanceTaskAfterDateFilter_1.MaintenanceTaskAfterDateFilter({
182
- healthcarePartyId: hcp1.id,
183
- date: startTimestamp - 1000,
184
- }),
185
- }))).rows[0];
186
- // Then
187
- (0, chai_1.assert)(foundTask.id == createdTask.id);
188
- }));
189
- it('Share with should work as expected', () => __awaiter(void 0, void 0, void 0, function* () {
190
- const api1 = yield initApi(env, test_utils_1.hcp1Username);
191
- const user1 = yield api1.userApi.getCurrentUser();
192
- const api2 = yield initApi(env, test_utils_1.hcp2Username);
193
- const user2 = yield api2.userApi.getCurrentUser();
194
- const samplePatient = yield api1.patientApi.createPatientWithUser(user1, yield api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' }));
195
- const encryptedField = 'Something encrypted';
196
- const entity = (yield api1.maintenanceTaskApi.createMaintenanceTaskWithUser(user1, yield api1.maintenanceTaskApi.newInstance(user1, {
197
- properties: [
198
- new PropertyStub_1.PropertyStub({
199
- id: 'someProp',
200
- type: new PropertyTypeStub_1.PropertyTypeStub({ type: PropertyTypeStub_1.PropertyTypeStub.TypeEnum.STRING }),
201
- typedValue: new TypedValueObject_1.TypedValueObject({
202
- type: TypedValueObject_1.TypedValueObject.TypeEnum.STRING,
203
- stringValue: encryptedField,
204
- }),
205
- }),
206
- ],
207
- })));
208
- (0, chai_1.expect)(entity.properties[0].typedValue.stringValue).to.be.equal(encryptedField);
209
- yield api2.maintenanceTaskApi
210
- .getMaintenanceTaskWithUser(user2, entity.id)
211
- .then(() => {
212
- throw new Error('Should not be able to get the entity');
213
- })
214
- .catch(() => {
215
- /* expected */
216
- });
217
- yield api1.maintenanceTaskApi.shareWith(user2.healthcarePartyId, entity);
218
- const retrieved = yield api2.maintenanceTaskApi.getMaintenanceTaskWithUser(user2, entity.id);
219
- (0, chai_1.expect)(retrieved.properties[0].typedValue.stringValue).to.be.equal(encryptedField);
220
- }));
221
- });
222
- //# sourceMappingURL=icc-maintenance-task-x-api-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icc-maintenance-task-x-api-test.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-maintenance-task-x-api-test.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { Apis, EntityWithDelegationTypeName } from '../../icc-x-api'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { createHcpHierarchyApis, getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { User } from '../../icc-api/model/User'\nimport { IccMaintenanceTaskXApi } from '../../icc-x-api'\nimport { MaintenanceTask } from '../../icc-api/model/MaintenanceTask'\nimport { PropertyStub } from '../../icc-api/model/PropertyStub'\nimport { PropertyTypeStub } from '../../icc-api/model/PropertyTypeStub'\nimport { TypedValueObject } from '../../icc-api/model/TypedValueObject'\nimport { HealthcareParty } from '../../icc-api/model/HealthcareParty'\nimport { Identifier } from '../../icc-api/model/Identifier'\nimport { FilterChainMaintenanceTask } from '../../icc-api/model/FilterChainMaintenanceTask'\nimport { MaintenanceTaskByIdsFilter } from '../../icc-x-api/filters/MaintenanceTaskByIdsFilter'\nimport { MaintenanceTaskByHcPartyAndTypeFilter } from '../../icc-x-api/filters/MaintenanceTaskByHcPartyAndTypeFilter'\nimport { DocIdentifier } from '../../icc-api/model/DocIdentifier'\nimport initApi = TestUtils.initApi\nimport { MaintenanceTaskAfterDateFilter } from '../../icc-x-api/filters/MaintenanceTaskAfterDateFilter'\nimport { SecureDelegation } from '../../icc-api/model/SecureDelegation'\nimport AccessLevel = SecureDelegation.AccessLevelEnum\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nfunction maintenanceTaskToCreate(mTaskApiForHcp: IccMaintenanceTaskXApi, hcpUser: User, delegatedTo: HealthcareParty) {\n return mTaskApiForHcp.newInstance(\n hcpUser,\n new MaintenanceTask({\n id: randomUUID(),\n taskType: randomUUID(),\n status: MaintenanceTask.StatusEnum.Pending,\n properties: [\n new PropertyStub({\n id: 'dataOwnerConcernedId',\n type: new PropertyTypeStub({ type: PropertyTypeStub.TypeEnum.STRING }),\n typedValue: new TypedValueObject({\n type: TypedValueObject.TypeEnum.STRING,\n stringValue: delegatedTo.id,\n }),\n }),\n new PropertyStub({\n id: 'dataOwnerConcernedPubKey',\n type: new PropertyTypeStub({ type: PropertyTypeStub.TypeEnum.STRING }),\n typedValue: new TypedValueObject({\n type: TypedValueObject.TypeEnum.STRING,\n stringValue: delegatedTo.publicKey,\n }),\n }),\n ],\n }),\n { additionalDelegates: { [delegatedTo.id!]: AccessLevel.WRITE } }\n )\n}\n\nlet apiForHcp1: Apis\nlet hcp1User: User\nlet hcp1: HealthcareParty\n\nlet apiForHcp2: Apis\nlet hcp2User: User\nlet hcp2: HealthcareParty\n\ndescribe('icc-x-maintenance-task-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n const hierarchicalHcps = await createHcpHierarchyApis(env)\n\n apiForHcp1 = hierarchicalHcps.grandApi\n hcp1User = await apiForHcp1.userApi.getCurrentUser()\n hcp1 = await apiForHcp1.healthcarePartyApi.getCurrentHealthcareParty()\n\n apiForHcp2 = hierarchicalHcps.parentApi\n hcp2User = await apiForHcp2.userApi.getCurrentUser()\n hcp2 = await apiForHcp2.healthcarePartyApi.getCurrentHealthcareParty()\n })\n\n it('CreateMaintenanceTaskWithUser Success for HCP', async () => {\n // Given\n const taskToCreate = await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp2)\n\n // When\n const createdTask = await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(hcp1User, taskToCreate)\n\n // Then\n assert(createdTask != null)\n assert(createdTask.id == taskToCreate.id)\n const keysFor1 = await apiForHcp1.cryptoApi.xapi.encryptionKeysOf(\n { entity: createdTask, type: EntityWithDelegationTypeName.MaintenanceTask },\n undefined\n )\n expect(keysFor1).to.have.length(1)\n\n const foundTask: MaintenanceTask = await apiForHcp2.maintenanceTaskApi.getMaintenanceTaskWithUser(hcp2User, createdTask.id!)\n\n assert(foundTask.id == createdTask.id)\n assert(foundTask.properties?.find((prop: PropertyStub) => prop.typedValue?.stringValue == hcp2.id) != undefined)\n assert(foundTask.properties?.find((prop: PropertyStub) => prop.typedValue?.stringValue == hcp2.publicKey) != undefined)\n const keysFor2 = await apiForHcp2.cryptoApi.xapi.encryptionKeysOf(\n { entity: createdTask, type: EntityWithDelegationTypeName.MaintenanceTask },\n undefined\n )\n expect(keysFor2).to.have.length(1)\n expect(keysFor2[0]).to.equal(keysFor1[0])\n }).timeout(30000)\n\n it('ModifyMaintenanceTaskWithUser Success for HCP', async () => {\n // Given\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)\n ))!\n const identifierToAdd = new Identifier({ id: 'SYSTEM-TEST|VALUE-TEST', system: 'SYSTEM-TEST', value: 'VALUE-TEST' })\n\n // When\n const updatedTask: MaintenanceTask = await apiForHcp1.maintenanceTaskApi.modifyMaintenanceTaskWithUser(\n hcp1User,\n new MaintenanceTask({ ...createdTask, identifier: [identifierToAdd], status: MaintenanceTask.StatusEnum.Ongoing })\n )\n\n // Then\n assert(updatedTask.id == createdTask.id)\n assert(updatedTask.identifier?.[0].system == identifierToAdd.system)\n assert(updatedTask.identifier?.[0].value == identifierToAdd.value)\n assert(updatedTask.identifier?.[0].id == identifierToAdd.id)\n assert(updatedTask.status == MaintenanceTask.StatusEnum.Ongoing)\n })\n\n it('DeleteMaintenanceTaskWithUser Success for delegated HCP', async () => {\n // Given\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)\n ))!\n assert(!!createdTask.id)\n\n // When\n const deletedTask: DocIdentifier = await apiForHcp1.maintenanceTaskApi.deleteMaintenanceTaskWithUser(hcp1User, createdTask.id!)\n\n // Then\n assert(!!deletedTask)\n assert(deletedTask.id === createdTask.id)\n })\n\n it('DeleteMaintenanceTaskWithUser Success for HCP that which parent has delegation', async () => {\n // Given\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)\n ))!\n assert(!!createdTask.id)\n\n // When\n const deletedTask: DocIdentifier = await apiForHcp2.maintenanceTaskApi.deleteMaintenanceTaskWithUser(hcp1User, createdTask.id!)\n\n // Then\n assert(!!deletedTask)\n assert(deletedTask.id === createdTask.id)\n })\n\n it('DeleteMaintenanceTaskWithUser Fails for non-delegated HCP', async () => {\n const apiForHcp3 = await initApi(env, hcp2Username)\n const hcp3User = await apiForHcp3.userApi.getCurrentUser()\n\n // Given\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)\n ))!\n assert(!!createdTask.id)\n\n // When\n apiForHcp3.maintenanceTaskApi.deleteMaintenanceTaskWithUser(hcp3User, createdTask.id!).then(\n () => {\n throw new Error('You should not be here')\n },\n (e) => {\n assert(!!e)\n }\n )\n\n // Then\n const actualTask: MaintenanceTask = await apiForHcp1.maintenanceTaskApi.getMaintenanceTaskWithUser(hcp1User, createdTask.id!)\n assert(!!actualTask)\n assert(!actualTask.deletionDate)\n })\n\n it('FilterMaintenanceTaskByWithUser By Ids Success for HCP', async () => {\n // Given\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)\n ))!\n\n // When\n const foundTask = (\n await apiForHcp1.maintenanceTaskApi.filterMaintenanceTasksByWithUser(\n hcp1User,\n undefined,\n undefined,\n new FilterChainMaintenanceTask({\n filter: new MaintenanceTaskByIdsFilter({\n ids: [createdTask.id!],\n }),\n })\n )\n ).rows![0] as MaintenanceTask\n\n // Then\n assert(foundTask.id == createdTask.id)\n })\n\n it('FilterMaintenanceTaskByWithUser By Type Success for HCP', async () => {\n // Given\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)\n ))!\n\n // When\n const foundTask = (\n await apiForHcp1.maintenanceTaskApi.filterMaintenanceTasksByWithUser(\n hcp1User,\n undefined,\n undefined,\n new FilterChainMaintenanceTask({\n filter: new MaintenanceTaskByHcPartyAndTypeFilter({\n healthcarePartyId: hcp1.id!,\n type: createdTask.taskType!,\n }),\n })\n )\n ).rows![0]\n\n // Then\n assert(foundTask.id == createdTask.id)\n })\n\n it('FilterMaintenanceTaskByWithUser After Date Success for HCP', async () => {\n // Given\n const startTimestamp = new Date().getTime() + 1000\n const taskToCreate = { ...(await maintenanceTaskToCreate(apiForHcp1.maintenanceTaskApi, hcp1User, hcp1)), created: startTimestamp }\n\n const createdTask: MaintenanceTask = (await apiForHcp1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n hcp1User,\n new MaintenanceTask(taskToCreate)\n ))!\n\n // When\n const foundTask = (\n await apiForHcp1.maintenanceTaskApi.filterMaintenanceTasksByWithUser(\n hcp1User,\n undefined,\n undefined,\n new FilterChainMaintenanceTask({\n filter: new MaintenanceTaskAfterDateFilter({\n healthcarePartyId: hcp1.id!,\n date: startTimestamp - 1000,\n }),\n })\n )\n ).rows![0]\n\n // Then\n assert(foundTask.id == createdTask.id)\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = (await api1.maintenanceTaskApi.createMaintenanceTaskWithUser(\n user1,\n await api1.maintenanceTaskApi.newInstance(user1, {\n properties: [\n new PropertyStub({\n id: 'someProp',\n type: new PropertyTypeStub({ type: PropertyTypeStub.TypeEnum.STRING }),\n typedValue: new TypedValueObject({\n type: TypedValueObject.TypeEnum.STRING,\n stringValue: encryptedField,\n }),\n }),\n ],\n })\n ))!\n expect(entity.properties![0].typedValue!.stringValue).to.be.equal(encryptedField)\n await api2.maintenanceTaskApi\n .getMaintenanceTaskWithUser(user2, entity.id!)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.maintenanceTaskApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.maintenanceTaskApi.getMaintenanceTaskWithUser(user2, entity.id!)\n expect(retrieved.properties![0].typedValue!.stringValue).to.be.equal(encryptedField)\n })\n})\n"]}
@@ -1 +0,0 @@
1
- import 'isomorphic-fetch';