@icure/api 4.2.34 → 4.2.35

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 (1695) hide show
  1. package/.editorconfig +11 -0
  2. package/.eslintrc.js +31 -0
  3. package/.github/workflows/build.yml +37 -0
  4. package/.prettierrc +5 -0
  5. package/CHANGELOG.md +112 -0
  6. package/Dockerfile +25 -0
  7. package/LICENSE +7 -0
  8. package/README.md +75 -0
  9. package/apidocs/.swagger-codegen-ignore +23 -0
  10. package/ci/cloudbuild.yaml +16 -0
  11. package/{icc-api → dist/icc-api}/api/IccAccesslogApi.d.ts +0 -0
  12. package/{icc-api → dist/icc-api}/api/IccAccesslogApi.js +0 -0
  13. package/{icc-api → dist/icc-api}/api/IccAccesslogApi.js.map +0 -0
  14. package/{icc-api → dist/icc-api}/api/IccAgendaApi.d.ts +0 -0
  15. package/{icc-api → dist/icc-api}/api/IccAgendaApi.js +0 -0
  16. package/{icc-api → dist/icc-api}/api/IccAgendaApi.js.map +0 -0
  17. package/{icc-api → dist/icc-api}/api/IccAnonymousAccessApi.d.ts +0 -0
  18. package/{icc-api → dist/icc-api}/api/IccAnonymousAccessApi.js +0 -0
  19. package/{icc-api → dist/icc-api}/api/IccAnonymousAccessApi.js.map +0 -0
  20. package/{icc-api → dist/icc-api}/api/IccApplicationsettingsApi.d.ts +0 -0
  21. package/{icc-api → dist/icc-api}/api/IccApplicationsettingsApi.js +0 -0
  22. package/{icc-api → dist/icc-api}/api/IccApplicationsettingsApi.js.map +0 -0
  23. package/{icc-api → dist/icc-api}/api/IccArticleApi.d.ts +0 -0
  24. package/{icc-api → dist/icc-api}/api/IccArticleApi.js +0 -0
  25. package/{icc-api → dist/icc-api}/api/IccArticleApi.js.map +0 -0
  26. package/dist/icc-api/api/IccAuthApi.d.ts +51 -0
  27. package/dist/icc-api/api/IccAuthApi.js +101 -0
  28. package/dist/icc-api/api/IccAuthApi.js.map +1 -0
  29. package/{icc-api → dist/icc-api}/api/IccBeefactApi.d.ts +0 -0
  30. package/{icc-api → dist/icc-api}/api/IccBeefactApi.js +0 -0
  31. package/{icc-api → dist/icc-api}/api/IccBeefactApi.js.map +0 -0
  32. package/{icc-api → dist/icc-api}/api/IccBekmehrApi.d.ts +0 -0
  33. package/{icc-api → dist/icc-api}/api/IccBekmehrApi.js +0 -0
  34. package/{icc-api → dist/icc-api}/api/IccBekmehrApi.js.map +0 -0
  35. package/{icc-api → dist/icc-api}/api/IccBemikronoApi.d.ts +0 -0
  36. package/{icc-api → dist/icc-api}/api/IccBemikronoApi.js +0 -0
  37. package/{icc-api → dist/icc-api}/api/IccBemikronoApi.js.map +0 -0
  38. package/{icc-api → dist/icc-api}/api/IccBeresultexportApi.d.ts +0 -0
  39. package/{icc-api → dist/icc-api}/api/IccBeresultexportApi.js +0 -0
  40. package/{icc-api → dist/icc-api}/api/IccBeresultexportApi.js.map +0 -0
  41. package/{icc-api → dist/icc-api}/api/IccBeresultimportApi.d.ts +0 -0
  42. package/{icc-api → dist/icc-api}/api/IccBeresultimportApi.js +0 -0
  43. package/{icc-api → dist/icc-api}/api/IccBeresultimportApi.js.map +0 -0
  44. package/{icc-api → dist/icc-api}/api/IccBesamv2Api.d.ts +0 -0
  45. package/{icc-api → dist/icc-api}/api/IccBesamv2Api.js +0 -0
  46. package/{icc-api → dist/icc-api}/api/IccBesamv2Api.js.map +0 -0
  47. package/{icc-api → dist/icc-api}/api/IccCalendarItemApi.d.ts +0 -0
  48. package/{icc-api → dist/icc-api}/api/IccCalendarItemApi.js +0 -0
  49. package/{icc-api → dist/icc-api}/api/IccCalendarItemApi.js.map +0 -0
  50. package/{icc-api → dist/icc-api}/api/IccCalendarItemTypeApi.d.ts +0 -0
  51. package/{icc-api → dist/icc-api}/api/IccCalendarItemTypeApi.js +0 -0
  52. package/{icc-api → dist/icc-api}/api/IccCalendarItemTypeApi.js.map +0 -0
  53. package/{icc-api → dist/icc-api}/api/IccClassificationApi.d.ts +0 -0
  54. package/{icc-api → dist/icc-api}/api/IccClassificationApi.js +0 -0
  55. package/{icc-api → dist/icc-api}/api/IccClassificationApi.js.map +0 -0
  56. package/{icc-api → dist/icc-api}/api/IccClassificationTemplateApi.d.ts +0 -0
  57. package/{icc-api → dist/icc-api}/api/IccClassificationTemplateApi.js +0 -0
  58. package/{icc-api → dist/icc-api}/api/IccClassificationTemplateApi.js.map +0 -0
  59. package/{icc-api → dist/icc-api}/api/IccCodeApi.d.ts +0 -0
  60. package/{icc-api → dist/icc-api}/api/IccCodeApi.js +0 -0
  61. package/{icc-api → dist/icc-api}/api/IccCodeApi.js.map +0 -0
  62. package/{icc-api → dist/icc-api}/api/IccContactApi.d.ts +0 -0
  63. package/{icc-api → dist/icc-api}/api/IccContactApi.js +0 -0
  64. package/{icc-api → dist/icc-api}/api/IccContactApi.js.map +0 -0
  65. package/{icc-api → dist/icc-api}/api/IccDeviceApi.d.ts +0 -0
  66. package/{icc-api → dist/icc-api}/api/IccDeviceApi.js +0 -0
  67. package/{icc-api → dist/icc-api}/api/IccDeviceApi.js.map +0 -0
  68. package/{icc-api → dist/icc-api}/api/IccDoctemplateApi.d.ts +0 -0
  69. package/{icc-api → dist/icc-api}/api/IccDoctemplateApi.js +0 -0
  70. package/{icc-api → dist/icc-api}/api/IccDoctemplateApi.js.map +0 -0
  71. package/{icc-api → dist/icc-api}/api/IccDocumentApi.d.ts +0 -0
  72. package/{icc-api → dist/icc-api}/api/IccDocumentApi.js +0 -0
  73. package/{icc-api → dist/icc-api}/api/IccDocumentApi.js.map +0 -0
  74. package/{icc-api → dist/icc-api}/api/IccDocumentTemplateApi.d.ts +0 -0
  75. package/{icc-api → dist/icc-api}/api/IccDocumentTemplateApi.js +0 -0
  76. package/{icc-api → dist/icc-api}/api/IccDocumentTemplateApi.js.map +0 -0
  77. package/{icc-api → dist/icc-api}/api/IccEntityrefApi.d.ts +0 -0
  78. package/{icc-api → dist/icc-api}/api/IccEntityrefApi.js +0 -0
  79. package/{icc-api → dist/icc-api}/api/IccEntityrefApi.js.map +0 -0
  80. package/{icc-api → dist/icc-api}/api/IccEntitytemplateApi.d.ts +0 -0
  81. package/{icc-api → dist/icc-api}/api/IccEntitytemplateApi.js +0 -0
  82. package/{icc-api → dist/icc-api}/api/IccEntitytemplateApi.js.map +0 -0
  83. package/{icc-api → dist/icc-api}/api/IccFormApi.d.ts +0 -0
  84. package/{icc-api → dist/icc-api}/api/IccFormApi.js +0 -0
  85. package/{icc-api → dist/icc-api}/api/IccFormApi.js.map +0 -0
  86. package/{icc-api → dist/icc-api}/api/IccFrontendmigrationApi.d.ts +0 -0
  87. package/{icc-api → dist/icc-api}/api/IccFrontendmigrationApi.js +0 -0
  88. package/{icc-api → dist/icc-api}/api/IccFrontendmigrationApi.js.map +0 -0
  89. package/{icc-api → dist/icc-api}/api/IccGroupApi.d.ts +0 -0
  90. package/{icc-api → dist/icc-api}/api/IccGroupApi.js +0 -0
  91. package/{icc-api → dist/icc-api}/api/IccGroupApi.js.map +0 -0
  92. package/{icc-api → dist/icc-api}/api/IccHcpartyApi.d.ts +0 -0
  93. package/{icc-api → dist/icc-api}/api/IccHcpartyApi.js +0 -0
  94. package/{icc-api → dist/icc-api}/api/IccHcpartyApi.js.map +0 -0
  95. package/{icc-api → dist/icc-api}/api/IccHelementApi.d.ts +0 -0
  96. package/{icc-api → dist/icc-api}/api/IccHelementApi.js +0 -0
  97. package/{icc-api → dist/icc-api}/api/IccHelementApi.js.map +0 -0
  98. package/{icc-api → dist/icc-api}/api/IccIcureApi.d.ts +0 -0
  99. package/{icc-api → dist/icc-api}/api/IccIcureApi.js +0 -0
  100. package/{icc-api → dist/icc-api}/api/IccIcureApi.js.map +0 -0
  101. package/{icc-api → dist/icc-api}/api/IccInsuranceApi.d.ts +0 -0
  102. package/{icc-api → dist/icc-api}/api/IccInsuranceApi.js +0 -0
  103. package/{icc-api → dist/icc-api}/api/IccInsuranceApi.js.map +0 -0
  104. package/{icc-api → dist/icc-api}/api/IccInvoiceApi.d.ts +0 -0
  105. package/{icc-api → dist/icc-api}/api/IccInvoiceApi.js +0 -0
  106. package/{icc-api → dist/icc-api}/api/IccInvoiceApi.js.map +0 -0
  107. package/{icc-api → dist/icc-api}/api/IccKeywordApi.d.ts +0 -0
  108. package/{icc-api → dist/icc-api}/api/IccKeywordApi.js +0 -0
  109. package/{icc-api → dist/icc-api}/api/IccKeywordApi.js.map +0 -0
  110. package/{icc-api → dist/icc-api}/api/IccMaintenanceTaskApi.d.ts +0 -0
  111. package/{icc-api → dist/icc-api}/api/IccMaintenanceTaskApi.js +0 -0
  112. package/{icc-api → dist/icc-api}/api/IccMaintenanceTaskApi.js.map +0 -0
  113. package/{icc-api → dist/icc-api}/api/IccMedexApi.d.ts +0 -0
  114. package/{icc-api → dist/icc-api}/api/IccMedexApi.js +0 -0
  115. package/{icc-api → dist/icc-api}/api/IccMedexApi.js.map +0 -0
  116. package/{icc-api → dist/icc-api}/api/IccMedicallocationApi.d.ts +0 -0
  117. package/{icc-api → dist/icc-api}/api/IccMedicallocationApi.js +0 -0
  118. package/{icc-api → dist/icc-api}/api/IccMedicallocationApi.js.map +0 -0
  119. package/{icc-api → dist/icc-api}/api/IccMessageApi.d.ts +0 -0
  120. package/{icc-api → dist/icc-api}/api/IccMessageApi.js +0 -0
  121. package/{icc-api → dist/icc-api}/api/IccMessageApi.js.map +0 -0
  122. package/{icc-api → dist/icc-api}/api/IccPatientApi.d.ts +0 -0
  123. package/{icc-api → dist/icc-api}/api/IccPatientApi.js +0 -0
  124. package/{icc-api → dist/icc-api}/api/IccPatientApi.js.map +0 -0
  125. package/{icc-api → dist/icc-api}/api/IccPermissionApi.d.ts +0 -0
  126. package/{icc-api → dist/icc-api}/api/IccPermissionApi.js +0 -0
  127. package/{icc-api → dist/icc-api}/api/IccPermissionApi.js.map +0 -0
  128. package/{icc-api → dist/icc-api}/api/IccPlaceApi.d.ts +0 -0
  129. package/{icc-api → dist/icc-api}/api/IccPlaceApi.js +0 -0
  130. package/{icc-api → dist/icc-api}/api/IccPlaceApi.js.map +0 -0
  131. package/{icc-api → dist/icc-api}/api/IccPubsubApi.d.ts +0 -0
  132. package/{icc-api → dist/icc-api}/api/IccPubsubApi.js +0 -0
  133. package/{icc-api → dist/icc-api}/api/IccPubsubApi.js.map +0 -0
  134. package/{icc-api → dist/icc-api}/api/IccReceiptApi.d.ts +0 -0
  135. package/{icc-api → dist/icc-api}/api/IccReceiptApi.js +0 -0
  136. package/{icc-api → dist/icc-api}/api/IccReceiptApi.js.map +0 -0
  137. package/{icc-api → dist/icc-api}/api/IccReplicationApi.d.ts +0 -0
  138. package/{icc-api → dist/icc-api}/api/IccReplicationApi.js +0 -0
  139. package/{icc-api → dist/icc-api}/api/IccReplicationApi.js.map +0 -0
  140. package/{icc-api → dist/icc-api}/api/IccTarificationApi.d.ts +0 -0
  141. package/{icc-api → dist/icc-api}/api/IccTarificationApi.js +0 -0
  142. package/{icc-api → dist/icc-api}/api/IccTarificationApi.js.map +0 -0
  143. package/{icc-api → dist/icc-api}/api/IccTimeTableApi.d.ts +0 -0
  144. package/{icc-api → dist/icc-api}/api/IccTimeTableApi.js +0 -0
  145. package/{icc-api → dist/icc-api}/api/IccTimeTableApi.js.map +0 -0
  146. package/{icc-api → dist/icc-api}/api/IccTmpApi.d.ts +0 -0
  147. package/{icc-api → dist/icc-api}/api/IccTmpApi.js +0 -0
  148. package/{icc-api → dist/icc-api}/api/IccTmpApi.js.map +0 -0
  149. package/{icc-api → dist/icc-api}/api/IccUserApi.d.ts +0 -0
  150. package/{icc-api → dist/icc-api}/api/IccUserApi.js +0 -0
  151. package/{icc-api → dist/icc-api}/api/IccUserApi.js.map +0 -0
  152. package/{icc-api → dist/icc-api}/api/XHR.d.ts +0 -0
  153. package/{icc-api → dist/icc-api}/api/XHR.js +0 -0
  154. package/{icc-api → dist/icc-api}/api/XHR.js.map +0 -0
  155. package/{icc-api → dist/icc-api}/iccApi.d.ts +0 -0
  156. package/{icc-api → dist/icc-api}/iccApi.js +0 -0
  157. package/{icc-api → dist/icc-api}/iccApi.js.map +0 -0
  158. package/{icc-api → dist/icc-api}/index.d.ts +0 -0
  159. package/{icc-api → dist/icc-api}/index.js +0 -0
  160. package/{icc-api → dist/icc-api}/index.js.map +0 -0
  161. package/{icc-api → dist/icc-api}/model/AbstractFilterCode.d.ts +0 -0
  162. package/{icc-api → dist/icc-api}/model/AbstractFilterCode.js +0 -0
  163. package/{icc-api → dist/icc-api}/model/AbstractFilterCode.js.map +0 -0
  164. package/{icc-api → dist/icc-api}/model/AbstractFilterContact.d.ts +0 -0
  165. package/{icc-api → dist/icc-api}/model/AbstractFilterContact.js +0 -0
  166. package/{icc-api → dist/icc-api}/model/AbstractFilterContact.js.map +0 -0
  167. package/{icc-api → dist/icc-api}/model/AbstractFilterDevice.d.ts +0 -0
  168. package/{icc-api → dist/icc-api}/model/AbstractFilterDevice.js +0 -0
  169. package/{icc-api → dist/icc-api}/model/AbstractFilterDevice.js.map +0 -0
  170. package/{icc-api → dist/icc-api}/model/AbstractFilterHealthElement.d.ts +0 -0
  171. package/{icc-api → dist/icc-api}/model/AbstractFilterHealthElement.js +0 -0
  172. package/{icc-api → dist/icc-api}/model/AbstractFilterHealthElement.js.map +0 -0
  173. package/{icc-api → dist/icc-api}/model/AbstractFilterHealthcareParty.d.ts +0 -0
  174. package/{icc-api → dist/icc-api}/model/AbstractFilterHealthcareParty.js +0 -0
  175. package/{icc-api → dist/icc-api}/model/AbstractFilterHealthcareParty.js.map +0 -0
  176. package/{icc-api → dist/icc-api}/model/AbstractFilterInvoice.d.ts +0 -0
  177. package/{icc-api → dist/icc-api}/model/AbstractFilterInvoice.js +0 -0
  178. package/{icc-api → dist/icc-api}/model/AbstractFilterInvoice.js.map +0 -0
  179. package/{icc-api → dist/icc-api}/model/AbstractFilterMaintenanceTask.d.ts +0 -0
  180. package/{icc-api → dist/icc-api}/model/AbstractFilterMaintenanceTask.js +0 -0
  181. package/{icc-api → dist/icc-api}/model/AbstractFilterMaintenanceTask.js.map +0 -0
  182. package/{icc-api → dist/icc-api}/model/AbstractFilterPatient.d.ts +0 -0
  183. package/{icc-api → dist/icc-api}/model/AbstractFilterPatient.js +0 -0
  184. package/{icc-api → dist/icc-api}/model/AbstractFilterPatient.js.map +0 -0
  185. package/{icc-api → dist/icc-api}/model/AbstractFilterService.d.ts +0 -0
  186. package/{icc-api → dist/icc-api}/model/AbstractFilterService.js +0 -0
  187. package/{icc-api → dist/icc-api}/model/AbstractFilterService.js.map +0 -0
  188. package/{icc-api → dist/icc-api}/model/AbstractFilterUser.d.ts +0 -0
  189. package/{icc-api → dist/icc-api}/model/AbstractFilterUser.js +0 -0
  190. package/{icc-api → dist/icc-api}/model/AbstractFilterUser.js.map +0 -0
  191. package/{icc-api → dist/icc-api}/model/AccessLog.d.ts +0 -0
  192. package/{icc-api → dist/icc-api}/model/AccessLog.js +0 -0
  193. package/{icc-api → dist/icc-api}/model/AccessLog.js.map +0 -0
  194. package/{icc-api → dist/icc-api}/model/AddedDocument.d.ts +0 -0
  195. package/{icc-api → dist/icc-api}/model/AddedDocument.js +0 -0
  196. package/{icc-api → dist/icc-api}/model/AddedDocument.js.map +0 -0
  197. package/{icc-api → dist/icc-api}/model/Address.d.ts +0 -0
  198. package/{icc-api → dist/icc-api}/model/Address.js +0 -0
  199. package/{icc-api → dist/icc-api}/model/Address.js.map +0 -0
  200. package/{icc-api → dist/icc-api}/model/AdministrationQuantity.d.ts +0 -0
  201. package/{icc-api → dist/icc-api}/model/AdministrationQuantity.js +0 -0
  202. package/{icc-api → dist/icc-api}/model/AdministrationQuantity.js.map +0 -0
  203. package/{icc-api → dist/icc-api}/model/Agenda.d.ts +0 -0
  204. package/{icc-api → dist/icc-api}/model/Agenda.js +0 -0
  205. package/{icc-api → dist/icc-api}/model/Agenda.js.map +0 -0
  206. package/{icc-api → dist/icc-api}/model/AgreementAppendix.d.ts +0 -0
  207. package/{icc-api → dist/icc-api}/model/AgreementAppendix.js +0 -0
  208. package/{icc-api → dist/icc-api}/model/AgreementAppendix.js.map +0 -0
  209. package/{icc-api → dist/icc-api}/model/Amp.d.ts +0 -0
  210. package/{icc-api → dist/icc-api}/model/Amp.js +0 -0
  211. package/{icc-api → dist/icc-api}/model/Amp.js.map +0 -0
  212. package/{icc-api → dist/icc-api}/model/AmpComponent.d.ts +0 -0
  213. package/{icc-api → dist/icc-api}/model/AmpComponent.js +0 -0
  214. package/{icc-api → dist/icc-api}/model/AmpComponent.js.map +0 -0
  215. package/{icc-api → dist/icc-api}/model/Ampp.d.ts +0 -0
  216. package/{icc-api → dist/icc-api}/model/Ampp.js +0 -0
  217. package/{icc-api → dist/icc-api}/model/Ampp.js.map +0 -0
  218. package/{icc-api → dist/icc-api}/model/AmppComponent.d.ts +0 -0
  219. package/{icc-api → dist/icc-api}/model/AmppComponent.js +0 -0
  220. package/{icc-api → dist/icc-api}/model/AmppComponent.js.map +0 -0
  221. package/{icc-api → dist/icc-api}/model/Annotation.d.ts +0 -0
  222. package/{icc-api → dist/icc-api}/model/Annotation.js +0 -0
  223. package/{icc-api → dist/icc-api}/model/Annotation.js.map +0 -0
  224. package/{icc-api → dist/icc-api}/model/ApplicationSettings.d.ts +0 -0
  225. package/{icc-api → dist/icc-api}/model/ApplicationSettings.js +0 -0
  226. package/{icc-api → dist/icc-api}/model/ApplicationSettings.js.map +0 -0
  227. package/{icc-api → dist/icc-api}/model/Appointment.d.ts +0 -0
  228. package/{icc-api → dist/icc-api}/model/Appointment.js +0 -0
  229. package/{icc-api → dist/icc-api}/model/Appointment.js.map +0 -0
  230. package/{icc-api → dist/icc-api}/model/AppointmentImport.d.ts +0 -0
  231. package/{icc-api → dist/icc-api}/model/AppointmentImport.js +0 -0
  232. package/{icc-api → dist/icc-api}/model/AppointmentImport.js.map +0 -0
  233. package/{icc-api → dist/icc-api}/model/AppointmentTypeAndPlace.d.ts +0 -0
  234. package/{icc-api → dist/icc-api}/model/AppointmentTypeAndPlace.js +0 -0
  235. package/{icc-api → dist/icc-api}/model/AppointmentTypeAndPlace.js.map +0 -0
  236. package/{icc-api → dist/icc-api}/model/Article.d.ts +0 -0
  237. package/{icc-api → dist/icc-api}/model/Article.js +0 -0
  238. package/{icc-api → dist/icc-api}/model/Article.js.map +0 -0
  239. package/{icc-api → dist/icc-api}/model/Atc.d.ts +0 -0
  240. package/{icc-api → dist/icc-api}/model/Atc.js +0 -0
  241. package/{icc-api → dist/icc-api}/model/Atc.js.map +0 -0
  242. package/{icc-api → dist/icc-api}/model/Attachment.d.ts +0 -0
  243. package/{icc-api → dist/icc-api}/model/Attachment.js +0 -0
  244. package/{icc-api → dist/icc-api}/model/Attachment.js.map +0 -0
  245. package/{icc-api → dist/icc-api}/model/AuthenticationResponse.d.ts +0 -0
  246. package/{icc-api → dist/icc-api}/model/AuthenticationResponse.js +0 -0
  247. package/{icc-api → dist/icc-api}/model/AuthenticationResponse.js.map +0 -0
  248. package/{icc-api → dist/icc-api}/model/AuthenticationToken.d.ts +0 -0
  249. package/{icc-api → dist/icc-api}/model/AuthenticationToken.js +0 -0
  250. package/{icc-api → dist/icc-api}/model/AuthenticationToken.js.map +0 -0
  251. package/{icc-api → dist/icc-api}/model/Basic.d.ts +0 -0
  252. package/{icc-api → dist/icc-api}/model/Basic.js +0 -0
  253. package/{icc-api → dist/icc-api}/model/Basic.js.map +0 -0
  254. package/{icc-api → dist/icc-api}/model/Body.d.ts +0 -0
  255. package/{icc-api → dist/icc-api}/model/Body.js +0 -0
  256. package/{icc-api → dist/icc-api}/model/Body.js.map +0 -0
  257. package/{icc-api → dist/icc-api}/model/Body1.d.ts +0 -0
  258. package/{icc-api → dist/icc-api}/model/Body1.js +0 -0
  259. package/{icc-api → dist/icc-api}/model/Body1.js.map +0 -0
  260. package/{icc-api → dist/icc-api}/model/Body2.d.ts +0 -0
  261. package/{icc-api → dist/icc-api}/model/Body2.js +0 -0
  262. package/{icc-api → dist/icc-api}/model/Body2.js.map +0 -0
  263. package/{icc-api → dist/icc-api}/model/Body3.d.ts +0 -0
  264. package/{icc-api → dist/icc-api}/model/Body3.js +0 -0
  265. package/{icc-api → dist/icc-api}/model/Body3.js.map +0 -0
  266. package/{icc-api → dist/icc-api}/model/ByteArray.d.ts +0 -0
  267. package/{icc-api → dist/icc-api}/model/ByteArray.js +0 -0
  268. package/{icc-api → dist/icc-api}/model/ByteArray.js.map +0 -0
  269. package/{icc-api → dist/icc-api}/model/CalendarItem.d.ts +0 -0
  270. package/{icc-api → dist/icc-api}/model/CalendarItem.js +0 -0
  271. package/{icc-api → dist/icc-api}/model/CalendarItem.js.map +0 -0
  272. package/{icc-api → dist/icc-api}/model/CalendarItemTag.d.ts +0 -0
  273. package/{icc-api → dist/icc-api}/model/CalendarItemTag.js +0 -0
  274. package/{icc-api → dist/icc-api}/model/CalendarItemTag.js.map +0 -0
  275. package/{icc-api → dist/icc-api}/model/CalendarItemType.d.ts +0 -0
  276. package/{icc-api → dist/icc-api}/model/CalendarItemType.js +0 -0
  277. package/{icc-api → dist/icc-api}/model/CalendarItemType.js.map +0 -0
  278. package/{icc-api → dist/icc-api}/model/CareTeamMember.d.ts +0 -0
  279. package/{icc-api → dist/icc-api}/model/CareTeamMember.js +0 -0
  280. package/{icc-api → dist/icc-api}/model/CareTeamMember.js.map +0 -0
  281. package/{icc-api → dist/icc-api}/model/CareTeamMembership.d.ts +0 -0
  282. package/{icc-api → dist/icc-api}/model/CareTeamMembership.js +0 -0
  283. package/{icc-api → dist/icc-api}/model/CareTeamMembership.js.map +0 -0
  284. package/{icc-api → dist/icc-api}/model/CheckSMFPatientResult.d.ts +0 -0
  285. package/{icc-api → dist/icc-api}/model/CheckSMFPatientResult.js +0 -0
  286. package/{icc-api → dist/icc-api}/model/CheckSMFPatientResult.js.map +0 -0
  287. package/{icc-api → dist/icc-api}/model/Classification.d.ts +0 -0
  288. package/{icc-api → dist/icc-api}/model/Classification.js +0 -0
  289. package/{icc-api → dist/icc-api}/model/Classification.js.map +0 -0
  290. package/{icc-api → dist/icc-api}/model/ClassificationTemplate.d.ts +0 -0
  291. package/{icc-api → dist/icc-api}/model/ClassificationTemplate.js +0 -0
  292. package/{icc-api → dist/icc-api}/model/ClassificationTemplate.js.map +0 -0
  293. package/{icc-api → dist/icc-api}/model/Code.d.ts +0 -0
  294. package/{icc-api → dist/icc-api}/model/Code.js +0 -0
  295. package/{icc-api → dist/icc-api}/model/Code.js.map +0 -0
  296. package/{icc-api → dist/icc-api}/model/CodeStub.d.ts +0 -0
  297. package/{icc-api → dist/icc-api}/model/CodeStub.js +0 -0
  298. package/{icc-api → dist/icc-api}/model/CodeStub.js.map +0 -0
  299. package/{icc-api → dist/icc-api}/model/CodeType.d.ts +0 -0
  300. package/{icc-api → dist/icc-api}/model/CodeType.js +0 -0
  301. package/{icc-api → dist/icc-api}/model/CodeType.js.map +0 -0
  302. package/{icc-api → dist/icc-api}/model/CommentedClassification.d.ts +0 -0
  303. package/{icc-api → dist/icc-api}/model/CommentedClassification.js +0 -0
  304. package/{icc-api → dist/icc-api}/model/CommentedClassification.js.map +0 -0
  305. package/{icc-api → dist/icc-api}/model/Commercialization.d.ts +0 -0
  306. package/{icc-api → dist/icc-api}/model/Commercialization.js +0 -0
  307. package/{icc-api → dist/icc-api}/model/Commercialization.js.map +0 -0
  308. package/{icc-api → dist/icc-api}/model/Company.d.ts +0 -0
  309. package/{icc-api → dist/icc-api}/model/Company.js +0 -0
  310. package/{icc-api → dist/icc-api}/model/Company.js.map +0 -0
  311. package/{icc-api → dist/icc-api}/model/Contact.d.ts +0 -0
  312. package/{icc-api → dist/icc-api}/model/Contact.js +0 -0
  313. package/{icc-api → dist/icc-api}/model/Contact.js.map +0 -0
  314. package/{icc-api → dist/icc-api}/model/Content.d.ts +0 -0
  315. package/{icc-api → dist/icc-api}/model/Content.js +0 -0
  316. package/{icc-api → dist/icc-api}/model/Content.js.map +0 -0
  317. package/{icc-api → dist/icc-api}/model/Copayment.d.ts +0 -0
  318. package/{icc-api → dist/icc-api}/model/Copayment.js +0 -0
  319. package/{icc-api → dist/icc-api}/model/Copayment.js.map +0 -0
  320. package/{icc-api → dist/icc-api}/model/Data.d.ts +0 -0
  321. package/{icc-api → dist/icc-api}/model/Data.js +0 -0
  322. package/{icc-api → dist/icc-api}/model/Data.js.map +0 -0
  323. package/{icc-api → dist/icc-api}/model/DataOwnerRegistrationSuccess.d.ts +0 -0
  324. package/{icc-api → dist/icc-api}/model/DataOwnerRegistrationSuccess.js +0 -0
  325. package/{icc-api → dist/icc-api}/model/DataOwnerRegistrationSuccess.js.map +0 -0
  326. package/{icc-api → dist/icc-api}/model/DatabaseInfo.d.ts +0 -0
  327. package/{icc-api → dist/icc-api}/model/DatabaseInfo.js +0 -0
  328. package/{icc-api → dist/icc-api}/model/DatabaseInfo.js.map +0 -0
  329. package/{icc-api → dist/icc-api}/model/DatabaseInitialisation.d.ts +0 -0
  330. package/{icc-api → dist/icc-api}/model/DatabaseInitialisation.js +0 -0
  331. package/{icc-api → dist/icc-api}/model/DatabaseInitialisation.js.map +0 -0
  332. package/{icc-api → dist/icc-api}/model/DatabaseSynchronization.d.ts +0 -0
  333. package/{icc-api → dist/icc-api}/model/DatabaseSynchronization.js +0 -0
  334. package/{icc-api → dist/icc-api}/model/DatabaseSynchronization.js.map +0 -0
  335. package/{icc-api → dist/icc-api}/model/Delegation.d.ts +0 -0
  336. package/{icc-api → dist/icc-api}/model/Delegation.js +0 -0
  337. package/{icc-api → dist/icc-api}/model/Delegation.js.map +0 -0
  338. package/{icc-api → dist/icc-api}/model/Device.d.ts +0 -0
  339. package/{icc-api → dist/icc-api}/model/Device.js +0 -0
  340. package/{icc-api → dist/icc-api}/model/Device.js.map +0 -0
  341. package/{icc-api → dist/icc-api}/model/DeviceType.d.ts +0 -0
  342. package/{icc-api → dist/icc-api}/model/DeviceType.js +0 -0
  343. package/{icc-api → dist/icc-api}/model/DeviceType.js.map +0 -0
  344. package/{icc-api → dist/icc-api}/model/DiaryNoteExportInfo.d.ts +0 -0
  345. package/{icc-api → dist/icc-api}/model/DiaryNoteExportInfo.js +0 -0
  346. package/{icc-api → dist/icc-api}/model/DiaryNoteExportInfo.js.map +0 -0
  347. package/{icc-api → dist/icc-api}/model/Dmpp.d.ts +0 -0
  348. package/{icc-api → dist/icc-api}/model/Dmpp.js +0 -0
  349. package/{icc-api → dist/icc-api}/model/Dmpp.js.map +0 -0
  350. package/{icc-api → dist/icc-api}/model/DocIdentifier.d.ts +0 -0
  351. package/{icc-api → dist/icc-api}/model/DocIdentifier.js +0 -0
  352. package/{icc-api → dist/icc-api}/model/DocIdentifier.js.map +0 -0
  353. package/{icc-api → dist/icc-api}/model/Document.d.ts +0 -0
  354. package/{icc-api → dist/icc-api}/model/Document.js +0 -0
  355. package/{icc-api → dist/icc-api}/model/Document.js.map +0 -0
  356. package/{icc-api → dist/icc-api}/model/DocumentGroup.d.ts +0 -0
  357. package/{icc-api → dist/icc-api}/model/DocumentGroup.js +0 -0
  358. package/{icc-api → dist/icc-api}/model/DocumentGroup.js.map +0 -0
  359. package/{icc-api → dist/icc-api}/model/DocumentTemplate.d.ts +0 -0
  360. package/{icc-api → dist/icc-api}/model/DocumentTemplate.js +0 -0
  361. package/{icc-api → dist/icc-api}/model/DocumentTemplate.js.map +0 -0
  362. package/{icc-api → dist/icc-api}/model/Duration.d.ts +0 -0
  363. package/{icc-api → dist/icc-api}/model/Duration.js +0 -0
  364. package/{icc-api → dist/icc-api}/model/Duration.js.map +0 -0
  365. package/{icc-api → dist/icc-api}/model/EIDItem.d.ts +0 -0
  366. package/{icc-api → dist/icc-api}/model/EIDItem.js +0 -0
  367. package/{icc-api → dist/icc-api}/model/EIDItem.js.map +0 -0
  368. package/{icc-api → dist/icc-api}/model/Editor.d.ts +0 -0
  369. package/{icc-api → dist/icc-api}/model/Editor.js +0 -0
  370. package/{icc-api → dist/icc-api}/model/Editor.js.map +0 -0
  371. package/{icc-api → dist/icc-api}/model/EfactInvoice.d.ts +0 -0
  372. package/{icc-api → dist/icc-api}/model/EfactInvoice.js +0 -0
  373. package/{icc-api → dist/icc-api}/model/EfactInvoice.js.map +0 -0
  374. package/{icc-api → dist/icc-api}/model/EmailOrSmsMessage.d.ts +0 -0
  375. package/{icc-api → dist/icc-api}/model/EmailOrSmsMessage.js +0 -0
  376. package/{icc-api → dist/icc-api}/model/EmailOrSmsMessage.js.map +0 -0
  377. package/{icc-api → dist/icc-api}/model/EmailTemplate.d.ts +0 -0
  378. package/{icc-api → dist/icc-api}/model/EmailTemplate.js +0 -0
  379. package/{icc-api → dist/icc-api}/model/EmailTemplate.js.map +0 -0
  380. package/{icc-api → dist/icc-api}/model/Employer.d.ts +0 -0
  381. package/{icc-api → dist/icc-api}/model/Employer.js +0 -0
  382. package/{icc-api → dist/icc-api}/model/Employer.js.map +0 -0
  383. package/{icc-api → dist/icc-api}/model/EmploymentInfo.d.ts +0 -0
  384. package/{icc-api → dist/icc-api}/model/EmploymentInfo.js +0 -0
  385. package/{icc-api → dist/icc-api}/model/EmploymentInfo.js.map +0 -0
  386. package/{icc-api → dist/icc-api}/model/EntityReference.d.ts +0 -0
  387. package/{icc-api → dist/icc-api}/model/EntityReference.js +0 -0
  388. package/{icc-api → dist/icc-api}/model/EntityReference.js.map +0 -0
  389. package/{icc-api → dist/icc-api}/model/EntityTemplate.d.ts +0 -0
  390. package/{icc-api → dist/icc-api}/model/EntityTemplate.js +0 -0
  391. package/{icc-api → dist/icc-api}/model/EntityTemplate.js.map +0 -0
  392. package/{icc-api → dist/icc-api}/model/Episode.d.ts +0 -0
  393. package/{icc-api → dist/icc-api}/model/Episode.js +0 -0
  394. package/{icc-api → dist/icc-api}/model/Episode.js.map +0 -0
  395. package/{icc-api → dist/icc-api}/model/FilterChainCode.d.ts +0 -0
  396. package/{icc-api → dist/icc-api}/model/FilterChainCode.js +0 -0
  397. package/{icc-api → dist/icc-api}/model/FilterChainCode.js.map +0 -0
  398. package/{icc-api → dist/icc-api}/model/FilterChainContact.d.ts +0 -0
  399. package/{icc-api → dist/icc-api}/model/FilterChainContact.js +0 -0
  400. package/{icc-api → dist/icc-api}/model/FilterChainContact.js.map +0 -0
  401. package/{icc-api → dist/icc-api}/model/FilterChainDevice.d.ts +0 -0
  402. package/{icc-api → dist/icc-api}/model/FilterChainDevice.js +0 -0
  403. package/{icc-api → dist/icc-api}/model/FilterChainDevice.js.map +0 -0
  404. package/{icc-api → dist/icc-api}/model/FilterChainHealthElement.d.ts +0 -0
  405. package/{icc-api → dist/icc-api}/model/FilterChainHealthElement.js +0 -0
  406. package/{icc-api → dist/icc-api}/model/FilterChainHealthElement.js.map +0 -0
  407. package/{icc-api → dist/icc-api}/model/FilterChainHealthcareParty.d.ts +0 -0
  408. package/{icc-api → dist/icc-api}/model/FilterChainHealthcareParty.js +0 -0
  409. package/{icc-api → dist/icc-api}/model/FilterChainHealthcareParty.js.map +0 -0
  410. package/{icc-api → dist/icc-api}/model/FilterChainInvoice.d.ts +0 -0
  411. package/{icc-api → dist/icc-api}/model/FilterChainInvoice.js +0 -0
  412. package/{icc-api → dist/icc-api}/model/FilterChainInvoice.js.map +0 -0
  413. package/{icc-api → dist/icc-api}/model/FilterChainMaintenanceTask.d.ts +0 -0
  414. package/{icc-api → dist/icc-api}/model/FilterChainMaintenanceTask.js +0 -0
  415. package/{icc-api → dist/icc-api}/model/FilterChainMaintenanceTask.js.map +0 -0
  416. package/{icc-api → dist/icc-api}/model/FilterChainPatient.d.ts +0 -0
  417. package/{icc-api → dist/icc-api}/model/FilterChainPatient.js +0 -0
  418. package/{icc-api → dist/icc-api}/model/FilterChainPatient.js.map +0 -0
  419. package/{icc-api → dist/icc-api}/model/FilterChainService.d.ts +0 -0
  420. package/{icc-api → dist/icc-api}/model/FilterChainService.js +0 -0
  421. package/{icc-api → dist/icc-api}/model/FilterChainService.js.map +0 -0
  422. package/{icc-api → dist/icc-api}/model/FilterChainUser.d.ts +0 -0
  423. package/{icc-api → dist/icc-api}/model/FilterChainUser.js +0 -0
  424. package/{icc-api → dist/icc-api}/model/FilterChainUser.js.map +0 -0
  425. package/{icc-api → dist/icc-api}/model/FinancialInstitutionInformation.d.ts +0 -0
  426. package/{icc-api → dist/icc-api}/model/FinancialInstitutionInformation.js +0 -0
  427. package/{icc-api → dist/icc-api}/model/FinancialInstitutionInformation.js.map +0 -0
  428. package/{icc-api → dist/icc-api}/model/FlatRateTarification.d.ts +0 -0
  429. package/{icc-api → dist/icc-api}/model/FlatRateTarification.js +0 -0
  430. package/{icc-api → dist/icc-api}/model/FlatRateTarification.js.map +0 -0
  431. package/{icc-api → dist/icc-api}/model/FlowItem.d.ts +0 -0
  432. package/{icc-api → dist/icc-api}/model/FlowItem.js +0 -0
  433. package/{icc-api → dist/icc-api}/model/FlowItem.js.map +0 -0
  434. package/{icc-api → dist/icc-api}/model/Form.d.ts +0 -0
  435. package/{icc-api → dist/icc-api}/model/Form.js +0 -0
  436. package/{icc-api → dist/icc-api}/model/Form.js.map +0 -0
  437. package/{icc-api → dist/icc-api}/model/FormColumn.d.ts +0 -0
  438. package/{icc-api → dist/icc-api}/model/FormColumn.js +0 -0
  439. package/{icc-api → dist/icc-api}/model/FormColumn.js.map +0 -0
  440. package/{icc-api → dist/icc-api}/model/FormDataOption.d.ts +0 -0
  441. package/{icc-api → dist/icc-api}/model/FormDataOption.js +0 -0
  442. package/{icc-api → dist/icc-api}/model/FormDataOption.js.map +0 -0
  443. package/{icc-api → dist/icc-api}/model/FormLayout.d.ts +0 -0
  444. package/{icc-api → dist/icc-api}/model/FormLayout.js +0 -0
  445. package/{icc-api → dist/icc-api}/model/FormLayout.js.map +0 -0
  446. package/{icc-api → dist/icc-api}/model/FormLayoutData.d.ts +0 -0
  447. package/{icc-api → dist/icc-api}/model/FormLayoutData.js +0 -0
  448. package/{icc-api → dist/icc-api}/model/FormLayoutData.js.map +0 -0
  449. package/{icc-api → dist/icc-api}/model/FormPlanning.d.ts +0 -0
  450. package/{icc-api → dist/icc-api}/model/FormPlanning.js +0 -0
  451. package/{icc-api → dist/icc-api}/model/FormPlanning.js.map +0 -0
  452. package/{icc-api → dist/icc-api}/model/FormSection.d.ts +0 -0
  453. package/{icc-api → dist/icc-api}/model/FormSection.js +0 -0
  454. package/{icc-api → dist/icc-api}/model/FormSection.js.map +0 -0
  455. package/{icc-api → dist/icc-api}/model/FormTemplate.d.ts +0 -0
  456. package/{icc-api → dist/icc-api}/model/FormTemplate.js +0 -0
  457. package/{icc-api → dist/icc-api}/model/FormTemplate.js.map +0 -0
  458. package/{icc-api → dist/icc-api}/model/FormTemplateLayout.d.ts +0 -0
  459. package/{icc-api → dist/icc-api}/model/FormTemplateLayout.js +0 -0
  460. package/{icc-api → dist/icc-api}/model/FormTemplateLayout.js.map +0 -0
  461. package/{icc-api → dist/icc-api}/model/Formula.d.ts +0 -0
  462. package/{icc-api → dist/icc-api}/model/Formula.js +0 -0
  463. package/{icc-api → dist/icc-api}/model/Formula.js.map +0 -0
  464. package/{icc-api → dist/icc-api}/model/FrontEndMigration.d.ts +0 -0
  465. package/{icc-api → dist/icc-api}/model/FrontEndMigration.js +0 -0
  466. package/{icc-api → dist/icc-api}/model/FrontEndMigration.js.map +0 -0
  467. package/{icc-api → dist/icc-api}/model/Group.d.ts +0 -0
  468. package/{icc-api → dist/icc-api}/model/Group.js +0 -0
  469. package/{icc-api → dist/icc-api}/model/Group.js.map +0 -0
  470. package/{icc-api → dist/icc-api}/model/GroupDatabasesInfo.d.ts +0 -0
  471. package/{icc-api → dist/icc-api}/model/GroupDatabasesInfo.js +0 -0
  472. package/{icc-api → dist/icc-api}/model/GroupDatabasesInfo.js.map +0 -0
  473. package/{icc-api → dist/icc-api}/model/GuiCode.d.ts +0 -0
  474. package/{icc-api → dist/icc-api}/model/GuiCode.js +0 -0
  475. package/{icc-api → dist/icc-api}/model/GuiCode.js.map +0 -0
  476. package/{icc-api → dist/icc-api}/model/GuiCodeType.d.ts +0 -0
  477. package/{icc-api → dist/icc-api}/model/GuiCodeType.js +0 -0
  478. package/{icc-api → dist/icc-api}/model/GuiCodeType.js.map +0 -0
  479. package/{icc-api → dist/icc-api}/model/HealthElement.d.ts +0 -0
  480. package/{icc-api → dist/icc-api}/model/HealthElement.js +0 -0
  481. package/{icc-api → dist/icc-api}/model/HealthElement.js.map +0 -0
  482. package/{icc-api → dist/icc-api}/model/HealthcareParty.d.ts +0 -0
  483. package/{icc-api → dist/icc-api}/model/HealthcareParty.js +0 -0
  484. package/{icc-api → dist/icc-api}/model/HealthcareParty.js.map +0 -0
  485. package/{icc-api → dist/icc-api}/model/HealthcarePartyHistoryStatus.d.ts +0 -0
  486. package/{icc-api → dist/icc-api}/model/HealthcarePartyHistoryStatus.js +0 -0
  487. package/{icc-api → dist/icc-api}/model/HealthcarePartyHistoryStatus.js.map +0 -0
  488. package/{icc-api → dist/icc-api}/model/IcureStub.d.ts +0 -0
  489. package/{icc-api → dist/icc-api}/model/IcureStub.js +0 -0
  490. package/{icc-api → dist/icc-api}/model/IcureStub.js.map +0 -0
  491. package/{icc-api → dist/icc-api}/model/IdWithRev.d.ts +0 -0
  492. package/{icc-api → dist/icc-api}/model/IdWithRev.js +0 -0
  493. package/{icc-api → dist/icc-api}/model/IdWithRev.js.map +0 -0
  494. package/{icc-api → dist/icc-api}/model/Identifier.d.ts +0 -0
  495. package/{icc-api → dist/icc-api}/model/Identifier.js +0 -0
  496. package/{icc-api → dist/icc-api}/model/Identifier.js.map +0 -0
  497. package/{icc-api → dist/icc-api}/model/IdentityDocumentReader.d.ts +0 -0
  498. package/{icc-api → dist/icc-api}/model/IdentityDocumentReader.js +0 -0
  499. package/{icc-api → dist/icc-api}/model/IdentityDocumentReader.js.map +0 -0
  500. package/{icc-api → dist/icc-api}/model/ImportMapping.d.ts +0 -0
  501. package/{icc-api → dist/icc-api}/model/ImportMapping.js +0 -0
  502. package/{icc-api → dist/icc-api}/model/ImportMapping.js.map +0 -0
  503. package/{icc-api → dist/icc-api}/model/ImportResult.d.ts +0 -0
  504. package/{icc-api → dist/icc-api}/model/ImportResult.js +0 -0
  505. package/{icc-api → dist/icc-api}/model/ImportResult.js.map +0 -0
  506. package/{icc-api → dist/icc-api}/model/IncapacityExportInfo.d.ts +0 -0
  507. package/{icc-api → dist/icc-api}/model/IncapacityExportInfo.js +0 -0
  508. package/{icc-api → dist/icc-api}/model/IncapacityExportInfo.js.map +0 -0
  509. package/{icc-api → dist/icc-api}/model/IndexedIdentifier.d.ts +0 -0
  510. package/{icc-api → dist/icc-api}/model/IndexedIdentifier.js +0 -0
  511. package/{icc-api → dist/icc-api}/model/IndexedIdentifier.js.map +0 -0
  512. package/{icc-api → dist/icc-api}/model/IndexingInfo.d.ts +0 -0
  513. package/{icc-api → dist/icc-api}/model/IndexingInfo.js +0 -0
  514. package/{icc-api → dist/icc-api}/model/IndexingInfo.js.map +0 -0
  515. package/{icc-api → dist/icc-api}/model/Ingredient.d.ts +0 -0
  516. package/{icc-api → dist/icc-api}/model/Ingredient.js +0 -0
  517. package/{icc-api → dist/icc-api}/model/Ingredient.js.map +0 -0
  518. package/{icc-api → dist/icc-api}/model/Insurability.d.ts +0 -0
  519. package/{icc-api → dist/icc-api}/model/Insurability.js +0 -0
  520. package/{icc-api → dist/icc-api}/model/Insurability.js.map +0 -0
  521. package/{icc-api → dist/icc-api}/model/Insurance.d.ts +0 -0
  522. package/{icc-api → dist/icc-api}/model/Insurance.js +0 -0
  523. package/{icc-api → dist/icc-api}/model/Insurance.js.map +0 -0
  524. package/{icc-api → dist/icc-api}/model/Invoice.d.ts +0 -0
  525. package/{icc-api → dist/icc-api}/model/Invoice.js +0 -0
  526. package/{icc-api → dist/icc-api}/model/Invoice.js.map +0 -0
  527. package/{icc-api → dist/icc-api}/model/InvoiceItem.d.ts +0 -0
  528. package/{icc-api → dist/icc-api}/model/InvoiceItem.js +0 -0
  529. package/{icc-api → dist/icc-api}/model/InvoiceItem.js.map +0 -0
  530. package/{icc-api → dist/icc-api}/model/InvoiceSender.d.ts +0 -0
  531. package/{icc-api → dist/icc-api}/model/InvoiceSender.js +0 -0
  532. package/{icc-api → dist/icc-api}/model/InvoiceSender.js.map +0 -0
  533. package/{icc-api → dist/icc-api}/model/InvoicesBatch.d.ts +0 -0
  534. package/{icc-api → dist/icc-api}/model/InvoicesBatch.js +0 -0
  535. package/{icc-api → dist/icc-api}/model/InvoicesBatch.js.map +0 -0
  536. package/{icc-api → dist/icc-api}/model/InvoicingCode.d.ts +0 -0
  537. package/{icc-api → dist/icc-api}/model/InvoicingCode.js +0 -0
  538. package/{icc-api → dist/icc-api}/model/InvoicingCode.js.map +0 -0
  539. package/{icc-api → dist/icc-api}/model/Keyword.d.ts +0 -0
  540. package/{icc-api → dist/icc-api}/model/Keyword.js +0 -0
  541. package/{icc-api → dist/icc-api}/model/Keyword.js.map +0 -0
  542. package/{icc-api → dist/icc-api}/model/KeywordSubword.d.ts +0 -0
  543. package/{icc-api → dist/icc-api}/model/KeywordSubword.js +0 -0
  544. package/{icc-api → dist/icc-api}/model/KeywordSubword.js.map +0 -0
  545. package/{icc-api → dist/icc-api}/model/LabelledOccurence.d.ts +0 -0
  546. package/{icc-api → dist/icc-api}/model/LabelledOccurence.js +0 -0
  547. package/{icc-api → dist/icc-api}/model/LabelledOccurence.js.map +0 -0
  548. package/{icc-api → dist/icc-api}/model/LetterValue.d.ts +0 -0
  549. package/{icc-api → dist/icc-api}/model/LetterValue.js +0 -0
  550. package/{icc-api → dist/icc-api}/model/LetterValue.js.map +0 -0
  551. package/{icc-api → dist/icc-api}/model/ListOfIds.d.ts +0 -0
  552. package/{icc-api → dist/icc-api}/model/ListOfIds.js +0 -0
  553. package/{icc-api → dist/icc-api}/model/ListOfIds.js.map +0 -0
  554. package/{icc-api → dist/icc-api}/model/ListOfProperties.d.ts +0 -0
  555. package/{icc-api → dist/icc-api}/model/ListOfProperties.js +0 -0
  556. package/{icc-api → dist/icc-api}/model/ListOfProperties.js.map +0 -0
  557. package/{icc-api → dist/icc-api}/model/LoginCredentials.d.ts +0 -0
  558. package/{icc-api → dist/icc-api}/model/LoginCredentials.js +0 -0
  559. package/{icc-api → dist/icc-api}/model/LoginCredentials.js.map +0 -0
  560. package/{icc-api → dist/icc-api}/model/MaintenanceTask.d.ts +0 -0
  561. package/{icc-api → dist/icc-api}/model/MaintenanceTask.js +0 -0
  562. package/{icc-api → dist/icc-api}/model/MaintenanceTask.js.map +0 -0
  563. package/{icc-api → dist/icc-api}/model/MapOfIds.d.ts +0 -0
  564. package/{icc-api → dist/icc-api}/model/MapOfIds.js +0 -0
  565. package/{icc-api → dist/icc-api}/model/MapOfIds.js.map +0 -0
  566. package/{icc-api → dist/icc-api}/model/Measure.d.ts +0 -0
  567. package/{icc-api → dist/icc-api}/model/Measure.js +0 -0
  568. package/{icc-api → dist/icc-api}/model/Measure.js.map +0 -0
  569. package/{icc-api → dist/icc-api}/model/MedexInfo.d.ts +0 -0
  570. package/{icc-api → dist/icc-api}/model/MedexInfo.js +0 -0
  571. package/{icc-api → dist/icc-api}/model/MedexInfo.js.map +0 -0
  572. package/{icc-api → dist/icc-api}/model/MedicalHouseContract.d.ts +0 -0
  573. package/{icc-api → dist/icc-api}/model/MedicalHouseContract.js +0 -0
  574. package/{icc-api → dist/icc-api}/model/MedicalHouseContract.js.map +0 -0
  575. package/{icc-api → dist/icc-api}/model/MedicalLocation.d.ts +0 -0
  576. package/{icc-api → dist/icc-api}/model/MedicalLocation.js +0 -0
  577. package/{icc-api → dist/icc-api}/model/MedicalLocation.js.map +0 -0
  578. package/{icc-api → dist/icc-api}/model/Medication.d.ts +0 -0
  579. package/{icc-api → dist/icc-api}/model/Medication.js +0 -0
  580. package/{icc-api → dist/icc-api}/model/Medication.js.map +0 -0
  581. package/{icc-api → dist/icc-api}/model/MedicationSchemeExportInfo.d.ts +0 -0
  582. package/{icc-api → dist/icc-api}/model/MedicationSchemeExportInfo.js +0 -0
  583. package/{icc-api → dist/icc-api}/model/MedicationSchemeExportInfo.js.map +0 -0
  584. package/{icc-api → dist/icc-api}/model/Medicinalproduct.d.ts +0 -0
  585. package/{icc-api → dist/icc-api}/model/Medicinalproduct.js +0 -0
  586. package/{icc-api → dist/icc-api}/model/Medicinalproduct.js.map +0 -0
  587. package/{icc-api → dist/icc-api}/model/Message.d.ts +0 -0
  588. package/{icc-api → dist/icc-api}/model/Message.js +0 -0
  589. package/{icc-api → dist/icc-api}/model/Message.js.map +0 -0
  590. package/{icc-api → dist/icc-api}/model/MessageReadStatus.d.ts +0 -0
  591. package/{icc-api → dist/icc-api}/model/MessageReadStatus.js +0 -0
  592. package/{icc-api → dist/icc-api}/model/MessageReadStatus.js.map +0 -0
  593. package/{icc-api → dist/icc-api}/model/MessageWithBatch.d.ts +0 -0
  594. package/{icc-api → dist/icc-api}/model/MessageWithBatch.js +0 -0
  595. package/{icc-api → dist/icc-api}/model/MessageWithBatch.js.map +0 -0
  596. package/{icc-api → dist/icc-api}/model/MessagesReadStatusUpdate.d.ts +0 -0
  597. package/{icc-api → dist/icc-api}/model/MessagesReadStatusUpdate.js +0 -0
  598. package/{icc-api → dist/icc-api}/model/MessagesReadStatusUpdate.js.map +0 -0
  599. package/{icc-api → dist/icc-api}/model/MikronoAppointmentTypeRest.d.ts +0 -0
  600. package/{icc-api → dist/icc-api}/model/MikronoAppointmentTypeRest.js +0 -0
  601. package/{icc-api → dist/icc-api}/model/MikronoAppointmentTypeRest.js.map +0 -0
  602. package/{icc-api → dist/icc-api}/model/MikronoCredentials.d.ts +0 -0
  603. package/{icc-api → dist/icc-api}/model/MikronoCredentials.js +0 -0
  604. package/{icc-api → dist/icc-api}/model/MikronoCredentials.js.map +0 -0
  605. package/{icc-api → dist/icc-api}/model/MimeAttachment.d.ts +0 -0
  606. package/{icc-api → dist/icc-api}/model/MimeAttachment.js +0 -0
  607. package/{icc-api → dist/icc-api}/model/MimeAttachment.js.map +0 -0
  608. package/{icc-api → dist/icc-api}/model/ModelHelper.d.ts +0 -0
  609. package/{icc-api → dist/icc-api}/model/ModelHelper.js +0 -0
  610. package/{icc-api → dist/icc-api}/model/ModelHelper.js.map +0 -0
  611. package/{icc-api → dist/icc-api}/model/Nmp.d.ts +0 -0
  612. package/{icc-api → dist/icc-api}/model/Nmp.js +0 -0
  613. package/{icc-api → dist/icc-api}/model/Nmp.js.map +0 -0
  614. package/{icc-api → dist/icc-api}/model/NoGenericPrescriptionReason.d.ts +0 -0
  615. package/{icc-api → dist/icc-api}/model/NoGenericPrescriptionReason.js +0 -0
  616. package/{icc-api → dist/icc-api}/model/NoGenericPrescriptionReason.js.map +0 -0
  617. package/{icc-api → dist/icc-api}/model/NoSwitchReason.d.ts +0 -0
  618. package/{icc-api → dist/icc-api}/model/NoSwitchReason.js +0 -0
  619. package/{icc-api → dist/icc-api}/model/NoSwitchReason.js.map +0 -0
  620. package/{icc-api → dist/icc-api}/model/NumeratorRange.d.ts +0 -0
  621. package/{icc-api → dist/icc-api}/model/NumeratorRange.js +0 -0
  622. package/{icc-api → dist/icc-api}/model/NumeratorRange.js.map +0 -0
  623. package/{icc-api → dist/icc-api}/model/PackagingType.d.ts +0 -0
  624. package/{icc-api → dist/icc-api}/model/PackagingType.js +0 -0
  625. package/{icc-api → dist/icc-api}/model/PackagingType.js.map +0 -0
  626. package/{icc-api → dist/icc-api}/model/PaginatedDocumentKeyIdPairObject.d.ts +0 -0
  627. package/{icc-api → dist/icc-api}/model/PaginatedDocumentKeyIdPairObject.js +0 -0
  628. package/{icc-api → dist/icc-api}/model/PaginatedDocumentKeyIdPairObject.js.map +0 -0
  629. package/{icc-api → dist/icc-api}/model/PaginatedListAccessLog.d.ts +0 -0
  630. package/{icc-api → dist/icc-api}/model/PaginatedListAccessLog.js +0 -0
  631. package/{icc-api → dist/icc-api}/model/PaginatedListAccessLog.js.map +0 -0
  632. package/{icc-api → dist/icc-api}/model/PaginatedListAmp.d.ts +0 -0
  633. package/{icc-api → dist/icc-api}/model/PaginatedListAmp.js +0 -0
  634. package/{icc-api → dist/icc-api}/model/PaginatedListAmp.js.map +0 -0
  635. package/{icc-api → dist/icc-api}/model/PaginatedListClassification.d.ts +0 -0
  636. package/{icc-api → dist/icc-api}/model/PaginatedListClassification.js +0 -0
  637. package/{icc-api → dist/icc-api}/model/PaginatedListClassification.js.map +0 -0
  638. package/{icc-api → dist/icc-api}/model/PaginatedListClassificationTemplate.d.ts +0 -0
  639. package/{icc-api → dist/icc-api}/model/PaginatedListClassificationTemplate.js +0 -0
  640. package/{icc-api → dist/icc-api}/model/PaginatedListClassificationTemplate.js.map +0 -0
  641. package/{icc-api → dist/icc-api}/model/PaginatedListCode.d.ts +0 -0
  642. package/{icc-api → dist/icc-api}/model/PaginatedListCode.js +0 -0
  643. package/{icc-api → dist/icc-api}/model/PaginatedListCode.js.map +0 -0
  644. package/{icc-api → dist/icc-api}/model/PaginatedListContact.d.ts +0 -0
  645. package/{icc-api → dist/icc-api}/model/PaginatedListContact.js +0 -0
  646. package/{icc-api → dist/icc-api}/model/PaginatedListContact.js.map +0 -0
  647. package/{icc-api → dist/icc-api}/model/PaginatedListDevice.d.ts +0 -0
  648. package/{icc-api → dist/icc-api}/model/PaginatedListDevice.js +0 -0
  649. package/{icc-api → dist/icc-api}/model/PaginatedListDevice.js.map +0 -0
  650. package/{icc-api → dist/icc-api}/model/PaginatedListDocument.d.ts +0 -0
  651. package/{icc-api → dist/icc-api}/model/PaginatedListDocument.js +0 -0
  652. package/{icc-api → dist/icc-api}/model/PaginatedListDocument.js.map +0 -0
  653. package/{icc-api → dist/icc-api}/model/PaginatedListEntityTemplate.d.ts +0 -0
  654. package/{icc-api → dist/icc-api}/model/PaginatedListEntityTemplate.js +0 -0
  655. package/{icc-api → dist/icc-api}/model/PaginatedListEntityTemplate.js.map +0 -0
  656. package/{icc-api → dist/icc-api}/model/PaginatedListForm.d.ts +0 -0
  657. package/{icc-api → dist/icc-api}/model/PaginatedListForm.js +0 -0
  658. package/{icc-api → dist/icc-api}/model/PaginatedListForm.js.map +0 -0
  659. package/{icc-api → dist/icc-api}/model/PaginatedListGroup.d.ts +0 -0
  660. package/{icc-api → dist/icc-api}/model/PaginatedListGroup.js +0 -0
  661. package/{icc-api → dist/icc-api}/model/PaginatedListGroup.js.map +0 -0
  662. package/{icc-api → dist/icc-api}/model/PaginatedListHealthElement.d.ts +0 -0
  663. package/{icc-api → dist/icc-api}/model/PaginatedListHealthElement.js +0 -0
  664. package/{icc-api → dist/icc-api}/model/PaginatedListHealthElement.js.map +0 -0
  665. package/{icc-api → dist/icc-api}/model/PaginatedListHealthcareParty.d.ts +0 -0
  666. package/{icc-api → dist/icc-api}/model/PaginatedListHealthcareParty.js +0 -0
  667. package/{icc-api → dist/icc-api}/model/PaginatedListHealthcareParty.js.map +0 -0
  668. package/{icc-api → dist/icc-api}/model/PaginatedListInvoice.d.ts +0 -0
  669. package/{icc-api → dist/icc-api}/model/PaginatedListInvoice.js +0 -0
  670. package/{icc-api → dist/icc-api}/model/PaginatedListInvoice.js.map +0 -0
  671. package/{icc-api → dist/icc-api}/model/PaginatedListMaintenanceTask.d.ts +0 -0
  672. package/{icc-api → dist/icc-api}/model/PaginatedListMaintenanceTask.js +0 -0
  673. package/{icc-api → dist/icc-api}/model/PaginatedListMaintenanceTask.js.map +0 -0
  674. package/{icc-api → dist/icc-api}/model/PaginatedListMessage.d.ts +0 -0
  675. package/{icc-api → dist/icc-api}/model/PaginatedListMessage.js +0 -0
  676. package/{icc-api → dist/icc-api}/model/PaginatedListMessage.js.map +0 -0
  677. package/{icc-api → dist/icc-api}/model/PaginatedListNmp.d.ts +0 -0
  678. package/{icc-api → dist/icc-api}/model/PaginatedListNmp.js +0 -0
  679. package/{icc-api → dist/icc-api}/model/PaginatedListNmp.js.map +0 -0
  680. package/{icc-api → dist/icc-api}/model/PaginatedListPatient.d.ts +0 -0
  681. package/{icc-api → dist/icc-api}/model/PaginatedListPatient.js +0 -0
  682. package/{icc-api → dist/icc-api}/model/PaginatedListPatient.js.map +0 -0
  683. package/{icc-api → dist/icc-api}/model/PaginatedListService.d.ts +0 -0
  684. package/{icc-api → dist/icc-api}/model/PaginatedListService.js +0 -0
  685. package/{icc-api → dist/icc-api}/model/PaginatedListService.js.map +0 -0
  686. package/{icc-api → dist/icc-api}/model/PaginatedListString.d.ts +0 -0
  687. package/{icc-api → dist/icc-api}/model/PaginatedListString.js +0 -0
  688. package/{icc-api → dist/icc-api}/model/PaginatedListString.js.map +0 -0
  689. package/{icc-api → dist/icc-api}/model/PaginatedListTarification.d.ts +0 -0
  690. package/{icc-api → dist/icc-api}/model/PaginatedListTarification.js +0 -0
  691. package/{icc-api → dist/icc-api}/model/PaginatedListTarification.js.map +0 -0
  692. package/{icc-api → dist/icc-api}/model/PaginatedListUser.d.ts +0 -0
  693. package/{icc-api → dist/icc-api}/model/PaginatedListUser.js +0 -0
  694. package/{icc-api → dist/icc-api}/model/PaginatedListUser.js.map +0 -0
  695. package/{icc-api → dist/icc-api}/model/PaginatedListVmp.d.ts +0 -0
  696. package/{icc-api → dist/icc-api}/model/PaginatedListVmp.js +0 -0
  697. package/{icc-api → dist/icc-api}/model/PaginatedListVmp.js.map +0 -0
  698. package/{icc-api → dist/icc-api}/model/PaginatedListVmpGroup.d.ts +0 -0
  699. package/{icc-api → dist/icc-api}/model/PaginatedListVmpGroup.js +0 -0
  700. package/{icc-api → dist/icc-api}/model/PaginatedListVmpGroup.js.map +0 -0
  701. package/{icc-api → dist/icc-api}/model/Paragraph.d.ts +0 -0
  702. package/{icc-api → dist/icc-api}/model/Paragraph.js +0 -0
  703. package/{icc-api → dist/icc-api}/model/Paragraph.js.map +0 -0
  704. package/{icc-api → dist/icc-api}/model/ParagraphAgreement.d.ts +0 -0
  705. package/{icc-api → dist/icc-api}/model/ParagraphAgreement.js +0 -0
  706. package/{icc-api → dist/icc-api}/model/ParagraphAgreement.js.map +0 -0
  707. package/{icc-api → dist/icc-api}/model/Partnership.d.ts +0 -0
  708. package/{icc-api → dist/icc-api}/model/Partnership.js +0 -0
  709. package/{icc-api → dist/icc-api}/model/Partnership.js.map +0 -0
  710. package/{icc-api → dist/icc-api}/model/Patient.d.ts +0 -0
  711. package/{icc-api → dist/icc-api}/model/Patient.js +0 -0
  712. package/{icc-api → dist/icc-api}/model/Patient.js.map +0 -0
  713. package/{icc-api → dist/icc-api}/model/PatientByHcPartyGenderEducationProfession.d.ts +0 -0
  714. package/{icc-api → dist/icc-api}/model/PatientByHcPartyGenderEducationProfession.js +0 -0
  715. package/{icc-api → dist/icc-api}/model/PatientByHcPartyGenderEducationProfession.js.map +0 -0
  716. package/{icc-api → dist/icc-api}/model/PatientHealthCareParty.d.ts +0 -0
  717. package/{icc-api → dist/icc-api}/model/PatientHealthCareParty.js +0 -0
  718. package/{icc-api → dist/icc-api}/model/PatientHealthCareParty.js.map +0 -0
  719. package/{icc-api → dist/icc-api}/model/PatientRegistrationSuccess.d.ts +0 -0
  720. package/{icc-api → dist/icc-api}/model/PatientRegistrationSuccess.js +0 -0
  721. package/{icc-api → dist/icc-api}/model/PatientRegistrationSuccess.js.map +0 -0
  722. package/{icc-api → dist/icc-api}/model/Payment.d.ts +0 -0
  723. package/{icc-api → dist/icc-api}/model/Payment.js +0 -0
  724. package/{icc-api → dist/icc-api}/model/Payment.js.map +0 -0
  725. package/{icc-api → dist/icc-api}/model/Periodicity.d.ts +0 -0
  726. package/{icc-api → dist/icc-api}/model/Periodicity.js +0 -0
  727. package/{icc-api → dist/icc-api}/model/Periodicity.js.map +0 -0
  728. package/{icc-api → dist/icc-api}/model/Permission.d.ts +0 -0
  729. package/{icc-api → dist/icc-api}/model/Permission.js +0 -0
  730. package/{icc-api → dist/icc-api}/model/Permission.js.map +0 -0
  731. package/{icc-api → dist/icc-api}/model/PermissionCriterion.d.ts +0 -0
  732. package/{icc-api → dist/icc-api}/model/PermissionCriterion.js +0 -0
  733. package/{icc-api → dist/icc-api}/model/PermissionCriterion.js.map +0 -0
  734. package/{icc-api → dist/icc-api}/model/PermissionItem.d.ts +0 -0
  735. package/{icc-api → dist/icc-api}/model/PermissionItem.js +0 -0
  736. package/{icc-api → dist/icc-api}/model/PermissionItem.js.map +0 -0
  737. package/{icc-api → dist/icc-api}/model/PersonName.d.ts +0 -0
  738. package/{icc-api → dist/icc-api}/model/PersonName.js +0 -0
  739. package/{icc-api → dist/icc-api}/model/PersonName.js.map +0 -0
  740. package/{icc-api → dist/icc-api}/model/PharmaceuticalForm.d.ts +0 -0
  741. package/{icc-api → dist/icc-api}/model/PharmaceuticalForm.js +0 -0
  742. package/{icc-api → dist/icc-api}/model/PharmaceuticalForm.js.map +0 -0
  743. package/{icc-api → dist/icc-api}/model/PharmaceuticalFormStub.d.ts +0 -0
  744. package/{icc-api → dist/icc-api}/model/PharmaceuticalFormStub.js +0 -0
  745. package/{icc-api → dist/icc-api}/model/PharmaceuticalFormStub.js.map +0 -0
  746. package/{icc-api → dist/icc-api}/model/Place.d.ts +0 -0
  747. package/{icc-api → dist/icc-api}/model/Place.js +0 -0
  748. package/{icc-api → dist/icc-api}/model/Place.js.map +0 -0
  749. package/{icc-api → dist/icc-api}/model/PlanOfAction.d.ts +0 -0
  750. package/{icc-api → dist/icc-api}/model/PlanOfAction.js +0 -0
  751. package/{icc-api → dist/icc-api}/model/PlanOfAction.js.map +0 -0
  752. package/{icc-api → dist/icc-api}/model/Predicate.d.ts +0 -0
  753. package/{icc-api → dist/icc-api}/model/Predicate.js +0 -0
  754. package/{icc-api → dist/icc-api}/model/Predicate.js.map +0 -0
  755. package/{icc-api → dist/icc-api}/model/Pricing.d.ts +0 -0
  756. package/{icc-api → dist/icc-api}/model/Pricing.js +0 -0
  757. package/{icc-api → dist/icc-api}/model/Pricing.js.map +0 -0
  758. package/{icc-api → dist/icc-api}/model/PropertyStub.d.ts +0 -0
  759. package/{icc-api → dist/icc-api}/model/PropertyStub.js +0 -0
  760. package/{icc-api → dist/icc-api}/model/PropertyStub.js.map +0 -0
  761. package/{icc-api → dist/icc-api}/model/PropertyTypeStub.d.ts +0 -0
  762. package/{icc-api → dist/icc-api}/model/PropertyTypeStub.js +0 -0
  763. package/{icc-api → dist/icc-api}/model/PropertyTypeStub.js.map +0 -0
  764. package/{icc-api → dist/icc-api}/model/PublicKey.d.ts +0 -0
  765. package/{icc-api → dist/icc-api}/model/PublicKey.js +0 -0
  766. package/{icc-api → dist/icc-api}/model/PublicKey.js.map +0 -0
  767. package/{icc-api → dist/icc-api}/model/Quantity.d.ts +0 -0
  768. package/{icc-api → dist/icc-api}/model/Quantity.js +0 -0
  769. package/{icc-api → dist/icc-api}/model/Quantity.js.map +0 -0
  770. package/{icc-api → dist/icc-api}/model/Receipt.d.ts +0 -0
  771. package/{icc-api → dist/icc-api}/model/Receipt.js +0 -0
  772. package/{icc-api → dist/icc-api}/model/Receipt.js.map +0 -0
  773. package/{icc-api → dist/icc-api}/model/ReferralPeriod.d.ts +0 -0
  774. package/{icc-api → dist/icc-api}/model/ReferralPeriod.js +0 -0
  775. package/{icc-api → dist/icc-api}/model/ReferralPeriod.js.map +0 -0
  776. package/{icc-api → dist/icc-api}/model/RegimenItem.d.ts +0 -0
  777. package/{icc-api → dist/icc-api}/model/RegimenItem.js +0 -0
  778. package/{icc-api → dist/icc-api}/model/RegimenItem.js.map +0 -0
  779. package/{icc-api → dist/icc-api}/model/RegistrationInformation.d.ts +0 -0
  780. package/{icc-api → dist/icc-api}/model/RegistrationInformation.js +0 -0
  781. package/{icc-api → dist/icc-api}/model/RegistrationInformation.js.map +0 -0
  782. package/{icc-api → dist/icc-api}/model/RegistrationSuccess.d.ts +0 -0
  783. package/{icc-api → dist/icc-api}/model/RegistrationSuccess.js +0 -0
  784. package/{icc-api → dist/icc-api}/model/RegistrationSuccess.js.map +0 -0
  785. package/{icc-api → dist/icc-api}/model/Reimbursement.d.ts +0 -0
  786. package/{icc-api → dist/icc-api}/model/Reimbursement.js +0 -0
  787. package/{icc-api → dist/icc-api}/model/Reimbursement.js.map +0 -0
  788. package/{icc-api → dist/icc-api}/model/ReimbursementCriterion.d.ts +0 -0
  789. package/{icc-api → dist/icc-api}/model/ReimbursementCriterion.js +0 -0
  790. package/{icc-api → dist/icc-api}/model/ReimbursementCriterion.js.map +0 -0
  791. package/{icc-api → dist/icc-api}/model/Remote.d.ts +0 -0
  792. package/{icc-api → dist/icc-api}/model/Remote.js +0 -0
  793. package/{icc-api → dist/icc-api}/model/Remote.js.map +0 -0
  794. package/{icc-api → dist/icc-api}/model/RemoteAuthentication.d.ts +0 -0
  795. package/{icc-api → dist/icc-api}/model/RemoteAuthentication.js +0 -0
  796. package/{icc-api → dist/icc-api}/model/RemoteAuthentication.js.map +0 -0
  797. package/{icc-api → dist/icc-api}/model/Renewal.d.ts +0 -0
  798. package/{icc-api → dist/icc-api}/model/Renewal.js +0 -0
  799. package/{icc-api → dist/icc-api}/model/Renewal.js.map +0 -0
  800. package/{icc-api → dist/icc-api}/model/ReplicateCommand.d.ts +0 -0
  801. package/{icc-api → dist/icc-api}/model/ReplicateCommand.js +0 -0
  802. package/{icc-api → dist/icc-api}/model/ReplicateCommand.js.map +0 -0
  803. package/{icc-api → dist/icc-api}/model/Replication.d.ts +0 -0
  804. package/{icc-api → dist/icc-api}/model/Replication.js +0 -0
  805. package/{icc-api → dist/icc-api}/model/Replication.js.map +0 -0
  806. package/{icc-api → dist/icc-api}/model/ReplicationInfo.d.ts +0 -0
  807. package/{icc-api → dist/icc-api}/model/ReplicationInfo.js +0 -0
  808. package/{icc-api → dist/icc-api}/model/ReplicationInfo.js.map +0 -0
  809. package/{icc-api → dist/icc-api}/model/ReplicationStats.d.ts +0 -0
  810. package/{icc-api → dist/icc-api}/model/ReplicationStats.js +0 -0
  811. package/{icc-api → dist/icc-api}/model/ReplicationStats.js.map +0 -0
  812. package/{icc-api → dist/icc-api}/model/ReplicatorDocument.d.ts +0 -0
  813. package/{icc-api → dist/icc-api}/model/ReplicatorDocument.js +0 -0
  814. package/{icc-api → dist/icc-api}/model/ReplicatorDocument.js.map +0 -0
  815. package/{icc-api → dist/icc-api}/model/ReplicatorResponse.d.ts +0 -0
  816. package/{icc-api → dist/icc-api}/model/ReplicatorResponse.js +0 -0
  817. package/{icc-api → dist/icc-api}/model/ReplicatorResponse.js.map +0 -0
  818. package/{icc-api → dist/icc-api}/model/ResultInfo.d.ts +0 -0
  819. package/{icc-api → dist/icc-api}/model/ResultInfo.js +0 -0
  820. package/{icc-api → dist/icc-api}/model/ResultInfo.js.map +0 -0
  821. package/{icc-api → dist/icc-api}/model/RevisionInfo.d.ts +0 -0
  822. package/{icc-api → dist/icc-api}/model/RevisionInfo.js +0 -0
  823. package/{icc-api → dist/icc-api}/model/RevisionInfo.js.map +0 -0
  824. package/{icc-api → dist/icc-api}/model/Right.d.ts +0 -0
  825. package/{icc-api → dist/icc-api}/model/Right.js +0 -0
  826. package/{icc-api → dist/icc-api}/model/Right.js.map +0 -0
  827. package/{icc-api → dist/icc-api}/model/RouteOfAdministration.d.ts +0 -0
  828. package/{icc-api → dist/icc-api}/model/RouteOfAdministration.js +0 -0
  829. package/{icc-api → dist/icc-api}/model/RouteOfAdministration.js.map +0 -0
  830. package/{icc-api → dist/icc-api}/model/SamText.d.ts +0 -0
  831. package/{icc-api → dist/icc-api}/model/SamText.js +0 -0
  832. package/{icc-api → dist/icc-api}/model/SamText.js.map +0 -0
  833. package/{icc-api → dist/icc-api}/model/SamVersion.d.ts +0 -0
  834. package/{icc-api → dist/icc-api}/model/SamVersion.js +0 -0
  835. package/{icc-api → dist/icc-api}/model/SamVersion.js.map +0 -0
  836. package/{icc-api → dist/icc-api}/model/SchoolingInfo.d.ts +0 -0
  837. package/{icc-api → dist/icc-api}/model/SchoolingInfo.js +0 -0
  838. package/{icc-api → dist/icc-api}/model/SchoolingInfo.js.map +0 -0
  839. package/{icc-api → dist/icc-api}/model/Section.d.ts +0 -0
  840. package/{icc-api → dist/icc-api}/model/Section.js +0 -0
  841. package/{icc-api → dist/icc-api}/model/Section.js.map +0 -0
  842. package/{icc-api → dist/icc-api}/model/Service.d.ts +0 -0
  843. package/{icc-api → dist/icc-api}/model/Service.js +0 -0
  844. package/{icc-api → dist/icc-api}/model/Service.js.map +0 -0
  845. package/{icc-api → dist/icc-api}/model/ServiceLink.d.ts +0 -0
  846. package/{icc-api → dist/icc-api}/model/ServiceLink.js +0 -0
  847. package/{icc-api → dist/icc-api}/model/ServiceLink.js.map +0 -0
  848. package/{icc-api → dist/icc-api}/model/SoftwareMedicalFileExport.d.ts +0 -0
  849. package/{icc-api → dist/icc-api}/model/SoftwareMedicalFileExport.js +0 -0
  850. package/{icc-api → dist/icc-api}/model/SoftwareMedicalFileExport.js.map +0 -0
  851. package/{icc-api → dist/icc-api}/model/StandardSubstance.d.ts +0 -0
  852. package/{icc-api → dist/icc-api}/model/StandardSubstance.js +0 -0
  853. package/{icc-api → dist/icc-api}/model/StandardSubstance.js.map +0 -0
  854. package/{icc-api → dist/icc-api}/model/StrengthRange.d.ts +0 -0
  855. package/{icc-api → dist/icc-api}/model/StrengthRange.js +0 -0
  856. package/{icc-api → dist/icc-api}/model/StrengthRange.js.map +0 -0
  857. package/{icc-api → dist/icc-api}/model/StructureElement.d.ts +0 -0
  858. package/{icc-api → dist/icc-api}/model/StructureElement.js +0 -0
  859. package/{icc-api → dist/icc-api}/model/StructureElement.js.map +0 -0
  860. package/{icc-api → dist/icc-api}/model/SubContact.d.ts +0 -0
  861. package/{icc-api → dist/icc-api}/model/SubContact.js +0 -0
  862. package/{icc-api → dist/icc-api}/model/SubContact.js.map +0 -0
  863. package/{icc-api → dist/icc-api}/model/Substance.d.ts +0 -0
  864. package/{icc-api → dist/icc-api}/model/Substance.js +0 -0
  865. package/{icc-api → dist/icc-api}/model/Substance.js.map +0 -0
  866. package/{icc-api → dist/icc-api}/model/SubstanceStub.d.ts +0 -0
  867. package/{icc-api → dist/icc-api}/model/SubstanceStub.js +0 -0
  868. package/{icc-api → dist/icc-api}/model/SubstanceStub.js.map +0 -0
  869. package/{icc-api → dist/icc-api}/model/Substanceproduct.d.ts +0 -0
  870. package/{icc-api → dist/icc-api}/model/Substanceproduct.js +0 -0
  871. package/{icc-api → dist/icc-api}/model/Substanceproduct.js.map +0 -0
  872. package/{icc-api → dist/icc-api}/model/Suggest.d.ts +0 -0
  873. package/{icc-api → dist/icc-api}/model/Suggest.js +0 -0
  874. package/{icc-api → dist/icc-api}/model/Suggest.js.map +0 -0
  875. package/{icc-api → dist/icc-api}/model/SumehrContent.d.ts +0 -0
  876. package/{icc-api → dist/icc-api}/model/SumehrContent.js +0 -0
  877. package/{icc-api → dist/icc-api}/model/SumehrContent.js.map +0 -0
  878. package/{icc-api → dist/icc-api}/model/SumehrExportInfo.d.ts +0 -0
  879. package/{icc-api → dist/icc-api}/model/SumehrExportInfo.js +0 -0
  880. package/{icc-api → dist/icc-api}/model/SumehrExportInfo.js.map +0 -0
  881. package/{icc-api → dist/icc-api}/model/SumehrValidity.d.ts +0 -0
  882. package/{icc-api → dist/icc-api}/model/SumehrValidity.js +0 -0
  883. package/{icc-api → dist/icc-api}/model/SumehrValidity.js.map +0 -0
  884. package/{icc-api → dist/icc-api}/model/SupplyProblem.d.ts +0 -0
  885. package/{icc-api → dist/icc-api}/model/SupplyProblem.js +0 -0
  886. package/{icc-api → dist/icc-api}/model/SupplyProblem.js.map +0 -0
  887. package/{icc-api → dist/icc-api}/model/Suspension.d.ts +0 -0
  888. package/{icc-api → dist/icc-api}/model/Suspension.js +0 -0
  889. package/{icc-api → dist/icc-api}/model/Suspension.js.map +0 -0
  890. package/{icc-api → dist/icc-api}/model/Tag.d.ts +0 -0
  891. package/{icc-api → dist/icc-api}/model/Tag.js +0 -0
  892. package/{icc-api → dist/icc-api}/model/Tag.js.map +0 -0
  893. package/{icc-api → dist/icc-api}/model/Tarification.d.ts +0 -0
  894. package/{icc-api → dist/icc-api}/model/Tarification.js +0 -0
  895. package/{icc-api → dist/icc-api}/model/Tarification.js.map +0 -0
  896. package/{icc-api → dist/icc-api}/model/Telecom.d.ts +0 -0
  897. package/{icc-api → dist/icc-api}/model/Telecom.js +0 -0
  898. package/{icc-api → dist/icc-api}/model/Telecom.js.map +0 -0
  899. package/{icc-api → dist/icc-api}/model/TimeSeries.d.ts +0 -0
  900. package/{icc-api → dist/icc-api}/model/TimeSeries.js +0 -0
  901. package/{icc-api → dist/icc-api}/model/TimeSeries.js.map +0 -0
  902. package/{icc-api → dist/icc-api}/model/TimeTable.d.ts +0 -0
  903. package/{icc-api → dist/icc-api}/model/TimeTable.js +0 -0
  904. package/{icc-api → dist/icc-api}/model/TimeTable.js.map +0 -0
  905. package/{icc-api → dist/icc-api}/model/TimeTableHour.d.ts +0 -0
  906. package/{icc-api → dist/icc-api}/model/TimeTableHour.js +0 -0
  907. package/{icc-api → dist/icc-api}/model/TimeTableHour.js.map +0 -0
  908. package/{icc-api → dist/icc-api}/model/TimeTableItem.d.ts +0 -0
  909. package/{icc-api → dist/icc-api}/model/TimeTableItem.js +0 -0
  910. package/{icc-api → dist/icc-api}/model/TimeTableItem.js.map +0 -0
  911. package/{icc-api → dist/icc-api}/model/TokenWithGroup.d.ts +0 -0
  912. package/{icc-api → dist/icc-api}/model/TokenWithGroup.js +0 -0
  913. package/{icc-api → dist/icc-api}/model/TokenWithGroup.js.map +0 -0
  914. package/{icc-api → dist/icc-api}/model/TypedValueObject.d.ts +0 -0
  915. package/{icc-api → dist/icc-api}/model/TypedValueObject.js +0 -0
  916. package/{icc-api → dist/icc-api}/model/TypedValueObject.js.map +0 -0
  917. package/{icc-api → dist/icc-api}/model/Unit.d.ts +0 -0
  918. package/{icc-api → dist/icc-api}/model/Unit.js +0 -0
  919. package/{icc-api → dist/icc-api}/model/Unit.js.map +0 -0
  920. package/{icc-api → dist/icc-api}/model/User.d.ts +0 -0
  921. package/{icc-api → dist/icc-api}/model/User.js +0 -0
  922. package/{icc-api → dist/icc-api}/model/User.js.map +0 -0
  923. package/{icc-api → dist/icc-api}/model/UserAndHealthcareParty.d.ts +0 -0
  924. package/{icc-api → dist/icc-api}/model/UserAndHealthcareParty.js +0 -0
  925. package/{icc-api → dist/icc-api}/model/UserAndHealthcareParty.js.map +0 -0
  926. package/{icc-api → dist/icc-api}/model/UserGroup.d.ts +0 -0
  927. package/{icc-api → dist/icc-api}/model/UserGroup.js +0 -0
  928. package/{icc-api → dist/icc-api}/model/UserGroup.js.map +0 -0
  929. package/{icc-api → dist/icc-api}/model/Valorisation.d.ts +0 -0
  930. package/{icc-api → dist/icc-api}/model/Valorisation.js +0 -0
  931. package/{icc-api → dist/icc-api}/model/Valorisation.js.map +0 -0
  932. package/{icc-api → dist/icc-api}/model/Verse.d.ts +0 -0
  933. package/{icc-api → dist/icc-api}/model/Verse.js +0 -0
  934. package/{icc-api → dist/icc-api}/model/Verse.js.map +0 -0
  935. package/{icc-api → dist/icc-api}/model/VirtualForm.d.ts +0 -0
  936. package/{icc-api → dist/icc-api}/model/VirtualForm.js +0 -0
  937. package/{icc-api → dist/icc-api}/model/VirtualForm.js.map +0 -0
  938. package/{icc-api → dist/icc-api}/model/VirtualIngredient.d.ts +0 -0
  939. package/{icc-api → dist/icc-api}/model/VirtualIngredient.js +0 -0
  940. package/{icc-api → dist/icc-api}/model/VirtualIngredient.js.map +0 -0
  941. package/{icc-api → dist/icc-api}/model/Vmp.d.ts +0 -0
  942. package/{icc-api → dist/icc-api}/model/Vmp.js +0 -0
  943. package/{icc-api → dist/icc-api}/model/Vmp.js.map +0 -0
  944. package/{icc-api → dist/icc-api}/model/VmpComponent.d.ts +0 -0
  945. package/{icc-api → dist/icc-api}/model/VmpComponent.js +0 -0
  946. package/{icc-api → dist/icc-api}/model/VmpComponent.js.map +0 -0
  947. package/{icc-api → dist/icc-api}/model/VmpGroup.d.ts +0 -0
  948. package/{icc-api → dist/icc-api}/model/VmpGroup.js +0 -0
  949. package/{icc-api → dist/icc-api}/model/VmpGroup.js.map +0 -0
  950. package/{icc-api → dist/icc-api}/model/VmpGroupStub.d.ts +0 -0
  951. package/{icc-api → dist/icc-api}/model/VmpGroupStub.js +0 -0
  952. package/{icc-api → dist/icc-api}/model/VmpGroupStub.js.map +0 -0
  953. package/{icc-api → dist/icc-api}/model/VmpStub.d.ts +0 -0
  954. package/{icc-api → dist/icc-api}/model/VmpStub.js +0 -0
  955. package/{icc-api → dist/icc-api}/model/VmpStub.js.map +0 -0
  956. package/{icc-api → dist/icc-api}/model/Vtm.d.ts +0 -0
  957. package/{icc-api → dist/icc-api}/model/Vtm.js +0 -0
  958. package/{icc-api → dist/icc-api}/model/Vtm.js.map +0 -0
  959. package/{icc-api → dist/icc-api}/model/Wada.d.ts +0 -0
  960. package/{icc-api → dist/icc-api}/model/Wada.js +0 -0
  961. package/{icc-api → dist/icc-api}/model/Wada.js.map +0 -0
  962. package/{icc-api → dist/icc-api}/model/WebSession.d.ts +0 -0
  963. package/{icc-api → dist/icc-api}/model/WebSession.js +0 -0
  964. package/{icc-api → dist/icc-api}/model/WebSession.js.map +0 -0
  965. package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTime.d.ts +0 -0
  966. package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTime.js +0 -0
  967. package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTime.js.map +0 -0
  968. package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTimeUnits.d.ts +0 -0
  969. package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTimeUnits.js +0 -0
  970. package/{icc-api → dist/icc-api}/model/WebSessionMaxIdleTimeUnits.js.map +0 -0
  971. package/{icc-api → dist/icc-api}/model/Weekday.d.ts +0 -0
  972. package/{icc-api → dist/icc-api}/model/Weekday.js +0 -0
  973. package/{icc-api → dist/icc-api}/model/Weekday.js.map +0 -0
  974. package/{icc-api → dist/icc-api}/model/models.d.ts +0 -0
  975. package/{icc-api → dist/icc-api}/model/models.js +0 -0
  976. package/{icc-api → dist/icc-api}/model/models.js.map +0 -0
  977. package/{icc-x-api → dist/icc-x-api}/crypto/AES.d.ts +0 -0
  978. package/{icc-x-api → dist/icc-x-api}/crypto/AES.js +0 -0
  979. package/{icc-x-api → dist/icc-x-api}/crypto/AES.js.map +0 -0
  980. package/{icc-x-api → dist/icc-x-api}/crypto/RSA.d.ts +0 -0
  981. package/{icc-x-api → dist/icc-x-api}/crypto/RSA.js +0 -0
  982. package/{icc-x-api → dist/icc-x-api}/crypto/RSA.js.map +0 -0
  983. package/{icc-x-api → dist/icc-x-api}/crypto/shamir.d.ts +0 -0
  984. package/{icc-x-api → dist/icc-x-api}/crypto/shamir.js +0 -0
  985. package/{icc-x-api → dist/icc-x-api}/crypto/shamir.js.map +0 -0
  986. package/{icc-x-api → dist/icc-x-api}/crypto/utils.d.ts +0 -0
  987. package/{icc-x-api → dist/icc-x-api}/crypto/utils.js +0 -0
  988. package/{icc-x-api → dist/icc-x-api}/crypto/utils.js.map +0 -0
  989. package/{icc-x-api → dist/icc-x-api}/filters/AllCodesFilter.d.ts +0 -0
  990. package/{icc-x-api → dist/icc-x-api}/filters/AllCodesFilter.js +0 -0
  991. package/{icc-x-api → dist/icc-x-api}/filters/AllCodesFilter.js.map +0 -0
  992. package/{icc-x-api → dist/icc-x-api}/filters/AllDevicesFilter.d.ts +0 -0
  993. package/{icc-x-api → dist/icc-x-api}/filters/AllDevicesFilter.js +0 -0
  994. package/{icc-x-api → dist/icc-x-api}/filters/AllDevicesFilter.js.map +0 -0
  995. package/{icc-x-api → dist/icc-x-api}/filters/AllHealthcarePartiesFilter.d.ts +0 -0
  996. package/{icc-x-api → dist/icc-x-api}/filters/AllHealthcarePartiesFilter.js +0 -0
  997. package/{icc-x-api → dist/icc-x-api}/filters/AllHealthcarePartiesFilter.js.map +0 -0
  998. package/{icc-x-api → dist/icc-x-api}/filters/AllUsersFilter.d.ts +0 -0
  999. package/{icc-x-api → dist/icc-x-api}/filters/AllUsersFilter.js +0 -0
  1000. package/{icc-x-api → dist/icc-x-api}/filters/AllUsersFilter.js.map +0 -0
  1001. package/{icc-x-api → dist/icc-x-api}/filters/CodeByIdsFilter.d.ts +0 -0
  1002. package/{icc-x-api → dist/icc-x-api}/filters/CodeByIdsFilter.js +0 -0
  1003. package/{icc-x-api → dist/icc-x-api}/filters/CodeByIdsFilter.js.map +0 -0
  1004. package/{icc-x-api → dist/icc-x-api}/filters/CodeByRegionTypeLabelLanguageFilter.d.ts +0 -0
  1005. package/{icc-x-api → dist/icc-x-api}/filters/CodeByRegionTypeLabelLanguageFilter.js +0 -0
  1006. package/{icc-x-api → dist/icc-x-api}/filters/CodeByRegionTypeLabelLanguageFilter.js.map +0 -0
  1007. package/{icc-x-api → dist/icc-x-api}/filters/CodeIdsByTypeCodeVersionIntervalFilter.d.ts +0 -0
  1008. package/{icc-x-api → dist/icc-x-api}/filters/CodeIdsByTypeCodeVersionIntervalFilter.js +0 -0
  1009. package/{icc-x-api → dist/icc-x-api}/filters/CodeIdsByTypeCodeVersionIntervalFilter.js.map +0 -0
  1010. package/{icc-x-api → dist/icc-x-api}/filters/ComplementFilter.d.ts +0 -0
  1011. package/{icc-x-api → dist/icc-x-api}/filters/ComplementFilter.js +0 -0
  1012. package/{icc-x-api → dist/icc-x-api}/filters/ComplementFilter.js.map +0 -0
  1013. package/{icc-x-api → dist/icc-x-api}/filters/ConstantFilter.d.ts +0 -0
  1014. package/{icc-x-api → dist/icc-x-api}/filters/ConstantFilter.js +0 -0
  1015. package/{icc-x-api → dist/icc-x-api}/filters/ConstantFilter.js.map +0 -0
  1016. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyFilter.d.ts +0 -0
  1017. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyFilter.js +0 -0
  1018. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyFilter.js.map +0 -0
  1019. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyPatientTagCodeDateFilter.d.ts +0 -0
  1020. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyPatientTagCodeDateFilter.js +0 -0
  1021. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyPatientTagCodeDateFilter.js.map +0 -0
  1022. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyTagCodeDateFilter.d.ts +0 -0
  1023. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyTagCodeDateFilter.js +0 -0
  1024. package/{icc-x-api → dist/icc-x-api}/filters/ContactByHcPartyTagCodeDateFilter.js.map +0 -0
  1025. package/{icc-x-api → dist/icc-x-api}/filters/ContactByServiceIdsFilter.d.ts +0 -0
  1026. package/{icc-x-api → dist/icc-x-api}/filters/ContactByServiceIdsFilter.js +0 -0
  1027. package/{icc-x-api → dist/icc-x-api}/filters/ContactByServiceIdsFilter.js.map +0 -0
  1028. package/{icc-x-api → dist/icc-x-api}/filters/DeviceByHcPartyFilter.d.ts +0 -0
  1029. package/{icc-x-api → dist/icc-x-api}/filters/DeviceByHcPartyFilter.js +0 -0
  1030. package/{icc-x-api → dist/icc-x-api}/filters/DeviceByHcPartyFilter.js.map +0 -0
  1031. package/{icc-x-api → dist/icc-x-api}/filters/DeviceByIdsFilter.d.ts +0 -0
  1032. package/{icc-x-api → dist/icc-x-api}/filters/DeviceByIdsFilter.js +0 -0
  1033. package/{icc-x-api → dist/icc-x-api}/filters/DeviceByIdsFilter.js.map +0 -0
  1034. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyFilter.d.ts +0 -0
  1035. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyFilter.js +0 -0
  1036. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyFilter.js.map +0 -0
  1037. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyIdentifiersFilter.d.ts +0 -0
  1038. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyIdentifiersFilter.js +0 -0
  1039. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyIdentifiersFilter.js.map +0 -0
  1040. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartySecretForeignKeysFilter.d.ts +0 -0
  1041. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartySecretForeignKeysFilter.js +0 -0
  1042. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartySecretForeignKeysFilter.js.map +0 -0
  1043. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyTagCodeFilter.d.ts +0 -0
  1044. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyTagCodeFilter.js +0 -0
  1045. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByHcPartyTagCodeFilter.js.map +0 -0
  1046. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByIdsFilter.d.ts +0 -0
  1047. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByIdsFilter.js +0 -0
  1048. package/{icc-x-api → dist/icc-x-api}/filters/HealthElementByIdsFilter.js.map +0 -0
  1049. package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByIdsFilter.d.ts +0 -0
  1050. package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByIdsFilter.js +0 -0
  1051. package/{icc-x-api → dist/icc-x-api}/filters/HealthcarePartyByIdsFilter.js.map +0 -0
  1052. package/{icc-x-api → dist/icc-x-api}/filters/IntersectionFilter.d.ts +0 -0
  1053. package/{icc-x-api → dist/icc-x-api}/filters/IntersectionFilter.js +0 -0
  1054. package/{icc-x-api → dist/icc-x-api}/filters/IntersectionFilter.js.map +0 -0
  1055. package/{icc-x-api → dist/icc-x-api}/filters/InvoiceByHcPartyCodeDateFilter.d.ts +0 -0
  1056. package/{icc-x-api → dist/icc-x-api}/filters/InvoiceByHcPartyCodeDateFilter.js +0 -0
  1057. package/{icc-x-api → dist/icc-x-api}/filters/InvoiceByHcPartyCodeDateFilter.js.map +0 -0
  1058. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskAfterDateFilter.d.ts +0 -0
  1059. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskAfterDateFilter.js +0 -0
  1060. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskAfterDateFilter.js.map +0 -0
  1061. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.d.ts +0 -0
  1062. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.js +0 -0
  1063. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.js.map +0 -0
  1064. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndTypeFilter.d.ts +0 -0
  1065. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndTypeFilter.js +0 -0
  1066. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByHcPartyAndTypeFilter.js.map +0 -0
  1067. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByIdsFilter.d.ts +0 -0
  1068. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByIdsFilter.js +0 -0
  1069. package/{icc-x-api → dist/icc-x-api}/filters/MaintenanceTaskByIdsFilter.js.map +0 -0
  1070. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndActiveFilter.d.ts +0 -0
  1071. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndActiveFilter.js +0 -0
  1072. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndActiveFilter.js.map +0 -0
  1073. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndExternalIdFilter.d.ts +0 -0
  1074. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndExternalIdFilter.js +0 -0
  1075. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndExternalIdFilter.js.map +0 -0
  1076. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndIdentifiersFilter.d.ts +0 -0
  1077. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndIdentifiersFilter.js +0 -0
  1078. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndIdentifiersFilter.js.map +0 -0
  1079. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinFilter.d.ts +0 -0
  1080. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinFilter.js +0 -0
  1081. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinFilter.js.map +0 -0
  1082. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinsFilter.d.ts +0 -0
  1083. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinsFilter.js +0 -0
  1084. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyAndSsinsFilter.js.map +0 -0
  1085. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthBetweenFilter.d.ts +0 -0
  1086. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthBetweenFilter.js +0 -0
  1087. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthBetweenFilter.js.map +0 -0
  1088. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthFilter.d.ts +0 -0
  1089. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthFilter.js +0 -0
  1090. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyDateOfBirthFilter.js.map +0 -0
  1091. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyFilter.d.ts +0 -0
  1092. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyFilter.js +0 -0
  1093. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyFilter.js.map +0 -0
  1094. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyGenderEducationProfession.d.ts +0 -0
  1095. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyGenderEducationProfession.js +0 -0
  1096. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyGenderEducationProfession.js.map +0 -0
  1097. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameContainsFuzzyFilter.d.ts +0 -0
  1098. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameContainsFuzzyFilter.js +0 -0
  1099. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameContainsFuzzyFilter.js.map +0 -0
  1100. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameFilter.d.ts +0 -0
  1101. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameFilter.js +0 -0
  1102. package/{icc-x-api → dist/icc-x-api}/filters/PatientByHcPartyNameFilter.js.map +0 -0
  1103. package/{icc-x-api → dist/icc-x-api}/filters/PatientByIdsFilter.d.ts +0 -0
  1104. package/{icc-x-api → dist/icc-x-api}/filters/PatientByIdsFilter.js +0 -0
  1105. package/{icc-x-api → dist/icc-x-api}/filters/PatientByIdsFilter.js.map +0 -0
  1106. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByContactsAndSubcontactsFilter.d.ts +0 -0
  1107. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByContactsAndSubcontactsFilter.js +0 -0
  1108. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByContactsAndSubcontactsFilter.js.map +0 -0
  1109. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyFilter.d.ts +0 -0
  1110. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyFilter.js +0 -0
  1111. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyFilter.js.map +0 -0
  1112. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyHealthElementIdsFilter.d.ts +0 -0
  1113. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyHealthElementIdsFilter.js +0 -0
  1114. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyHealthElementIdsFilter.js.map +0 -0
  1115. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyIdentifiersFilter.d.ts +0 -0
  1116. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyIdentifiersFilter.js +0 -0
  1117. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyIdentifiersFilter.js.map +0 -0
  1118. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyTagCodeDateFilter.d.ts +0 -0
  1119. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyTagCodeDateFilter.js +0 -0
  1120. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByHcPartyTagCodeDateFilter.js.map +0 -0
  1121. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByIdsFilter.d.ts +0 -0
  1122. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByIdsFilter.js +0 -0
  1123. package/{icc-x-api → dist/icc-x-api}/filters/ServiceByIdsFilter.js.map +0 -0
  1124. package/{icc-x-api → dist/icc-x-api}/filters/ServiceBySecretForeignKeys.d.ts +0 -0
  1125. package/{icc-x-api → dist/icc-x-api}/filters/ServiceBySecretForeignKeys.js +0 -0
  1126. package/{icc-x-api → dist/icc-x-api}/filters/ServiceBySecretForeignKeys.js.map +0 -0
  1127. package/{icc-x-api → dist/icc-x-api}/filters/UnionFilter.d.ts +0 -0
  1128. package/{icc-x-api → dist/icc-x-api}/filters/UnionFilter.js +0 -0
  1129. package/{icc-x-api → dist/icc-x-api}/filters/UnionFilter.js.map +0 -0
  1130. package/{icc-x-api → dist/icc-x-api}/filters/UserByIdsFilter.d.ts +0 -0
  1131. package/{icc-x-api → dist/icc-x-api}/filters/UserByIdsFilter.js +0 -0
  1132. package/{icc-x-api → dist/icc-x-api}/filters/UserByIdsFilter.js.map +0 -0
  1133. package/{icc-x-api → dist/icc-x-api}/filters/UserByNameEmailPhoneFilter.d.ts +0 -0
  1134. package/{icc-x-api → dist/icc-x-api}/filters/UserByNameEmailPhoneFilter.js +0 -0
  1135. package/{icc-x-api → dist/icc-x-api}/filters/UserByNameEmailPhoneFilter.js.map +0 -0
  1136. package/{icc-x-api → dist/icc-x-api}/filters/UsersByPatientIdFilter.d.ts +0 -0
  1137. package/{icc-x-api → dist/icc-x-api}/filters/UsersByPatientIdFilter.js +0 -0
  1138. package/{icc-x-api → dist/icc-x-api}/filters/UsersByPatientIdFilter.js.map +0 -0
  1139. package/{icc-x-api → dist/icc-x-api}/filters/filters.d.ts +0 -0
  1140. package/{icc-x-api → dist/icc-x-api}/filters/filters.js +0 -0
  1141. package/{icc-x-api → dist/icc-x-api}/filters/filters.js.map +0 -0
  1142. package/{icc-x-api → dist/icc-x-api}/icc-accesslog-x-api.d.ts +0 -0
  1143. package/{icc-x-api → dist/icc-x-api}/icc-accesslog-x-api.js +0 -0
  1144. package/{icc-x-api → dist/icc-x-api}/icc-accesslog-x-api.js.map +0 -0
  1145. package/{icc-x-api → dist/icc-x-api}/icc-bekmehr-x-api.d.ts +0 -0
  1146. package/{icc-x-api → dist/icc-x-api}/icc-bekmehr-x-api.js +0 -0
  1147. package/{icc-x-api → dist/icc-x-api}/icc-bekmehr-x-api.js.map +0 -0
  1148. package/{icc-x-api → dist/icc-x-api}/icc-calendar-item-x-api.d.ts +0 -0
  1149. package/{icc-x-api → dist/icc-x-api}/icc-calendar-item-x-api.js +0 -0
  1150. package/{icc-x-api → dist/icc-x-api}/icc-calendar-item-x-api.js.map +0 -0
  1151. package/{icc-x-api → dist/icc-x-api}/icc-classification-x-api.d.ts +0 -0
  1152. package/{icc-x-api → dist/icc-x-api}/icc-classification-x-api.js +0 -0
  1153. package/{icc-x-api → dist/icc-x-api}/icc-classification-x-api.js.map +0 -0
  1154. package/{icc-x-api → dist/icc-x-api}/icc-code-x-api.d.ts +0 -0
  1155. package/{icc-x-api → dist/icc-x-api}/icc-code-x-api.js +0 -0
  1156. package/{icc-x-api → dist/icc-x-api}/icc-code-x-api.js.map +0 -0
  1157. package/{icc-x-api → dist/icc-x-api}/icc-contact-x-api.d.ts +0 -0
  1158. package/{icc-x-api → dist/icc-x-api}/icc-contact-x-api.js +0 -0
  1159. package/{icc-x-api → dist/icc-x-api}/icc-contact-x-api.js.map +0 -0
  1160. package/{icc-x-api → dist/icc-x-api}/icc-crypto-x-api.d.ts +0 -0
  1161. package/{icc-x-api → dist/icc-x-api}/icc-crypto-x-api.js +0 -0
  1162. package/{icc-x-api → dist/icc-x-api}/icc-crypto-x-api.js.map +0 -0
  1163. package/{icc-x-api → dist/icc-x-api}/icc-doctemplate-x-api.d.ts +0 -0
  1164. package/{icc-x-api → dist/icc-x-api}/icc-doctemplate-x-api.js +0 -0
  1165. package/{icc-x-api → dist/icc-x-api}/icc-doctemplate-x-api.js.map +0 -0
  1166. package/{icc-x-api → dist/icc-x-api}/icc-document-x-api.d.ts +0 -0
  1167. package/{icc-x-api → dist/icc-x-api}/icc-document-x-api.js +0 -0
  1168. package/{icc-x-api → dist/icc-x-api}/icc-document-x-api.js.map +0 -0
  1169. package/{icc-x-api → dist/icc-x-api}/icc-form-x-api.d.ts +0 -0
  1170. package/{icc-x-api → dist/icc-x-api}/icc-form-x-api.js +0 -0
  1171. package/{icc-x-api → dist/icc-x-api}/icc-form-x-api.js.map +0 -0
  1172. package/{icc-x-api → dist/icc-x-api}/icc-hcparty-x-api.d.ts +0 -0
  1173. package/{icc-x-api → dist/icc-x-api}/icc-hcparty-x-api.js +0 -0
  1174. package/{icc-x-api → dist/icc-x-api}/icc-hcparty-x-api.js.map +0 -0
  1175. package/{icc-x-api → dist/icc-x-api}/icc-helement-x-api.d.ts +0 -0
  1176. package/{icc-x-api → dist/icc-x-api}/icc-helement-x-api.js +0 -0
  1177. package/{icc-x-api → dist/icc-x-api}/icc-helement-x-api.js.map +0 -0
  1178. package/{icc-x-api → dist/icc-x-api}/icc-invoice-x-api.d.ts +0 -0
  1179. package/{icc-x-api → dist/icc-x-api}/icc-invoice-x-api.js +0 -0
  1180. package/{icc-x-api → dist/icc-x-api}/icc-invoice-x-api.js.map +0 -0
  1181. package/{icc-x-api → dist/icc-x-api}/icc-maintenance-task-x-api.d.ts +0 -0
  1182. package/{icc-x-api → dist/icc-x-api}/icc-maintenance-task-x-api.js +0 -0
  1183. package/{icc-x-api → dist/icc-x-api}/icc-maintenance-task-x-api.js.map +0 -0
  1184. package/{icc-x-api → dist/icc-x-api}/icc-message-x-api.d.ts +0 -0
  1185. package/{icc-x-api → dist/icc-x-api}/icc-message-x-api.js +0 -0
  1186. package/{icc-x-api → dist/icc-x-api}/icc-message-x-api.js.map +0 -0
  1187. package/{icc-x-api → dist/icc-x-api}/icc-patient-x-api.d.ts +0 -0
  1188. package/{icc-x-api → dist/icc-x-api}/icc-patient-x-api.js +0 -0
  1189. package/{icc-x-api → dist/icc-x-api}/icc-patient-x-api.js.map +0 -0
  1190. package/{icc-x-api → dist/icc-x-api}/icc-receipt-x-api.d.ts +0 -0
  1191. package/{icc-x-api → dist/icc-x-api}/icc-receipt-x-api.js +0 -0
  1192. package/{icc-x-api → dist/icc-x-api}/icc-receipt-x-api.js.map +0 -0
  1193. package/{icc-x-api → dist/icc-x-api}/icc-time-table-x-api.d.ts +0 -0
  1194. package/{icc-x-api → dist/icc-x-api}/icc-time-table-x-api.js +0 -0
  1195. package/{icc-x-api → dist/icc-x-api}/icc-time-table-x-api.js.map +0 -0
  1196. package/{icc-x-api → dist/icc-x-api}/icc-user-x-api.d.ts +0 -0
  1197. package/{icc-x-api → dist/icc-x-api}/icc-user-x-api.js +0 -0
  1198. package/{icc-x-api → dist/icc-x-api}/icc-user-x-api.js.map +0 -0
  1199. package/{icc-x-api → dist/icc-x-api}/index.d.ts +0 -0
  1200. package/{icc-x-api → dist/icc-x-api}/index.js +0 -0
  1201. package/{icc-x-api → dist/icc-x-api}/index.js.map +0 -0
  1202. package/{icc-x-api → dist/icc-x-api}/rsrc/codelng.d.ts +0 -0
  1203. package/{icc-x-api → dist/icc-x-api}/rsrc/codelng.js +0 -0
  1204. package/{icc-x-api → dist/icc-x-api}/rsrc/codelng.js.map +0 -0
  1205. package/{icc-x-api → dist/icc-x-api}/rsrc/contact.i18n.d.ts +0 -0
  1206. package/{icc-x-api → dist/icc-x-api}/rsrc/contact.i18n.js +0 -0
  1207. package/{icc-x-api → dist/icc-x-api}/rsrc/contact.i18n.js.map +0 -0
  1208. package/{icc-x-api → dist/icc-x-api}/rsrc/icd10.d.ts +0 -0
  1209. package/{icc-x-api → dist/icc-x-api}/rsrc/icd10.js +0 -0
  1210. package/{icc-x-api → dist/icc-x-api}/rsrc/icd10.js.map +0 -0
  1211. package/{icc-x-api → dist/icc-x-api}/rsrc/icpc2.d.ts +0 -0
  1212. package/{icc-x-api → dist/icc-x-api}/rsrc/icpc2.js +0 -0
  1213. package/{icc-x-api → dist/icc-x-api}/rsrc/icpc2.js.map +0 -0
  1214. package/{icc-x-api → dist/icc-x-api}/utils/asn1-packer.d.ts +0 -0
  1215. package/{icc-x-api → dist/icc-x-api}/utils/asn1-packer.js +0 -0
  1216. package/{icc-x-api → dist/icc-x-api}/utils/asn1-packer.js.map +0 -0
  1217. package/{icc-x-api → dist/icc-x-api}/utils/asn1-parser.d.ts +0 -0
  1218. package/{icc-x-api → dist/icc-x-api}/utils/asn1-parser.js +0 -0
  1219. package/{icc-x-api → dist/icc-x-api}/utils/asn1-parser.js.map +0 -0
  1220. package/{icc-x-api → dist/icc-x-api}/utils/binary-utils.d.ts +0 -0
  1221. package/{icc-x-api → dist/icc-x-api}/utils/binary-utils.js +0 -0
  1222. package/{icc-x-api → dist/icc-x-api}/utils/binary-utils.js.map +0 -0
  1223. package/{icc-x-api → dist/icc-x-api}/utils/code-util.d.ts +0 -0
  1224. package/{icc-x-api → dist/icc-x-api}/utils/code-util.js +0 -0
  1225. package/{icc-x-api → dist/icc-x-api}/utils/code-util.js.map +0 -0
  1226. package/{icc-x-api → dist/icc-x-api}/utils/formatting-util.d.ts +0 -0
  1227. package/{icc-x-api → dist/icc-x-api}/utils/formatting-util.js +0 -0
  1228. package/{icc-x-api → dist/icc-x-api}/utils/formatting-util.js.map +0 -0
  1229. package/{icc-x-api → dist/icc-x-api}/utils/functional-util.d.ts +0 -0
  1230. package/{icc-x-api → dist/icc-x-api}/utils/functional-util.js +0 -0
  1231. package/{icc-x-api → dist/icc-x-api}/utils/functional-util.js.map +0 -0
  1232. package/{icc-x-api → dist/icc-x-api}/utils/hcp-util.d.ts +0 -0
  1233. package/{icc-x-api → dist/icc-x-api}/utils/hcp-util.js +0 -0
  1234. package/{icc-x-api → dist/icc-x-api}/utils/hcp-util.js.map +0 -0
  1235. package/{icc-x-api → dist/icc-x-api}/utils/index.d.ts +0 -0
  1236. package/{icc-x-api → dist/icc-x-api}/utils/index.js +0 -0
  1237. package/{icc-x-api → dist/icc-x-api}/utils/index.js.map +0 -0
  1238. package/{icc-x-api → dist/icc-x-api}/utils/insurability-util.d.ts +0 -0
  1239. package/{icc-x-api → dist/icc-x-api}/utils/insurability-util.js +0 -0
  1240. package/{icc-x-api → dist/icc-x-api}/utils/insurability-util.js.map +0 -0
  1241. package/{icc-x-api → dist/icc-x-api}/utils/net-utils.d.ts +0 -0
  1242. package/{icc-x-api → dist/icc-x-api}/utils/net-utils.js +0 -0
  1243. package/{icc-x-api → dist/icc-x-api}/utils/net-utils.js.map +0 -0
  1244. package/{icc-x-api → dist/icc-x-api}/utils/person-util.d.ts +0 -0
  1245. package/{icc-x-api → dist/icc-x-api}/utils/person-util.js +0 -0
  1246. package/{icc-x-api → dist/icc-x-api}/utils/person-util.js.map +0 -0
  1247. package/{icc-x-api → dist/icc-x-api}/utils/uuid-encoder.d.ts +0 -0
  1248. package/{icc-x-api → dist/icc-x-api}/utils/uuid-encoder.js +0 -0
  1249. package/{icc-x-api → dist/icc-x-api}/utils/uuid-encoder.js.map +0 -0
  1250. package/{index.d.ts → dist/index.d.ts} +0 -0
  1251. package/{index.js → dist/index.js} +0 -0
  1252. package/{index.js.map → dist/index.js.map} +0 -0
  1253. package/{node-compat.d.ts → dist/node-compat.d.ts} +0 -0
  1254. package/{node-compat.js → dist/node-compat.js} +0 -0
  1255. package/{node-compat.js.map → dist/node-compat.js.map} +0 -0
  1256. package/dist/package.json +22 -0
  1257. package/icc-api/.swagger-codegen/VERSION +1 -0
  1258. package/icc-api/.swagger-codegen-ignore +23 -0
  1259. package/icc-api/LICENSE +201 -0
  1260. package/icc-api/api/IccAccesslogApi.ts +198 -0
  1261. package/icc-api/api/IccAgendaApi.ts +143 -0
  1262. package/icc-api/api/IccAnonymousAccessApi.ts +118 -0
  1263. package/icc-api/api/IccApplicationsettingsApi.ts +81 -0
  1264. package/icc-api/api/IccArticleApi.ts +112 -0
  1265. package/icc-api/api/IccAuthApi.ts +126 -0
  1266. package/icc-api/api/IccBeefactApi.ts +58 -0
  1267. package/icc-api/api/IccBekmehrApi.ts +901 -0
  1268. package/icc-api/api/IccBemikronoApi.ts +183 -0
  1269. package/icc-api/api/IccBeresultexportApi.ts +126 -0
  1270. package/icc-api/api/IccBeresultimportApi.ts +122 -0
  1271. package/icc-api/api/IccBesamv2Api.ts +767 -0
  1272. package/icc-api/api/IccCalendarItemApi.ts +255 -0
  1273. package/icc-api/api/IccCalendarItemTypeApi.ts +126 -0
  1274. package/icc-api/api/IccClassificationApi.ts +172 -0
  1275. package/icc-api/api/IccClassificationTemplateApi.ts +180 -0
  1276. package/icc-api/api/IccCodeApi.ts +415 -0
  1277. package/icc-api/api/IccContactApi.ts +610 -0
  1278. package/icc-api/api/IccDeviceApi.ts +348 -0
  1279. package/icc-api/api/IccDoctemplateApi.ts +250 -0
  1280. package/icc-api/api/IccDocumentApi.ts +359 -0
  1281. package/icc-api/api/IccDocumentTemplateApi.ts +253 -0
  1282. package/icc-api/api/IccEntityrefApi.ts +65 -0
  1283. package/icc-api/api/IccEntitytemplateApi.ts +241 -0
  1284. package/icc-api/api/IccFormApi.ts +466 -0
  1285. package/icc-api/api/IccFrontendmigrationApi.ts +127 -0
  1286. package/icc-api/api/IccGroupApi.ts +369 -0
  1287. package/icc-api/api/IccHcpartyApi.ts +477 -0
  1288. package/icc-api/api/IccHelementApi.ts +276 -0
  1289. package/icc-api/api/IccIcureApi.ts +295 -0
  1290. package/icc-api/api/IccInsuranceApi.ts +146 -0
  1291. package/icc-api/api/IccInvoiceApi.ts +667 -0
  1292. package/icc-api/api/IccKeywordApi.ts +127 -0
  1293. package/icc-api/api/IccMaintenanceTaskApi.ts +125 -0
  1294. package/icc-api/api/IccMedexApi.ts +50 -0
  1295. package/icc-api/api/IccMedicallocationApi.ts +112 -0
  1296. package/icc-api/api/IccMessageApi.ts +453 -0
  1297. package/icc-api/api/IccPatientApi.ts +813 -0
  1298. package/icc-api/api/IccPermissionApi.ts +51 -0
  1299. package/icc-api/api/IccPlaceApi.ts +112 -0
  1300. package/icc-api/api/IccPubsubApi.ts +98 -0
  1301. package/icc-api/api/IccReceiptApi.ts +160 -0
  1302. package/icc-api/api/IccReplicationApi.ts +98 -0
  1303. package/icc-api/api/IccTarificationApi.ts +228 -0
  1304. package/icc-api/api/IccTimeTableApi.ts +138 -0
  1305. package/icc-api/api/IccTmpApi.ts +1290 -0
  1306. package/icc-api/api/IccUserApi.ts +517 -0
  1307. package/icc-api/api/XHR.ts +159 -0
  1308. package/icc-api/iccApi.ts +45 -0
  1309. package/icc-api/index.ts +45 -0
  1310. package/icc-api/model/AbstractFilterCode.ts +19 -0
  1311. package/icc-api/model/AbstractFilterContact.ts +19 -0
  1312. package/icc-api/model/AbstractFilterDevice.ts +19 -0
  1313. package/icc-api/model/AbstractFilterHealthElement.ts +19 -0
  1314. package/icc-api/model/AbstractFilterHealthcareParty.ts +19 -0
  1315. package/icc-api/model/AbstractFilterInvoice.ts +19 -0
  1316. package/icc-api/model/AbstractFilterMaintenanceTask.ts +19 -0
  1317. package/icc-api/model/AbstractFilterPatient.ts +19 -0
  1318. package/icc-api/model/AbstractFilterService.ts +19 -0
  1319. package/icc-api/model/AbstractFilterUser.ts +19 -0
  1320. package/icc-api/model/AccessLog.ts +108 -0
  1321. package/icc-api/model/AddedDocument.ts +27 -0
  1322. package/icc-api/model/Address.ts +99 -0
  1323. package/icc-api/model/AdministrationQuantity.ts +22 -0
  1324. package/icc-api/model/Agenda.ts +61 -0
  1325. package/icc-api/model/AgreementAppendix.ts +22 -0
  1326. package/icc-api/model/Amp.ts +57 -0
  1327. package/icc-api/model/AmpComponent.ts +51 -0
  1328. package/icc-api/model/Ampp.ts +75 -0
  1329. package/icc-api/model/AmppComponent.ts +36 -0
  1330. package/icc-api/model/Annotation.ts +42 -0
  1331. package/icc-api/model/ApplicationSettings.ts +58 -0
  1332. package/icc-api/model/Appointment.ts +31 -0
  1333. package/icc-api/model/AppointmentImport.ts +39 -0
  1334. package/icc-api/model/AppointmentTypeAndPlace.ts +27 -0
  1335. package/icc-api/model/Article.ts +82 -0
  1336. package/icc-api/model/Atc.ts +20 -0
  1337. package/icc-api/model/Attachment.ts +23 -0
  1338. package/icc-api/model/AuthenticationResponse.ts +22 -0
  1339. package/icc-api/model/AuthenticationToken.ts +33 -0
  1340. package/icc-api/model/Basic.ts +20 -0
  1341. package/icc-api/model/Body.ts +20 -0
  1342. package/icc-api/model/Body1.ts +20 -0
  1343. package/icc-api/model/Body2.ts +20 -0
  1344. package/icc-api/model/Body3.ts +20 -0
  1345. package/icc-api/model/ByteArray.ts +20 -0
  1346. package/icc-api/model/CalendarItem.ts +103 -0
  1347. package/icc-api/model/CalendarItemTag.ts +22 -0
  1348. package/icc-api/model/CalendarItemType.ts +32 -0
  1349. package/icc-api/model/CareTeamMember.ts +38 -0
  1350. package/icc-api/model/CareTeamMembership.ts +39 -0
  1351. package/icc-api/model/CheckSMFPatientResult.ts +24 -0
  1352. package/icc-api/model/Classification.ts +81 -0
  1353. package/icc-api/model/ClassificationTemplate.ts +80 -0
  1354. package/icc-api/model/Code.ts +202 -0
  1355. package/icc-api/model/CodeStub.ts +24 -0
  1356. package/icc-api/model/CodeType.ts +19 -0
  1357. package/icc-api/model/CommentedClassification.ts +21 -0
  1358. package/icc-api/model/Commercialization.ts +25 -0
  1359. package/icc-api/model/Company.ts +35 -0
  1360. package/icc-api/model/Contact.ts +129 -0
  1361. package/icc-api/model/Content.ts +45 -0
  1362. package/icc-api/model/Copayment.ts +22 -0
  1363. package/icc-api/model/Data.ts +17 -0
  1364. package/icc-api/model/DataOwnerRegistrationSuccess.ts +21 -0
  1365. package/icc-api/model/DatabaseInfo.ts +28 -0
  1366. package/icc-api/model/DatabaseInitialisation.ts +27 -0
  1367. package/icc-api/model/DatabaseSynchronization.ts +30 -0
  1368. package/icc-api/model/Delegation.ts +25 -0
  1369. package/icc-api/model/Device.ts +93 -0
  1370. package/icc-api/model/DeviceType.ts +23 -0
  1371. package/icc-api/model/DiaryNoteExportInfo.ts +30 -0
  1372. package/icc-api/model/Dmpp.ts +45 -0
  1373. package/icc-api/model/DocIdentifier.ts +20 -0
  1374. package/icc-api/model/Document.ts +264 -0
  1375. package/icc-api/model/DocumentGroup.ts +20 -0
  1376. package/icc-api/model/DocumentTemplate.ts +162 -0
  1377. package/icc-api/model/Duration.ts +21 -0
  1378. package/icc-api/model/EIDItem.ts +23 -0
  1379. package/icc-api/model/Editor.ts +37 -0
  1380. package/icc-api/model/EfactInvoice.ts +43 -0
  1381. package/icc-api/model/EmailOrSmsMessage.ts +39 -0
  1382. package/icc-api/model/EmailTemplate.ts +20 -0
  1383. package/icc-api/model/Employer.ts +21 -0
  1384. package/icc-api/model/EmploymentInfo.ts +24 -0
  1385. package/icc-api/model/EntityReference.ts +25 -0
  1386. package/icc-api/model/EntityTemplate.ts +31 -0
  1387. package/icc-api/model/Episode.ts +30 -0
  1388. package/icc-api/model/FilterChainCode.ts +23 -0
  1389. package/icc-api/model/FilterChainContact.ts +23 -0
  1390. package/icc-api/model/FilterChainDevice.ts +23 -0
  1391. package/icc-api/model/FilterChainHealthElement.ts +23 -0
  1392. package/icc-api/model/FilterChainHealthcareParty.ts +23 -0
  1393. package/icc-api/model/FilterChainInvoice.ts +23 -0
  1394. package/icc-api/model/FilterChainMaintenanceTask.ts +23 -0
  1395. package/icc-api/model/FilterChainPatient.ts +23 -0
  1396. package/icc-api/model/FilterChainService.ts +23 -0
  1397. package/icc-api/model/FilterChainUser.ts +23 -0
  1398. package/icc-api/model/FinancialInstitutionInformation.ts +32 -0
  1399. package/icc-api/model/FlatRateTarification.ts +36 -0
  1400. package/icc-api/model/FlowItem.ts +51 -0
  1401. package/icc-api/model/Form.ts +116 -0
  1402. package/icc-api/model/FormColumn.ts +22 -0
  1403. package/icc-api/model/FormDataOption.ts +20 -0
  1404. package/icc-api/model/FormLayout.ts +29 -0
  1405. package/icc-api/model/FormLayoutData.ts +44 -0
  1406. package/icc-api/model/FormPlanning.ts +26 -0
  1407. package/icc-api/model/FormSection.ts +23 -0
  1408. package/icc-api/model/FormTemplate.ts +46 -0
  1409. package/icc-api/model/FormTemplateLayout.ts +23 -0
  1410. package/icc-api/model/Formula.ts +31 -0
  1411. package/icc-api/model/FrontEndMigration.ts +47 -0
  1412. package/icc-api/model/Group.ts +60 -0
  1413. package/icc-api/model/GroupDatabasesInfo.ts +21 -0
  1414. package/icc-api/model/GuiCode.ts +20 -0
  1415. package/icc-api/model/GuiCodeType.ts +19 -0
  1416. package/icc-api/model/HealthElement.ts +159 -0
  1417. package/icc-api/model/HealthcareParty.ts +224 -0
  1418. package/icc-api/model/HealthcarePartyHistoryStatus.ts +33 -0
  1419. package/icc-api/model/IcureStub.ts +74 -0
  1420. package/icc-api/model/IdWithRev.ts +20 -0
  1421. package/icc-api/model/Identifier.ts +27 -0
  1422. package/icc-api/model/IdentityDocumentReader.ts +24 -0
  1423. package/icc-api/model/ImportMapping.ts +24 -0
  1424. package/icc-api/model/ImportResult.ts +34 -0
  1425. package/icc-api/model/IncapacityExportInfo.ts +52 -0
  1426. package/icc-api/model/IndexedIdentifier.ts +21 -0
  1427. package/icc-api/model/IndexingInfo.ts +19 -0
  1428. package/icc-api/model/Ingredient.ts +36 -0
  1429. package/icc-api/model/Insurability.ts +61 -0
  1430. package/icc-api/model/Insurance.ts +33 -0
  1431. package/icc-api/model/Invoice.ts +205 -0
  1432. package/icc-api/model/InvoiceItem.ts +97 -0
  1433. package/icc-api/model/InvoiceSender.ts +28 -0
  1434. package/icc-api/model/InvoicesBatch.ts +29 -0
  1435. package/icc-api/model/InvoicingCode.ts +86 -0
  1436. package/icc-api/model/Keyword.ts +61 -0
  1437. package/icc-api/model/KeywordSubword.ts +20 -0
  1438. package/icc-api/model/LabelledOccurence.ts +20 -0
  1439. package/icc-api/model/LetterValue.ts +22 -0
  1440. package/icc-api/model/ListOfIds.ts +22 -0
  1441. package/icc-api/model/ListOfProperties.ts +23 -0
  1442. package/icc-api/model/LoginCredentials.ts +20 -0
  1443. package/icc-api/model/MaintenanceTask.ts +93 -0
  1444. package/icc-api/model/MapOfIds.ts +19 -0
  1445. package/icc-api/model/Measure.ts +31 -0
  1446. package/icc-api/model/MedexInfo.ts +33 -0
  1447. package/icc-api/model/MedicalHouseContract.ts +81 -0
  1448. package/icc-api/model/MedicalLocation.ts +37 -0
  1449. package/icc-api/model/Medication.ts +70 -0
  1450. package/icc-api/model/MedicationSchemeExportInfo.ts +25 -0
  1451. package/icc-api/model/Medicinalproduct.ts +24 -0
  1452. package/icc-api/model/Message.ts +145 -0
  1453. package/icc-api/model/MessageReadStatus.ts +23 -0
  1454. package/icc-api/model/MessageWithBatch.ts +22 -0
  1455. package/icc-api/model/MessagesReadStatusUpdate.ts +22 -0
  1456. package/icc-api/model/MikronoAppointmentTypeRest.ts +25 -0
  1457. package/icc-api/model/MikronoCredentials.ts +21 -0
  1458. package/icc-api/model/MimeAttachment.ts +22 -0
  1459. package/icc-api/model/ModelHelper.ts +64 -0
  1460. package/icc-api/model/Nmp.ts +34 -0
  1461. package/icc-api/model/NoGenericPrescriptionReason.ts +21 -0
  1462. package/icc-api/model/NoSwitchReason.ts +21 -0
  1463. package/icc-api/model/NumeratorRange.ts +21 -0
  1464. package/icc-api/model/PackagingType.ts +23 -0
  1465. package/icc-api/model/PaginatedDocumentKeyIdPairObject.ts +20 -0
  1466. package/icc-api/model/PaginatedListAccessLog.ts +24 -0
  1467. package/icc-api/model/PaginatedListAmp.ts +24 -0
  1468. package/icc-api/model/PaginatedListClassification.ts +24 -0
  1469. package/icc-api/model/PaginatedListClassificationTemplate.ts +24 -0
  1470. package/icc-api/model/PaginatedListCode.ts +24 -0
  1471. package/icc-api/model/PaginatedListContact.ts +24 -0
  1472. package/icc-api/model/PaginatedListDevice.ts +24 -0
  1473. package/icc-api/model/PaginatedListDocument.ts +24 -0
  1474. package/icc-api/model/PaginatedListEntityTemplate.ts +24 -0
  1475. package/icc-api/model/PaginatedListForm.ts +24 -0
  1476. package/icc-api/model/PaginatedListGroup.ts +24 -0
  1477. package/icc-api/model/PaginatedListHealthElement.ts +24 -0
  1478. package/icc-api/model/PaginatedListHealthcareParty.ts +24 -0
  1479. package/icc-api/model/PaginatedListInvoice.ts +24 -0
  1480. package/icc-api/model/PaginatedListMaintenanceTask.ts +24 -0
  1481. package/icc-api/model/PaginatedListMessage.ts +24 -0
  1482. package/icc-api/model/PaginatedListNmp.ts +24 -0
  1483. package/icc-api/model/PaginatedListPatient.ts +24 -0
  1484. package/icc-api/model/PaginatedListService.ts +24 -0
  1485. package/icc-api/model/PaginatedListString.ts +23 -0
  1486. package/icc-api/model/PaginatedListTarification.ts +24 -0
  1487. package/icc-api/model/PaginatedListUser.ts +24 -0
  1488. package/icc-api/model/PaginatedListVmp.ts +24 -0
  1489. package/icc-api/model/PaginatedListVmpGroup.ts +24 -0
  1490. package/icc-api/model/Paragraph.ts +41 -0
  1491. package/icc-api/model/ParagraphAgreement.ts +41 -0
  1492. package/icc-api/model/Partnership.ts +118 -0
  1493. package/icc-api/model/Patient.ts +366 -0
  1494. package/icc-api/model/PatientByHcPartyGenderEducationProfession.ts +35 -0
  1495. package/icc-api/model/PatientHealthCareParty.ts +64 -0
  1496. package/icc-api/model/PatientRegistrationSuccess.ts +21 -0
  1497. package/icc-api/model/Payment.ts +34 -0
  1498. package/icc-api/model/Periodicity.ts +21 -0
  1499. package/icc-api/model/Permission.ts +30 -0
  1500. package/icc-api/model/PermissionCriterion.ts +46 -0
  1501. package/icc-api/model/PermissionItem.ts +52 -0
  1502. package/icc-api/model/PersonName.ts +66 -0
  1503. package/icc-api/model/PharmaceuticalForm.ts +29 -0
  1504. package/icc-api/model/PharmaceuticalFormStub.ts +24 -0
  1505. package/icc-api/model/Place.ts +27 -0
  1506. package/icc-api/model/PlanOfAction.ts +114 -0
  1507. package/icc-api/model/Predicate.ts +17 -0
  1508. package/icc-api/model/Pricing.ts +21 -0
  1509. package/icc-api/model/PropertyStub.ts +31 -0
  1510. package/icc-api/model/PropertyTypeStub.ts +32 -0
  1511. package/icc-api/model/PublicKey.ts +20 -0
  1512. package/icc-api/model/Quantity.ts +20 -0
  1513. package/icc-api/model/Receipt.ts +83 -0
  1514. package/icc-api/model/ReferralPeriod.ts +33 -0
  1515. package/icc-api/model/RegimenItem.ts +27 -0
  1516. package/icc-api/model/RegistrationInformation.ts +22 -0
  1517. package/icc-api/model/RegistrationSuccess.ts +21 -0
  1518. package/icc-api/model/Reimbursement.ts +57 -0
  1519. package/icc-api/model/ReimbursementCriterion.ts +22 -0
  1520. package/icc-api/model/Remote.ts +21 -0
  1521. package/icc-api/model/RemoteAuthentication.ts +20 -0
  1522. package/icc-api/model/Renewal.ts +21 -0
  1523. package/icc-api/model/ReplicateCommand.ts +25 -0
  1524. package/icc-api/model/Replication.ts +28 -0
  1525. package/icc-api/model/ReplicationInfo.ts +22 -0
  1526. package/icc-api/model/ReplicationStats.ts +27 -0
  1527. package/icc-api/model/ReplicatorDocument.ts +34 -0
  1528. package/icc-api/model/ReplicatorResponse.ts +23 -0
  1529. package/icc-api/model/ResultInfo.ts +33 -0
  1530. package/icc-api/model/RevisionInfo.ts +20 -0
  1531. package/icc-api/model/Right.ts +22 -0
  1532. package/icc-api/model/RouteOfAdministration.ts +22 -0
  1533. package/icc-api/model/SamText.ts +22 -0
  1534. package/icc-api/model/SamVersion.ts +26 -0
  1535. package/icc-api/model/SchoolingInfo.ts +23 -0
  1536. package/icc-api/model/Section.ts +23 -0
  1537. package/icc-api/model/Service.ts +155 -0
  1538. package/icc-api/model/ServiceLink.ts +22 -0
  1539. package/icc-api/model/SoftwareMedicalFileExport.ts +23 -0
  1540. package/icc-api/model/StandardSubstance.ts +33 -0
  1541. package/icc-api/model/StrengthRange.ts +22 -0
  1542. package/icc-api/model/StructureElement.ts +17 -0
  1543. package/icc-api/model/SubContact.ts +89 -0
  1544. package/icc-api/model/Substance.ts +31 -0
  1545. package/icc-api/model/SubstanceStub.ts +26 -0
  1546. package/icc-api/model/Substanceproduct.ts +24 -0
  1547. package/icc-api/model/Suggest.ts +23 -0
  1548. package/icc-api/model/SumehrContent.ts +26 -0
  1549. package/icc-api/model/SumehrExportInfo.ts +30 -0
  1550. package/icc-api/model/SumehrValidity.ts +27 -0
  1551. package/icc-api/model/SupplyProblem.ts +25 -0
  1552. package/icc-api/model/Suspension.ts +22 -0
  1553. package/icc-api/model/Tag.ts +20 -0
  1554. package/icc-api/model/Tarification.ts +213 -0
  1555. package/icc-api/model/Telecom.ts +64 -0
  1556. package/icc-api/model/TimeSeries.ts +28 -0
  1557. package/icc-api/model/TimeTable.ts +84 -0
  1558. package/icc-api/model/TimeTableHour.ts +20 -0
  1559. package/icc-api/model/TimeTableItem.ts +28 -0
  1560. package/icc-api/model/TokenWithGroup.ts +21 -0
  1561. package/icc-api/model/TypedValueObject.ts +40 -0
  1562. package/icc-api/model/Unit.ts +17 -0
  1563. package/icc-api/model/User.ts +132 -0
  1564. package/icc-api/model/UserAndHealthcareParty.ts +25 -0
  1565. package/icc-api/model/UserGroup.ts +28 -0
  1566. package/icc-api/model/Valorisation.ts +31 -0
  1567. package/icc-api/model/Verse.ts +65 -0
  1568. package/icc-api/model/VirtualForm.ts +22 -0
  1569. package/icc-api/model/VirtualIngredient.ts +33 -0
  1570. package/icc-api/model/Vmp.ts +40 -0
  1571. package/icc-api/model/VmpComponent.ts +28 -0
  1572. package/icc-api/model/VmpGroup.ts +34 -0
  1573. package/icc-api/model/VmpGroupStub.ts +23 -0
  1574. package/icc-api/model/VmpStub.ts +24 -0
  1575. package/icc-api/model/Vtm.ts +23 -0
  1576. package/icc-api/model/Wada.ts +22 -0
  1577. package/icc-api/model/WebSession.ts +26 -0
  1578. package/icc-api/model/WebSessionMaxIdleTime.ts +24 -0
  1579. package/icc-api/model/WebSessionMaxIdleTimeUnits.ts +21 -0
  1580. package/icc-api/model/Weekday.ts +21 -0
  1581. package/icc-api/model/models.ts +251 -0
  1582. package/icc-x-api/crypto/AES.ts +156 -0
  1583. package/icc-x-api/crypto/RSA.ts +231 -0
  1584. package/icc-x-api/crypto/shamir.ts +326 -0
  1585. package/icc-x-api/crypto/utils.ts +258 -0
  1586. package/icc-x-api/filters/AllCodesFilter.ts +22 -0
  1587. package/icc-x-api/filters/AllDevicesFilter.ts +23 -0
  1588. package/icc-x-api/filters/AllHealthcarePartiesFilter.ts +23 -0
  1589. package/icc-x-api/filters/AllUsersFilter.ts +23 -0
  1590. package/icc-x-api/filters/CodeByIdsFilter.ts +25 -0
  1591. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.ts +28 -0
  1592. package/icc-x-api/filters/CodeIdsByTypeCodeVersionIntervalFilter.ts +30 -0
  1593. package/icc-x-api/filters/ComplementFilter.ts +13 -0
  1594. package/icc-x-api/filters/ConstantFilter.ts +9 -0
  1595. package/icc-x-api/filters/ContactByHcPartyFilter.ts +25 -0
  1596. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.ts +32 -0
  1597. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.ts +32 -0
  1598. package/icc-x-api/filters/ContactByServiceIdsFilter.ts +24 -0
  1599. package/icc-x-api/filters/DeviceByHcPartyFilter.ts +26 -0
  1600. package/icc-x-api/filters/DeviceByIdsFilter.ts +26 -0
  1601. package/icc-x-api/filters/HealthElementByHcPartyFilter.ts +24 -0
  1602. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.ts +26 -0
  1603. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.ts +27 -0
  1604. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.ts +29 -0
  1605. package/icc-x-api/filters/HealthElementByIdsFilter.ts +24 -0
  1606. package/icc-x-api/filters/HealthcarePartyByIdsFilter.ts +24 -0
  1607. package/icc-x-api/filters/IntersectionFilter.ts +11 -0
  1608. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.ts +27 -0
  1609. package/icc-x-api/filters/MaintenanceTaskAfterDateFilter.ts +24 -0
  1610. package/icc-x-api/filters/MaintenanceTaskByHcPartyAndIdentifiersFilter.ts +26 -0
  1611. package/icc-x-api/filters/MaintenanceTaskByHcPartyAndTypeFilter.ts +25 -0
  1612. package/icc-x-api/filters/MaintenanceTaskByIdsFilter.ts +24 -0
  1613. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.ts +25 -0
  1614. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.ts +25 -0
  1615. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.ts +26 -0
  1616. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.ts +25 -0
  1617. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.ts +25 -0
  1618. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.ts +26 -0
  1619. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.ts +25 -0
  1620. package/icc-x-api/filters/PatientByHcPartyFilter.ts +24 -0
  1621. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.ts +19 -0
  1622. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.ts +25 -0
  1623. package/icc-x-api/filters/PatientByHcPartyNameFilter.ts +25 -0
  1624. package/icc-x-api/filters/PatientByIdsFilter.ts +24 -0
  1625. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.ts +28 -0
  1626. package/icc-x-api/filters/ServiceByHcPartyFilter.ts +24 -0
  1627. package/icc-x-api/filters/ServiceByHcPartyHealthElementIdsFilter.ts +25 -0
  1628. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.ts +26 -0
  1629. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.ts +31 -0
  1630. package/icc-x-api/filters/ServiceByIdsFilter.ts +24 -0
  1631. package/icc-x-api/filters/ServiceBySecretForeignKeys.ts +25 -0
  1632. package/icc-x-api/filters/UnionFilter.ts +10 -0
  1633. package/icc-x-api/filters/UserByIdsFilter.ts +24 -0
  1634. package/icc-x-api/filters/UserByNameEmailPhoneFilter.ts +24 -0
  1635. package/icc-x-api/filters/UsersByPatientIdFilter.ts +25 -0
  1636. package/icc-x-api/filters/filters.ts +342 -0
  1637. package/icc-x-api/icc-accesslog-x-api.ts +332 -0
  1638. package/icc-x-api/icc-bekmehr-x-api.ts +316 -0
  1639. package/icc-x-api/icc-calendar-item-x-api.ts +292 -0
  1640. package/icc-x-api/icc-classification-x-api.ts +99 -0
  1641. package/icc-x-api/icc-code-x-api.ts +131 -0
  1642. package/icc-x-api/icc-contact-x-api.ts +965 -0
  1643. package/icc-x-api/icc-crypto-x-api.ts +1486 -0
  1644. package/icc-x-api/icc-doctemplate-x-api.ts +100 -0
  1645. package/icc-x-api/icc-document-x-api.ts +763 -0
  1646. package/icc-x-api/icc-form-x-api.ts +176 -0
  1647. package/icc-x-api/icc-hcparty-x-api.ts +148 -0
  1648. package/icc-x-api/icc-helement-x-api.ts +409 -0
  1649. package/icc-x-api/icc-invoice-x-api.ts +197 -0
  1650. package/icc-x-api/icc-maintenance-task-x-api.ts +228 -0
  1651. package/icc-x-api/icc-message-x-api.ts +83 -0
  1652. package/icc-x-api/icc-patient-x-api.ts +1234 -0
  1653. package/icc-x-api/icc-receipt-x-api.ts +103 -0
  1654. package/icc-x-api/icc-time-table-x-api.ts +61 -0
  1655. package/icc-x-api/icc-user-x-api.ts +27 -0
  1656. package/icc-x-api/index.ts +165 -0
  1657. package/icc-x-api/rsrc/codelng.ts +8 -0
  1658. package/icc-x-api/rsrc/contact.i18n.ts +110 -0
  1659. package/icc-x-api/rsrc/icd10.ts +113 -0
  1660. package/icc-x-api/rsrc/icpc2.ts +22 -0
  1661. package/icc-x-api/utils/asn1-packer.ts +87 -0
  1662. package/icc-x-api/utils/asn1-parser.ts +151 -0
  1663. package/icc-x-api/utils/binary-utils.ts +163 -0
  1664. package/icc-x-api/utils/code-util.ts +39 -0
  1665. package/icc-x-api/utils/formatting-util.ts +220 -0
  1666. package/icc-x-api/utils/functional-util.ts +4 -0
  1667. package/icc-x-api/utils/hcp-util.ts +122 -0
  1668. package/icc-x-api/utils/index.ts +6 -0
  1669. package/icc-x-api/utils/insurability-util.ts +54 -0
  1670. package/icc-x-api/utils/net-utils.ts +243 -0
  1671. package/icc-x-api/utils/person-util.ts +29 -0
  1672. package/icc-x-api/utils/uuid-encoder.ts +120 -0
  1673. package/index.ts +8 -0
  1674. package/node-compat.ts +11 -0
  1675. package/package-lock.json +26824 -0
  1676. package/package.json +82 -3
  1677. package/sonar-project.properties +20 -0
  1678. package/test/icc-api/api/IccUserApi.ts +17 -0
  1679. package/test/icc-api/model/modelHelpersTest.ts +54 -0
  1680. package/test/icc-x-api/crypto/concurrency.ts +33 -0
  1681. package/test/icc-x-api/crypto/crypto-utils.ts +102 -0
  1682. package/test/icc-x-api/crypto/cryptoTest.ts +252 -0
  1683. package/test/icc-x-api/crypto/shamir.ts +65 -0
  1684. package/test/icc-x-api/filters/filters.ts +60 -0
  1685. package/test/icc-x-api/icc-contact-x-api.ts +202 -0
  1686. package/test/icc-x-api/icc-helement-x-api-test.ts +161 -0
  1687. package/test/icc-x-api/icc-maintenance-task-x-api-test.ts +212 -0
  1688. package/test/icc-x-api/icc-patient-x-api-test.ts +76 -0
  1689. package/test/icc-x-api/patient-user.ts +155 -0
  1690. package/test/mocha.opts +1 -0
  1691. package/test/utils/test_utils.ts +12 -0
  1692. package/tsconfig.json +27 -0
  1693. package/icc-api/api/IccAuthApi.d.ts +0 -45
  1694. package/icc-api/api/IccAuthApi.js +0 -86
  1695. package/icc-api/api/IccAuthApi.js.map +0 -1
@@ -0,0 +1,1486 @@
1
+ import {IccDeviceApi, IccHcpartyApi, IccPatientApi} from '../icc-api'
2
+ import {AESUtils} from './crypto/AES'
3
+ import {RSAUtils} from './crypto/RSA'
4
+ import {UtilsClass} from './crypto/utils'
5
+ import {ShamirClass} from './crypto/shamir'
6
+
7
+ import * as _ from 'lodash'
8
+ import * as models from '../icc-api/model/models'
9
+ import {Delegation, Device, HealthcareParty, Patient, User} from '../icc-api/model/models'
10
+ import {b2a, b64_2uas, hex2ua, string2ua, ua2hex, ua2string, ua2utf8, utf8_2ua} from './utils/binary-utils'
11
+
12
+ interface DelegatorAndKeys {
13
+ delegatorId: string
14
+ key: CryptoKey
15
+ rawKey: string
16
+ }
17
+
18
+ type CachedDataOwner =
19
+ | {
20
+ type: 'patient'
21
+ dataOwner: Patient
22
+ }
23
+ | {
24
+ type: 'device'
25
+ dataOwner: Device
26
+ }
27
+ | {
28
+ type: 'hcp'
29
+ dataOwner: HealthcareParty
30
+ }
31
+
32
+ export class IccCryptoXApi {
33
+ get crypto(): Crypto {
34
+ return this._crypto
35
+ }
36
+ get shamir(): ShamirClass {
37
+ return this._shamir
38
+ }
39
+ get utils(): UtilsClass {
40
+ return this._utils
41
+ }
42
+ get RSA(): RSAUtils {
43
+ return this._RSA
44
+ }
45
+ get AES(): AESUtils {
46
+ return this._AES
47
+ }
48
+
49
+ hcPartyKeysCache: {
50
+ [key: string]: DelegatorAndKeys
51
+ } = {}
52
+
53
+ //[delegateId][delegatorId] = delegateEncryptedHcPartyKey
54
+ //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)
55
+ hcPartyKeysRequestsCache: {
56
+ [delegateId: string]: Promise<{ [delegatorId: string]: string }>
57
+ } = {}
58
+
59
+ cacheLastDeletionTimestamp: number | undefined = undefined
60
+
61
+ dataOwnerCache: { [key: string]: Promise<CachedDataOwner> } = {}
62
+
63
+ emptyHcpCache(hcpartyId: string) {
64
+ delete this.hcPartyKeysRequestsCache[hcpartyId]
65
+ delete this.dataOwnerCache[hcpartyId]
66
+ delete this.dataOwnerCache[hcpartyId]
67
+ }
68
+
69
+ /**
70
+ * Gets all delegate encrypted HcParty keys of the delegate with the given `delegateHcPartyId`, and for each key the delegator id
71
+ * If the keys are not cached, they are retrieved from the backend.
72
+ *
73
+ * @param delegateHcPartyId The Health Care Party id
74
+ * @returns \{delegatorId: delegateEncryptedHcPartyKey\}
75
+ */
76
+ private getHcPartyKeysForDelegate(
77
+ //TODO: suggested name: getAllEncryptedHcPKeysOfDelegate
78
+ delegateHcPartyId: string
79
+ ): Promise<{ [delegatorId: string]: string }> {
80
+ return (
81
+ this.hcPartyKeysRequestsCache[delegateHcPartyId] ||
82
+ (this.hcPartyKeysRequestsCache[delegateHcPartyId] = this.forceGetHcPartyKeysForDelegate(delegateHcPartyId))
83
+ )
84
+ }
85
+
86
+ private forceGetHcPartyKeysForDelegate(delegateHcPartyId: string): Promise<{ [delegatorId: string]: string } | {}> {
87
+ return Promise.all([
88
+ this.patientBaseApi.getPatientHcPartyKeysForDelegate(delegateHcPartyId).catch(() => {}),
89
+ this.hcpartyBaseApi.getHcPartyKeysForDelegate(delegateHcPartyId).catch(() => {}),
90
+ ]).then(([a, b]) => Object.assign({}, a, b))
91
+ }
92
+
93
+ keychainLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain.'
94
+ keychainValidityDateLocalStoreIdPrefix = 'org.taktik.icure.ehealth.keychain-date.'
95
+ hcpPreferenceKeyEhealthCert = 'eHealthCRTCrypt'
96
+ hcpPreferenceKeyEhealthCertDate = 'eHealthCRTDate'
97
+
98
+ private hcpartyBaseApi: IccHcpartyApi
99
+ private patientBaseApi: IccPatientApi
100
+ private deviceBaseApi: IccDeviceApi
101
+ private _crypto: Crypto
102
+
103
+ private generateKeyConcurrencyMap: { [key: string]: PromiseLike<HealthcareParty | Patient> }
104
+
105
+ private _AES: AESUtils
106
+ private _RSA: RSAUtils
107
+ private _utils: UtilsClass
108
+ private _shamir: ShamirClass
109
+
110
+ constructor(
111
+ host: string,
112
+ headers: { [key: string]: string },
113
+ hcpartyBaseApi: IccHcpartyApi, //Init with a hcparty x api for better performances
114
+ patientBaseApi: IccPatientApi,
115
+ deviceBaseApi: IccDeviceApi,
116
+ crypto: Crypto = typeof window !== 'undefined' ? window.crypto : typeof self !== 'undefined' ? self.crypto : ({} as Crypto)
117
+ ) {
118
+ this.hcpartyBaseApi = hcpartyBaseApi
119
+ this.patientBaseApi = patientBaseApi
120
+ this.deviceBaseApi = deviceBaseApi
121
+ this._crypto = crypto
122
+ this.generateKeyConcurrencyMap = {}
123
+
124
+ this._AES = new AESUtils(crypto)
125
+ this._RSA = new RSAUtils(crypto)
126
+ this._utils = new UtilsClass()
127
+ this._shamir = new ShamirClass(crypto)
128
+ }
129
+
130
+ randomUuid() {
131
+ return ((1e7).toString() + -1e3 + -4e3 + -8e3 + -1e11).replace(
132
+ /[018]/g,
133
+ (c) => (Number(c) ^ ((this._crypto.getRandomValues(new Uint8Array(1))! as Uint8Array)[0] & (15 >> (Number(c) / 4)))).toString(16) //Keep that inlined or you will loose the random
134
+ )
135
+ }
136
+
137
+ sha256(data: ArrayBuffer | Uint8Array) {
138
+ return this._crypto.subtle.digest('SHA-256', data)
139
+ }
140
+
141
+ encryptedShamirRSAKey(hcp: HealthcareParty, notaries: Array<HealthcareParty>, threshold?: number): Promise<HealthcareParty> {
142
+ return this._RSA.loadKeyPairImported(hcp.id!).then((keyPair) =>
143
+ this._RSA.exportKey(keyPair.privateKey, 'pkcs8').then((exportedKey) => {
144
+ const privateKey = exportedKey as ArrayBuffer
145
+ const nLen = notaries.length
146
+ const shares = nLen == 1 ? [privateKey] : this._shamir.share(ua2hex(privateKey), nLen, threshold || nLen).map((share) => hex2ua(share))
147
+
148
+ return _.reduce(
149
+ notaries,
150
+ (queue, notary, idx) => {
151
+ return queue.then(async (hcp) => {
152
+ const hcParty = hcp.hcPartyKeys![notary.id!] ? hcp : ((await this.generateKeyForDelegate(hcp.id!, notary.id!)) as HealthcareParty)
153
+
154
+ try {
155
+ const importedAESHcPartyKey = await this.decryptHcPartyKey(hcParty.id!, notary.id!, hcParty.hcPartyKeys![notary.id!][1], false)
156
+ const encryptedShamirPartition = await this.AES.encrypt(importedAESHcPartyKey.key, shares[idx])
157
+
158
+ hcParty.privateKeyShamirPartitions = hcParty.privateKeyShamirPartitions || {}
159
+ hcParty.privateKeyShamirPartitions[notary.id!] = ua2hex(encryptedShamirPartition)
160
+ } catch (e) {
161
+ console.log('Error during encryptedShamirRSAKey', notary.id, e)
162
+ }
163
+ return hcParty
164
+ })
165
+ },
166
+ Promise.resolve(hcp)
167
+ )
168
+ })
169
+ )
170
+ }
171
+
172
+ /* Reconstructs the hcp's private key from the notaries' shamir shares and stores it in localstorage.
173
+ The retrieval procedure of the shares is not designed or implemented yet. Therefore, it currently only
174
+ works if the private key of the notaries are stored in local storage (e.g. notaries = [hcp parent]).
175
+ * @param hcp : the hcp whose key we want to reconstruct
176
+ * @param notaries : holders of the shamir shares
177
+ **/
178
+ async decryptedShamirRSAKey(hcp: HealthcareParty, notaries: Array<HealthcareParty>): Promise<void> {
179
+ try {
180
+ const nLen = notaries.length
181
+ let decryptedPrivatedKey
182
+ if (nLen == 1) {
183
+ const importedAESHcPartyKey = await this.decryptHcPartyKey(hcp.id!, notaries[0].id!, hcp.hcPartyKeys![notaries[0].id!][1], false)
184
+ const cryptedPrivatedKey = hcp.privateKeyShamirPartitions![notaries[0].id!]
185
+ decryptedPrivatedKey = ua2hex(await this.AES.decrypt(importedAESHcPartyKey.key, hex2ua(cryptedPrivatedKey)))
186
+ } else {
187
+ const decryptedShares: string[] = await _.reduce(
188
+ notaries,
189
+ (queue, notary) => {
190
+ return queue.then(async (shares: string[]) => {
191
+ try {
192
+ // TODO: now, we get the encrypted shares in db and decrypt them. This assumes that the
193
+ // the notaries' private keys are in localstorage. We should implement a way for the notaries to
194
+ // give hcp the decrypted shares without having to also share their private keys.
195
+ const importedAESHcPartyKey = await this.decryptHcPartyKey(hcp.id!, notary.id!, hcp.hcPartyKeys![notary.id!][1], false)
196
+ const encryptedShare = hcp.privateKeyShamirPartitions![notary.id!]
197
+ const decryptedShamirPartition = ua2hex(await this.AES.decrypt(importedAESHcPartyKey.key, hex2ua(encryptedShare)))
198
+ shares.push(decryptedShamirPartition)
199
+ } catch (e) {
200
+ console.log('Error during encryptedShamirRSAKey', notary.id, e)
201
+ }
202
+ return shares
203
+ })
204
+ },
205
+ Promise.resolve([] as string[])
206
+ )
207
+
208
+ decryptedPrivatedKey = this._shamir.combine(decryptedShares)
209
+ }
210
+
211
+ const importedPrivateKey = await this.RSA.importKey('pkcs8', hex2ua(decryptedPrivatedKey), ['decrypt'])
212
+ const importedPublicKey = await this.RSA.importKey('spki', hex2ua(hcp.publicKey!), ['encrypt'])
213
+
214
+ const exportedKeyPair = await this.RSA.exportKeys({ publicKey: importedPublicKey, privateKey: importedPrivateKey }, 'jwk', 'jwk')
215
+ this.RSA.storeKeyPair(hcp.id!, exportedKeyPair)
216
+ } catch (e) {
217
+ console.log('Cannot decrypt shamir RSA key')
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Gets the decryptedHcPartyKey for the given `encryptedHcPartyKey`
223
+ *
224
+ * If the decrypted key exists in the cache, retrieves it from there.
225
+ * Otherwise, decrypts it using the RSA key of the delegator or delegate (depending on the value of `encryptedForDelegator`)
226
+ * @param delegatorId : the id of the delegator HcP
227
+ * @param delegateHcPartyId : the id of the delegate HcP
228
+ * @param encryptedHcPartyKey : can be delegatorEncryptedHcPartyKey or delegateEncryptedHcPartyKey (depending on the value of `encryptedForDelegator`)
229
+ * @param encryptedForDelegator : default false - for the `encryptedHcPartyKey` RSA encrypted for delegate; true for the `encryptedHcPartyKey` RSA encrypted for delegator;
230
+ * @returns - **delegatorId** the input param `delegatorId`
231
+ * - **key** the decrypted `encryptedHcPartyKey`
232
+ */
233
+ decryptHcPartyKey(
234
+ delegatorId: string,
235
+ delegateHcPartyId: string,
236
+ encryptedHcPartyKey: string,
237
+ encryptedForDelegator = false //TODO: suggestion: break this into 2 separate methods: decryptDelegatorEncryptedHcPartyKey() and decryptDelegateEncryptedHcPartyKey()
238
+ ): Promise<DelegatorAndKeys> {
239
+ const cacheKey = delegatorId + '|' + delegateHcPartyId + '|' + (encryptedForDelegator ? '->' : '<-')
240
+ const res = this.hcPartyKeysCache[cacheKey]
241
+ const hcPartyKeyOwner = encryptedForDelegator ? delegatorId : delegateHcPartyId
242
+ if (res) {
243
+ return Promise.resolve(res)
244
+ } else {
245
+ const keyPair = this._RSA.rsaKeyPairs[hcPartyKeyOwner]
246
+ return (
247
+ keyPair
248
+ ? Promise.resolve(keyPair)
249
+ : Promise.resolve(this._RSA.loadKeyPairNotImported(hcPartyKeyOwner)).then((keyPairInJwk) =>
250
+ this.cacheKeyPair(keyPairInJwk, hcPartyKeyOwner)
251
+ )
252
+ )
253
+ .then((keyPair) => this._RSA.decrypt(keyPair.privateKey, hex2ua(encryptedHcPartyKey)))
254
+ .catch((e) => {
255
+ console.log(
256
+ `Cannot decrypt RSA encrypted AES HcPartyKey from ${delegatorId} to ${delegateHcPartyId} as ${
257
+ encryptedForDelegator ? 'delegator' : 'delegate'
258
+ }`
259
+ )
260
+ throw e
261
+ })
262
+ .then((decryptedHcPartyKey) =>
263
+ this._AES.importKey('raw', decryptedHcPartyKey).then((decryptedImportedHcPartyKey) => ({
264
+ decryptedHcPartyKey,
265
+ decryptedImportedHcPartyKey,
266
+ }))
267
+ )
268
+ .then(
269
+ ({ decryptedHcPartyKey, decryptedImportedHcPartyKey }) =>
270
+ (this.hcPartyKeysCache[cacheKey] = {
271
+ delegatorId: delegatorId,
272
+ key: decryptedImportedHcPartyKey,
273
+ rawKey: ua2hex(new Uint8Array(decryptedHcPartyKey)),
274
+ })
275
+ )
276
+ }
277
+ }
278
+ /**
279
+ * Cache the RSA private/public key pair for the HcP with the given id `hcPartyKeyOwner`
280
+ */
281
+ cacheKeyPair(keyPairInJwk: { publicKey: JsonWebKey | ArrayBuffer; privateKey: JsonWebKey | ArrayBuffer }, hcPartyKeyOwner: string) {
282
+ if (!keyPairInJwk) {
283
+ throw 'No RSA private key for Healthcare party(' + hcPartyKeyOwner + ').'
284
+ }
285
+ return this._RSA.importKeyPair('jwk', keyPairInJwk.privateKey, 'jwk', keyPairInJwk.publicKey).then((importedKeyPair) => {
286
+ return (this._RSA.rsaKeyPairs[hcPartyKeyOwner] = importedKeyPair)
287
+ })
288
+ }
289
+
290
+ /**
291
+ * Gets the secret ID (SFKs) that should be used in the prescribed context (condfidential or not) from decrypted SPKs of the given `parent`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents
292
+ * @param parent : the object of which delegations (SPKs) to decrypt
293
+ * @param hcpartyId : the id of the delegate HcP
294
+ * @param confidential : wether the key is going to be used for a confidential piece or data or not
295
+ * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates
296
+ * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HcP id of the top parent in the hierarchy (even if that parent has no delegations)
297
+ */
298
+ extractPreferredSfk(parent: models.Patient | models.Message, hcpartyId: string, confidential: boolean) {
299
+ return this.extractSFKsHierarchyFromDelegations(parent, hcpartyId).then((secretForeignKeys) => {
300
+ const keys = secretForeignKeys
301
+ .filter(({ extractedKeys }) => extractedKeys.length > 0)
302
+ .filter((x, idx) => (confidential ? x.hcpartyId === hcpartyId : idx === 0))[0]
303
+ return (
304
+ (keys &&
305
+ (confidential
306
+ ? keys.extractedKeys.find(
307
+ (k) => !secretForeignKeys.some(({ extractedKeys, hcpartyId: parentHcpId }) => hcpartyId !== parentHcpId && extractedKeys.includes(k))
308
+ )
309
+ : keys.extractedKeys[0])) ||
310
+ null
311
+ )
312
+ })
313
+ }
314
+
315
+ /**
316
+ * Gets an array of decrypted HcPartyKeys, shared between the delegate with ID `delegateHcPartyId` and the delegators in `delegatorsHcPartyIdsSet`
317
+ *
318
+ * 1. Get the keys for the delegateHealthCareParty (cache/backend).
319
+ * 2. For each key in the delegators, decrypt it with the delegate's private key
320
+ * 3. Filter out undefined keys and return them
321
+ *
322
+ * @param delegatorsHcPartyIdsSet array of delegator HcP IDs that could have delegated something to the HcP with ID `delegateHcPartyId`
323
+ * @param delegateHcPartyId the HcP for which the HcPs with IDs in `delegatorsHcPartyIdsSet` could have delegated something
324
+ * @param minCacheDurationInSeconds The minimum cache duration
325
+ * @returns - **delegatorId** : the id of the delegator HcP that shares the **key** with the `delegateHcPartyId`
326
+ * - **key** the decrypted HcPartyKey, shared between **delegatorId** and `delegateHcPartyId`
327
+ */
328
+ decryptAndImportAesHcPartyKeysForDelegators(
329
+ //TODO: suggested name: getDecryptedHcPKeysSharedBetweenDelegateAndDelegators
330
+ delegatorsHcPartyIdsSet: Array<string>,
331
+ delegateHcPartyId: string,
332
+ minCacheDurationInSeconds: number = 60
333
+ ): Promise<Array<DelegatorAndKeys>> {
334
+ return (
335
+ this.hcPartyKeysRequestsCache[delegateHcPartyId] ||
336
+ (this.hcPartyKeysRequestsCache[delegateHcPartyId] = this.getHcPartyKeysForDelegate(delegateHcPartyId))
337
+ ).then((delegatorIDsWithDelegateEncryptedHcPartyKey: { [delegatorId: string]: string }) => {
338
+ // [key: delegatorId] = delegateEncryptedHcPartyKey
339
+ // For each delegatorId, obtain the AES key (decrypted HcParty Key) shared with the delegate, decrypted by the delegate
340
+ return Promise.all(
341
+ delegatorsHcPartyIdsSet.map((delegatorId: string) => {
342
+ if (!delegatorIDsWithDelegateEncryptedHcPartyKey[delegatorId]) {
343
+ return undefined
344
+ }
345
+ return this.decryptHcPartyKey(delegatorId, delegateHcPartyId, delegatorIDsWithDelegateEncryptedHcPartyKey[delegatorId]).catch(() => {
346
+ console.log(`failed to decrypt hcPartyKey from ${delegatorId} to ${delegateHcPartyId}`)
347
+ return undefined
348
+ })
349
+ })
350
+ ).then((hcPartyKeys) => {
351
+ const filteredHcPartyKeys = hcPartyKeys.filter(<T>(hcPartyKey: T | undefined): hcPartyKey is T => !!hcPartyKey)
352
+
353
+ if (filteredHcPartyKeys.length > 0) {
354
+ return filteredHcPartyKeys
355
+ }
356
+
357
+ const nowTimestamp = +new Date()
358
+ if (!this.cacheLastDeletionTimestamp || (nowTimestamp - this.cacheLastDeletionTimestamp) / 1000 >= minCacheDurationInSeconds) {
359
+ delete this.hcPartyKeysRequestsCache[delegateHcPartyId]
360
+ this.cacheLastDeletionTimestamp = nowTimestamp
361
+ return this.decryptAndImportAesHcPartyKeysForDelegators(delegatorsHcPartyIdsSet, delegateHcPartyId)
362
+ }
363
+
364
+ return filteredHcPartyKeys
365
+ })
366
+ })
367
+ }
368
+
369
+ /**
370
+ * Gets an array of decrypted HcPartyKeys from the given `delegations`, that are shared with / can be decrypted by the HcP with the given `healthcarePartyId` (or by its parents when `fallbackOnParent` is true)
371
+ *
372
+ * 1. Checks whether the delegations' object has a delegation for the
373
+ * given healthCarePartyId.
374
+ * 2. Enumerates all the delegators (delegation.owner) present in
375
+ * the delegations.
376
+ * 3. Decrypt's delegators' keys and returns them.
377
+ *
378
+ * @param dataOwnerId : the id of the delegate HCP
379
+ * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates
380
+ * @param fallbackOnParent default true; use parent's healthCarePartyId in case there's no delegation for the `healthcarePartyId`
381
+ * @returns - **delegatorId** : the id of the delegator HcP that shares the **key** with the `healthcarePartyId`
382
+ * - **key** the decrypted HcPartyKey, shared between **delegatorId** and `healthcarePartyId`
383
+ */
384
+ decryptAndImportAesHcPartyKeysInDelegations(
385
+ //TODO: suggested name: getDecryptedHcPKeysOfDelegateAndParentsFromGenericDelegations
386
+ dataOwnerId: string,
387
+ delegations: { [key: string]: Array<models.Delegation> },
388
+ fallbackOnParent = true
389
+ ): Promise<Array<DelegatorAndKeys>> {
390
+ const delegatorIds: { [key: string]: boolean } = {}
391
+ const delegationsArray = delegations[dataOwnerId]
392
+ if (delegationsArray && delegationsArray.length) {
393
+ delegationsArray.forEach(function (delegationItem) {
394
+ delegatorIds[delegationItem.owner!] = true //TODO: why is set to true?
395
+ })
396
+ } else if (fallbackOnParent) {
397
+ return this.getDataOwner(dataOwnerId).then(({ dataOwner: hcp }) =>
398
+ (hcp as any).parentId ? this.decryptAndImportAesHcPartyKeysInDelegations((hcp as any).parentId, delegations) : Promise.resolve([])
399
+ )
400
+ }
401
+
402
+ return this.decryptAndImportAesHcPartyKeysForDelegators(Object.keys(delegatorIds), dataOwnerId)
403
+ }
404
+
405
+ /**
406
+ * Retreive the owner HealthCareParty key and use it to encrypt
407
+ * both the delegations (createdObject.id) and the cryptedForeignKeys
408
+ * (parentObject.id), and returns them in an object.
409
+ */
410
+ initObjectDelegations(
411
+ createdObject: any,
412
+ parentObject: any,
413
+ ownerId: string,
414
+ secretForeignKeyOfParent: string | null
415
+ ): Promise<{
416
+ delegations: any
417
+ cryptedForeignKeys: any
418
+ secretForeignKeys: any[]
419
+ secretId: string
420
+ }> {
421
+ this.throwDetailedExceptionForInvalidParameter('createdObject.id', createdObject.id, 'initObjectDelegations', arguments)
422
+
423
+ if (parentObject) this.throwDetailedExceptionForInvalidParameter('parentObject.id', parentObject.id, 'initObjectDelegations', arguments)
424
+
425
+ const secretId = this.randomUuid()
426
+ return this.getDataOwner(ownerId)
427
+ .then(({ dataOwner: owner }) => {
428
+ return this.getOrCreateHcPartyKey(owner, ownerId)
429
+ })
430
+ .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, ownerId, encryptedHcPartyKey, true))
431
+ .then((importedAESHcPartyKey) =>
432
+ Promise.all([
433
+ this._AES.encrypt(
434
+ importedAESHcPartyKey.key,
435
+ string2ua(createdObject.id + ':' + secretId).buffer as ArrayBuffer,
436
+ importedAESHcPartyKey.rawKey
437
+ ),
438
+ parentObject
439
+ ? this._AES.encrypt(
440
+ importedAESHcPartyKey.key,
441
+ string2ua(createdObject.id + ':' + parentObject.id).buffer as ArrayBuffer,
442
+ importedAESHcPartyKey.rawKey
443
+ )
444
+ : Promise.resolve(null),
445
+ ])
446
+ )
447
+ .then((encryptedDelegationAndSecretForeignKey) => ({
448
+ delegations: _.fromPairs([
449
+ [
450
+ ownerId,
451
+ [
452
+ {
453
+ owner: ownerId,
454
+ delegatedTo: ownerId,
455
+ key: ua2hex(encryptedDelegationAndSecretForeignKey[0]!),
456
+ },
457
+ ],
458
+ ],
459
+ ]),
460
+ cryptedForeignKeys:
461
+ (encryptedDelegationAndSecretForeignKey[1] &&
462
+ _.fromPairs([
463
+ [
464
+ ownerId,
465
+ [
466
+ {
467
+ owner: ownerId,
468
+ delegatedTo: ownerId,
469
+ key: ua2hex(encryptedDelegationAndSecretForeignKey[1]!),
470
+ },
471
+ ],
472
+ ],
473
+ ])) ||
474
+ {},
475
+ secretForeignKeys: (secretForeignKeyOfParent && [secretForeignKeyOfParent]) || [],
476
+ secretId: secretId,
477
+ }))
478
+ }
479
+ /**
480
+ * Gets updated instances of SPKs and CKFs for the child object `modifiedObject`.
481
+ * These updated SPKs and CKFs contain new SPKs/CFKs to provide delegation from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`
482
+ *
483
+ * 1. if `secretIdOfModifiedObject` is not provided, the method will throw an exception; this `secretIdOfModifiedObject` is used to generate a new delegation (SPK) in step 3;
484
+ * the `secretIdOfModifiedObject` is returned, unmodified, as `secretId`
485
+ * 2. if the owner (delegator) did not perform a delegation to the delegate, then this HcP delegation (creation of a new HcPKey) is performed now
486
+ * 3. creates a new delegation (Secret Primary Keys) on the `modifiedObject` encrypted with the HcPKey from owner to the delegate;
487
+ * 4. if `parentObject` != null, creates a new CFK on the `modifiedObject` encrypted with the HcPKey from owner to the delegate;
488
+ * 5. this new delegation (from step 3) is added to the list of existing delegations (Secret Primary Keys) on the `modifiedObject` for the delegate given by `delegateId`
489
+ * 6. if the CFK (from step 4) can be created, this new CFK is added to the list of existing CFKs on the `modifiedObject` for the delegate given by `delegateId`
490
+ * 7. then some duplicates delegations (SPKs) and CKFs are removed
491
+ *
492
+ * @param modifiedObject : the object of which SPKs and CFKs will be cloned, the clones will be modified and then used as returned values ; it's a 'child' of `parentObject`; will NOT be mutated
493
+ * @param parentObject : will NOT be mutated
494
+ * @param ownerId : the HcP id of the delegator
495
+ * @param delegateId : the HcP id of the delegate
496
+ * @param secretIdOfModifiedObject : the secret id used in the child object to generate its SPK
497
+ * @returns - **delegations** existing delegations (SPKs) of the `modifiedObject`, appended with results from step 5
498
+ * - **cryptedForeignKeys** existing CFKs of the `modifiedObject`, appended with results from steps 6
499
+ * - **secretId** which is the given input parameter `secretIdOfModifiedObject`
500
+ */
501
+
502
+ extendedDelegationsAndCryptedForeignKeys(
503
+ //TODO: suggested name: getExtendedChildObjectSPKandCFKwithDelegationFromDelegatorToDelegate
504
+ modifiedObject: any | null,
505
+ parentObject: any | null,
506
+ ownerId: string,
507
+ delegateId: string,
508
+ secretIdOfModifiedObject: string | null
509
+ ): Promise<{
510
+ delegations: { [key: string]: Array<models.Delegation> }
511
+ cryptedForeignKeys: { [key: string]: Array<models.Delegation> }
512
+ secretId: string | null //TODO: why input parameter secretIdOfModifiedObject is returned?
513
+ }> {
514
+ this.throwDetailedExceptionForInvalidParameter('modifiedObject.id', modifiedObject.id, 'extendedDelegationsAndCryptedForeignKeys', arguments) //modifiedObject should never be null
515
+
516
+ if (parentObject)
517
+ this.throwDetailedExceptionForInvalidParameter('parentObject.id', parentObject.id, 'extendedDelegationsAndCryptedForeignKeys', arguments)
518
+
519
+ this.throwDetailedExceptionForInvalidParameter(
520
+ 'secretIdOfModifiedObject',
521
+ secretIdOfModifiedObject,
522
+ 'extendedDelegationsAndCryptedForeignKeys',
523
+ arguments
524
+ )
525
+
526
+ return this.getDataOwner(ownerId)
527
+ .then(({ dataOwner: owner }) => this.getOrCreateHcPartyKey(owner, delegateId))
528
+ .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, delegateId, encryptedHcPartyKey, true))
529
+ .then((importedAESHcPartyKey) =>
530
+ Promise.all([
531
+ Promise.all(
532
+ ((modifiedObject.delegations || {})[delegateId] || []).map(
533
+ (d: Delegation) =>
534
+ (d.key &&
535
+ d.owner === ownerId &&
536
+ this._AES.decrypt(importedAESHcPartyKey.key, hex2ua(d.key), importedAESHcPartyKey.rawKey).catch(() => {
537
+ console.log(
538
+ `Cannot decrypt delegation from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`,
539
+ modifiedObject
540
+ )
541
+ return null
542
+ })) ||
543
+ Promise.resolve(null)
544
+ ) as Array<Promise<ArrayBuffer>>
545
+ ),
546
+
547
+ Promise.all(
548
+ ((modifiedObject.cryptedForeignKeys || {})[delegateId] || []).map(
549
+ (d: Delegation) =>
550
+ (d.key &&
551
+ d.owner === ownerId &&
552
+ this._AES.decrypt(importedAESHcPartyKey.key, hex2ua(d.key), importedAESHcPartyKey.rawKey).catch(() => {
553
+ console.log(
554
+ `Cannot decrypt cryptedForeignKeys from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`,
555
+ modifiedObject
556
+ )
557
+ return null
558
+ })) ||
559
+ Promise.resolve(null)
560
+ ) as Array<Promise<ArrayBuffer>>
561
+ ),
562
+
563
+ this._AES.encrypt(
564
+ importedAESHcPartyKey.key,
565
+ string2ua(modifiedObject.id + ':' + secretIdOfModifiedObject!).buffer as ArrayBuffer,
566
+ importedAESHcPartyKey.rawKey
567
+ ),
568
+
569
+ parentObject
570
+ ? this._AES.encrypt(
571
+ importedAESHcPartyKey.key,
572
+ string2ua(modifiedObject.id + ':' + parentObject.id).buffer as ArrayBuffer,
573
+ importedAESHcPartyKey.rawKey
574
+ )
575
+ : Promise.resolve(null),
576
+ ])
577
+ )
578
+ .then(([previousDecryptedDelegations, previousDecryptedCryptedForeignKeys, cryptedDelegation, cryptedForeignKey]) => {
579
+ //try to limit the extent of the modifications to the delegations by preserving the redundant delegation already present and removing duplicates
580
+ //For delegate delegateId, we create:
581
+ // 1. an array of objects { d : {owner,delegatedTo,encrypted(key)}} with one object for each existing delegation and the new key concatenated
582
+ // 2. an array of objects { k : decrypted(key)} with one object for the existing delegations and the new key concatenated
583
+ // We merge them to get one array of objects: { d: {owner,delegatedTo,encrypted(key)}, k: decrypted(key)}
584
+ const delegationCryptedDecrypted = _.merge(
585
+ ((modifiedObject.delegations || {})[delegateId] || []).map((d: Delegation) => ({
586
+ d,
587
+ })),
588
+ (previousDecryptedDelegations || []).map((dd) => (dd ? ua2string(dd) : null)).map((k) => ({ k }))
589
+ )
590
+ .filter(({ d, k }: { d: Delegation; k: string }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted
591
+ .map(({ d, k }: { d: Delegation; k: string }) => ({ d, k: k || this.randomUuid() })) // Use some unique id that ensures the delegation not created by us are going to be held
592
+ .concat([
593
+ {
594
+ d: {
595
+ owner: ownerId,
596
+ delegatedTo: delegateId,
597
+ key: ua2hex(cryptedDelegation!),
598
+ },
599
+ k: modifiedObject.id + ':' + secretIdOfModifiedObject!,
600
+ },
601
+ ])
602
+
603
+ const allDelegations = _.cloneDeep(modifiedObject.delegations)
604
+
605
+ //Only keep one version of the decrypted key
606
+ allDelegations[delegateId] = _.uniqBy(delegationCryptedDecrypted, (x: any) => x.k).map((x: any) => x.d)
607
+
608
+ const cryptedForeignKeysCryptedDecrypted = _.merge(
609
+ ((modifiedObject.cryptedForeignKeys || {})[delegateId] || []).map((d: Delegation) => ({
610
+ d,
611
+ })),
612
+ (previousDecryptedCryptedForeignKeys || []).map((dd) => (dd ? ua2string(dd) : null)).map((k) => ({ k }))
613
+ )
614
+ .filter(({ d, k }: { d: Delegation; k: string }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted
615
+ .map(({ d, k }: { d: Delegation; k: string }) => ({ d, k: k || this.randomUuid() })) // Use some unique id that ensures the delegation not created by us are going to be held
616
+ .concat(
617
+ cryptedForeignKey
618
+ ? [
619
+ {
620
+ d: {
621
+ owner: ownerId,
622
+ delegatedTo: delegateId,
623
+ key: ua2hex(cryptedForeignKey),
624
+ },
625
+ k: modifiedObject.id + ':' + parentObject.id!,
626
+ },
627
+ ]
628
+ : []
629
+ )
630
+
631
+ const allCryptedForeignKeys = _.cloneDeep(modifiedObject.cryptedForeignKeys || {})
632
+ if (cryptedForeignKeysCryptedDecrypted.length > 0) {
633
+ allCryptedForeignKeys[delegateId] = _.uniqBy(cryptedForeignKeysCryptedDecrypted, (x: any) => x.k).map((x: any) => x.d)
634
+ }
635
+
636
+ return {
637
+ delegations: allDelegations,
638
+ cryptedForeignKeys: allCryptedForeignKeys,
639
+ secretId: secretIdOfModifiedObject,
640
+ }
641
+ })
642
+ }
643
+
644
+ getOrCreateHcPartyKey(owner: HealthcareParty | Patient, delegateId: string) {
645
+ return !owner.hcPartyKeys![delegateId]
646
+ ? this.generateKeyForDelegate(owner.id!, delegateId).then((owner) => owner.hcPartyKeys![delegateId][0])
647
+ : Promise.resolve(owner.hcPartyKeys![delegateId][0])
648
+ }
649
+
650
+ /**
651
+ * Retrieve the owners HealthCareParty key, decrypt it, and
652
+ * use it to encrypt & initialize the "encryptionKeys" object
653
+ * and return it.
654
+ * @param createdObject
655
+ * @param ownerId
656
+ */
657
+ initEncryptionKeys(
658
+ createdObject: any,
659
+ ownerId: string
660
+ ): Promise<{
661
+ encryptionKeys: any
662
+ secretId: string
663
+ }> {
664
+ this.throwDetailedExceptionForInvalidParameter('createdObject.id', createdObject.id, 'initEncryptionKeys', arguments)
665
+
666
+ const secretId = this.randomUuid()
667
+ return this.getDataOwner(ownerId)
668
+ .then(({ dataOwner: owner }) => this.getOrCreateHcPartyKey(owner, ownerId))
669
+ .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, ownerId, encryptedHcPartyKey, true))
670
+ .then((importedAESHcPartyKey) => this._AES.encrypt(importedAESHcPartyKey.key, string2ua(createdObject.id + ':' + secretId)))
671
+ .then((encryptedEncryptionKeys) => ({
672
+ encryptionKeys: _.fromPairs([
673
+ [
674
+ ownerId,
675
+ [
676
+ {
677
+ owner: ownerId,
678
+ delegatedTo: ownerId,
679
+ key: ua2hex(encryptedEncryptionKeys),
680
+ },
681
+ ],
682
+ ],
683
+ ]),
684
+ secretId: secretId,
685
+ }))
686
+ }
687
+
688
+ /**
689
+ * Gets an updated instance of the EKs of `modifiedObject`.
690
+ * The updated EKs contain a new EK to provide delegation from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`.
691
+ * @param modifiedObject : the object of which EKs will be cloned, the clone will be used to append the new EK, and then used as return value; will NOT be mutated
692
+ * @param ownerId : delegator HcP id
693
+ * @param delegateId : delegate HcP id
694
+ * @param secretEncryptionKeyOfObject : secret Id for the EK (Content Encryption Key)
695
+ * @returns - **encryptionKeys** existing EKs of the `modifiedObject`, appended with a new EK item (owner: `ownerId`, delegatedTo: `delegateId`, encrypted key with secretId: `secretEncryptionKeyOfObject` )
696
+ * - **secretId** which is the given input parameter `secretEncryptionKeyOfObject`
697
+ */
698
+ appendEncryptionKeys(
699
+ //TODO: suggested name: getExtendedEKwithDelegationFromDelegatorToDelegate
700
+ modifiedObject: any,
701
+ ownerId: string,
702
+ delegateId: string,
703
+ secretEncryptionKeyOfObject: string
704
+ ): Promise<{
705
+ encryptionKeys: { [key: string]: Array<models.Delegation> }
706
+ secretId: string | null //secretEncryptionKeyOfObject is returned to avoid the need for a new decryption when chaining calls
707
+ }> {
708
+ this.throwDetailedExceptionForInvalidParameter('modifiedObject.id', modifiedObject.id, 'appendEncryptionKeys', arguments) //modifiedObject should never be null
709
+
710
+ this.throwDetailedExceptionForInvalidParameter('secretEncryptionKeyOfObject', secretEncryptionKeyOfObject, 'appendEncryptionKeys', arguments)
711
+
712
+ return this.getDataOwner(ownerId)
713
+ .then(({ dataOwner: owner }) => this.getOrCreateHcPartyKey(owner, delegateId))
714
+ .then((encryptedHcPartyKey) => this.decryptHcPartyKey(ownerId, delegateId, encryptedHcPartyKey, true))
715
+ .then((importedAESHcPartyKey) =>
716
+ Promise.all([
717
+ Promise.all(
718
+ ((modifiedObject.encryptionKeys || {})[delegateId] || []).map(
719
+ (d: Delegation) =>
720
+ (d.key &&
721
+ d.owner === ownerId &&
722
+ this._AES.decrypt(importedAESHcPartyKey.key, hex2ua(d.key), importedAESHcPartyKey.rawKey).catch(() => {
723
+ console.log(
724
+ `Cannot decrypt encryption key from ${d.owner} to ${d.delegatedTo} for object with id ${modifiedObject.id}:`,
725
+ modifiedObject
726
+ )
727
+ return null
728
+ })) ||
729
+ Promise.resolve(null)
730
+ ) as Array<Promise<ArrayBuffer>>
731
+ ),
732
+ this._AES.encrypt(importedAESHcPartyKey.key, string2ua(modifiedObject.id + ':' + secretEncryptionKeyOfObject)),
733
+ ])
734
+ )
735
+ .then(([previousDecryptedEncryptionKeys, encryptedEncryptionKey]) => {
736
+ //try to limit the extent of the modifications to the delegations by preserving the redundant encryption keys already present and removing duplicates
737
+ //For delegate delegateId, we create:
738
+ // 1. an array of objects { d : {owner,delegatedTo,encrypted(key)}} with one object for the existing encryption keys and the new key concatenated
739
+ // 2. an array of objects { k : decrypted(key)} with one object for the existing delegations and the new key concatenated
740
+ // We merge them to get one array of objects: { d: {owner,delegatedTo,encrypted(key)}, k: decrypted(key)}
741
+ const encryptionKeysCryptedDecrypted = _.merge(
742
+ ((modifiedObject.encryptionKeys || {})[delegateId] || []).map((d: Delegation) => ({
743
+ d,
744
+ })),
745
+ (previousDecryptedEncryptionKeys || []).map((dd) => (dd ? ua2string(dd) : null)).map((k) => ({ k }))
746
+ )
747
+ .filter(({ d, k }: { d: Delegation; k: string }) => !!k || d.owner !== ownerId) //Only keep the ones created by us that can still be decrypted
748
+ .map(({ d, k }: { d: Delegation; k: string }) => ({ d, k: k || this.randomUuid() }))
749
+ .concat([
750
+ {
751
+ d: {
752
+ owner: ownerId,
753
+ delegatedTo: delegateId,
754
+ key: ua2hex(encryptedEncryptionKey),
755
+ },
756
+ k: modifiedObject.id + ':' + secretEncryptionKeyOfObject!,
757
+ },
758
+ ])
759
+
760
+ const allEncryptionKeys = _.cloneDeep(modifiedObject.encryptionKeys)
761
+ allEncryptionKeys[delegateId] = _.uniqBy(encryptionKeysCryptedDecrypted, (x: any) => x.k).map((x: any) => x.d)
762
+
763
+ return {
764
+ encryptionKeys: allEncryptionKeys,
765
+ secretId: secretEncryptionKeyOfObject,
766
+ }
767
+ })
768
+ }
769
+
770
+ /**
771
+ * Gets an updated `child` object that will have its SPKs, CFKs, KSs updated to include delegations from delegator HcP with id `ownerId` to delegate HcP with id `delegateId`
772
+ * The SFKs of `child` are not updated, so this method assumes this is not the initial delegation on the `child` object
773
+ * The method also performs some deduplication of all types of delegations.
774
+ * @param parent : the parent object of `child`; will NOT be mutated
775
+ * @param child : the object that will be mutated and returned
776
+ * @param ownerId delegator HcP id
777
+ * @param delegateId delegate HcP id
778
+ * @param secretDelegationKey the secret Id used in the child object to generate the SPK
779
+ * @param secretEncryptionKey the secret Id used in the child object to generate the EK (Content Encryption Key)
780
+ * @returns - an updated `child` object that will contain updated SPKs, CFKs, EKs
781
+ * */
782
+
783
+ addDelegationsAndEncryptionKeys<
784
+ T extends
785
+ | models.AccessLog
786
+ | models.Patient
787
+ | models.Form
788
+ | models.Contact
789
+ | models.Invoice
790
+ | models.Document
791
+ | models.HealthElement
792
+ | models.CalendarItem
793
+ | models.Classification
794
+ | models.Receipt
795
+ >(
796
+ //TODO: suggested name: updateChildGenericDelegationsFromDelegatorToDelegate
797
+ parent: models.Patient | models.Message | null,
798
+ child: T,
799
+ ownerId: string,
800
+ delegateId: string,
801
+ secretDelegationKey: string | null,
802
+ secretEncryptionKey: string | null
803
+ ): Promise<T> {
804
+ if (parent) this.throwDetailedExceptionForInvalidParameter('parent.id', parent.id, 'addDelegationsAndEncryptionKeys', arguments)
805
+
806
+ this.throwDetailedExceptionForInvalidParameter('child.id', child.id, 'addDelegationsAndEncryptionKeys', arguments)
807
+ return (
808
+ secretDelegationKey
809
+ ? this.extendedDelegationsAndCryptedForeignKeys(child, parent, ownerId, delegateId, secretDelegationKey)
810
+ : Promise.resolve({ delegations: {}, cryptedForeignKeys: {} })
811
+ )
812
+ .then((extendedChildObjectSPKsAndCFKs) =>
813
+ secretEncryptionKey
814
+ ? this.appendEncryptionKeys(child, ownerId, delegateId, secretEncryptionKey).then(
815
+ //TODO: extendedDelegationsAndCryptedForeignKeys and appendEncryptionKeys can be done in parallel
816
+ (extendedChildObjectEKs) => ({
817
+ extendedSPKsAndCFKs: extendedChildObjectSPKsAndCFKs,
818
+ extendedEKs: extendedChildObjectEKs,
819
+ })
820
+ )
821
+ : Promise.resolve({
822
+ extendedSPKsAndCFKs: extendedChildObjectSPKsAndCFKs,
823
+ extendedEKs: { encryptionKeys: {} },
824
+ })
825
+ )
826
+ .then(({ extendedSPKsAndCFKs: extendedChildObjectSPKsAndCFKs, extendedEKs: extendedChildObjectEKs }) => {
827
+ return _.assign(child, {
828
+ // Conservative version ... We might want to be more aggressive with the deduplication of keys
829
+ // For each delegate, we are going to concatenate to the src (the new delegations), the object in dest (the current delegations)
830
+ // for which we do not find an equivalent delegation (same delegator, same delegate)
831
+ delegations: _.assignWith(child.delegations, extendedChildObjectSPKsAndCFKs.delegations, (dest, src) =>
832
+ (src || []).concat(
833
+ _.filter(dest, (d: Delegation) => !src.some((s: Delegation) => s.owner === d.owner && s.delegatedTo === d.delegatedTo))
834
+ )
835
+ ),
836
+ cryptedForeignKeys: _.assignWith(child.cryptedForeignKeys, extendedChildObjectSPKsAndCFKs.cryptedForeignKeys, (dest, src) =>
837
+ (src || []).concat(
838
+ _.filter(dest, (d: Delegation) => !src.some((s: Delegation) => s.owner === d.owner && s.delegatedTo === d.delegatedTo))
839
+ )
840
+ ),
841
+ encryptionKeys: _.assignWith(child.encryptionKeys, extendedChildObjectEKs.encryptionKeys, (dest, src) =>
842
+ (src || []).concat(
843
+ _.filter(dest, (d: Delegation) => !src.some((s: Delegation) => s.owner === d.owner && s.delegatedTo === d.delegatedTo))
844
+ )
845
+ ),
846
+ })
847
+ })
848
+ }
849
+
850
+ /**
851
+ * Gets the secret IDs (SFKs) inside decrypted SPKs of the given `document`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents
852
+ * @param document : the object of which delegations (SPKs) to decrypt
853
+ * @param hcpartyId : the id of the delegate HcP
854
+ * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates
855
+ * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HcP id of the top parent in the hierarchy (even if that parent has no delegations)
856
+ */
857
+ //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned hcpartyId will be the one of the parent; is this ok?
858
+ extractDelegationsSFKs(
859
+ //TODO: suggested name: getSecretIDsSPKofHcpAndParentsFromDocument
860
+ document:
861
+ | models.Patient
862
+ | models.Message
863
+ | models.Contact
864
+ | models.Document
865
+ | models.Invoice
866
+ | models.HealthElement
867
+ | models.Receipt
868
+ | models.Classification
869
+ | models.CalendarItem
870
+ | null,
871
+ hcpartyId?: string
872
+ ): Promise<{ extractedKeys: Array<string>; hcpartyId?: string }> {
873
+ if (!document || !hcpartyId) {
874
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId }) //TODO: thow exception instead?
875
+ }
876
+ const delegationsForAllDelegates = document.delegations
877
+ if (!delegationsForAllDelegates || !Object.keys(delegationsForAllDelegates).length) {
878
+ console.log(`There is no delegation in document (${document.id})`)
879
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })
880
+ }
881
+ return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id!, delegationsForAllDelegates)
882
+ }
883
+
884
+ /**
885
+ * Gets the secret IDs (SFKs) inside decrypted SPKs of the given `document`, decrypted by the HcP with the given `hcpartyId` AND by its HcP parents
886
+ * @param document : the object of which delegations (SPKs) to decrypt
887
+ * @param hcpartyId : the id of the delegate HcP
888
+ * @returns - **extractedKeys** array containing secret IDs (SFKs) from decrypted SPKs, from both given HcP and its parents ; can contain duplicates
889
+ * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HcP id of the top parent in the hierarchy (even if that parent has no delegations)
890
+ */
891
+ extractSFKsHierarchyFromDelegations(
892
+ document:
893
+ | models.Patient
894
+ | models.Message
895
+ | models.Contact
896
+ | models.Document
897
+ | models.Invoice
898
+ | models.HealthElement
899
+ | models.Receipt
900
+ | models.Classification
901
+ | models.CalendarItem
902
+ | null,
903
+ hcpartyId?: string
904
+ ): Promise<Array<{ hcpartyId: string; extractedKeys: Array<string> }>> {
905
+ if (!document || !hcpartyId) {
906
+ return Promise.resolve([])
907
+ }
908
+ const delegationsForAllDelegates = document.delegations
909
+ if (!delegationsForAllDelegates || !Object.keys(delegationsForAllDelegates).length) {
910
+ console.log(`There is no delegation in document (${document.id})`)
911
+ return Promise.resolve([])
912
+ }
913
+ return this.extractKeysHierarchyFromDelegationLikes(hcpartyId, document.id!, delegationsForAllDelegates)
914
+ }
915
+
916
+ // noinspection JSUnusedGlobalSymbols
917
+
918
+ extractCryptedFKs(
919
+ //TODO: suggested name: getSecretIDsCFKofHcpAndParentsFromDocument
920
+ document:
921
+ | models.Patient
922
+ | models.Message
923
+ | models.Contact
924
+ | models.Document
925
+ | models.Invoice
926
+ | models.HealthElement
927
+ | models.Receipt
928
+ | models.CalendarItem
929
+ | models.Classification
930
+ | null,
931
+ hcpartyId: string
932
+ ): Promise<{ extractedKeys: Array<string>; hcpartyId: string }> {
933
+ if (!document || !document.cryptedForeignKeys) {
934
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })
935
+ }
936
+ const cfksForAllDelegates = document.cryptedForeignKeys
937
+ if (!cfksForAllDelegates || !Object.keys(cfksForAllDelegates).length) {
938
+ console.log(`There is no cryptedForeignKeys in document (${document.id})`)
939
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })
940
+ }
941
+ return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id!, cfksForAllDelegates)
942
+ }
943
+
944
+ extractEncryptionsSKs(
945
+ //TODO: suggested name: getSecretIDsEKofHcpAndParentsFromDocument
946
+ document:
947
+ | models.Patient
948
+ | models.Message
949
+ | models.Contact
950
+ | models.Document
951
+ | models.Invoice
952
+ | models.Receipt
953
+ | models.HealthElement
954
+ | models.Classification,
955
+ hcpartyId: string
956
+ ): Promise<{ extractedKeys: Array<string>; hcpartyId: string }> {
957
+ if (!document.encryptionKeys) {
958
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })
959
+ }
960
+ const eckeysForAllDelegates = document.encryptionKeys
961
+ if (!eckeysForAllDelegates || !Object.keys(eckeysForAllDelegates).length) {
962
+ //console.log(`There is no encryption key in document (${document.id})`)
963
+ return Promise.resolve({ extractedKeys: [], hcpartyId: hcpartyId })
964
+ }
965
+ return this.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, document.id!, eckeysForAllDelegates)
966
+ }
967
+
968
+ extractDelegationsSFKsAndEncryptionSKs(
969
+ ety: models.Patient | models.Contact | models.Invoice | models.Document | models.HealthElement,
970
+ ownerId: string
971
+ ) {
972
+ const delegationsSfksOwnerPromise = this.extractDelegationsSFKs(ety, ownerId).then((xks) => xks.extractedKeys) //Will climb up hierarchy
973
+ const encryptionKeysOwnerPromise = this.extractEncryptionsSKs(ety, ownerId).then((xks) => xks.extractedKeys) //Will climb up hierarchy
974
+
975
+ return Promise.all([delegationsSfksOwnerPromise, encryptionKeysOwnerPromise])
976
+ }
977
+
978
+ /**
979
+ * Get decrypted generic secret IDs (secretIdSPKs, parentIds, secretIdEKs) from generic delegations (SPKs, CFKs, EKs)
980
+ * 1. Get HealthCareParty from it's Id.
981
+ * 2. Decrypt the keys of the given HCP.
982
+ * 3. Decrypt the parent's key if it has parent.
983
+ * 4. Return the decrypted key corresponding to the Health Care Party.
984
+ * @param hcpartyId : the id of the delegate HcP (including its parents) for which to decrypt `extractedKeys`
985
+ * @param objectId : the id of the object/document of which delegations to decrypt ; used just to log to console a message (Cryptographic mistake) in case the object id inside SPK, CFK, EK is different from this one
986
+ * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates from where to extract `extractedKeys`
987
+ * @returns - **extractedKeys** array containing secret IDs from decrypted generic delegations, from both HCP with given `hcpartyId` and its parents; can contain duplicates
988
+ * - **hcpartyId** the given `hcpartyId` OR, if a parent exist, the HCP id of the top parent in the hierarchy (even if that parent has no delegations)
989
+ */
990
+ //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned hcpartyId will be the one of the parent
991
+ extractKeysHierarchyFromDelegationLikes(
992
+ //TODO suggested name: getSecretIdsOfHcpAndParentsFromGenericDelegations
993
+ hcpartyId: string,
994
+ objectId: string,
995
+ delegations: { [key: string]: Array<models.Delegation> }
996
+ ): Promise<Array<{ hcpartyId: string; extractedKeys: Array<string> }>> {
997
+ return this.getDataOwner(hcpartyId).then(({ dataOwner: hcp }) =>
998
+ (delegations[hcpartyId] && delegations[hcpartyId].length
999
+ ? this.decryptAndImportAesHcPartyKeysInDelegations(hcpartyId, delegations, false).then((decryptedAndImportedAesHcPartyKeys) => {
1000
+ const collatedAesKeysFromDelegatorToHcpartyId: {
1001
+ [key: string]: { key: CryptoKey; rawKey: string }
1002
+ } = {}
1003
+ decryptedAndImportedAesHcPartyKeys.forEach((k) => (collatedAesKeysFromDelegatorToHcpartyId[k.delegatorId] = k))
1004
+ return this.decryptKeyInDelegationLikes(delegations[hcpartyId], collatedAesKeysFromDelegatorToHcpartyId, objectId!)
1005
+ })
1006
+ : Promise.resolve([])
1007
+ ).then((extractedKeys) =>
1008
+ (hcp as HealthcareParty).parentId
1009
+ ? this.extractKeysHierarchyFromDelegationLikes((hcp as HealthcareParty).parentId!, objectId, delegations).then((parentResponse) =>
1010
+ parentResponse.concat({ extractedKeys: extractedKeys, hcpartyId: hcpartyId })
1011
+ )
1012
+ : [{ extractedKeys: extractedKeys, hcpartyId: hcpartyId }]
1013
+ )
1014
+ )
1015
+ }
1016
+
1017
+ /**
1018
+ * Get decrypted generic secret IDs (secretIdSPKs, parentIds, secretIdEKs) from generic delegations (SPKs, CFKs, EKs)
1019
+ * 1. Get Data Owner (HCP, Patient or Device) from it's Id.
1020
+ * 2. Decrypt the keys of the given data owner.
1021
+ * 3. Decrypt the parent's key if it has parent.
1022
+ * 4. Return the decrypted key corresponding to the Health Care Party.
1023
+ * @param dataOwnerId : the id of the delegate data owner (including its parents) for which to decrypt `extractedKeys`
1024
+ * @param objectId : the id of the object/document of which delegations to decrypt ; used just to log to console a message (Cryptographic mistake) in case the object id inside SPK, CFK, EK is different from this one
1025
+ * @param delegations : generic delegations (can be SPKs, CFKs, EKs) for all delegates from where to extract `extractedKeys`
1026
+ * @returns - **extractedKeys** array containing secret IDs from decrypted generic delegations, from both data owner with given `dataOwnerId` and its parents; can contain duplicates
1027
+ * - **dataOwnerId** the given `dataOwnerId` OR, if a parent exist, the data owner id of the top parent in the hierarchy (even if that parent has no delegations)
1028
+ */
1029
+ //TODO: even if there are no delegations for parent HCP (but the parent exists), the returned dataOwnerId will be the one of the parent
1030
+ extractKeysFromDelegationsForHcpHierarchy(
1031
+ //TODO suggested name: getSecretIdsOfHcpAndParentsFromGenericDelegations
1032
+ dataOwnerId: string,
1033
+ objectId: string,
1034
+ delegations: { [key: string]: Array<models.Delegation> }
1035
+ ): Promise<{ extractedKeys: Array<string>; hcpartyId: string }> {
1036
+ return this.getDataOwner(dataOwnerId).then(({ dataOwner: hcp }) =>
1037
+ (delegations[dataOwnerId] && delegations[dataOwnerId].length
1038
+ ? this.decryptAndImportAesHcPartyKeysInDelegations(dataOwnerId, delegations, false).then((decryptedAndImportedAesHcPartyKeys) => {
1039
+ const collatedAesKeysFromDelegatorToHcpartyId: {
1040
+ [key: string]: { key: CryptoKey; rawKey: string }
1041
+ } = {}
1042
+ decryptedAndImportedAesHcPartyKeys.forEach((k) => (collatedAesKeysFromDelegatorToHcpartyId[k.delegatorId] = k))
1043
+ return this.decryptKeyInDelegationLikes(delegations[dataOwnerId], collatedAesKeysFromDelegatorToHcpartyId, objectId!)
1044
+ })
1045
+ : Promise.resolve([])
1046
+ ).then((extractedKeys) =>
1047
+ (hcp as HealthcareParty).parentId
1048
+ ? this.extractKeysFromDelegationsForHcpHierarchy((hcp as HealthcareParty).parentId!, objectId, delegations).then((parentResponse) =>
1049
+ _.assign(parentResponse, {
1050
+ extractedKeys: parentResponse.extractedKeys.concat(extractedKeys),
1051
+ })
1052
+ )
1053
+ : { extractedKeys: extractedKeys, hcpartyId: dataOwnerId }
1054
+ )
1055
+ )
1056
+ }
1057
+
1058
+ /**
1059
+ * Gets an array of generic secret IDs decrypted from a list of generic delegations (SPKs, CFKs, EKs) `delegationsArray`
1060
+ * If a particular generic delegation thows an exception when decrypted, the return value for it's secret ID will be 'false' and a message is logged to console
1061
+ * For each one of the delegations in the `delegationsArray`, it tries to decrypt with the decryptedHcPartyKey of the owner of that delegation;
1062
+ *
1063
+ * @param delegationsArray : generic delegations array
1064
+ * @param aesKeys : **key** HcP ids of delegators/owners in the `delegationsArray`, each with its own decryptedHcPartyKey
1065
+ * @param masterId : is the object id to which the generic delegation belongs to
1066
+ * - used only to check whether the object.id matches the one stored in the decrypted generic delegation item
1067
+ * - even if there's no match, the secret ID is kept as a valid result (and a message logged to console)
1068
+ * @returns array of generic secret IDs (secretIdSPK, parentId, secretIdEK)
1069
+ */
1070
+ decryptKeyInDelegationLikes(
1071
+ //TODO: suggested name: getSecretIdsFromGenericDelegations
1072
+ delegationsArray: Array<models.Delegation>,
1073
+ aesKeys: { [key: string]: { key: CryptoKey; rawKey: string } },
1074
+ masterId: string
1075
+ ): Promise<Array<string>> {
1076
+ const decryptPromises: Array<Promise<string | undefined>> = []
1077
+ for (let i = 0; i < (delegationsArray || []).length; i++) {
1078
+ var genericDelegationItem = delegationsArray[i]
1079
+ const aesKey = aesKeys[genericDelegationItem.owner!]
1080
+ if (aesKey) {
1081
+ decryptPromises.push(
1082
+ this._AES
1083
+ .decrypt(aesKey.key, hex2ua(genericDelegationItem.key!), aesKey.rawKey)
1084
+ .then((decryptedGenericDelegationKey: ArrayBuffer) => {
1085
+ const results = ua2string(decryptedGenericDelegationKey).split(':')
1086
+
1087
+ const objectId = results[0] //must be the ID of the object, for checksum
1088
+ const genericSecretId = results[1]
1089
+
1090
+ const details =
1091
+ 'object ID: ' + masterId + '; generic delegation from ' + genericDelegationItem.owner + ' to ' + genericDelegationItem.delegatedTo
1092
+
1093
+ if (!objectId) console.warn('Object id is empty; ' + details)
1094
+ if (!genericSecretId) console.warn('Secret id is empty; ' + details)
1095
+
1096
+ if (objectId !== masterId) {
1097
+ /*console.log(
1098
+ "Cryptographic mistake: object ID is not equal to the expected concatenated id within decrypted generic delegation. This may happen when patients have been merged; " +
1099
+ details
1100
+ )*/
1101
+ }
1102
+
1103
+ return genericSecretId
1104
+ })
1105
+ .catch((err) => {
1106
+ console.log(
1107
+ `Could not decrypt generic delegation in object with ID: ${masterId} from ${genericDelegationItem.owner} to ${genericDelegationItem.delegatedTo}: ${err}`
1108
+ )
1109
+ return undefined
1110
+ })
1111
+ )
1112
+ } else {
1113
+ console.log(`Could not find aes key for object with ID: ${masterId}`)
1114
+ }
1115
+ }
1116
+
1117
+ return Promise.all(decryptPromises).then((genericSecretId) => genericSecretId.filter((id) => !!id) as string[])
1118
+ }
1119
+
1120
+ loadKeyPairsAsTextInBrowserLocalStorage(healthcarePartyId: string, privateKey: Uint8Array) {
1121
+ return this.getDataOwner(healthcarePartyId)
1122
+ .then(({ dataOwner }) => dataOwner.publicKey)
1123
+ .then((publicKey?: string) => {
1124
+ if (!publicKey) {
1125
+ throw new Error('No public key has been defined for hcp')
1126
+ }
1127
+ return this._RSA.importKeyPair('jwk', this._utils.pkcs8ToJwk(privateKey), 'jwk', this._utils.spkiToJwk(hex2ua(publicKey)))
1128
+ })
1129
+ .then((keyPair: { publicKey: CryptoKey; privateKey: CryptoKey }) => {
1130
+ this._RSA.rsaKeyPairs[healthcarePartyId] = keyPair
1131
+ return this._RSA.exportKeys(keyPair, 'jwk', 'jwk')
1132
+ })
1133
+ .then((exportedKeyPair) => {
1134
+ return this._RSA.storeKeyPair(healthcarePartyId, exportedKeyPair)
1135
+ })
1136
+ }
1137
+
1138
+ // noinspection JSUnusedGlobalSymbols
1139
+ loadKeyPairsAsJwkInBrowserLocalStorage(healthcarePartyId: string, privKey: JsonWebKey) {
1140
+ return this.getDataOwner(healthcarePartyId)
1141
+ .then(({ dataOwner }) => {
1142
+ const pubKey = this._utils.spkiToJwk(hex2ua(dataOwner.publicKey!))
1143
+
1144
+ privKey.n = pubKey.n
1145
+ privKey.e = pubKey.e
1146
+
1147
+ return this._RSA.importKeyPair('jwk', privKey, 'jwk', pubKey)
1148
+ })
1149
+ .then((keyPair: { publicKey: CryptoKey; privateKey: CryptoKey }) => {
1150
+ this._RSA.rsaKeyPairs[healthcarePartyId] = keyPair
1151
+ return this._RSA.exportKeys(keyPair, 'jwk', 'jwk')
1152
+ })
1153
+ .then((exportedKeyPair: { publicKey: any; privateKey: any }) => {
1154
+ return this._RSA.storeKeyPair(healthcarePartyId, exportedKeyPair)
1155
+ })
1156
+ }
1157
+
1158
+ // noinspection JSUnusedGlobalSymbols
1159
+ loadKeyPairsInBrowserLocalStorage(healthcarePartyId: string, file: Blob): Promise<void> {
1160
+ const fr = new FileReader()
1161
+ return new Promise((resolve, reject) => {
1162
+ fr.onerror = reject
1163
+ fr.onabort = reject
1164
+ fr.onload = (e: any) => {
1165
+ //TODO remove any
1166
+ const privateKey = e.target.result as string
1167
+ this.loadKeyPairsAsTextInBrowserLocalStorage(healthcarePartyId, hex2ua(privateKey)).then(resolve).catch(reject)
1168
+ }
1169
+ fr.readAsText(file)
1170
+ })
1171
+ }
1172
+
1173
+ // noinspection JSUnusedGlobalSymbols
1174
+ saveKeychainInBrowserLocalStorage(id: string, keychain: number) {
1175
+ localStorage.setItem(
1176
+ this.keychainLocalStoreIdPrefix + id,
1177
+ b2a(new Uint8Array(keychain).reduce((data, byte) => data + String.fromCharCode(byte), ''))
1178
+ )
1179
+ }
1180
+
1181
+ saveKeychainInBrowserLocalStorageAsBase64(id: string, keyChainB64: string) {
1182
+ localStorage.setItem(this.keychainLocalStoreIdPrefix + id, keyChainB64)
1183
+ }
1184
+
1185
+ // noinspection JSUnusedGlobalSymbols
1186
+ saveKeychainValidityDateInBrowserLocalStorage(id: string, date: string) {
1187
+ if (!id) return
1188
+
1189
+ if (!date) {
1190
+ localStorage.removeItem(this.keychainValidityDateLocalStoreIdPrefix + id)
1191
+ } else {
1192
+ localStorage.setItem(this.keychainValidityDateLocalStoreIdPrefix + id, date)
1193
+ }
1194
+ }
1195
+
1196
+ /**
1197
+ * Populate the HCP.options dict with an encrypted eHealth certificate and unencryped expiry date.
1198
+ * Any potentially unencrypted certificates will be pruned from the HCP.
1199
+ * @param hcpId Id of the hcp to modify
1200
+ * @returns modified HCP
1201
+ */
1202
+ async saveKeyChainInHCPFromLocalStorage(hcpId: string): Promise<models.HealthcareParty> {
1203
+ return await this.hcpartyBaseApi.getHealthcareParty(hcpId).then(async (hcp: HealthcareParty) => {
1204
+ let aesKey: CryptoKey | null = null
1205
+ try {
1206
+ aesKey = _.find(
1207
+ await this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id!], hcp.id!),
1208
+ (delegator: DelegatorAndKeys) => delegator.delegatorId === hcp.id
1209
+ )!.key
1210
+ } catch (e) {
1211
+ console.error('Error while importing the AES key.')
1212
+ }
1213
+ if (!aesKey) {
1214
+ console.error('No encryption key!')
1215
+ }
1216
+
1217
+ const opts = hcp.options || {}
1218
+
1219
+ const crt = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id!!)
1220
+ if (!!aesKey && !!crt) {
1221
+ let crtEncrypted: ArrayBuffer | null = null
1222
+ try {
1223
+ crtEncrypted = await this.AES.encrypt(aesKey, new Uint8Array(string2ua(atob(crt))))
1224
+ } catch (e) {
1225
+ console.error('Error while encrypting the certificate', e)
1226
+ }
1227
+
1228
+ // add the encrypted certificate to the options
1229
+ _.set(opts, this.hcpPreferenceKeyEhealthCert, ua2string(new Uint8Array(crtEncrypted!)))
1230
+ }
1231
+
1232
+ const crtValidityDate = this.getKeychainValidityDateInBrowserLocalStorage(hcp.id!!)
1233
+ if (!!crtValidityDate) {
1234
+ _.set(opts, this.hcpPreferenceKeyEhealthCertDate, crtValidityDate)
1235
+ }
1236
+
1237
+ hcp.options = opts
1238
+ return hcp
1239
+ })
1240
+ }
1241
+
1242
+ importKeychainInBrowserFromHCP(hcpId: string): Promise<void> {
1243
+ return this.hcpartyBaseApi.getHealthcareParty(hcpId).then(async (hcp: HealthcareParty) => {
1244
+ let crtCryp: Uint8Array | null = null
1245
+ if (!!hcp.options && !!hcp.options[this.hcpPreferenceKeyEhealthCert]) {
1246
+ crtCryp = string2ua(hcp.options[this.hcpPreferenceKeyEhealthCert])
1247
+ }
1248
+
1249
+ const crtValidityDate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCertDate)
1250
+
1251
+ // store the validity date
1252
+ if (!!crtValidityDate) {
1253
+ this.saveKeychainValidityDateInBrowserLocalStorage(hcp.id!!, crtValidityDate)
1254
+ }
1255
+
1256
+ let crt: ArrayBuffer | null = null
1257
+ let decryptionKey: CryptoKey | null = null
1258
+ try {
1259
+ decryptionKey = _.find(
1260
+ await this.decryptAndImportAesHcPartyKeysForDelegators([hcp.id!], hcp.id!),
1261
+ (delegator: DelegatorAndKeys) => delegator.delegatorId === hcp.id
1262
+ )!.key
1263
+ } catch (e) {
1264
+ console.error('Error while importing the AES key.')
1265
+ }
1266
+ if (!decryptionKey) {
1267
+ throw new Error('No encryption key! eHealth certificate cannot be decrypted.')
1268
+ }
1269
+
1270
+ if (!!crtCryp && decryptionKey) {
1271
+ try {
1272
+ crt = await this.AES.decrypt(decryptionKey, crtCryp)
1273
+ } catch (e) {
1274
+ console.error(e)
1275
+ }
1276
+ }
1277
+
1278
+ if (!crt) {
1279
+ throw new Error(`Error while saving certificate in browser local storage! Hcp ${hcp.id} has no certificate.`)
1280
+ } else {
1281
+ this.saveKeychainInBrowserLocalStorageAsBase64(hcp.id!!, btoa(String.fromCharCode.apply(null, Array.from(new Uint8Array(crt)))))
1282
+ }
1283
+
1284
+ return
1285
+ })
1286
+ }
1287
+
1288
+ /**
1289
+ * Synchronizes the eHealth certificate from the database into the LocalStorage, returning information on the presence
1290
+ * of certificate data in either place.
1291
+ *
1292
+ * @param hcpId The healthcare party id
1293
+ * @returns A Promise for an object that represents the existence of a certificate in local storage and in the DB,
1294
+ * through the two boolean properties "local" and "remote".
1295
+ */
1296
+ syncEhealthCertificateFromDatabase(hcpId: string): Promise<{ remote: boolean; local: boolean }> {
1297
+ return this.hcpartyBaseApi.getHealthcareParty(hcpId).then((hcp: HealthcareParty) => {
1298
+ const remoteCertificate = _.get(hcp.options, this.hcpPreferenceKeyEhealthCert)
1299
+ const localCertificate = this.getKeychainInBrowserLocalStorageAsBase64(hcp.id!)
1300
+
1301
+ if (remoteCertificate) {
1302
+ return this.importKeychainInBrowserFromHCP(hcp.id!)
1303
+ .then(() => ({ local: true, remote: true }))
1304
+ .catch(() => ({ local: !!localCertificate, remote: true }))
1305
+ } else {
1306
+ return { local: !!localCertificate, remote: !!remoteCertificate }
1307
+ }
1308
+ })
1309
+ }
1310
+
1311
+ getKeychainInBrowserLocalStorageAsBase64(id: string) {
1312
+ return localStorage.getItem(this.keychainLocalStoreIdPrefix + id)
1313
+ }
1314
+
1315
+ getKeychainValidityDateInBrowserLocalStorage(id: string) {
1316
+ return localStorage.getItem(this.keychainValidityDateLocalStoreIdPrefix + id)
1317
+ }
1318
+
1319
+ // noinspection JSUnusedGlobalSymbols
1320
+ loadKeychainFromBrowserLocalStorage(id: string) {
1321
+ const lsItem = localStorage.getItem('org.taktik.icure.ehealth.keychain.' + id)
1322
+ return lsItem !== null ? b64_2uas(lsItem) : null
1323
+ }
1324
+
1325
+ generateKeyForDelegate(ownerId: string, delegateId: string): PromiseLike<models.HealthcareParty | models.Patient> {
1326
+ //Preload hcp and patient because we need them and they are going to be invalidated from the caches
1327
+ return this._utils.notConcurrent(this.generateKeyConcurrencyMap, ownerId, () =>
1328
+ Promise.all([this.getDataOwner(ownerId), this.getDataOwner(delegateId)]).then(
1329
+ ([{ type: ownerType, dataOwner: owner }, { dataOwner: delegate }]) => {
1330
+ if ((owner.hcPartyKeys || {})[delegateId]) {
1331
+ return owner
1332
+ }
1333
+ const genProm = new Promise<['hcp' | 'patient' | 'device', models.HealthcareParty | models.Patient]>((resolve, reject) => {
1334
+ delegate.publicKey
1335
+ ? this._AES
1336
+ .generateCryptoKey(true)
1337
+ .then((AESKey) => {
1338
+ const ownerPubKey = this._utils.spkiToJwk(hex2ua(owner.publicKey!))
1339
+ const delegatePubKey = this._utils.spkiToJwk(hex2ua(delegate.publicKey!))
1340
+ return Promise.all([
1341
+ this._RSA.importKey('jwk', ownerPubKey, ['encrypt']),
1342
+ this._RSA.importKey('jwk', delegatePubKey, ['encrypt']),
1343
+ ]).then(([ownerImportedKey, delegateImportedKey]) =>
1344
+ Promise.all([
1345
+ this._RSA.encrypt(ownerImportedKey, hex2ua(AESKey as string)),
1346
+ this._RSA.encrypt(delegateImportedKey, hex2ua(AESKey as string)),
1347
+ ])
1348
+ )
1349
+ })
1350
+ .then(([ownerKey, delegateKey]) => (owner.hcPartyKeys![delegateId] = [ua2hex(ownerKey), ua2hex(delegateKey)]))
1351
+ .then(() => {
1352
+ return ownerType === 'hcp'
1353
+ ? (this.dataOwnerCache[owner.id!] = this.hcpartyBaseApi
1354
+ .modifyHealthcareParty(owner as HealthcareParty)
1355
+ .then((x) => ({ type: 'hcp', dataOwner: x } as CachedDataOwner))).then((x) => resolve(['hcp', x.dataOwner]))
1356
+ : ownerType === 'patient'
1357
+ ? (this.dataOwnerCache[owner.id!] = this.patientBaseApi
1358
+ .modifyPatient(owner as Patient)
1359
+ .then((x) => ({ type: 'patient', dataOwner: x }))).then((x) => resolve(['patient', x.dataOwner]))
1360
+ : (this.dataOwnerCache[owner.id!] = this.deviceBaseApi
1361
+ .updateDevice(owner as Device)
1362
+ .then((x) => ({ type: 'device', dataOwner: x }))).then((x) => resolve(['device', x.dataOwner]))
1363
+ })
1364
+ .catch((e) => reject(e))
1365
+ : reject(new Error(`Missing public key for delegate ${delegateId}`))
1366
+ })
1367
+
1368
+ // invalidate the hcPartyKeys cache for the delegate hcp (who was not modified, but the view for its
1369
+ // id was updated)
1370
+ this.hcPartyKeysRequestsCache[delegateId] = genProm.then(() => {
1371
+ return this.forceGetHcPartyKeysForDelegate(delegateId)
1372
+ })
1373
+ return genProm.then((res) => {
1374
+ return res[1]
1375
+ })
1376
+ }
1377
+ )
1378
+ )
1379
+ }
1380
+
1381
+ getDataOwner(ownerId: string) {
1382
+ return (
1383
+ this.dataOwnerCache[ownerId] ??
1384
+ (this.dataOwnerCache[ownerId] = this.patientBaseApi
1385
+ .getPatient(ownerId)
1386
+ .then((x) => ({ type: 'patient', dataOwner: x } as CachedDataOwner))
1387
+ .catch(() => this.deviceBaseApi.getDevice(ownerId).then((x) => ({ type: 'device', dataOwner: x } as CachedDataOwner)))
1388
+ .catch(() => this.hcpartyBaseApi.getHealthcareParty(ownerId).then((x) => ({ type: 'hcp', dataOwner: x } as CachedDataOwner)))
1389
+ .catch((e) => {
1390
+ delete this.dataOwnerCache[ownerId]
1391
+ throw e
1392
+ }))
1393
+ )
1394
+ }
1395
+
1396
+ // noinspection JSUnusedGlobalSymbols
1397
+ checkPrivateKeyValidity(dataOwner: models.HealthcareParty | models.Patient | models.Device): Promise<boolean> {
1398
+ return new Promise<boolean>((resolve) => {
1399
+ this._RSA
1400
+ .importKey('jwk', this._utils.spkiToJwk(hex2ua(dataOwner.publicKey!)), ['encrypt'])
1401
+ .then((k) => this._RSA.encrypt(k, utf8_2ua('shibboleth')))
1402
+ .then((cipher) => {
1403
+ const kp = this._RSA.loadKeyPairNotImported(dataOwner.id!)
1404
+ return this._RSA
1405
+ .importKeyPair('jwk', kp.privateKey, 'jwk', kp.publicKey)
1406
+ .then((ikp) => this._RSA.decrypt(ikp.privateKey, new Uint8Array(cipher)))
1407
+ })
1408
+ .then((plainText) => {
1409
+ const pt = ua2utf8(plainText)
1410
+ console.log(pt)
1411
+ resolve(pt === 'shibboleth')
1412
+ })
1413
+ .catch(() => resolve(false))
1414
+ })
1415
+ }
1416
+
1417
+ private throwDetailedExceptionForInvalidParameter(argName: string, argValue: any, methodName: string, methodArgs: any) {
1418
+ if (argValue) return
1419
+
1420
+ let details = '\nMethod name: icc-crypto-x-api.' + methodName + '()\nArguments:'
1421
+
1422
+ if (methodArgs) {
1423
+ try {
1424
+ const argsArray = [...methodArgs]
1425
+ _.each(argsArray, (arg, index) => (details += '\n[' + index + ']: ' + JSON.stringify(arg)))
1426
+ } catch (ex) {
1427
+ details += '; a problem occured while logging arguments details: ' + ex
1428
+ }
1429
+ }
1430
+
1431
+ throw '### THIS SHOULD NOT HAPPEN: ' + argName + ' has an invalid value: ' + argValue + details
1432
+ }
1433
+
1434
+ getEncryptionDecryptionKeys(
1435
+ dataOwnerId: string,
1436
+ document:
1437
+ | models.AccessLog
1438
+ | models.CalendarItem
1439
+ | models.Classification
1440
+ | models.Contact
1441
+ | models.Document
1442
+ | models.Form
1443
+ | models.HealthElement
1444
+ | models.Invoice
1445
+ | models.Message
1446
+ | models.Receipt
1447
+ | models.Patient
1448
+ ): Promise<Array<string> | null> {
1449
+ return !document.id
1450
+ ? Promise.resolve(null)
1451
+ : this.extractKeysFromDelegationsForHcpHierarchy(
1452
+ dataOwnerId,
1453
+ document.id,
1454
+ (document.encryptionKeys && Object.keys(document.encryptionKeys).length && document.encryptionKeys) || document.delegations!
1455
+ )
1456
+ .then(({ extractedKeys }) => _.uniq(extractedKeys))
1457
+ .catch(() => null)
1458
+ }
1459
+
1460
+ async encryptDecrypt(
1461
+ method: 'encrypt' | 'decrypt',
1462
+ content: Uint8Array | ArrayBuffer,
1463
+ edKey?: string,
1464
+ user?: User,
1465
+ documentObject?: models.Document
1466
+ ): Promise<Uint8Array | Array<any> | any> {
1467
+ if (!content || !(edKey || (user?.healthcarePartyId && documentObject))) return content
1468
+
1469
+ if (edKey) {
1470
+ const importedEdKey = await this._AES.importKey('raw', hex2ua(edKey.replace(/-/g, '')))
1471
+ try {
1472
+ return await this._AES[method](importedEdKey, content)
1473
+ } catch (e) {
1474
+ return content
1475
+ }
1476
+ }
1477
+
1478
+ const sfks = await this.extractKeysFromDelegationsForHcpHierarchy(user?.healthcarePartyId!, documentObject?.id!, documentObject?.encryptionKeys!)
1479
+ const importedEdKey = await this._AES.importKey('raw', hex2ua(sfks.extractedKeys[0].replace(/-/g, '')))
1480
+ try {
1481
+ return await this._AES[method](importedEdKey, content)
1482
+ } catch (e) {
1483
+ return content
1484
+ }
1485
+ }
1486
+ }