@icure/api 4.0.93 → 4.0.96

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 (796) hide show
  1. package/icc-api/api/IccAccesslogApi.js +1 -0
  2. package/icc-api/api/IccAccesslogApi.js.map +1 -0
  3. package/icc-api/api/IccAgendaApi.js +1 -0
  4. package/icc-api/api/IccAgendaApi.js.map +1 -0
  5. package/icc-api/api/IccAnonymousAccessApi.d.ts +6 -4
  6. package/icc-api/api/IccAnonymousAccessApi.js +10 -5
  7. package/icc-api/api/IccAnonymousAccessApi.js.map +1 -0
  8. package/icc-api/api/IccApplicationsettingsApi.js +1 -0
  9. package/icc-api/api/IccApplicationsettingsApi.js.map +1 -0
  10. package/icc-api/api/IccArticleApi.js +1 -0
  11. package/icc-api/api/IccArticleApi.js.map +1 -0
  12. package/icc-api/api/IccAuthApi.js +1 -0
  13. package/icc-api/api/IccAuthApi.js.map +1 -0
  14. package/icc-api/api/IccBeefactApi.js +1 -0
  15. package/icc-api/api/IccBeefactApi.js.map +1 -0
  16. package/icc-api/api/IccBekmehrApi.js +1 -0
  17. package/icc-api/api/IccBekmehrApi.js.map +1 -0
  18. package/icc-api/api/IccBemikronoApi.js +1 -0
  19. package/icc-api/api/IccBemikronoApi.js.map +1 -0
  20. package/icc-api/api/IccBeresultexportApi.js +1 -0
  21. package/icc-api/api/IccBeresultexportApi.js.map +1 -0
  22. package/icc-api/api/IccBeresultimportApi.js +1 -0
  23. package/icc-api/api/IccBeresultimportApi.js.map +1 -0
  24. package/icc-api/api/IccBesamv2Api.js +1 -0
  25. package/icc-api/api/IccBesamv2Api.js.map +1 -0
  26. package/icc-api/api/IccCalendarItemApi.js +1 -0
  27. package/icc-api/api/IccCalendarItemApi.js.map +1 -0
  28. package/icc-api/api/IccCalendarItemTypeApi.js +1 -0
  29. package/icc-api/api/IccCalendarItemTypeApi.js.map +1 -0
  30. package/icc-api/api/IccClassificationApi.js +1 -0
  31. package/icc-api/api/IccClassificationApi.js.map +1 -0
  32. package/icc-api/api/IccClassificationTemplateApi.js +1 -0
  33. package/icc-api/api/IccClassificationTemplateApi.js.map +1 -0
  34. package/icc-api/api/IccCodeApi.js +1 -0
  35. package/icc-api/api/IccCodeApi.js.map +1 -0
  36. package/icc-api/api/IccContactApi.js +1 -0
  37. package/icc-api/api/IccContactApi.js.map +1 -0
  38. package/icc-api/api/IccDeviceApi.js +1 -0
  39. package/icc-api/api/IccDeviceApi.js.map +1 -0
  40. package/icc-api/api/IccDoctemplateApi.js +1 -0
  41. package/icc-api/api/IccDoctemplateApi.js.map +1 -0
  42. package/icc-api/api/IccDocumentApi.js +1 -0
  43. package/icc-api/api/IccDocumentApi.js.map +1 -0
  44. package/icc-api/api/IccDocumentTemplateApi.js +1 -0
  45. package/icc-api/api/IccDocumentTemplateApi.js.map +1 -0
  46. package/icc-api/api/IccEntityrefApi.js +1 -0
  47. package/icc-api/api/IccEntityrefApi.js.map +1 -0
  48. package/icc-api/api/IccEntitytemplateApi.js +1 -0
  49. package/icc-api/api/IccEntitytemplateApi.js.map +1 -0
  50. package/icc-api/api/IccFormApi.js +1 -0
  51. package/icc-api/api/IccFormApi.js.map +1 -0
  52. package/icc-api/api/IccFrontendmigrationApi.js +1 -0
  53. package/icc-api/api/IccFrontendmigrationApi.js.map +1 -0
  54. package/icc-api/api/IccGroupApi.js +1 -0
  55. package/icc-api/api/IccGroupApi.js.map +1 -0
  56. package/icc-api/api/IccHcpartyApi.js +1 -0
  57. package/icc-api/api/IccHcpartyApi.js.map +1 -0
  58. package/icc-api/api/IccHealthElementApi.js +1 -0
  59. package/icc-api/api/IccHealthElementApi.js.map +1 -0
  60. package/icc-api/api/IccHealthcarePartyApi.js +1 -0
  61. package/icc-api/api/IccHealthcarePartyApi.js.map +1 -0
  62. package/icc-api/api/IccHelementApi.js +1 -0
  63. package/icc-api/api/IccHelementApi.js.map +1 -0
  64. package/icc-api/api/IccIcureApi.js +1 -0
  65. package/icc-api/api/IccIcureApi.js.map +1 -0
  66. package/icc-api/api/IccInsuranceApi.js +1 -0
  67. package/icc-api/api/IccInsuranceApi.js.map +1 -0
  68. package/icc-api/api/IccInvoiceApi.js +1 -0
  69. package/icc-api/api/IccInvoiceApi.js.map +1 -0
  70. package/icc-api/api/IccKeywordApi.js +1 -0
  71. package/icc-api/api/IccKeywordApi.js.map +1 -0
  72. package/icc-api/api/IccMedexApi.js +1 -0
  73. package/icc-api/api/IccMedexApi.js.map +1 -0
  74. package/icc-api/api/IccMedicallocationApi.js +1 -0
  75. package/icc-api/api/IccMedicallocationApi.js.map +1 -0
  76. package/icc-api/api/IccMessageApi.js +1 -0
  77. package/icc-api/api/IccMessageApi.js.map +1 -0
  78. package/icc-api/api/IccPatientApi.js +1 -0
  79. package/icc-api/api/IccPatientApi.js.map +1 -0
  80. package/icc-api/api/IccPermissionApi.js +1 -0
  81. package/icc-api/api/IccPermissionApi.js.map +1 -0
  82. package/icc-api/api/IccPlaceApi.js +1 -0
  83. package/icc-api/api/IccPlaceApi.js.map +1 -0
  84. package/icc-api/api/IccPubsubApi.js +1 -0
  85. package/icc-api/api/IccPubsubApi.js.map +1 -0
  86. package/icc-api/api/IccReceiptApi.js +1 -0
  87. package/icc-api/api/IccReceiptApi.js.map +1 -0
  88. package/icc-api/api/IccReplicationApi.js +1 -0
  89. package/icc-api/api/IccReplicationApi.js.map +1 -0
  90. package/icc-api/api/IccTarificationApi.js +1 -0
  91. package/icc-api/api/IccTarificationApi.js.map +1 -0
  92. package/icc-api/api/IccTimeTableApi.js +1 -0
  93. package/icc-api/api/IccTimeTableApi.js.map +1 -0
  94. package/icc-api/api/IccTmpApi.js +1 -0
  95. package/icc-api/api/IccTmpApi.js.map +1 -0
  96. package/icc-api/api/IccUserApi.js +1 -0
  97. package/icc-api/api/IccUserApi.js.map +1 -0
  98. package/icc-api/api/XHR.js +1 -0
  99. package/icc-api/api/XHR.js.map +1 -0
  100. package/icc-api/iccApi.js +1 -0
  101. package/icc-api/iccApi.js.map +1 -0
  102. package/icc-api/index.js +1 -0
  103. package/icc-api/index.js.map +1 -0
  104. package/icc-api/model/AbstractFilterCode.js +1 -0
  105. package/icc-api/model/AbstractFilterCode.js.map +1 -0
  106. package/icc-api/model/AbstractFilterContact.js +1 -0
  107. package/icc-api/model/AbstractFilterContact.js.map +1 -0
  108. package/icc-api/model/AbstractFilterDevice.js +1 -0
  109. package/icc-api/model/AbstractFilterDevice.js.map +1 -0
  110. package/icc-api/model/AbstractFilterHealthElement.js +1 -0
  111. package/icc-api/model/AbstractFilterHealthElement.js.map +1 -0
  112. package/icc-api/model/AbstractFilterHealthcareParty.js +1 -0
  113. package/icc-api/model/AbstractFilterHealthcareParty.js.map +1 -0
  114. package/icc-api/model/AbstractFilterInvoice.js +1 -0
  115. package/icc-api/model/AbstractFilterInvoice.js.map +1 -0
  116. package/icc-api/model/AbstractFilterPatient.js +1 -0
  117. package/icc-api/model/AbstractFilterPatient.js.map +1 -0
  118. package/icc-api/model/AbstractFilterService.js +1 -0
  119. package/icc-api/model/AbstractFilterService.js.map +1 -0
  120. package/icc-api/model/AbstractFilterUser.js +1 -0
  121. package/icc-api/model/AbstractFilterUser.js.map +1 -0
  122. package/icc-api/model/AccessLog.js +1 -0
  123. package/icc-api/model/AccessLog.js.map +1 -0
  124. package/icc-api/model/Address.js +1 -0
  125. package/icc-api/model/Address.js.map +1 -0
  126. package/icc-api/model/AdministrationQuantity.js +1 -0
  127. package/icc-api/model/AdministrationQuantity.js.map +1 -0
  128. package/icc-api/model/Agenda.js +1 -0
  129. package/icc-api/model/Agenda.js.map +1 -0
  130. package/icc-api/model/AgreementAppendix.js +1 -0
  131. package/icc-api/model/AgreementAppendix.js.map +1 -0
  132. package/icc-api/model/Amp.js +1 -0
  133. package/icc-api/model/Amp.js.map +1 -0
  134. package/icc-api/model/AmpComponent.js +1 -0
  135. package/icc-api/model/AmpComponent.js.map +1 -0
  136. package/icc-api/model/Ampp.js +1 -0
  137. package/icc-api/model/Ampp.js.map +1 -0
  138. package/icc-api/model/AmppComponent.js +1 -0
  139. package/icc-api/model/AmppComponent.js.map +1 -0
  140. package/icc-api/model/Annotation.js +1 -0
  141. package/icc-api/model/Annotation.js.map +1 -0
  142. package/icc-api/model/ApplicationSettings.js +1 -0
  143. package/icc-api/model/ApplicationSettings.js.map +1 -0
  144. package/icc-api/model/Appointment.js +1 -0
  145. package/icc-api/model/Appointment.js.map +1 -0
  146. package/icc-api/model/AppointmentImport.js +1 -0
  147. package/icc-api/model/AppointmentImport.js.map +1 -0
  148. package/icc-api/model/AppointmentTypeAndPlace.d.ts +24 -0
  149. package/icc-api/model/AppointmentTypeAndPlace.js +10 -0
  150. package/icc-api/model/AppointmentTypeAndPlace.js.map +1 -0
  151. package/icc-api/model/Article.js +1 -0
  152. package/icc-api/model/Article.js.map +1 -0
  153. package/icc-api/model/Atc.js +1 -0
  154. package/icc-api/model/Atc.js.map +1 -0
  155. package/icc-api/model/Attachment.js +1 -0
  156. package/icc-api/model/Attachment.js.map +1 -0
  157. package/icc-api/model/Authentication.js +1 -0
  158. package/icc-api/model/Authentication.js.map +1 -0
  159. package/icc-api/model/AuthenticationResponse.js +1 -0
  160. package/icc-api/model/AuthenticationResponse.js.map +1 -0
  161. package/icc-api/model/AuthenticationToken.js +1 -0
  162. package/icc-api/model/AuthenticationToken.js.map +1 -0
  163. package/icc-api/model/Basic.js +1 -0
  164. package/icc-api/model/Basic.js.map +1 -0
  165. package/icc-api/model/Body.js +1 -0
  166. package/icc-api/model/Body.js.map +1 -0
  167. package/icc-api/model/Body1.js +1 -0
  168. package/icc-api/model/Body1.js.map +1 -0
  169. package/icc-api/model/Body2.js +1 -0
  170. package/icc-api/model/Body2.js.map +1 -0
  171. package/icc-api/model/Body3.js +1 -0
  172. package/icc-api/model/Body3.js.map +1 -0
  173. package/icc-api/model/ByteArray.js +1 -0
  174. package/icc-api/model/ByteArray.js.map +1 -0
  175. package/icc-api/model/CalendarItem.js +1 -0
  176. package/icc-api/model/CalendarItem.js.map +1 -0
  177. package/icc-api/model/CalendarItemTag.js +1 -0
  178. package/icc-api/model/CalendarItemTag.js.map +1 -0
  179. package/icc-api/model/CalendarItemType.js +1 -0
  180. package/icc-api/model/CalendarItemType.js.map +1 -0
  181. package/icc-api/model/CareTeamMember.js +1 -0
  182. package/icc-api/model/CareTeamMember.js.map +1 -0
  183. package/icc-api/model/CareTeamMembership.js +1 -0
  184. package/icc-api/model/CareTeamMembership.js.map +1 -0
  185. package/icc-api/model/CheckSMFPatientResult.js +1 -0
  186. package/icc-api/model/CheckSMFPatientResult.js.map +1 -0
  187. package/icc-api/model/Classification.js +1 -0
  188. package/icc-api/model/Classification.js.map +1 -0
  189. package/icc-api/model/ClassificationTemplate.js +1 -0
  190. package/icc-api/model/ClassificationTemplate.js.map +1 -0
  191. package/icc-api/model/Code.js +1 -0
  192. package/icc-api/model/Code.js.map +1 -0
  193. package/icc-api/model/CodeStub.js +1 -0
  194. package/icc-api/model/CodeStub.js.map +1 -0
  195. package/icc-api/model/CodeType.js +1 -0
  196. package/icc-api/model/CodeType.js.map +1 -0
  197. package/icc-api/model/CommentedClassification.js +1 -0
  198. package/icc-api/model/CommentedClassification.js.map +1 -0
  199. package/icc-api/model/Commercialization.js +1 -0
  200. package/icc-api/model/Commercialization.js.map +1 -0
  201. package/icc-api/model/Company.js +1 -0
  202. package/icc-api/model/Company.js.map +1 -0
  203. package/icc-api/model/Contact.js +1 -0
  204. package/icc-api/model/Contact.js.map +1 -0
  205. package/icc-api/model/Content.js +1 -0
  206. package/icc-api/model/Content.js.map +1 -0
  207. package/icc-api/model/Copayment.js +1 -0
  208. package/icc-api/model/Copayment.js.map +1 -0
  209. package/icc-api/model/Data.js +1 -0
  210. package/icc-api/model/Data.js.map +1 -0
  211. package/icc-api/model/DatabaseInitialisation.js +1 -0
  212. package/icc-api/model/DatabaseInitialisation.js.map +1 -0
  213. package/icc-api/model/DatabaseSynchronization.js +1 -0
  214. package/icc-api/model/DatabaseSynchronization.js.map +1 -0
  215. package/icc-api/model/Delegation.js +1 -0
  216. package/icc-api/model/Delegation.js.map +1 -0
  217. package/icc-api/model/Device.js +1 -0
  218. package/icc-api/model/Device.js.map +1 -0
  219. package/icc-api/model/DeviceType.js +1 -0
  220. package/icc-api/model/DeviceType.js.map +1 -0
  221. package/icc-api/model/DiaryNoteExportInfo.js +1 -0
  222. package/icc-api/model/DiaryNoteExportInfo.js.map +1 -0
  223. package/icc-api/model/Dmpp.js +1 -0
  224. package/icc-api/model/Dmpp.js.map +1 -0
  225. package/icc-api/model/DocIdentifier.js +1 -0
  226. package/icc-api/model/DocIdentifier.js.map +1 -0
  227. package/icc-api/model/Document.js +1 -0
  228. package/icc-api/model/Document.js.map +1 -0
  229. package/icc-api/model/DocumentGroup.js +1 -0
  230. package/icc-api/model/DocumentGroup.js.map +1 -0
  231. package/icc-api/model/DocumentTemplate.js +1 -0
  232. package/icc-api/model/DocumentTemplate.js.map +1 -0
  233. package/icc-api/model/Duration.js +1 -0
  234. package/icc-api/model/Duration.js.map +1 -0
  235. package/icc-api/model/EIDItem.js +1 -0
  236. package/icc-api/model/EIDItem.js.map +1 -0
  237. package/icc-api/model/Editor.js +1 -0
  238. package/icc-api/model/Editor.js.map +1 -0
  239. package/icc-api/model/EfactInvoice.js +1 -0
  240. package/icc-api/model/EfactInvoice.js.map +1 -0
  241. package/icc-api/model/EmailOrSmsMessage.js +1 -0
  242. package/icc-api/model/EmailOrSmsMessage.js.map +1 -0
  243. package/icc-api/model/EmailTemplate.js +1 -0
  244. package/icc-api/model/EmailTemplate.js.map +1 -0
  245. package/icc-api/model/Employer.js +1 -0
  246. package/icc-api/model/Employer.js.map +1 -0
  247. package/icc-api/model/EmploymentInfo.js +1 -0
  248. package/icc-api/model/EmploymentInfo.js.map +1 -0
  249. package/icc-api/model/EntityReference.js +1 -0
  250. package/icc-api/model/EntityReference.js.map +1 -0
  251. package/icc-api/model/EntityTemplate.js +1 -0
  252. package/icc-api/model/EntityTemplate.js.map +1 -0
  253. package/icc-api/model/Episode.js +1 -0
  254. package/icc-api/model/Episode.js.map +1 -0
  255. package/icc-api/model/FilterChainCode.js +1 -0
  256. package/icc-api/model/FilterChainCode.js.map +1 -0
  257. package/icc-api/model/FilterChainContact.js +1 -0
  258. package/icc-api/model/FilterChainContact.js.map +1 -0
  259. package/icc-api/model/FilterChainDevice.js +1 -0
  260. package/icc-api/model/FilterChainDevice.js.map +1 -0
  261. package/icc-api/model/FilterChainHealthElement.js +1 -0
  262. package/icc-api/model/FilterChainHealthElement.js.map +1 -0
  263. package/icc-api/model/FilterChainHealthcareParty.js +1 -0
  264. package/icc-api/model/FilterChainHealthcareParty.js.map +1 -0
  265. package/icc-api/model/FilterChainInvoice.js +1 -0
  266. package/icc-api/model/FilterChainInvoice.js.map +1 -0
  267. package/icc-api/model/FilterChainPatient.js +1 -0
  268. package/icc-api/model/FilterChainPatient.js.map +1 -0
  269. package/icc-api/model/FilterChainService.js +1 -0
  270. package/icc-api/model/FilterChainService.js.map +1 -0
  271. package/icc-api/model/FilterChainUser.js +1 -0
  272. package/icc-api/model/FilterChainUser.js.map +1 -0
  273. package/icc-api/model/FinancialInstitutionInformation.js +1 -0
  274. package/icc-api/model/FinancialInstitutionInformation.js.map +1 -0
  275. package/icc-api/model/FlatRateTarification.js +1 -0
  276. package/icc-api/model/FlatRateTarification.js.map +1 -0
  277. package/icc-api/model/FlowItem.js +1 -0
  278. package/icc-api/model/FlowItem.js.map +1 -0
  279. package/icc-api/model/Form.js +1 -0
  280. package/icc-api/model/Form.js.map +1 -0
  281. package/icc-api/model/FormColumn.js +1 -0
  282. package/icc-api/model/FormColumn.js.map +1 -0
  283. package/icc-api/model/FormDataOption.js +1 -0
  284. package/icc-api/model/FormDataOption.js.map +1 -0
  285. package/icc-api/model/FormLayout.js +1 -0
  286. package/icc-api/model/FormLayout.js.map +1 -0
  287. package/icc-api/model/FormLayoutData.js +1 -0
  288. package/icc-api/model/FormLayoutData.js.map +1 -0
  289. package/icc-api/model/FormPlanning.js +1 -0
  290. package/icc-api/model/FormPlanning.js.map +1 -0
  291. package/icc-api/model/FormSection.js +1 -0
  292. package/icc-api/model/FormSection.js.map +1 -0
  293. package/icc-api/model/FormTemplate.js +1 -0
  294. package/icc-api/model/FormTemplate.js.map +1 -0
  295. package/icc-api/model/FormTemplateLayout.js +1 -0
  296. package/icc-api/model/FormTemplateLayout.js.map +1 -0
  297. package/icc-api/model/Formula.js +1 -0
  298. package/icc-api/model/Formula.js.map +1 -0
  299. package/icc-api/model/FrontEndMigration.js +1 -0
  300. package/icc-api/model/FrontEndMigration.js.map +1 -0
  301. package/icc-api/model/Group.js +1 -0
  302. package/icc-api/model/Group.js.map +1 -0
  303. package/icc-api/model/GuiCode.js +1 -0
  304. package/icc-api/model/GuiCode.js.map +1 -0
  305. package/icc-api/model/GuiCodeType.js +1 -0
  306. package/icc-api/model/GuiCodeType.js.map +1 -0
  307. package/icc-api/model/HealthElement.js +1 -0
  308. package/icc-api/model/HealthElement.js.map +1 -0
  309. package/icc-api/model/HealthcareParty.js +1 -0
  310. package/icc-api/model/HealthcareParty.js.map +1 -0
  311. package/icc-api/model/HealthcarePartyHistoryStatus.js +1 -0
  312. package/icc-api/model/HealthcarePartyHistoryStatus.js.map +1 -0
  313. package/icc-api/model/IcureStub.js +1 -0
  314. package/icc-api/model/IcureStub.js.map +1 -0
  315. package/icc-api/model/IdWithRev.js +1 -0
  316. package/icc-api/model/IdWithRev.js.map +1 -0
  317. package/icc-api/model/Identifier.js +1 -0
  318. package/icc-api/model/Identifier.js.map +1 -0
  319. package/icc-api/model/IdentityDocumentReader.js +1 -0
  320. package/icc-api/model/IdentityDocumentReader.js.map +1 -0
  321. package/icc-api/model/ImportMapping.js +1 -0
  322. package/icc-api/model/ImportMapping.js.map +1 -0
  323. package/icc-api/model/ImportResult.js +1 -0
  324. package/icc-api/model/ImportResult.js.map +1 -0
  325. package/icc-api/model/IndexedIdentifier.js +1 -0
  326. package/icc-api/model/IndexedIdentifier.js.map +1 -0
  327. package/icc-api/model/IndexingInfo.js +1 -0
  328. package/icc-api/model/IndexingInfo.js.map +1 -0
  329. package/icc-api/model/Ingredient.js +1 -0
  330. package/icc-api/model/Ingredient.js.map +1 -0
  331. package/icc-api/model/Insurability.js +1 -0
  332. package/icc-api/model/Insurability.js.map +1 -0
  333. package/icc-api/model/Insurance.js +1 -0
  334. package/icc-api/model/Insurance.js.map +1 -0
  335. package/icc-api/model/Invoice.js +1 -0
  336. package/icc-api/model/Invoice.js.map +1 -0
  337. package/icc-api/model/InvoiceItem.js +1 -0
  338. package/icc-api/model/InvoiceItem.js.map +1 -0
  339. package/icc-api/model/InvoiceSender.js +1 -0
  340. package/icc-api/model/InvoiceSender.js.map +1 -0
  341. package/icc-api/model/InvoicesBatch.js +1 -0
  342. package/icc-api/model/InvoicesBatch.js.map +1 -0
  343. package/icc-api/model/InvoicingCode.js +1 -0
  344. package/icc-api/model/InvoicingCode.js.map +1 -0
  345. package/icc-api/model/Keyword.js +1 -0
  346. package/icc-api/model/Keyword.js.map +1 -0
  347. package/icc-api/model/KeywordSubword.js +1 -0
  348. package/icc-api/model/KeywordSubword.js.map +1 -0
  349. package/icc-api/model/LabelledOccurence.js +1 -0
  350. package/icc-api/model/LabelledOccurence.js.map +1 -0
  351. package/icc-api/model/LetterValue.js +1 -0
  352. package/icc-api/model/LetterValue.js.map +1 -0
  353. package/icc-api/model/ListOfIds.js +1 -0
  354. package/icc-api/model/ListOfIds.js.map +1 -0
  355. package/icc-api/model/ListOfProperties.js +1 -0
  356. package/icc-api/model/ListOfProperties.js.map +1 -0
  357. package/icc-api/model/LoginCredentials.js +1 -0
  358. package/icc-api/model/LoginCredentials.js.map +1 -0
  359. package/icc-api/model/MapOfIds.js +1 -0
  360. package/icc-api/model/MapOfIds.js.map +1 -0
  361. package/icc-api/model/Measure.js +1 -0
  362. package/icc-api/model/Measure.js.map +1 -0
  363. package/icc-api/model/MedexInfo.js +1 -0
  364. package/icc-api/model/MedexInfo.js.map +1 -0
  365. package/icc-api/model/MedicalHouseContract.js +1 -0
  366. package/icc-api/model/MedicalHouseContract.js.map +1 -0
  367. package/icc-api/model/MedicalLocation.js +1 -0
  368. package/icc-api/model/MedicalLocation.js.map +1 -0
  369. package/icc-api/model/Medication.js +1 -0
  370. package/icc-api/model/Medication.js.map +1 -0
  371. package/icc-api/model/MedicationSchemeExportInfo.js +1 -0
  372. package/icc-api/model/MedicationSchemeExportInfo.js.map +1 -0
  373. package/icc-api/model/Medicinalproduct.js +1 -0
  374. package/icc-api/model/Medicinalproduct.js.map +1 -0
  375. package/icc-api/model/Message.js +1 -0
  376. package/icc-api/model/Message.js.map +1 -0
  377. package/icc-api/model/MessageReadStatus.js +1 -0
  378. package/icc-api/model/MessageReadStatus.js.map +1 -0
  379. package/icc-api/model/MessageWithBatch.js +1 -0
  380. package/icc-api/model/MessageWithBatch.js.map +1 -0
  381. package/icc-api/model/MessagesReadStatusUpdate.js +1 -0
  382. package/icc-api/model/MessagesReadStatusUpdate.js.map +1 -0
  383. package/icc-api/model/MikronoAppointmentTypeRest.js +1 -0
  384. package/icc-api/model/MikronoAppointmentTypeRest.js.map +1 -0
  385. package/icc-api/model/MikronoCredentials.js +1 -0
  386. package/icc-api/model/MikronoCredentials.js.map +1 -0
  387. package/icc-api/model/MimeAttachment.js +1 -0
  388. package/icc-api/model/MimeAttachment.js.map +1 -0
  389. package/icc-api/model/ModelHelper.js +1 -0
  390. package/icc-api/model/ModelHelper.js.map +1 -0
  391. package/icc-api/model/Nmp.js +1 -0
  392. package/icc-api/model/Nmp.js.map +1 -0
  393. package/icc-api/model/NoGenericPrescriptionReason.js +1 -0
  394. package/icc-api/model/NoGenericPrescriptionReason.js.map +1 -0
  395. package/icc-api/model/NoSwitchReason.js +1 -0
  396. package/icc-api/model/NoSwitchReason.js.map +1 -0
  397. package/icc-api/model/NumeratorRange.js +1 -0
  398. package/icc-api/model/NumeratorRange.js.map +1 -0
  399. package/icc-api/model/PackagingType.js +1 -0
  400. package/icc-api/model/PackagingType.js.map +1 -0
  401. package/icc-api/model/PaginatedDocumentKeyIdPairObject.js +1 -0
  402. package/icc-api/model/PaginatedDocumentKeyIdPairObject.js.map +1 -0
  403. package/icc-api/model/PaginatedListAccessLog.js +1 -0
  404. package/icc-api/model/PaginatedListAccessLog.js.map +1 -0
  405. package/icc-api/model/PaginatedListAmp.js +1 -0
  406. package/icc-api/model/PaginatedListAmp.js.map +1 -0
  407. package/icc-api/model/PaginatedListClassification.js +1 -0
  408. package/icc-api/model/PaginatedListClassification.js.map +1 -0
  409. package/icc-api/model/PaginatedListClassificationTemplate.js +1 -0
  410. package/icc-api/model/PaginatedListClassificationTemplate.js.map +1 -0
  411. package/icc-api/model/PaginatedListCode.js +1 -0
  412. package/icc-api/model/PaginatedListCode.js.map +1 -0
  413. package/icc-api/model/PaginatedListContact.js +1 -0
  414. package/icc-api/model/PaginatedListContact.js.map +1 -0
  415. package/icc-api/model/PaginatedListDevice.js +1 -0
  416. package/icc-api/model/PaginatedListDevice.js.map +1 -0
  417. package/icc-api/model/PaginatedListDocument.js +1 -0
  418. package/icc-api/model/PaginatedListDocument.js.map +1 -0
  419. package/icc-api/model/PaginatedListEntityTemplate.js +1 -0
  420. package/icc-api/model/PaginatedListEntityTemplate.js.map +1 -0
  421. package/icc-api/model/PaginatedListForm.js +1 -0
  422. package/icc-api/model/PaginatedListForm.js.map +1 -0
  423. package/icc-api/model/PaginatedListHealthElement.js +1 -0
  424. package/icc-api/model/PaginatedListHealthElement.js.map +1 -0
  425. package/icc-api/model/PaginatedListHealthcareParty.js +1 -0
  426. package/icc-api/model/PaginatedListHealthcareParty.js.map +1 -0
  427. package/icc-api/model/PaginatedListInvoice.js +1 -0
  428. package/icc-api/model/PaginatedListInvoice.js.map +1 -0
  429. package/icc-api/model/PaginatedListMessage.js +1 -0
  430. package/icc-api/model/PaginatedListMessage.js.map +1 -0
  431. package/icc-api/model/PaginatedListNmp.js +1 -0
  432. package/icc-api/model/PaginatedListNmp.js.map +1 -0
  433. package/icc-api/model/PaginatedListPatient.js +1 -0
  434. package/icc-api/model/PaginatedListPatient.js.map +1 -0
  435. package/icc-api/model/PaginatedListService.js +1 -0
  436. package/icc-api/model/PaginatedListService.js.map +1 -0
  437. package/icc-api/model/PaginatedListString.js +1 -0
  438. package/icc-api/model/PaginatedListString.js.map +1 -0
  439. package/icc-api/model/PaginatedListTarification.js +1 -0
  440. package/icc-api/model/PaginatedListTarification.js.map +1 -0
  441. package/icc-api/model/PaginatedListUser.js +1 -0
  442. package/icc-api/model/PaginatedListUser.js.map +1 -0
  443. package/icc-api/model/PaginatedListVmp.js +1 -0
  444. package/icc-api/model/PaginatedListVmp.js.map +1 -0
  445. package/icc-api/model/PaginatedListVmpGroup.js +1 -0
  446. package/icc-api/model/PaginatedListVmpGroup.js.map +1 -0
  447. package/icc-api/model/ParagraphAgreement.js +1 -0
  448. package/icc-api/model/ParagraphAgreement.js.map +1 -0
  449. package/icc-api/model/Partnership.js +1 -0
  450. package/icc-api/model/Partnership.js.map +1 -0
  451. package/icc-api/model/Patient.js +1 -0
  452. package/icc-api/model/Patient.js.map +1 -0
  453. package/icc-api/model/PatientByHcPartyGenderEducationProfession.js +1 -0
  454. package/icc-api/model/PatientByHcPartyGenderEducationProfession.js.map +1 -0
  455. package/icc-api/model/PatientHealthCareParty.js +1 -0
  456. package/icc-api/model/PatientHealthCareParty.js.map +1 -0
  457. package/icc-api/model/PatientRegistrationSuccess.js +1 -0
  458. package/icc-api/model/PatientRegistrationSuccess.js.map +1 -0
  459. package/icc-api/model/Payment.js +1 -0
  460. package/icc-api/model/Payment.js.map +1 -0
  461. package/icc-api/model/Periodicity.js +1 -0
  462. package/icc-api/model/Periodicity.js.map +1 -0
  463. package/icc-api/model/Permission.js +1 -0
  464. package/icc-api/model/Permission.js.map +1 -0
  465. package/icc-api/model/PermissionCriterion.js +1 -0
  466. package/icc-api/model/PermissionCriterion.js.map +1 -0
  467. package/icc-api/model/PermissionItem.js +1 -0
  468. package/icc-api/model/PermissionItem.js.map +1 -0
  469. package/icc-api/model/PersonName.js +1 -0
  470. package/icc-api/model/PersonName.js.map +1 -0
  471. package/icc-api/model/PharmaceuticalForm.js +1 -0
  472. package/icc-api/model/PharmaceuticalForm.js.map +1 -0
  473. package/icc-api/model/PharmaceuticalFormStub.js +1 -0
  474. package/icc-api/model/PharmaceuticalFormStub.js.map +1 -0
  475. package/icc-api/model/Place.js +1 -0
  476. package/icc-api/model/Place.js.map +1 -0
  477. package/icc-api/model/PlanOfAction.js +1 -0
  478. package/icc-api/model/PlanOfAction.js.map +1 -0
  479. package/icc-api/model/Predicate.js +1 -0
  480. package/icc-api/model/Predicate.js.map +1 -0
  481. package/icc-api/model/Pricing.js +1 -0
  482. package/icc-api/model/Pricing.js.map +1 -0
  483. package/icc-api/model/PropertyStub.js +1 -0
  484. package/icc-api/model/PropertyStub.js.map +1 -0
  485. package/icc-api/model/PropertyTypeStub.js +1 -0
  486. package/icc-api/model/PropertyTypeStub.js.map +1 -0
  487. package/icc-api/model/PublicKey.js +1 -0
  488. package/icc-api/model/PublicKey.js.map +1 -0
  489. package/icc-api/model/Quantity.js +1 -0
  490. package/icc-api/model/Quantity.js.map +1 -0
  491. package/icc-api/model/Receipt.js +1 -0
  492. package/icc-api/model/Receipt.js.map +1 -0
  493. package/icc-api/model/ReferralPeriod.js +1 -0
  494. package/icc-api/model/ReferralPeriod.js.map +1 -0
  495. package/icc-api/model/RegimenItem.js +1 -0
  496. package/icc-api/model/RegimenItem.js.map +1 -0
  497. package/icc-api/model/RegistrationInformation.js +1 -0
  498. package/icc-api/model/RegistrationInformation.js.map +1 -0
  499. package/icc-api/model/RegistrationSuccess.js +1 -0
  500. package/icc-api/model/RegistrationSuccess.js.map +1 -0
  501. package/icc-api/model/Reimbursement.js +1 -0
  502. package/icc-api/model/Reimbursement.js.map +1 -0
  503. package/icc-api/model/ReimbursementCriterion.js +1 -0
  504. package/icc-api/model/ReimbursementCriterion.js.map +1 -0
  505. package/icc-api/model/Remote.js +1 -0
  506. package/icc-api/model/Remote.js.map +1 -0
  507. package/icc-api/model/RemoteAuthentication.js +1 -0
  508. package/icc-api/model/RemoteAuthentication.js.map +1 -0
  509. package/icc-api/model/Renewal.js +1 -0
  510. package/icc-api/model/Renewal.js.map +1 -0
  511. package/icc-api/model/ReplicateCommand.js +1 -0
  512. package/icc-api/model/ReplicateCommand.js.map +1 -0
  513. package/icc-api/model/Replication.js +1 -0
  514. package/icc-api/model/Replication.js.map +1 -0
  515. package/icc-api/model/ReplicationInfo.js +1 -0
  516. package/icc-api/model/ReplicationInfo.js.map +1 -0
  517. package/icc-api/model/ReplicationStats.js +1 -0
  518. package/icc-api/model/ReplicationStats.js.map +1 -0
  519. package/icc-api/model/ReplicatorDocument.js +1 -0
  520. package/icc-api/model/ReplicatorDocument.js.map +1 -0
  521. package/icc-api/model/ReplicatorResponse.js +1 -0
  522. package/icc-api/model/ReplicatorResponse.js.map +1 -0
  523. package/icc-api/model/ResultInfo.js +1 -0
  524. package/icc-api/model/ResultInfo.js.map +1 -0
  525. package/icc-api/model/RevisionInfo.js +1 -0
  526. package/icc-api/model/RevisionInfo.js.map +1 -0
  527. package/icc-api/model/Right.js +1 -0
  528. package/icc-api/model/Right.js.map +1 -0
  529. package/icc-api/model/RouteOfAdministration.js +1 -0
  530. package/icc-api/model/RouteOfAdministration.js.map +1 -0
  531. package/icc-api/model/SamText.js +1 -0
  532. package/icc-api/model/SamText.js.map +1 -0
  533. package/icc-api/model/SamVersion.js +1 -0
  534. package/icc-api/model/SamVersion.js.map +1 -0
  535. package/icc-api/model/SchoolingInfo.js +1 -0
  536. package/icc-api/model/SchoolingInfo.js.map +1 -0
  537. package/icc-api/model/Section.js +1 -0
  538. package/icc-api/model/Section.js.map +1 -0
  539. package/icc-api/model/Service.js +1 -0
  540. package/icc-api/model/Service.js.map +1 -0
  541. package/icc-api/model/ServiceLink.js +1 -0
  542. package/icc-api/model/ServiceLink.js.map +1 -0
  543. package/icc-api/model/SoftwareMedicalFileExport.js +1 -0
  544. package/icc-api/model/SoftwareMedicalFileExport.js.map +1 -0
  545. package/icc-api/model/StandardSubstance.js +1 -0
  546. package/icc-api/model/StandardSubstance.js.map +1 -0
  547. package/icc-api/model/StrengthRange.js +1 -0
  548. package/icc-api/model/StrengthRange.js.map +1 -0
  549. package/icc-api/model/StructureElement.js +1 -0
  550. package/icc-api/model/StructureElement.js.map +1 -0
  551. package/icc-api/model/SubContact.js +1 -0
  552. package/icc-api/model/SubContact.js.map +1 -0
  553. package/icc-api/model/Substance.js +1 -0
  554. package/icc-api/model/Substance.js.map +1 -0
  555. package/icc-api/model/SubstanceStub.js +1 -0
  556. package/icc-api/model/SubstanceStub.js.map +1 -0
  557. package/icc-api/model/Substanceproduct.js +1 -0
  558. package/icc-api/model/Substanceproduct.js.map +1 -0
  559. package/icc-api/model/Suggest.js +1 -0
  560. package/icc-api/model/Suggest.js.map +1 -0
  561. package/icc-api/model/SumehrContent.js +1 -0
  562. package/icc-api/model/SumehrContent.js.map +1 -0
  563. package/icc-api/model/SumehrExportInfo.js +1 -0
  564. package/icc-api/model/SumehrExportInfo.js.map +1 -0
  565. package/icc-api/model/SumehrValidity.js +1 -0
  566. package/icc-api/model/SumehrValidity.js.map +1 -0
  567. package/icc-api/model/SupplyProblem.js +1 -0
  568. package/icc-api/model/SupplyProblem.js.map +1 -0
  569. package/icc-api/model/Suspension.js +1 -0
  570. package/icc-api/model/Suspension.js.map +1 -0
  571. package/icc-api/model/Tag.js +1 -0
  572. package/icc-api/model/Tag.js.map +1 -0
  573. package/icc-api/model/Tarification.js +1 -0
  574. package/icc-api/model/Tarification.js.map +1 -0
  575. package/icc-api/model/Telecom.js +1 -0
  576. package/icc-api/model/Telecom.js.map +1 -0
  577. package/icc-api/model/TimeSeries.js +1 -0
  578. package/icc-api/model/TimeSeries.js.map +1 -0
  579. package/icc-api/model/TimeTable.js +1 -0
  580. package/icc-api/model/TimeTable.js.map +1 -0
  581. package/icc-api/model/TimeTableHour.js +1 -0
  582. package/icc-api/model/TimeTableHour.js.map +1 -0
  583. package/icc-api/model/TimeTableItem.d.ts +1 -0
  584. package/icc-api/model/TimeTableItem.js +1 -0
  585. package/icc-api/model/TimeTableItem.js.map +1 -0
  586. package/icc-api/model/TypedValueObject.js +1 -0
  587. package/icc-api/model/TypedValueObject.js.map +1 -0
  588. package/icc-api/model/Unit.js +1 -0
  589. package/icc-api/model/Unit.js.map +1 -0
  590. package/icc-api/model/User.js +1 -0
  591. package/icc-api/model/User.js.map +1 -0
  592. package/icc-api/model/UserAndHealthcareParty.js +1 -0
  593. package/icc-api/model/UserAndHealthcareParty.js.map +1 -0
  594. package/icc-api/model/UserGroup.js +1 -0
  595. package/icc-api/model/UserGroup.js.map +1 -0
  596. package/icc-api/model/Valorisation.js +1 -0
  597. package/icc-api/model/Valorisation.js.map +1 -0
  598. package/icc-api/model/VirtualForm.js +1 -0
  599. package/icc-api/model/VirtualForm.js.map +1 -0
  600. package/icc-api/model/VirtualIngredient.js +1 -0
  601. package/icc-api/model/VirtualIngredient.js.map +1 -0
  602. package/icc-api/model/Vmp.js +1 -0
  603. package/icc-api/model/Vmp.js.map +1 -0
  604. package/icc-api/model/VmpComponent.js +1 -0
  605. package/icc-api/model/VmpComponent.js.map +1 -0
  606. package/icc-api/model/VmpGroup.js +1 -0
  607. package/icc-api/model/VmpGroup.js.map +1 -0
  608. package/icc-api/model/VmpGroupStub.js +1 -0
  609. package/icc-api/model/VmpGroupStub.js.map +1 -0
  610. package/icc-api/model/VmpStub.js +1 -0
  611. package/icc-api/model/VmpStub.js.map +1 -0
  612. package/icc-api/model/Vtm.js +1 -0
  613. package/icc-api/model/Vtm.js.map +1 -0
  614. package/icc-api/model/Wada.js +1 -0
  615. package/icc-api/model/Wada.js.map +1 -0
  616. package/icc-api/model/WebSession.js +1 -0
  617. package/icc-api/model/WebSession.js.map +1 -0
  618. package/icc-api/model/WebSessionMaxIdleTime.js +1 -0
  619. package/icc-api/model/WebSessionMaxIdleTime.js.map +1 -0
  620. package/icc-api/model/WebSessionMaxIdleTimeUnits.js +1 -0
  621. package/icc-api/model/WebSessionMaxIdleTimeUnits.js.map +1 -0
  622. package/icc-api/model/Weekday.js +1 -0
  623. package/icc-api/model/Weekday.js.map +1 -0
  624. package/icc-api/model/models.d.ts +1 -0
  625. package/icc-api/model/models.js +2 -0
  626. package/icc-api/model/models.js.map +1 -0
  627. package/icc-x-api/crypto/AES.js +1 -0
  628. package/icc-x-api/crypto/AES.js.map +1 -0
  629. package/icc-x-api/crypto/RSA.js +1 -0
  630. package/icc-x-api/crypto/RSA.js.map +1 -0
  631. package/icc-x-api/crypto/shamir.js +1 -0
  632. package/icc-x-api/crypto/shamir.js.map +1 -0
  633. package/icc-x-api/crypto/utils.js +1 -0
  634. package/icc-x-api/crypto/utils.js.map +1 -0
  635. package/icc-x-api/filters/AllCodesFilter.js +1 -0
  636. package/icc-x-api/filters/AllCodesFilter.js.map +1 -0
  637. package/icc-x-api/filters/AllDevicesFilter.js +1 -0
  638. package/icc-x-api/filters/AllDevicesFilter.js.map +1 -0
  639. package/icc-x-api/filters/AllHealthcarePartiesFilter.js +1 -0
  640. package/icc-x-api/filters/AllHealthcarePartiesFilter.js.map +1 -0
  641. package/icc-x-api/filters/AllUsersFilter.js +1 -0
  642. package/icc-x-api/filters/AllUsersFilter.js.map +1 -0
  643. package/icc-x-api/filters/CodeByIdsFilter.js +1 -0
  644. package/icc-x-api/filters/CodeByIdsFilter.js.map +1 -0
  645. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.js +1 -0
  646. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.js.map +1 -0
  647. package/icc-x-api/filters/ComplementFilter.js +1 -0
  648. package/icc-x-api/filters/ComplementFilter.js.map +1 -0
  649. package/icc-x-api/filters/ConstantFilter.js +1 -0
  650. package/icc-x-api/filters/ConstantFilter.js.map +1 -0
  651. package/icc-x-api/filters/ContactByHcPartyFilter.js +1 -0
  652. package/icc-x-api/filters/ContactByHcPartyFilter.js.map +1 -0
  653. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.js +1 -0
  654. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.js.map +1 -0
  655. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.js +1 -0
  656. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.js.map +1 -0
  657. package/icc-x-api/filters/ContactByServiceIdsFilter.js +1 -0
  658. package/icc-x-api/filters/ContactByServiceIdsFilter.js.map +1 -0
  659. package/icc-x-api/filters/DeviceByHcPartyFilter.js +1 -0
  660. package/icc-x-api/filters/DeviceByHcPartyFilter.js.map +1 -0
  661. package/icc-x-api/filters/DeviceByIdsFilter.js +1 -0
  662. package/icc-x-api/filters/DeviceByIdsFilter.js.map +1 -0
  663. package/icc-x-api/filters/HealthElementByHcPartyFilter.js +1 -0
  664. package/icc-x-api/filters/HealthElementByHcPartyFilter.js.map +1 -0
  665. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.js +1 -0
  666. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.js.map +1 -0
  667. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.js +1 -0
  668. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.js.map +1 -0
  669. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.js +1 -0
  670. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.js.map +1 -0
  671. package/icc-x-api/filters/HealthElementByIdsFilter.js +1 -0
  672. package/icc-x-api/filters/HealthElementByIdsFilter.js.map +1 -0
  673. package/icc-x-api/filters/HealthcarePartyByIdsFilter.js +1 -0
  674. package/icc-x-api/filters/HealthcarePartyByIdsFilter.js.map +1 -0
  675. package/icc-x-api/filters/IntersectionFilter.js +1 -0
  676. package/icc-x-api/filters/IntersectionFilter.js.map +1 -0
  677. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.js +1 -0
  678. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.js.map +1 -0
  679. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.js +1 -0
  680. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.js.map +1 -0
  681. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.js +1 -0
  682. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.js.map +1 -0
  683. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.js +1 -0
  684. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.js.map +1 -0
  685. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.js +1 -0
  686. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.js.map +1 -0
  687. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.js +1 -0
  688. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.js.map +1 -0
  689. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.js +1 -0
  690. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.js.map +1 -0
  691. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.js +1 -0
  692. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.js.map +1 -0
  693. package/icc-x-api/filters/PatientByHcPartyFilter.js +1 -0
  694. package/icc-x-api/filters/PatientByHcPartyFilter.js.map +1 -0
  695. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js +1 -0
  696. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js.map +1 -0
  697. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.js +1 -0
  698. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.js.map +1 -0
  699. package/icc-x-api/filters/PatientByHcPartyNameFilter.js +1 -0
  700. package/icc-x-api/filters/PatientByHcPartyNameFilter.js.map +1 -0
  701. package/icc-x-api/filters/PatientByIdsFilter.js +1 -0
  702. package/icc-x-api/filters/PatientByIdsFilter.js.map +1 -0
  703. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.js +1 -0
  704. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.js.map +1 -0
  705. package/icc-x-api/filters/ServiceByHcPartyFilter.js +1 -0
  706. package/icc-x-api/filters/ServiceByHcPartyFilter.js.map +1 -0
  707. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.js +1 -0
  708. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.js.map +1 -0
  709. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.js +1 -0
  710. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.js.map +1 -0
  711. package/icc-x-api/filters/ServiceByIdsFilter.js +1 -0
  712. package/icc-x-api/filters/ServiceByIdsFilter.js.map +1 -0
  713. package/icc-x-api/filters/ServiceBySecretForeignKeys.js +1 -0
  714. package/icc-x-api/filters/ServiceBySecretForeignKeys.js.map +1 -0
  715. package/icc-x-api/filters/UnionFilter.js +1 -0
  716. package/icc-x-api/filters/UnionFilter.js.map +1 -0
  717. package/icc-x-api/filters/UserByIdsFilter.js +1 -0
  718. package/icc-x-api/filters/UserByIdsFilter.js.map +1 -0
  719. package/icc-x-api/filters/filters.js +1 -0
  720. package/icc-x-api/filters/filters.js.map +1 -0
  721. package/icc-x-api/icc-accesslog-x-api.js +1 -0
  722. package/icc-x-api/icc-accesslog-x-api.js.map +1 -0
  723. package/icc-x-api/icc-bekmehr-x-api.js +1 -0
  724. package/icc-x-api/icc-bekmehr-x-api.js.map +1 -0
  725. package/icc-x-api/icc-calendar-item-x-api.js +1 -0
  726. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -0
  727. package/icc-x-api/icc-classification-x-api.js +1 -0
  728. package/icc-x-api/icc-classification-x-api.js.map +1 -0
  729. package/icc-x-api/icc-code-x-api.js +1 -0
  730. package/icc-x-api/icc-code-x-api.js.map +1 -0
  731. package/icc-x-api/icc-contact-x-api.js +1 -0
  732. package/icc-x-api/icc-contact-x-api.js.map +1 -0
  733. package/icc-x-api/icc-crypto-x-api.d.ts +7 -1
  734. package/icc-x-api/icc-crypto-x-api.js +48 -12
  735. package/icc-x-api/icc-crypto-x-api.js.map +1 -0
  736. package/icc-x-api/icc-doctemplate-x-api.js +1 -0
  737. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -0
  738. package/icc-x-api/icc-document-x-api.js +1 -0
  739. package/icc-x-api/icc-document-x-api.js.map +1 -0
  740. package/icc-x-api/icc-form-x-api.js +1 -0
  741. package/icc-x-api/icc-form-x-api.js.map +1 -0
  742. package/icc-x-api/icc-hcparty-x-api.js +1 -0
  743. package/icc-x-api/icc-hcparty-x-api.js.map +1 -0
  744. package/icc-x-api/icc-helement-x-api.js +1 -0
  745. package/icc-x-api/icc-helement-x-api.js.map +1 -0
  746. package/icc-x-api/icc-invoice-x-api.js +1 -0
  747. package/icc-x-api/icc-invoice-x-api.js.map +1 -0
  748. package/icc-x-api/icc-message-x-api.js +1 -0
  749. package/icc-x-api/icc-message-x-api.js.map +1 -0
  750. package/icc-x-api/icc-patient-x-api.js +1 -0
  751. package/icc-x-api/icc-patient-x-api.js.map +1 -0
  752. package/icc-x-api/icc-receipt-x-api.js +1 -0
  753. package/icc-x-api/icc-receipt-x-api.js.map +1 -0
  754. package/icc-x-api/icc-time-table-x-api.js +1 -0
  755. package/icc-x-api/icc-time-table-x-api.js.map +1 -0
  756. package/icc-x-api/icc-user-x-api.js +1 -0
  757. package/icc-x-api/icc-user-x-api.js.map +1 -0
  758. package/icc-x-api/index.js +1 -0
  759. package/icc-x-api/index.js.map +1 -0
  760. package/icc-x-api/rsrc/codelng.js +1 -0
  761. package/icc-x-api/rsrc/codelng.js.map +1 -0
  762. package/icc-x-api/rsrc/contact.i18n.js +1 -0
  763. package/icc-x-api/rsrc/contact.i18n.js.map +1 -0
  764. package/icc-x-api/rsrc/icd10.js +1 -0
  765. package/icc-x-api/rsrc/icd10.js.map +1 -0
  766. package/icc-x-api/rsrc/icpc2.js +1 -0
  767. package/icc-x-api/rsrc/icpc2.js.map +1 -0
  768. package/icc-x-api/utils/asn1-packer.js +1 -0
  769. package/icc-x-api/utils/asn1-packer.js.map +1 -0
  770. package/icc-x-api/utils/asn1-parser.js +1 -0
  771. package/icc-x-api/utils/asn1-parser.js.map +1 -0
  772. package/icc-x-api/utils/binary-utils.js +1 -0
  773. package/icc-x-api/utils/binary-utils.js.map +1 -0
  774. package/icc-x-api/utils/code-util.js +1 -0
  775. package/icc-x-api/utils/code-util.js.map +1 -0
  776. package/icc-x-api/utils/formatting-util.js +1 -0
  777. package/icc-x-api/utils/formatting-util.js.map +1 -0
  778. package/icc-x-api/utils/functional-util.js +1 -0
  779. package/icc-x-api/utils/functional-util.js.map +1 -0
  780. package/icc-x-api/utils/hcp-util.js +1 -0
  781. package/icc-x-api/utils/hcp-util.js.map +1 -0
  782. package/icc-x-api/utils/index.js +1 -0
  783. package/icc-x-api/utils/index.js.map +1 -0
  784. package/icc-x-api/utils/insurability-util.js +1 -0
  785. package/icc-x-api/utils/insurability-util.js.map +1 -0
  786. package/icc-x-api/utils/net-utils.js +1 -0
  787. package/icc-x-api/utils/net-utils.js.map +1 -0
  788. package/icc-x-api/utils/person-util.js +1 -0
  789. package/icc-x-api/utils/person-util.js.map +1 -0
  790. package/icc-x-api/utils/uuid-encoder.js +1 -0
  791. package/icc-x-api/utils/uuid-encoder.js.map +1 -0
  792. package/index.js +1 -0
  793. package/index.js.map +1 -0
  794. package/node-compat.js +1 -0
  795. package/node-compat.js.map +1 -0
  796. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-form-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-form-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccFormApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\n\nimport { a2b, hex2ua, string2ua, ua2string } from './utils/binary-utils'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccFormXApi extends IccFormApi {\n crypto: IccCryptoXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: models.User, patient: models.Patient, c: any) {\n const form = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Form',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n c || {}\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, form)\n }\n\n private initDelegationsAndEncryptionKeys(user: models.User, patient: models.Patient, form: models.Form): Promise<models.Form> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId!)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(form, patient, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(form, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(form, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(form)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((form) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, form, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return form\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, form: models.Form) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(form, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(form, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((contact) =>\n this.crypto.appendEncryptionKeys(contact, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(contact, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n /**\n * 1. Check whether there is a delegation with 'hcpartyId' or not.\n * 2. 'fetchHcParty[hcpartyId][1]': is encrypted AES exchange key by RSA public key of him.\n * 3. Obtain the AES exchange key, by decrypting the previous step value with hcparty private key\n * 3.1. KeyPair should be fetch from cache (in jwk)\n * 3.2. if it doesn't exist in the cache, it has to be loaded from Browser Local store, and then import it to WebCrypto\n * 4. Obtain the array of delegations which are delegated to his ID (hcpartyId) in this patient\n * 5. Decrypt and collect all keys (secretForeignKeys) within delegations of previous step (with obtained AES key of step 4)\n * 6. Do the REST call to get all contacts with (allSecretForeignKeysDelimitedByComa, hcpartyId)\n *\n * After these painful steps, you have the contacts of the patient.\n *\n * @param hcpartyId\n * @param patient (Promise)\n */\n findBy(hcpartyId: string, patient: models.Patient) {\n return this.crypto\n .extractDelegationsSFKs(patient, hcpartyId)\n .then((secretForeignKeys) => this.findFormsByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(',')))\n .then((forms) => this.decrypt(hcpartyId, forms))\n .then(function (decryptedForms) {\n return decryptedForms\n })\n }\n\n decrypt(hcpartyId: string, forms: Array<models.Form>) {\n return Promise.all(\n forms.map((form) =>\n this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(hcpartyId, form.id!, _.size(form.encryptionKeys) ? form.encryptionKeys! : form.delegations!)\n .then(({ extractedKeys: sfks }) => {\n if (form.encryptedSelf) {\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, '')))\n .then(\n (key) =>\n new Promise((resolve: (value: any) => any) => {\n this.crypto.AES.decrypt(key, string2ua(a2b(form.encryptedSelf!))).then(resolve, () => {\n console.log('Cannot decrypt form', form.id)\n resolve(null)\n })\n })\n )\n .then((decrypted: ArrayBuffer) => {\n if (decrypted) {\n form = _.extend(form, JSON.parse(ua2string(decrypted)))\n }\n return form\n })\n } else {\n return Promise.resolve(form)\n }\n })\n .catch(function (e) {\n console.log(e)\n })\n )\n ).catch(function (e) {\n console.log(e)\n })\n }\n}\n"]}
@@ -98,3 +98,4 @@ class IccHcpartyXApi extends icc_api_1.IccHcpartyApi {
98
98
  }
99
99
  }
100
100
  exports.IccHcpartyXApi = IccHcpartyXApi;
101
+ //# sourceMappingURL=icc-hcparty-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-hcparty-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-hcparty-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccHcpartyApi } from '../icc-api'\nimport { HealthcareParty } from '../icc-api/model/HealthcareParty'\nimport * as models from '../icc-api/model/models'\nimport { findName, garnishPersonWithName, hasName } from './utils/person-util'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccHcpartyXApi extends IccHcpartyApi {\n hcPartyKeysCache: { [key: string]: { [key: string]: string } } = {}\n hcPartyCache: { [key: string]: [number, Promise<HealthcareParty>] } = {}\n\n private CACHE_RETENTION_IN_MS = 300_000\n constructor(\n host: string,\n headers: { [key: string]: string },\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n }\n\n private getHcPartyFromCache(key: string) {\n const hcpInCache = this.hcPartyCache[key]\n const now = Date.now()\n if (hcpInCache && hcpInCache[0] > now) {\n return hcpInCache[1]\n }\n if (!hcpInCache) {\n console.log(`Cache miss for key ${key} because not in cache`)\n } else {\n console.log(`Cache miss for key ${key} because ${hcpInCache[0]} > ${now}`)\n }\n return null\n }\n\n completeNames(hcParty?: models.HealthcareParty): models.HealthcareParty | undefined {\n if (!hcParty) {\n return hcParty\n }\n\n let finalHcParty = hcParty\n\n if ((!!finalHcParty.lastName || !!finalHcParty.name) && !hasName(finalHcParty, models.PersonName.UseEnum.Official)) {\n finalHcParty = garnishPersonWithName(\n finalHcParty,\n models.PersonName.UseEnum.Official,\n finalHcParty.lastName,\n finalHcParty.firstName,\n finalHcParty.name\n )\n }\n\n if ((!finalHcParty.lastName || !finalHcParty.name) && !!hasName(finalHcParty, models.PersonName.UseEnum.Official)) {\n let officialName = findName(finalHcParty, models.PersonName.UseEnum.Official)\n finalHcParty = {\n ...finalHcParty,\n lastName: officialName!.lastName,\n firstName: officialName!.firstNames ? officialName!.firstNames[0] : undefined,\n name: officialName!.text,\n }\n }\n\n return finalHcParty\n }\n\n putHcPartyInCache(key: string, value: Promise<HealthcareParty> | null = null): Promise<HealthcareParty> {\n const hcp =\n value ||\n super.getHealthcareParty(key).catch((e) => {\n console.log(`Evict key ${key} because of error`)\n delete this.hcPartyCache[key]\n throw e\n })\n this.hcPartyCache[key] = [Date.now() + this.CACHE_RETENTION_IN_MS, hcp]\n return hcp\n }\n\n createHealthcareParty(body?: HealthcareParty): Promise<HealthcareParty> {\n return super.createHealthcareParty(this.completeNames(body))\n }\n\n createHealthcarePartyInGroup(groupId: string, body?: HealthcareParty): Promise<HealthcareParty> {\n return super.createHealthcarePartyInGroup(groupId, this.completeNames(body))\n }\n\n modifyHealthcareParty(body?: HealthcareParty): Promise<HealthcareParty | any> {\n if (body && body.id) {\n console.log(`Evict key ${body.id} because of modification`)\n delete this.hcPartyCache[body.id]\n }\n\n return super.modifyHealthcareParty(this.completeNames(body)).then((hcp) => this.putHcPartyInCache(hcp.id!, Promise.resolve(hcp)))\n }\n\n getHealthcareParty(healthcarePartyId: string, bypassCache = false): Promise<HealthcareParty | any> {\n const fromCache = bypassCache ? undefined : this.getHcPartyFromCache(healthcarePartyId)\n return fromCache || this.putHcPartyInCache(healthcarePartyId)\n }\n\n getHealthcareParties(healthcarePartyIds: string): Promise<Array<HealthcareParty> | any> {\n const ids = healthcarePartyIds.split(',').filter((x) => !!x)\n const cached: Array<[string, Promise<HealthcareParty> | null]> = ids.map((id) => [id, this.getHcPartyFromCache(id)])\n const toFetch = cached.filter((x) => !x[1]).map((x) => x[0])\n\n if (!toFetch.length) {\n return Promise.all(cached.map((x) => x[1]!))\n }\n\n const prom: Promise<HealthcareParty[]> = super.getHealthcareParties(toFetch.join(','))\n return Promise.all(\n cached.map(\n (x) =>\n x[1] ||\n this.putHcPartyInCache(\n x[0],\n prom.then((hcps) => hcps.find((h) => h.id === x[0])!)\n )\n )\n )\n }\n\n getCurrentHealthcareParty(): Promise<HealthcareParty | any> {\n return super.getCurrentHealthcareParty().then((hcp) => this.putHcPartyInCache(hcp.id!, Promise.resolve(hcp)))\n }\n\n getHcPartyKeysForDelegate(healthcarePartyId: string, bypassCache = false): Promise<{ [key: string]: string }> {\n const cached = bypassCache ? null : this.hcPartyKeysCache[healthcarePartyId]\n return cached\n ? Promise.resolve(cached)\n : super.getHcPartyKeysForDelegate(healthcarePartyId).then((r) => (this.hcPartyKeysCache[healthcarePartyId] = r))\n }\n\n isValidCbe(cbe: string) {\n cbe = cbe.replace(new RegExp('[^(0-9)]', 'g'), '')\n cbe = cbe.length == 9 ? '0' + cbe : cbe\n\n return 97 - (Number(cbe.substr(0, 8)) % 97) === Number(cbe.substr(8, 2))\n }\n}\n"]}
@@ -169,3 +169,4 @@ class IccHelementXApi extends icc_api_1.IccHelementApi {
169
169
  }
170
170
  }
171
171
  exports.IccHelementXApi = IccHelementXApi;
172
+ //# sourceMappingURL=icc-helement-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-helement-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-helement-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccHelementApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as models from '../icc-api/model/models'\n\nimport * as _ from 'lodash'\nimport * as moment from 'moment'\nimport { a2b, hex2ua, string2ua, ua2utf8 } from './utils/binary-utils'\n\nexport class IccHelementXApi extends IccHelementApi {\n crypto: IccCryptoXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n newInstance(user: models.User, patient: models.Patient, h: any, confidential = false) {\n const hcpId = user.healthcarePartyId || user.patientId\n const helement = _.assign(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.HealthElement',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: hcpId,\n author: user.id,\n codes: [],\n tags: [],\n healthElementId: this.crypto.randomUuid(),\n openingDate: parseInt(moment().format('YYYYMMDDHHmmss')),\n },\n h || {}\n )\n\n return this.crypto\n .extractPreferredSfk(patient, hcpId!, confidential)\n .then((key) => {\n if (!key) {\n console.error(`SFK cannot be found for HealthElement ${helement.id}. The health element will not be reachable from the patient side`)\n }\n\n return this.crypto.initObjectDelegations(helement, patient, hcpId!, key)\n })\n .then((initData) => {\n _.extend(helement, {\n delegations: initData.delegations,\n cryptedForeignKeys: initData.cryptedForeignKeys,\n secretForeignKeys: initData.secretForeignKeys,\n })\n\n let promise = Promise.resolve(helement)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((helement) =>\n this.crypto\n .extendedDelegationsAndCryptedForeignKeys(helement, patient, hcpId!, delegateId, initData.secretId)\n .then((extraData) =>\n _.extend(helement, {\n delegations: extraData.delegations,\n cryptedForeignKeys: extraData.cryptedForeignKeys,\n })\n )\n .catch((e) => {\n console.log(e)\n return helement\n })\n ))\n )\n return promise\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n /**\n * 1. Check whether there is a delegation with 'hcpartyId' or not.\n * 2. 'fetchHcParty[hcpartyId][1]': is encrypted AES exchange key by RSA public key of him.\n * 3. Obtain the AES exchange key, by decrypting the previous step value with hcparty private key\n * 3.1. KeyPair should be fetch from cache (in jwk)\n * 3.2. if it doesn't exist in the cache, it has to be loaded from Browser Local store, and then import it to WebCrypto\n * 4. Obtain the array of delegations which are delegated to his ID (hcpartyId) in this patient\n * 5. Decrypt and collect all keys (secretForeignKeys) within delegations of previous step (with obtained AES key of step 4)\n * 6. Do the REST call to get all helements with (allSecretForeignKeysDelimitedByComa, hcpartyId)\n *\n * After these painful steps, you have the helements of the patient.\n *\n * @param hcpartyId\n * @param patient (Promise)\n * @param keepObsoleteVersions\n */\n\n findBy(hcpartyId: string, patient: models.Patient, keepObsoleteVersions = false) {\n return this.crypto\n .extractSFKsHierarchyFromDelegations(patient, hcpartyId)\n .then((secretForeignKeys) =>\n secretForeignKeys && secretForeignKeys.length > 0\n ? Promise.all(\n secretForeignKeys\n .reduce((acc, level) => {\n return acc.concat([\n {\n hcpartyId: level.hcpartyId,\n extractedKeys: level.extractedKeys.filter((key) => !acc.some((previousLevel) => previousLevel.extractedKeys.includes(key))),\n },\n ])\n }, [] as Array<{ hcpartyId: string; extractedKeys: Array<string> }>)\n .filter((l) => l.extractedKeys.length > 0)\n .map(({ hcpartyId, extractedKeys }) => this.findByHCPartyPatientSecretFKeys(hcpartyId, extractedKeys.join(',')))\n ).then((results) => _.uniqBy(_.flatMap(results), (x) => x.id))\n : Promise.resolve([])\n )\n .then((decryptedHelements: Array<models.HealthElement>) => {\n const byIds: { [key: string]: models.HealthElement } = {}\n\n if (keepObsoleteVersions) {\n return decryptedHelements\n } else {\n decryptedHelements.forEach((he) => {\n if (he.healthElementId) {\n const phe = byIds[he.healthElementId]\n if (!phe || !phe.modified || (he.modified && phe.modified < he.modified)) {\n byIds[he.healthElementId] = he\n }\n }\n })\n return _.values(byIds).filter((s: any) => !s.endOfLife)\n }\n })\n }\n\n findByHCPartyPatientSecretFKeys(hcPartyId: string, secretFKeys: string): Promise<Array<models.Contact> | any> {\n return super.findHealthElementsByHCPartyPatientForeignKeys(hcPartyId, secretFKeys).then((helements) => this.decrypt(hcPartyId, helements))\n }\n\n decrypt(hcpartyId: string, hes: Array<models.HealthElement>): Promise<Array<models.HealthElement>> {\n return Promise.all(\n hes.map((he) =>\n this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(hcpartyId, he.id!, _.size(he.encryptionKeys) ? he.encryptionKeys! : he.delegations!)\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n console.log('Cannot decrypt helement', he.id)\n return Promise.resolve(he)\n }\n if (he.encryptedSelf) {\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, ''))).then(\n (key) =>\n new Promise((resolve: (value: any) => any) =>\n this.crypto.AES.decrypt(key, string2ua(a2b(he.encryptedSelf!))).then(\n (dec) => {\n let jsonContent\n try {\n jsonContent = dec && ua2utf8(dec)\n jsonContent && _.assign(he, JSON.parse(jsonContent))\n } catch (e) {\n console.log('Cannot parse he', he.id, jsonContent || '<- Invalid encoding')\n }\n resolve(he)\n },\n () => {\n console.log('Cannot decrypt contact', he.id)\n resolve(he)\n }\n )\n )\n )\n } else {\n return Promise.resolve(he)\n }\n })\n )\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n serviceToHealthElement(user: models.User, patient: models.Patient, heSvc: models.Service, descr: string) {\n return this.newInstance(user, patient, {\n idService: heSvc.id,\n author: heSvc.author,\n responsible: heSvc.responsible,\n openingDate: heSvc.valueDate || heSvc.openingDate,\n descr: descr,\n idOpeningContact: heSvc.contactId,\n modified: heSvc.modified,\n created: heSvc.created,\n codes: heSvc.codes,\n tags: heSvc.tags,\n }).then((he) => {\n return this.createHealthElement(he)\n })\n }\n\n // noinspection JSUnusedGlobalSymbols, JSMethodCanBeStatic\n stringToCode(code: string) {\n const c = code.split('|')\n return new models.Code({\n type: c[0],\n code: c[1],\n version: c[2],\n id: code,\n })\n }\n}\n"]}
@@ -142,3 +142,4 @@ class IccInvoiceXApi extends icc_api_1.IccInvoiceApi {
142
142
  }
143
143
  }
144
144
  exports.IccInvoiceXApi = IccInvoiceXApi;
145
+ //# sourceMappingURL=icc-invoice-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-invoice-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-invoice-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccInvoiceApi, IccEntityrefApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport { Invoice } from '../icc-api/model/models'\n\nexport class IccInvoiceXApi extends IccInvoiceApi {\n crypto: IccCryptoXApi\n entityrefApi: IccEntityrefApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n entityrefApi: IccEntityrefApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.entityrefApi = entityrefApi\n }\n\n newInstance(user: models.User, patient: models.Patient, inv?: any): Promise<models.Invoice> {\n const invoice = new models.Invoice(\n _.extend(\n {\n id: this.crypto.randomUuid(),\n groupId: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Invoice',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n invoicingCodes: [],\n },\n inv || {}\n )\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, invoice)\n }\n\n private initDelegationsAndEncryptionKeys(user: models.User, patient: models.Patient, invoice: models.Invoice): Promise<models.Invoice> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(invoice, patient, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(invoice, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(invoice, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(invoice)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.financialInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((invoice) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, invoice, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return invoice\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, invoice: models.Invoice) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(invoice, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(invoice, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.financialInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((invoice) =>\n this.crypto.appendEncryptionKeys(invoice, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(invoice, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n createInvoice(invoice: Invoice, prefix?: string): Promise<Invoice> {\n if (!prefix) {\n return super.createInvoice(invoice)\n }\n if (!invoice.id) {\n invoice.id = this.crypto.randomUuid()\n }\n return this.getNextInvoiceReference(prefix, this.entityrefApi)\n .then((reference) => this.createInvoiceReference(reference, invoice.id!, prefix, this.entityrefApi))\n .then((entityReference) => {\n if (!entityReference.id) {\n throw new Error('Cannot create invoice')\n }\n\n if (invoice.internshipNihii) {\n const ref = entityReference.id.substr(prefix.length).replace('0', '1')\n invoice.invoiceReference = ref\n } else {\n invoice.invoiceReference = entityReference.id.substr(prefix.length)\n }\n return super.createInvoice(invoice)\n })\n }\n\n getNextInvoiceReference(prefix: string, entityrefApi: IccEntityrefApi): Promise<number> {\n return entityrefApi.getLatest(prefix).then((entRef: models.EntityReference) => {\n if (!entRef || !entRef.id || !entRef.id!.startsWith(prefix)) return 1\n const sequenceNumber = entRef.id!.split(':').pop() || 0\n return Number(sequenceNumber) + 1\n })\n }\n\n createInvoiceReference(nextReference: number, docId: string, prefix: string, entityrefApi: IccEntityrefApi): Promise<models.EntityReference> {\n return entityrefApi\n .createEntityReference(\n new models.EntityReference({\n id: prefix + nextReference.toString().padStart(6, '0'),\n docId,\n })\n )\n .catch((err) => {\n console.log(err)\n return this.createInvoiceReference(nextReference + 1, docId, prefix, entityrefApi)\n })\n }\n\n /**\n * 1. Check whether there is a delegation with 'hcpartyId' or not.\n * 2. 'fetchHcParty[hcpartyId][1]': is encrypted AES exchange key by RSA public key of him.\n * 3. Obtain the AES exchange key, by decrypting the previous step value with hcparty private key\n * 3.1. KeyPair should be fetch from cache (in jwk)\n * 3.2. if it doesn't exist in the cache, it has to be loaded from Browser Local store, and then import it to WebCrypto\n * 4. Obtain the array of delegations which are delegated to his ID (hcpartyId) in this patient\n * 5. Decrypt and collect all keys (secretForeignKeys) within delegations of previous step (with obtained AES key of step 4)\n * 6. Do the REST call to get all invoices with (allSecretForeignKeysDelimitedByComa, hcpartyId)\n *\n * After these painful steps, you have the invoices of the patient.\n *\n * @param hcpartyId\n * @param patient (Promise)\n */\n findBy(hcpartyId: string, patient: models.Patient): Promise<Array<models.Invoice>> {\n return this.crypto\n .extractDelegationsSFKs(patient, hcpartyId)\n .then((secretForeignKeys) =>\n this.findInvoicesByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n )\n .then((invoices) => this.decrypt(hcpartyId, invoices))\n .then(function (decryptedInvoices) {\n return decryptedInvoices\n })\n }\n\n encrypt(user: models.User, invoices: Array<models.Invoice>) {\n return Promise.resolve(invoices)\n }\n\n decrypt(hcpartyId: string, invoices: Array<models.Invoice>): Promise<Array<models.Invoice>> {\n return Promise.resolve(invoices)\n }\n}\n"]}
@@ -59,3 +59,4 @@ class IccMessageXApi extends icc_api_1.IccMessageApi {
59
59
  }
60
60
  }
61
61
  exports.IccMessageXApi = IccMessageXApi;
62
+ //# sourceMappingURL=icc-message-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-message-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-message-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccEntityrefApi, IccInsuranceApi, IccMessageApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport { IccDocumentXApi } from './icc-document-x-api'\nimport { IccInvoiceXApi } from './icc-invoice-x-api'\n\nimport * as _ from 'lodash'\nimport * as moment from 'moment'\n\nimport {\n AbstractFilterPatient,\n EntityReference,\n FilterChainPatient,\n HealthcareParty,\n Insurance,\n Invoice,\n ListOfIds,\n Message,\n PaginatedListPatient,\n Patient,\n PatientHealthCareParty,\n Receipt,\n ReferralPeriod,\n User,\n} from '../icc-api/model/models'\n\nimport { IccReceiptXApi } from './icc-receipt-x-api'\nimport { IccPatientXApi } from './icc-patient-x-api'\n\nexport class IccMessageXApi extends IccMessageApi {\n private crypto: IccCryptoXApi\n private insuranceApi: IccInsuranceApi\n private entityReferenceApi: IccEntityrefApi\n private receiptXApi: IccReceiptXApi\n private invoiceXApi: IccInvoiceXApi\n private documentXApi: IccDocumentXApi\n private patientApi: IccPatientXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n insuranceApi: IccInsuranceApi,\n entityReferenceApi: IccEntityrefApi,\n invoiceXApi: IccInvoiceXApi,\n documentXApi: IccDocumentXApi,\n receiptXApi: IccReceiptXApi,\n patientApi: IccPatientXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.insuranceApi = insuranceApi\n this.entityReferenceApi = entityReferenceApi\n this.receiptXApi = receiptXApi\n this.invoiceXApi = invoiceXApi\n this.documentXApi = documentXApi\n this.patientApi = patientApi\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: User, m: any) {\n return this.newInstanceWithPatient(user, null, m)\n }\n\n newInstanceWithPatient(user: User, patient: Patient | null, m: any) {\n const message = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Message',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId,\n author: user.id,\n codes: [],\n tags: [],\n },\n m || {}\n )\n\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId)\n .then((secretForeignKeys) => this.crypto.initObjectDelegations(message, patient, hcpId!, secretForeignKeys.extractedKeys[0]))\n .then((initData) => {\n _.extend(message, {\n delegations: initData.delegations,\n cryptedForeignKeys: initData.cryptedForeignKeys,\n secretForeignKeys: initData.secretForeignKeys,\n })\n\n let promise = Promise.resolve(message)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((helement) =>\n this.crypto\n .extendedDelegationsAndCryptedForeignKeys(helement, patient, hcpId!, delegateId, initData.secretId)\n .then((extraData) =>\n _.extend(helement, {\n delegations: extraData.delegations,\n cryptedForeignKeys: extraData.cryptedForeignKeys,\n })\n )\n .catch((e) => {\n console.log(e)\n return helement\n })\n ))\n )\n return promise\n })\n }\n}\n"]}
@@ -835,3 +835,4 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
835
835
  }
836
836
  }
837
837
  exports.IccPatientXApi = IccPatientXApi;
838
+ //# sourceMappingURL=icc-patient-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-patient-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-patient-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccPatientApi, IccEntityrefApi, IccAuthApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport { IccContactXApi } from './icc-contact-x-api'\nimport { IccFormXApi } from './icc-form-x-api'\nimport { IccHcpartyXApi } from './icc-hcparty-x-api'\nimport { IccInvoiceXApi } from './icc-invoice-x-api'\nimport { IccDocumentXApi } from './icc-document-x-api'\nimport { IccHelementXApi } from './icc-helement-x-api'\nimport { IccClassificationXApi } from './icc-classification-x-api'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport {\n CalendarItem,\n Classification,\n Delegation,\n Document,\n HealthcareParty,\n IcureStub,\n Invoice,\n ListOfIds,\n Patient,\n PersonName,\n} from '../icc-api/model/models'\nimport { retry } from './utils'\nimport { utils } from './crypto/utils'\nimport { IccCalendarItemXApi } from './icc-calendar-item-x-api'\nimport { b64_2ab } from '../icc-api/model/ModelHelper'\nimport { b2a, hex2ua, string2ua, ua2hex, ua2utf8, utf8_2ua } from './utils/binary-utils'\nimport { findName, garnishPersonWithName, hasName } from './utils/person-util'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccPatientXApi extends IccPatientApi {\n crypto: IccCryptoXApi\n contactApi: IccContactXApi\n formApi: IccFormXApi\n helementApi: IccHelementXApi\n invoiceApi: IccInvoiceXApi\n hcpartyApi: IccHcpartyXApi\n documentApi: IccDocumentXApi\n classificationApi: IccClassificationXApi\n calendarItemApi: IccCalendarItemXApi\n\n private readonly encryptedKeys: Array<string>\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n contactApi: IccContactXApi,\n formApi: IccFormXApi,\n helementApi: IccHelementXApi,\n invoiceApi: IccInvoiceXApi,\n documentApi: IccDocumentXApi,\n hcpartyApi: IccHcpartyXApi,\n classificationApi: IccClassificationXApi,\n calendarItemaApi: IccCalendarItemXApi,\n encryptedKeys: Array<string> = ['note'],\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.contactApi = contactApi\n this.formApi = formApi\n this.helementApi = helementApi\n this.invoiceApi = invoiceApi\n this.hcpartyApi = hcpartyApi\n this.documentApi = documentApi\n this.classificationApi = classificationApi\n this.calendarItemApi = calendarItemaApi\n\n this.encryptedKeys = encryptedKeys\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: models.User, p: any) {\n const patient = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Patient',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n p || {}\n )\n return this.initDelegations(patient, user)\n }\n\n completeNames(patient: models.Patient): models.Patient {\n let finalPatient = patient\n\n if (!!finalPatient.lastName && !hasName(finalPatient, models.PersonName.UseEnum.Official)) {\n finalPatient = garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Official, finalPatient.lastName, finalPatient.firstName)\n }\n\n if (!!finalPatient.maidenName && !hasName(finalPatient, models.PersonName.UseEnum.Maiden)) {\n finalPatient = garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Maiden, finalPatient.maidenName, finalPatient.firstName)\n }\n\n if (!!finalPatient.alias && !hasName(finalPatient, models.PersonName.UseEnum.Nickname)) {\n finalPatient = garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Nickname, finalPatient.alias, finalPatient.firstName)\n }\n\n if (!finalPatient.lastName && !!hasName(finalPatient, models.PersonName.UseEnum.Official)) {\n let officialName = findName(finalPatient, models.PersonName.UseEnum.Official)\n finalPatient = {\n ...finalPatient,\n lastName: officialName!.lastName,\n firstName: officialName!.firstNames?.[0],\n }\n }\n\n if (!finalPatient.maidenName && !!hasName(finalPatient, models.PersonName.UseEnum.Maiden)) {\n finalPatient = {\n ...finalPatient,\n maidenName: findName(finalPatient, models.PersonName.UseEnum.Maiden)!.lastName,\n }\n }\n\n if (!finalPatient.alias && !!hasName(finalPatient, models.PersonName.UseEnum.Nickname)) {\n finalPatient = {\n ...finalPatient,\n alias: findName(finalPatient, models.PersonName.UseEnum.Nickname)!.lastName,\n }\n }\n\n return finalPatient\n }\n\n initDelegations(patient: models.Patient, user: models.User, secretForeignKey?: string): Promise<models.Patient> {\n return this.crypto\n .initObjectDelegations(patient, null, (user.healthcarePartyId || user.patientId)!, secretForeignKey || null)\n .then((initData) => {\n _.extend(patient, { delegations: initData.delegations })\n\n let promise = Promise.resolve(patient)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise\n .then((patient) =>\n this.crypto.extendedDelegationsAndCryptedForeignKeys(\n patient,\n null,\n (user.healthcarePartyId || user.patientId)!,\n delegateId,\n initData.secretId\n )\n )\n .then((extraData) => _.extend(patient, { delegations: extraData.delegations }))\n .catch((e) => {\n console.log(e)\n return patient\n }))\n )\n return promise\n })\n }\n\n initConfidentialDelegation(patient: models.Patient, user: models.User): Promise<models.Patient | null> {\n const ownerId = user.healthcarePartyId || user.patientId\n return this.crypto.extractPreferredSfk(patient, ownerId!, true).then((k) => {\n if (!k) {\n const secretId = this.crypto.randomUuid()\n return this.crypto\n .decryptAndImportAesHcPartyKeysForDelegators([ownerId!], ownerId!)\n .then((hcPartyKeys) => {\n return this.crypto.AES.encrypt(hcPartyKeys[0].key, string2ua(patient.id + ':' + secretId).buffer as ArrayBuffer)\n })\n .then((newDelegation) => {\n ;(patient.delegations![ownerId!] || (patient.delegations![ownerId!] = [])).push(\n new Delegation({\n owner: ownerId,\n delegatedTo: ownerId,\n tag: 'confidential',\n key: ua2hex(newDelegation),\n })\n )\n return patient.rev ? this.modifyPatientWithUser(user, patient) : this.createPatientWithUser(user, patient)\n })\n } else {\n return patient\n }\n })\n }\n\n createPatient(body?: models.Patient): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n createPatientWithUser(user: models.User, body?: models.Patient): Promise<models.Patient | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(this.completeNames(body))])\n .then((pats) => super.createPatient(pats[0]))\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n : Promise.resolve(null)\n }\n\n filterBy(\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n skip?: number,\n sort?: string,\n desc?: boolean,\n body?: models.FilterChainPatient\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n filterByWithUser(\n user: models.User,\n filterChain: models.FilterChainPatient,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n skip?: number,\n sort?: string,\n desc?: boolean\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .filterPatientsBy(startKey, startDocumentId, limit, skip, sort, desc, filterChain)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n findByAccessLogUserAfterDate(\n userId: string,\n accessType?: string,\n startDate?: number,\n startKey?: string,\n startDocumentId?: string,\n limit?: number\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByAccessLogUserAfterDateWithUser(\n user: models.User,\n userId: string,\n accessType?: string,\n startDate?: number,\n startKey?: string,\n startDocumentId?: string,\n limit?: number\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .findByAccessLogUserAfterDate(userId, accessType, startDate, startKey, startDocumentId, limit)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n findByAccessLogUserAfterDate_1(externalId: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByExternalIdWithUser(user: models.User, externalId: string): Promise<models.Patient | any> {\n return super\n .findByExternalId(externalId)\n .then((pats) => this.decrypt(user, [pats]))\n .then((x) => x[0])\n }\n\n findByNameBirthSsinAuto(\n healthcarePartyId?: string,\n filterValue?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByNameBirthSsinAutoWithUser(\n user: models.User,\n healthcarePartyId?: string,\n filterValue?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .findByNameBirthSsinAuto(healthcarePartyId, filterValue, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n fuzzySearch(firstName?: string, lastName?: string, dateOfBirth?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n fuzzySearchWithUser(user: models.User, firstName?: string, lastName?: string, dateOfBirth?: number): Promise<Array<models.Patient> | any> {\n return super.fuzzySearch(firstName, lastName, dateOfBirth).then((pats) => this.decrypt(user, pats))\n }\n\n getPatient(patientId: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n getPatientRaw(patientId: string): Promise<models.Patient | any> {\n return super.getPatient(patientId)\n }\n\n getPatientWithUser(user: models.User, patientId: string): Promise<models.Patient | any> {\n return super\n .getPatient(patientId)\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n }\n\n getPatients(body?: models.ListOfIds): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n getPatientsWithUser(user: models.User, body?: models.ListOfIds): Promise<Array<models.Patient> | any> {\n return super.getPatients(body).then((pats) => this.decrypt(user, pats))\n }\n\n listDeletedPatients(startDate?: number, endDate?: number, desc?: boolean, startDocumentId?: string, limit?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listDeletedPatientsWithUser(\n user: models.User,\n startDate?: number,\n endDate?: number,\n desc?: boolean,\n startDocumentId?: string,\n limit?: number\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listDeletedPatients(startDate, endDate, desc, startDocumentId, limit)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listDeletedPatients_2(firstName?: string, lastName?: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listDeletedPatientsByNameWithUser(user: models.User, firstName?: string, lastName?: string): Promise<Array<models.Patient> | any> {\n return super.listDeletedPatientsByName(firstName, lastName).then((rows) => this.decrypt(user, rows, false))\n }\n\n listOfMergesAfter(date: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listOfMergesAfterWithUser(user: models.User, date: number): Promise<Array<models.Patient> | any> {\n return super.listOfMergesAfter(date).then((pats) => this.decrypt(user, pats, false))\n }\n\n listOfPatientsModifiedAfter(date: number, startKey?: number, startDocumentId?: string, limit?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listOfPatientsModifiedAfterWithUser(\n user: models.User,\n date: number,\n startKey?: number,\n startDocumentId?: string,\n limit?: number\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listOfPatientsModifiedAfter(date, startKey, startDocumentId, limit)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listPatients(hcPartyId?: string, sortField?: string, startKey?: string, startDocumentId?: string, limit?: number, sortDirection?: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listPatientsWithUser(\n user: models.User,\n hcPartyId?: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listPatients(hcPartyId, sortField, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listPatientsByHcParty(\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listPatientsByHcPartyWithUser(\n user: models.User,\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listPatientsByHcParty(hcPartyId, sortField, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listPatientsOfHcParty(\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listPatientsOfHcPartyWithUser(\n user: models.User,\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listPatientsOfHcParty(hcPartyId, sortField, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n mergeInto(toId: string, fromIds: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n mergeIntoWithUser(user: models.User, toId: string, fromIds: string): Promise<models.Patient | any> {\n return super\n .mergeInto(toId, fromIds)\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n }\n\n modifyPatient(body?: models.Patient): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n modifyPatientRaw(body?: models.Patient): Promise<models.Patient | any> {\n return super.modifyPatient(body)\n }\n\n modifyPatientWithUser(user: models.User, body?: models.Patient): Promise<models.Patient | null> {\n return body\n ? this.encrypt(user, [_.cloneDeep(this.completeNames(body))])\n .then((pats) => super.modifyPatient(pats[0]))\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n : Promise.resolve(null)\n }\n\n modifyPatientReferral(patientId: string, referralId: string, start?: number, end?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n modifyPatientReferralWithUser(\n user: models.User,\n patientId: string,\n referralId: string,\n start?: number,\n end?: number\n ): Promise<models.Patient | any> {\n return super\n .modifyPatientReferral(patientId, referralId, start, end)\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n }\n\n encrypt(user: models.User, pats: Array<models.Patient>): Promise<Array<models.Patient>> {\n return Promise.all(\n pats.map((p) =>\n (p.encryptionKeys && Object.keys(p.encryptionKeys).some((k) => !!p.encryptionKeys![k].length)\n ? Promise.resolve(p)\n : this.initEncryptionKeys(user, p)\n )\n .then((p: Patient) =>\n this.crypto.extractKeysFromDelegationsForHcpHierarchy((user.healthcarePartyId || user.patientId)!, p.id!, p.encryptionKeys!)\n )\n .then((sfks: { extractedKeys: Array<string>; hcpartyId: string }) =>\n this.crypto.AES.importKey('raw', hex2ua(sfks.extractedKeys[0].replace(/-/g, '')))\n )\n .then((key: CryptoKey) =>\n utils.crypt(\n p,\n (obj: { [key: string]: string }) =>\n this.crypto.AES.encrypt(\n key,\n utf8_2ua(\n JSON.stringify(obj, (k, v) => {\n return v instanceof ArrayBuffer || v instanceof Uint8Array\n ? b2a(new Uint8Array(v).reduce((d, b) => d + String.fromCharCode(b), ''))\n : v\n })\n )\n ),\n this.encryptedKeys\n )\n )\n )\n )\n }\n\n decrypt(user: models.User, pats: Array<models.Patient>, fillDelegations = true): Promise<Array<models.Patient>> {\n return (\n user.healthcarePartyId\n ? this.hcpartyApi.getHealthcareParty(user.healthcarePartyId!).then((hcp) => [hcp.id, hcp.parentId])\n : Promise.resolve([user.patientId])\n ).then((ids) => {\n const hcpId = ids[0]\n //First check that we have no dangling delegation\n const patsWithMissingDelegations = pats.filter(\n (p) =>\n p.delegations &&\n ids.some((id) => p.delegations![id!] && !p.delegations![id!].length) &&\n !Object.values(p.delegations).some((d) => d.length > 0)\n )\n\n let prom: Promise<{ [key: string]: models.Patient }> = Promise.resolve({})\n fillDelegations &&\n patsWithMissingDelegations.forEach((p) => {\n prom = prom.then((acc) =>\n this.initDelegations(p, user).then((p) =>\n this.modifyPatientWithUser(user, p).then((mp) => {\n acc[p.id!] = mp || p\n return acc\n })\n )\n )\n })\n\n return prom\n .then((acc: { [key: string]: models.Patient }) =>\n pats.map((p) => {\n const fixedPatient = acc[p.id!]\n return fixedPatient || p\n })\n )\n .then((pats) => {\n return Promise.all(\n pats.map((p) => {\n return p.encryptedSelf\n ? this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(hcpId!, p.id!, _.size(p.encryptionKeys) ? p.encryptionKeys! : p.delegations!)\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n //console.log(\"Cannot decrypt contact\", ctc.id)\n return Promise.resolve(p)\n }\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, ''))).then((key) =>\n utils\n .decrypt(p, (ec) =>\n this.crypto.AES.decrypt(key, ec)\n .then((dec) => {\n const jsonContent = dec && ua2utf8(dec)\n try {\n return JSON.parse(jsonContent)\n } catch (e) {\n console.log('Cannot parse patient', p.id, jsonContent || 'Invalid content')\n return p\n }\n })\n .catch((err) => {\n console.log('Cannot decrypt patient', p.id, err)\n return p\n })\n )\n .then((p) => {\n if (p.picture && !(p.picture instanceof ArrayBuffer)) {\n p.picture = b64_2ab(p.picture)\n }\n return p\n })\n )\n })\n : Promise.resolve(p)\n })\n )\n })\n })\n }\n\n initEncryptionKeys(user: models.User, pat: models.Patient): Promise<models.Patient> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(pat, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(pat, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((patient) =>\n this.crypto\n .appendEncryptionKeys(patient, hcpId!, delegateId, eks.secretId)\n .then((extraEks) => {\n return _.extend(patient, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n .catch((e) => {\n console.log(e.message)\n return patient\n })\n ))\n )\n return promise\n })\n }\n\n share(\n user: models.User,\n patId: string,\n ownerId: string,\n delegateIds: Array<string>,\n delegationTags: { [key: string]: Array<string> }\n ): Promise<{\n patient: models.Patient | null\n statuses: { [key: string]: { success: boolean | null; error: Error | null } }\n } | null> {\n const addDelegationsAndKeys = (\n dtos: Array<models.Form | models.Document | models.Contact | models.HealthElement | models.Classification | models.CalendarItem>,\n markerPromise: Promise<any>,\n delegateId: string,\n patient: models.Patient | null\n ) => {\n return dtos.reduce(\n (p, x) =>\n p.then(() =>\n Promise.all([this.crypto.extractDelegationsSFKs(x, ownerId), this.crypto.extractEncryptionsSKs(x, ownerId)]).then(([sfks, eks]) => {\n //console.log(`share ${x.id} to ${delegateId}`)\n return this.crypto\n .addDelegationsAndEncryptionKeys(patient, x, ownerId, delegateId, sfks.extractedKeys[0], eks.extractedKeys[0])\n .catch((e: any) => {\n console.log(e)\n return x\n })\n })\n ),\n markerPromise\n )\n }\n\n const allTags: string[] = _.uniq(_.flatMap(Object.values(delegationTags)))\n\n // Determine which keys to share, depending on the delegation tag. For example, anonymousMedicalData only shares encryption keys and no delegations or secret foreign keys.\n const shareDelegations: boolean = allTags.some((tag) => tag != 'anonymousMedicalInformation')\n const shareEncryptionKeys = true\n const shareCryptedForeignKeys: boolean = allTags.some((tag) => tag != 'anonymousMedicalInformation')\n\n // Anonymous sharing, will not change anything to the patient, only its contacts and health elements.\n const shareAnonymously: boolean = allTags.every((tag) => tag == 'anonymousMedicalInformation')\n\n return this.hcpartyApi.getHealthcareParty(ownerId).then((hcp) => {\n const parentId = hcp.parentId\n const status = {\n contacts: {\n success:\n allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n forms: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n healthElements: {\n success:\n allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n invoices: {\n success: allTags.includes('financialInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n documents: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n classifications: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n calendarItems: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n patient: { success: false, error: null, modified: 0 } as {\n success: boolean\n error: Error | null\n },\n }\n return retry(() => this.getPatientWithUser(user, patId))\n .then((patient: models.Patient) =>\n patient.encryptionKeys && Object.keys(patient.encryptionKeys || {}).length\n ? Promise.resolve(patient)\n : this.initEncryptionKeys(user, patient).then((patient: models.Patient) => this.modifyPatientWithUser(user, patient))\n )\n .then((patient: models.Patient | null) => {\n if (!patient) {\n status.patient = {\n success: false,\n error: new Error('Patient does not exist or cannot initialise encryption keys'),\n }\n return Promise.resolve({ patient: patient, statuses: status })\n }\n\n return this.crypto.extractDelegationsSFKsAndEncryptionSKs(patient, ownerId).then(([delSfks, ecKeys]) => {\n return delSfks.length\n ? Promise.all([\n retry(() =>\n this.helementApi\n .findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((hes) =>\n parentId\n ? this.helementApi\n .findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreHes) => _.uniqBy(hes.concat(moreHes), 'id'))\n : hes\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.formApi\n .findFormsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((frms) =>\n parentId\n ? this.formApi\n .findFormsDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreFrms) => _.uniqBy(frms.concat(moreFrms), 'id'))\n : frms\n )\n ) as Promise<Array<models.Form>>,\n retry(() =>\n this.contactApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((ctcs) =>\n parentId\n ? this.contactApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreCtcs) => _.uniqBy(ctcs.concat(moreCtcs), 'id'))\n : ctcs\n )\n ) as Promise<Array<models.Contact>>,\n retry(() =>\n this.invoiceApi\n .findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((ivs) =>\n parentId\n ? this.invoiceApi\n .findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreIvs) => _.uniqBy(ivs.concat(moreIvs), 'id'))\n : ivs\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((cls) =>\n parentId\n ? this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))\n : cls\n )\n ) as Promise<Array<models.Classification>>,\n retry(() =>\n this.calendarItemApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((cls) =>\n parentId\n ? this.calendarItemApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))\n : cls\n )\n ) as Promise<Array<models.CalendarItem>>,\n ]).then(([hes, frms, ctcs, ivs, cls, cis]) => {\n const cloneKeysAndDelegations = function (x: models.IcureStub) {\n return {\n delegations: shareDelegations ? _.clone(x.delegations) : undefined,\n cryptedForeignKeys: shareCryptedForeignKeys ? _.clone(x.cryptedForeignKeys) : undefined,\n encryptionKeys: shareEncryptionKeys ? _.clone(x.encryptionKeys) : undefined,\n }\n }\n\n const ctcsStubs = ctcs.map((c) => ({\n id: c.id,\n rev: c.rev,\n ...cloneKeysAndDelegations(c),\n }))\n const oHes = hes.map((x) => _.assign(new IcureStub({}), x, cloneKeysAndDelegations(x)))\n const oFrms = frms.map((x) => _.assign(new IcureStub({}), x, cloneKeysAndDelegations(x)))\n const oCtcsStubs = ctcsStubs.map((x) => _.assign({}, x, cloneKeysAndDelegations(x)))\n const oIvs = ivs.map((x) => _.assign(new Invoice({}), x, cloneKeysAndDelegations(x)))\n const oCls = cls.map((x) => _.assign(new Classification({}), x, cloneKeysAndDelegations(x)))\n const oCis = cis.map((x) => _.assign(new CalendarItem({}), x, cloneKeysAndDelegations(x)))\n\n const docIds: { [key: string]: number } = {}\n ctcs.forEach(\n (c: models.Contact) =>\n c.services &&\n c.services.forEach((s) => s.content && Object.values(s.content).forEach((c) => c.documentId && (docIds[c.documentId] = 1)))\n )\n\n return retry(() => this.documentApi.getDocuments(new ListOfIds({ ids: Object.keys(docIds) }))).then((docs: Array<Document>) => {\n const oDocs = docs.map((x) => _.assign({}, x, cloneKeysAndDelegations(x)))\n\n let markerPromise: Promise<any> = Promise.resolve(null)\n delegateIds.forEach((delegateId) => {\n const tags = delegationTags[delegateId]\n markerPromise = markerPromise.then(() => {\n //Share patient\n //console.log(`share ${patient.id} to ${delegateId}`)\n return shareAnonymously\n ? patient\n : this.crypto\n .addDelegationsAndEncryptionKeys(null, patient, ownerId, delegateId, delSfks[0], ecKeys[0])\n .then(async (patient) => {\n if (delSfks.length > 1) {\n return delSfks.slice(1).reduce(async (patientPromise: Promise<models.Patient>, delSfk: string) => {\n const patient = await patientPromise\n return shareAnonymously\n ? patient\n : this.crypto\n .addDelegationsAndEncryptionKeys(null, patient, ownerId, delegateId, delSfk, null)\n .catch((e: any) => {\n console.log(e)\n return patient\n })\n }, Promise.resolve(patient))\n }\n return patient\n })\n .catch((e) => {\n console.log(e)\n return patient\n })\n })\n ;(tags.includes('medicalInformation') || tags.includes('anonymousMedicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(hes, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(frms, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('anonymousMedicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(ctcsStubs, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(cls, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(cis, markerPromise, delegateId, patient))\n ;(tags.includes('financialInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(ivs, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(docs, markerPromise, delegateId, null))\n })\n\n return markerPromise\n .then(() => {\n //console.log(\"scd\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all')) &&\n ctcsStubs &&\n ctcsStubs.length &&\n !_.isEqual(oCtcsStubs, ctcsStubs) &&\n this.contactApi\n .setContactsDelegations(ctcsStubs)\n .then(() => {\n status.contacts.success = true\n status.contacts.modified += ctcsStubs.length\n })\n .catch((e) => (status.contacts.error = e))) ||\n Promise.resolve((status.contacts.success = true))\n )\n })\n .then(() => {\n //console.log(\"shed\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all')) &&\n hes &&\n hes.length &&\n !_.isEqual(oHes, hes) &&\n this.helementApi\n .setHealthElementsDelegations(hes)\n .then(() => {\n status.healthElements.success = true\n status.healthElements.modified += hes.length\n })\n .catch((e) => (status.healthElements.error = e))) ||\n Promise.resolve((status.healthElements.success = true))\n )\n })\n .then(() => {\n //console.log(\"sfd\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n frms &&\n frms.length &&\n !_.isEqual(oFrms, frms) &&\n this.formApi\n .setFormsDelegations(frms)\n .then(() => {\n status.forms.success = true\n status.forms.modified += frms.length\n })\n .catch((e) => (status.forms.error = e))) ||\n Promise.resolve((status.forms.success = true))\n )\n })\n .then(() => {\n //console.log(\"sid\")\n return (\n ((allTags.includes('financialInformation') || allTags.includes('all')) &&\n ivs &&\n ivs.length &&\n !_.isEqual(oIvs, ivs) &&\n this.invoiceApi\n .setInvoicesDelegations(ivs)\n .then(() => {\n status.invoices.success = true\n status.invoices.modified += ivs.length\n })\n .catch((e) => (status.invoices.error = e))) ||\n Promise.resolve((status.invoices.success = true))\n )\n })\n .then(() => {\n //console.log(\"sdd\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n docs &&\n docs.length &&\n !_.isEqual(oDocs, docs) &&\n this.documentApi\n .setDocumentsDelegations(docs)\n .then(() => {\n status.documents.success = true\n status.documents.modified += docs.length\n })\n .catch((e) => (status.documents.error = e))) ||\n Promise.resolve((status.documents.success = true))\n )\n })\n .then(() => {\n //console.log(\"scld\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n cls &&\n cls.length &&\n !_.isEqual(oCls, cls) &&\n this.classificationApi\n .setClassificationsDelegations(cls)\n .then(() => {\n status.classifications.success = true\n status.classifications.modified += cls.length\n })\n .catch((e) => (status.classifications.error = e))) ||\n Promise.resolve((status.classifications.success = true))\n )\n })\n .then(() => {\n //console.log(\"scid\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n cis &&\n cis.length &&\n !_.isEqual(oCis, cis) &&\n this.calendarItemApi\n .setCalendarItemsDelegations(cis)\n .then(() => {\n status.calendarItems.success = true\n status.calendarItems.modified += cis.length\n })\n .catch((e) => (status.calendarItems.error = e))) ||\n Promise.resolve((status.calendarItems.success = true))\n )\n })\n .then(() => this.modifyPatientWithUser(user, patient))\n .then((p) => {\n status.patient.success = true\n console.log(\n `c: ${status.contacts.modified}, he: ${status.healthElements.modified}, docs: ${status.documents.modified}, frms: ${status.forms.modified}, ivs: ${status.invoices.modified}, cis: ${status.calendarItems.modified}, cls: ${status.classifications.modified}`\n )\n return { patient: p, statuses: status }\n })\n .catch((e) => {\n status.patient.error = e\n return { patient: patient, statuses: status }\n })\n })\n })\n : (allTags.includes('anonymousMedicalInformation')\n ? Promise.resolve(patient)\n : this.modifyPatientWithUser(\n user,\n _.assign(patient, {\n delegations: _.assign(\n patient.delegations,\n delegateIds\n .filter((id) => !patient.delegations || !patient.delegations[id]) //If there are delegations do not modify\n .reduce((acc, del: string) => Object.assign(acc, _.fromPairs([[del, []]])), patient.delegations || {})\n ),\n })\n )\n )\n .then((p) => {\n status.patient.success = true\n return { patient: p, statuses: status }\n })\n .catch((e) => {\n status.patient.error = e\n return { patient: patient, statuses: status }\n })\n })\n })\n })\n }\n\n export(user: models.User, patId: string, ownerId: string): Promise<{ id: string }> {\n return this.hcpartyApi.getHealthcareParty(ownerId).then((hcp) => {\n const parentId = hcp.parentId\n\n return retry(() => this.getPatientWithUser(user, patId))\n .then((patient: models.Patient) =>\n patient.encryptionKeys && Object.keys(patient.encryptionKeys || {}).length\n ? Promise.resolve(patient)\n : this.initEncryptionKeys(user, patient).then((patient: models.Patient) => this.modifyPatientWithUser(user, patient))\n )\n .then((patient: models.Patient | null) => {\n if (!patient) {\n return Promise.resolve({ id: patId })\n }\n\n return this.crypto.extractDelegationsSFKsAndEncryptionSKs(patient, ownerId).then(([delSfks, ecKeys]) => {\n return delSfks.length\n ? Promise.all([\n retry(() =>\n this.helementApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((hes) =>\n parentId\n ? this.helementApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreHes) => _.uniqBy(hes.concat(moreHes), 'id'))\n : hes\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.formApi\n .findFormsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((frms) =>\n parentId\n ? this.formApi\n .findFormsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreFrms) => _.uniqBy(frms.concat(moreFrms), 'id'))\n : frms\n )\n ) as Promise<Array<models.Form>>,\n retry(() =>\n this.contactApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((ctcs) =>\n parentId\n ? this.contactApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreCtcs) => _.uniqBy(ctcs.concat(moreCtcs), 'id'))\n : ctcs\n )\n ) as Promise<Array<models.Contact>>,\n retry(() =>\n this.invoiceApi\n .findInvoicesByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((ivs) =>\n parentId\n ? this.invoiceApi\n .findInvoicesByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreIvs) => _.uniqBy(ivs.concat(moreIvs), 'id'))\n : ivs\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((cls) =>\n parentId\n ? this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))\n : cls\n )\n ) as Promise<Array<models.Classification>>,\n retry(async () => {\n const delegationSFKs = delSfks.join(',')\n try {\n let calendarItems = await this.calendarItemApi.findByHCPartyPatientSecretFKeys(ownerId, delegationSFKs)\n\n if (parentId) {\n const moreCalendarItems = await this.calendarItemApi.findByHCPartyPatientSecretFKeys(parentId, delegationSFKs)\n calendarItems = _.uniqBy(calendarItems.concat(moreCalendarItems), 'id')\n }\n\n return calendarItems\n } catch (ex) {\n console.log(`exception occured exporting calendarItem for ownerId: ${ownerId} - ${ex}`)\n //throw ex\n }\n }) as Promise<Array<models.CalendarItem>>,\n ]).then(([hes, frms, ctcs, ivs, cls, cis]) => {\n const docIds: { [key: string]: number } = {}\n ctcs.forEach(\n (c: models.Contact) =>\n c.services &&\n c.services.forEach((s) => s.content && Object.values(s.content).forEach((c) => c.documentId && (docIds[c.documentId] = 1)))\n )\n\n return retry(() => this.documentApi.getDocuments(new ListOfIds({ ids: Object.keys(docIds) }))).then((docs: Array<Document>) => {\n return {\n id: patId,\n patient: patient,\n contacts: ctcs,\n forms: frms,\n healthElements: hes,\n invoices: ivs,\n classifications: cls,\n calItems: cis,\n documents: docs,\n }\n })\n })\n : Promise.resolve({\n id: patId,\n patient: patient,\n contacts: [],\n forms: [],\n healthElements: [],\n invoices: [],\n classifications: [],\n calItems: [],\n documents: [],\n })\n })\n })\n })\n }\n\n checkInami(inami: string): boolean {\n const num_inami = inami.replace(new RegExp('[^(0-9)]', 'g'), '')\n\n const checkDigit = num_inami.substr(6, 2)\n const numSansCheck = num_inami.substr(0, 6)\n let retour = false\n\n //modulo du niss\n const modINAMI = parseInt(numSansCheck) % 97\n\n //obtention du num de check 97 - le resultat du mod\n const checkDigit_2 = 97 - modINAMI\n\n if (parseInt(checkDigit) == checkDigit_2) {\n retour = true\n }\n return retour\n }\n\n isValidSsin(ssin: string) {\n ssin = ssin.replace(new RegExp('[^(0-9)]', 'g'), '')\n let isValidNiss = false\n\n const normalNumber =\n /^[0-9][0-9](([0][0-9])|([1][0-2]))(([0-2][0-9])|([3][0-1]))(([0-9]{2}[1-9])|([0-9][1-9][0-9])|([1-9][0-9]{2}))(([0-8][0-9])|([9][0-7]))$/.test(\n ssin\n )\n const bisNumber = /^[0-9][0-9](([2][0-9])|([3][0-2]))(([0-2][0-9])|([3][0-1]))[0-9]{3}(([0-8][0-9])|([9][0-7]))$/.test(ssin)\n const terNumber = /^[0-9][0-9](([4][0-9])|([5][0-2]))(([0-2][0-9])|([3][0-1]))[0-9]{3}(([0-8][0-9])|([9][0-7]))$/.test(ssin)\n\n if (normalNumber || bisNumber || terNumber) {\n isValidNiss =\n 97 - (Number(ssin.substr(0, 9)) % 97) === Number(ssin.substr(9, 2))\n ? true\n : 97 - (Number('2' + ssin.substr(0, 9)) % 97) === Number(ssin.substr(9, 2))\n }\n\n return isValidNiss\n }\n\n async getPatientIdOfChildDocumentForHcpAndHcpParents(\n childDocument: models.Invoice | models.CalendarItem | models.Contact | models.AccessLog,\n hcpId: string\n ): Promise<string> {\n const parentIdsArray = (await this.crypto.extractCryptedFKs(childDocument, hcpId)).extractedKeys\n\n const multipleParentIds = _.uniq(parentIdsArray).length > 1\n\n if (multipleParentIds) {\n throw 'Child document with id ' + childDocument.id + ' contains multiple parent ids in its CFKs for hcpId: ' + hcpId\n }\n\n const parentId = _.first(parentIdsArray)\n\n if (!parentId) {\n throw 'Parent id is empty in CFK of child document with id ' + childDocument.id + ' for hcpId: ' + hcpId\n }\n\n let patient: models.Patient = await super.getPatient(parentId!)\n\n let mergeLevel = 0\n const maxMergeLevel = 10\n while (patient.mergeToPatientId) {\n mergeLevel++\n if (mergeLevel === maxMergeLevel) {\n throw 'Too many merged levels for parent (Patient) of child document ' + childDocument.id + ' ; hcpId: ' + hcpId\n }\n\n patient = await super.getPatient(patient.mergeToPatientId!)\n }\n\n return patient.id!\n }\n}\n"]}
@@ -69,3 +69,4 @@ class IccReceiptXApi extends icc_api_1.IccReceiptApi {
69
69
  }
70
70
  }
71
71
  exports.IccReceiptXApi = IccReceiptXApi;
72
+ //# sourceMappingURL=icc-receipt-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-receipt-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-receipt-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccReceiptApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\n\nexport class IccReceiptXApi extends IccReceiptApi {\n crypto: IccCryptoXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n newInstance(user: models.User, r: any): Promise<models.Receipt> {\n const receipt = new models.Receipt(\n _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Receipt',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n r || {}\n )\n )\n\n return this.initDelegationsAndEncryptionKeys(user, receipt)\n }\n\n private initDelegationsAndEncryptionKeys(user: models.User, receipt: models.Receipt): Promise<models.Receipt> {\n return Promise.all([\n this.crypto.initObjectDelegations(receipt, null, (user.healthcarePartyId || user.patientId)!, null),\n this.crypto.initEncryptionKeys(receipt, (user.healthcarePartyId || user.patientId)!),\n ]).then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(receipt, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(receipt)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((receipt) =>\n this.crypto\n .addDelegationsAndEncryptionKeys(null, receipt, (user.healthcarePartyId || user.patientId)!, delegateId, dels.secretId, eks.secretId)\n .catch((e) => {\n console.log(e)\n return receipt\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, rcpt: models.Receipt) {\n return this.crypto.initEncryptionKeys(rcpt, (user.healthcarePartyId || user.patientId)!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(rcpt, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((receipt) =>\n this.crypto.appendEncryptionKeys(receipt, (user.healthcarePartyId || user.patientId)!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(receipt, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n logReceipt(user: models.User, docId: string, refs: Array<string>, blobType: string, blob: ArrayBuffer) {\n return this.newInstance(user, { documentId: docId, references: refs })\n .then((rcpt) => this.createReceipt(rcpt))\n .then((rcpt) => this.setReceiptAttachment(rcpt.id!, blobType, '', <any>blob))\n }\n}\n"]}
@@ -36,3 +36,4 @@ class IccTimeTableXApi extends icc_api_1.IccTimeTableApi {
36
36
  }
37
37
  }
38
38
  exports.IccTimeTableXApi = IccTimeTableXApi;
39
+ //# sourceMappingURL=icc-time-table-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-time-table-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-time-table-x-api.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,4BAA2B;AAC3B,wCAA4C;AAK5C,MAAa,gBAAiB,SAAQ,yBAAe;IAInD,YACE,IAAY,EACZ,OAAkC,EAClC,MAAqB,EACrB,YAA2E,OAAO,MAAM,KAAK,WAAW;QACtG,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,KAAK;QAET,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAbjC,SAAI,GAAQ,IAAI,CAAA;QAcd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,EAAa;QACnC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CACxB;YACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,qCAAqC;YAC5C,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC7B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC9B,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS;YACrD,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;SACT,EACD,EAAE,IAAI,EAAE,CACT,CAAA;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7H,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;YAE1D,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CACvC;YAAA,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAC3H,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,OAAO,GAAG,OAAO;iBACf,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAChB,IAAI,CAAC,MAAM,CAAC,wCAAwC,CAClD,OAAO,EACP,IAAI,EACJ,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAC3C,UAAU,EACV,QAAQ,CAAC,QAAQ,CAClB,CACF;iBACA,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CACvF,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAtDD,4CAsDC","sourcesContent":["import * as i18n from './rsrc/contact.i18n'\n\nimport * as _ from 'lodash'\nimport { IccTimeTableApi } from '../icc-api'\nimport { User } from '../icc-api/model/User'\nimport { TimeTable } from '../icc-api/model/TimeTable'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nexport class IccTimeTableXApi extends IccTimeTableApi {\n i18n: any = i18n\n crypto: IccCryptoXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n newInstance(user: User, tt: TimeTable) {\n const timeTable = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.TimeTable',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n tt || {}\n )\n\n return this.crypto.initObjectDelegations(timeTable, null, (user.healthcarePartyId || user.patientId)!, null).then((initData) => {\n _.extend(timeTable, { delegations: initData.delegations })\n\n let promise = Promise.resolve(timeTable)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise\n .then((patient) =>\n this.crypto.extendedDelegationsAndCryptedForeignKeys(\n patient,\n null,\n (user.healthcarePartyId || user.patientId)!,\n delegateId,\n initData.secretId\n )\n )\n .then((extraData) => _.extend(timeTable, { delegations: extraData.delegations })))\n )\n return promise\n })\n }\n}\n"]}
@@ -13,3 +13,4 @@ class IccUserXApi extends IccUserApi_1.IccUserApi {
13
13
  }
14
14
  }
15
15
  exports.IccUserXApi = IccUserXApi;
16
+ //# sourceMappingURL=icc-user-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-user-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-user-x-api.ts"],"names":[],"mappings":";;;AAAA,0DAAsD;AAGtD,MAAa,WAAY,SAAQ,uBAAU;IAGzC,YACE,IAAY,EACZ,OAAkC,EAClC,YAA2E,OAAO,MAAM,KAAK,WAAW;QACtG,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,KAAK;QAET,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAfD,kCAeC","sourcesContent":["import { IccUserApi } from '../icc-api/api/IccUserApi'\nimport { b2a } from './utils/binary-utils'\n\nexport class IccUserXApi extends IccUserApi {\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.fetchImpl = fetchImpl\n }\n}\n"]}
@@ -108,3 +108,4 @@ const Api = function (host, username, password, crypto = typeof window !== 'unde
108
108
  };
109
109
  };
110
110
  exports.Api = Api;
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../icc-x-api/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccAgendaApi, IccAuthApi, IccEntityrefApi, IccGroupApi, IccInsuranceApi, IccPatientApi } from '../icc-api'\nimport { IccUserXApi } from './icc-user-x-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport { IccContactXApi } from './icc-contact-x-api'\nimport { IccInvoiceXApi } from './icc-invoice-x-api'\nimport { IccDocumentXApi } from './icc-document-x-api'\nimport { IccHcpartyXApi } from './icc-hcparty-x-api'\nimport { IccFormXApi } from './icc-form-x-api'\nimport { IccHelementXApi } from './icc-helement-x-api'\nimport { IccClassificationXApi } from './icc-classification-x-api'\nimport { IccCalendarItemXApi } from './icc-calendar-item-x-api'\nimport { IccPatientXApi } from './icc-patient-x-api'\nimport { IccMessageXApi } from './icc-message-x-api'\nimport { IccReceiptXApi } from './icc-receipt-x-api'\nimport { IccAccesslogXApi } from './icc-accesslog-x-api'\nimport { IccTimeTableXApi } from './icc-time-table-x-api'\nimport { IccDeviceApi } from '../icc-api/api/IccDeviceApi'\n\nexport * from './icc-accesslog-x-api'\nexport * from './icc-bekmehr-x-api'\nexport * from './icc-calendar-item-x-api'\nexport * from './icc-classification-x-api'\nexport * from './icc-code-x-api'\nexport * from './icc-contact-x-api'\nexport * from './icc-crypto-x-api'\nexport * from './icc-doctemplate-x-api'\nexport * from './icc-document-x-api'\nexport * from './icc-form-x-api'\nexport * from './icc-hcparty-x-api'\nexport * from './icc-helement-x-api'\nexport * from './icc-invoice-x-api'\nexport * from './icc-message-x-api'\nexport * from './icc-patient-x-api'\nexport * from './icc-user-x-api'\nexport * from './icc-time-table-x-api'\nexport * from './icc-receipt-x-api'\nexport { utils, UtilsClass } from './crypto/utils'\nexport * from './utils'\n\nexport const apiHeaders = function (username: string, password: string) {\n return {\n Authorization: `Basic ${\n typeof btoa !== 'undefined' ? btoa(`${username}:${password}`) : Buffer.from(`${username}:${password}`).toString('base64')\n }`,\n }\n}\n\nexport const Api = function (\n host: string,\n username: string,\n password: string,\n crypto: Crypto = typeof window !== 'undefined' ? window.crypto : typeof self !== 'undefined' ? self.crypto : ({} as Crypto),\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n) {\n const headers = apiHeaders(username, password)\n const authApi = new IccAuthApi(host, headers, fetchImpl)\n const entityReferenceApi = new IccEntityrefApi(host, headers, fetchImpl)\n const userApi = new IccUserXApi(host, headers, fetchImpl)\n const healthcarePartyApi = new IccHcpartyXApi(host, headers, fetchImpl)\n const deviceApi = new IccDeviceApi(host, headers, fetchImpl)\n const cryptoApi = new IccCryptoXApi(host, headers, healthcarePartyApi, new IccPatientApi(host, headers, fetchImpl), deviceApi, crypto)\n const accessLogApi = new IccAccesslogXApi(host, headers, cryptoApi, fetchImpl)\n const agendaApi = new IccAgendaApi(host, headers, fetchImpl)\n const contactApi = new IccContactXApi(host, headers, cryptoApi, fetchImpl)\n const formApi = new IccFormXApi(host, headers, cryptoApi, fetchImpl)\n const groupApi = new IccGroupApi(host, headers)\n const invoiceApi = new IccInvoiceXApi(host, headers, cryptoApi, entityReferenceApi, fetchImpl)\n const insuranceApi = new IccInsuranceApi(host, headers, fetchImpl)\n const documentApi = new IccDocumentXApi(host, headers, cryptoApi, authApi, fetchImpl)\n const healthcareElementApi = new IccHelementXApi(host, headers, cryptoApi, fetchImpl)\n const classificationApi = new IccClassificationXApi(host, headers, cryptoApi, fetchImpl)\n const calendarItemApi = new IccCalendarItemXApi(host, headers, cryptoApi, fetchImpl)\n const receiptApi = new IccReceiptXApi(host, headers, cryptoApi, fetchImpl)\n const timetableApi = new IccTimeTableXApi(host, headers, cryptoApi, fetchImpl)\n const patientApi = new IccPatientXApi(\n host,\n headers,\n cryptoApi,\n contactApi,\n formApi,\n healthcareElementApi,\n invoiceApi,\n documentApi,\n healthcarePartyApi,\n classificationApi,\n calendarItemApi,\n ['note'],\n fetchImpl\n )\n const messageApi = new IccMessageXApi(\n host,\n headers,\n cryptoApi,\n insuranceApi,\n entityReferenceApi,\n invoiceApi,\n documentApi,\n receiptApi,\n patientApi,\n fetchImpl\n )\n\n return {\n cryptoApi,\n authApi,\n userApi,\n patientApi,\n healthcarePartyApi,\n deviceApi,\n accessLogApi,\n contactApi,\n healthcareElementApi,\n documentApi,\n formApi,\n invoiceApi,\n insuranceApi,\n messageApi,\n entityReferenceApi,\n receiptApi,\n agendaApi,\n calendarItemApi,\n classificationApi,\n timetableApi,\n groupApi,\n }\n}\n"]}
@@ -8,3 +8,4 @@ exports.default = {
8
8
  ICPC: ['fr', 'nl'],
9
9
  ICD: ['fr', 'nl'],
10
10
  };
11
+ //# sourceMappingURL=codelng.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codelng.js","sourceRoot":"","sources":["../../../icc-x-api/rsrc/codelng.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IACtB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IAClB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;CAClB,CAAA","sourcesContent":["export default {\n 'BE-THESAURUS': ['fr', 'nl'],\n 'CD-ATC': ['fr', 'nl'],\n 'CD-DRUG-CNK': ['fr', 'nl'],\n 'CD-INNCLUSTER': ['fr', 'nl'],\n ICPC: ['fr', 'nl'],\n ICD: ['fr', 'nl'],\n}\n"]}
@@ -110,3 +110,4 @@ exports.default = {
110
110
  thehourofsleep: 'Voor het slapen',
111
111
  },
112
112
  };
113
+ //# sourceMappingURL=contact.i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.i18n.js","sourceRoot":"","sources":["../../../icc-x-api/rsrc/contact.i18n.ts"],"names":[],"mappings":"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","sourcesContent":["export default {\n fr: {\n package: 'boîte',\n packages: 'boîtes',\n packageOf: 'boîte de',\n packagesOf: 'boîtes de',\n during: 'pendant',\n take_s_: 'prise(s)',\n weekly: '/semaine',\n monthly: '/mois',\n daily: '/jour',\n the: 'le',\n onDay: 'le jour',\n on: 'le',\n afterwakingup: 'Au lever',\n afterbreakfast: 'Après ptit déj.',\n afterdinner: 'Après rep. soir',\n afterlunch: 'Après rep. midi',\n afternoon: 'Après-midi',\n beforebreakfast: 'Avant ptit déj.',\n beforedinner: 'Avant rep. soir',\n beforelunch: 'Avant rep. midi',\n duringbreakfast: 'Pdt ptit déj.',\n duringdinner: 'Pdt rep. soir',\n duringlunch: 'Pdt rep. midi',\n betweenbreakfastandlunch: 'Entre ptit déj et rep. midi',\n betweenlunchanddinner: 'Entre rep. midi et rep. soir',\n betweendinnerandsleep: 'Entre rep. soir et couch.',\n evening: 'Soir',\n knownuse: 'Usage connu',\n morning: 'Matin',\n night: 'Avt couch.',\n midday: 'Midi',\n noon: 'Midi',\n at: 'à',\n thehourofsleep: 'Au coucher',\n },\n en: {\n package: 'package',\n packages: 'packages',\n packageOf: 'package of',\n packagesOf: 'packages of',\n during: 'during',\n take_s_: 'take(s)',\n weekly: 'weekly',\n monthly: 'monthly',\n daily: 'daily',\n the: 'the',\n onDay: 'on day',\n on: 'on',\n afterwakingup: 'After Waking Up',\n afterbreakfast: 'After Breakfast',\n afterdinner: 'After Dinner',\n afterlunch: 'After Lunch',\n afternoon: 'Afternoon',\n beforebreakfast: 'Before Breakfast',\n beforedinner: 'Before Dinner',\n beforelunch: 'Before Lunch',\n duringbreakfast: 'During Breakfast',\n duringdinner: 'During Dinner',\n duringlunch: 'During Lunch',\n betweenbreakfastandlunch: 'Between Breakfast and Lunch',\n betweenlunchanddinner: 'Between Lunch and Dinner',\n betweendinnerandsleep: 'Between Dinner and Sleep',\n evening: 'Evening',\n knownuse: 'Known Usage',\n morning: 'Morning',\n night: 'Night',\n midday: 'Midday',\n noon: 'Noon',\n at: 'at',\n thehourofsleep: 'At Bedtime',\n },\n nl: {\n package: 'verpakking',\n packages: 'verpakkingen',\n packageOf: 'verpakking van',\n packagesOf: 'verpakkingen van',\n during: 'gedurende',\n take_s_: 'inname(s)',\n weekly: 'wekelijks',\n monthly: 'maandelijks',\n daily: 'dagelijks',\n the: 'de',\n onDay: 'op dag',\n on: 'op',\n afterwakingup: 'Bij het opstaan',\n afterbreakfast: 'Na ontbijt',\n afterdinner: 'Na avondeten',\n afterlunch: 'Na middageten',\n afternoon: 'Namiddag',\n beforebreakfast: 'Voor ontbijt',\n beforedinner: 'Voor avondeten',\n beforelunch: 'Voor middageten',\n duringbreakfast: 'Tijdens ontbijt',\n duringdinner: 'Tijdens avondeten',\n duringlunch: 'Tijdens middageten',\n betweenbreakfastandlunch: 'Tussen ontbijt en middageten',\n betweenlunchanddinner: 'Tussen middag- en avondeten',\n betweendinnerandsleep: 'Tussen avondmaal en slapeneten',\n evening: 'Avond',\n knownuse: 'Gekend gebruik',\n morning: \"'s Morgens\",\n night: 'Vóór slapengaan',\n midday: 'Middag',\n noon: 'Middag',\n at: 'om',\n thehourofsleep: 'Voor het slapen',\n },\n}\n"]}
@@ -113,3 +113,4 @@ exports.default = {
113
113
  colour: 'ICD-10--other',
114
114
  },
115
115
  };
116
+ //# sourceMappingURL=icd10.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icd10.js","sourceRoot":"","sources":["../../../icc-x-api/rsrc/icd10.ts"],"names":[],"mappings":"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","sourcesContent":["export default {\n 'A00-B99': {\n en: 'Infectious and parasitic',\n fr: 'Infections & parasites',\n colour: 'ICD-10--IV',\n },\n 'C00-D48': {\n en: 'Neoplasms',\n fr: 'Tumeurs',\n colour: 'ICD-10--IV',\n },\n 'D49-D89': {\n en: 'Blood & immunity',\n fr: 'Sang & immunité',\n colour: 'ICD-10--IV',\n },\n 'E00-E99': {\n en: 'Endocrine, nutritional & metabolic',\n fr: 'Endocrino, nutrition et métabolisme',\n colour: 'ICD-10--IV',\n },\n 'F00-F99': {\n en: 'Mental and behavioural disorders',\n fr: 'Troubles mentaux et du comportement',\n colour: 'ICD-10--V',\n },\n 'G00-G99': {\n en: 'Nervous system',\n fr: 'Système nerveux',\n colour: 'ICD-10--VI',\n },\n 'H00-H59': {\n en: 'Eye and adnexa',\n fr: 'Œil et de ses annexes',\n colour: 'ICD-10--VII',\n },\n 'H60-H99': {\n en: 'Ear and mastoid process',\n fr: \"Oreille et de l'apophyse mastoïde\",\n colour: 'ICD-10--VII',\n },\n 'I00-I99': {\n en: 'Circulatory system',\n fr: 'Appareil circulatoire',\n colour: 'ICD-10--VIII',\n },\n 'J00-J99': {\n en: 'Respiratory system',\n fr: 'Appareil respiratoire',\n colour: 'ICD-10--IX',\n },\n 'K00-K99': {\n en: 'Digestive system',\n fr: 'Appareil digestif',\n colour: 'ICD-10--X',\n },\n 'L00-L99': {\n en: 'Skin and subcutaneous tissue',\n fr: 'Peau et Tissu cellulaire sous-cutané',\n colour: 'ICD-10--XI',\n },\n 'M00-M99': {\n en: 'Musculoskeletal system and connective tissue',\n fr: 'Système ostéo-articulaire, des muscles et du tissu conjonctif',\n colour: 'ICD-10--XII',\n },\n 'N00-N99': {\n en: 'Genitourinary system',\n fr: 'Appareil génito-urinaire',\n colour: 'ICD-10--XIII',\n },\n 'O00-O99': {\n en: 'Pregnancy, childbirth and the puerperium',\n fr: 'Grossesse, accouchement et puerpéralité',\n colour: 'ICD-10--XIV',\n },\n 'P00-P99': {\n en: 'Perinatal period conditions',\n fr: 'Affections périnatale',\n colour: 'ICD-10--XV',\n },\n 'Q00-Q99': {\n en: 'Congenital malformations, deformations and chromosomal abnormalities',\n fr: 'Malformations congénitales et anomalies chromosomiques',\n colour: 'ICD-10--XVI',\n },\n 'R00-R69': {\n en: 'Symptoms and signs',\n fr: 'Symptômes et signes',\n colour: 'ICD-10--other',\n },\n 'R70-R94': {\n en: 'Abnormal clinical and laboratory findings',\n fr: 'Examens cliniques et laboratoires anormaux',\n colour: 'ICD-10--other',\n },\n 'R95-R99': {\n en: 'Ill-defined and unknown causes of mortality',\n fr: 'Cause de décès mal-définie ou inconnue',\n colour: 'ICD-10--other',\n },\n 'S00-T99': {\n en: 'Injuries & poisoning',\n fr: 'Traumato & toxicologie',\n colour: 'ICD-10--other',\n },\n 'U00-Y99': { en: 'Unsorted', fr: 'Non-classé', colour: 'ICD-10--other' },\n 'Z00-Z99': {\n en: 'General health status',\n fr: 'Etat général',\n colour: 'ICD-10--other',\n },\n}\n"]}
@@ -22,3 +22,4 @@ exports.default = {
22
22
  Y: { en: 'Male genital system', colour: 'ICPC-2--Y' },
23
23
  Z: { en: 'Social problems', colour: 'ICPC-2--Z' },
24
24
  };
25
+ //# sourceMappingURL=icpc2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icpc2.js","sourceRoot":"","sources":["../../../icc-x-api/rsrc/icpc2.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,CAAC,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,MAAM,EAAE,WAAW,EAAE;IACzD,CAAC,EAAE;QACD,EAAE,EAAE,iDAAiD;QACrD,MAAM,EAAE,WAAW;KACpB;IACD,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;IAC3C,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE;IACrC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE;IACrC,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;IAC7C,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE;IACjD,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE;IAC9C,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE;IAC/C,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;IAC7C,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;IACtC,CAAC,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,MAAM,EAAE,WAAW,EAAE;IACtE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE;IACzC,CAAC,EAAE,EAAE,EAAE,EAAE,wCAAwC,EAAE,MAAM,EAAE,WAAW,EAAE;IACxE,CAAC,EAAE,EAAE,EAAE,EAAE,kCAAkC,EAAE,MAAM,EAAE,WAAW,EAAE;IAClE,CAAC,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE;IACrD,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE;CAClD,CAAA","sourcesContent":["export default {\n A: { en: 'General and unspecified', colour: 'ICPC-2--A' },\n B: {\n en: 'Blood, blood forming organs, lymphatics, spleen',\n colour: 'ICPC-2--B',\n },\n D: { en: 'Digestive', colour: 'ICPC-2--D' },\n F: { en: 'Eye', colour: 'ICPC-2--F' },\n H: { en: 'Ear', colour: 'ICPC-2--H' },\n K: { en: 'Circulatory', colour: 'ICPC-2--K' },\n L: { en: 'Musculoskeletal', colour: 'ICPC-2--L' },\n N: { en: 'Neurological', colour: 'ICPC-2--N' },\n P: { en: 'Psychological', colour: 'ICPC-2--P' },\n R: { en: 'Respiratory', colour: 'ICPC-2--R' },\n S: { en: 'Skin', colour: 'ICPC-2--S' },\n T: { en: 'Endocrine, metabolic and nutritional', colour: 'ICPC-2--T' },\n U: { en: 'Urology', colour: 'ICPC-2--U' },\n W: { en: 'Pregnancy, childbirth, family planning', colour: 'ICPC-2--W' },\n X: { en: 'Female genital system and breast', colour: 'ICPC-2--X' },\n Y: { en: 'Male genital system', colour: 'ICPC-2--Y' },\n Z: { en: 'Social problems', colour: 'ICPC-2--Z' },\n}\n"]}
@@ -80,3 +80,4 @@ function pack(arr) {
80
80
  return packed;
81
81
  }
82
82
  exports.pack = pack;
83
+ //# sourceMappingURL=asn1-packer.js.map