@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":"ServiceByContactsAndSubcontactsFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,qFAAiF;AAEjF,MAAa,qCAAsC,SAAQ,6CAAqB;IAE9E,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,uCAAuC,CAAA;QAIrD,MAAM,CAAC,MAAM,CAAC,IAA6C,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC;CAQF;AAdD,sFAcC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\n\nexport class ServiceByContactsAndSubcontactsFilter extends AbstractFilterService {\n $type: string = 'ServiceByContactsAndSubcontactsFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as ServiceByContactsAndSubcontactsFilter, json)\n }\n\n desc?: string\n healthcarePartyId?: string\n contacts?: Array<string>\n subContacts?: Array<string>\n startValueDate?: number\n endValueDate?: number\n}\n"]}
@@ -21,3 +21,4 @@ class ServiceByHcPartyFilter extends AbstractFilterService_1.AbstractFilterServi
21
21
  }
22
22
  }
23
23
  exports.ServiceByHcPartyFilter = ServiceByHcPartyFilter;
24
+ //# sourceMappingURL=ServiceByHcPartyFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceByHcPartyFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/ServiceByHcPartyFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,qFAAiF;AAEjF,MAAa,sBAAuB,SAAQ,6CAAqB;IAE/D,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,wBAAwB,CAAA;QAItC,MAAM,CAAC,MAAM,CAAC,IAA8B,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;CAIF;AAVD,wDAUC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\n\nexport class ServiceByHcPartyFilter extends AbstractFilterService {\n $type: string = 'ServiceByHcPartyFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as ServiceByHcPartyFilter, json)\n }\n\n hcpId?: string\n desc?: string\n}\n"]}
@@ -10,3 +10,4 @@ class ServiceByHcPartyIdentifiersFilter extends AbstractFilterService_1.Abstract
10
10
  }
11
11
  }
12
12
  exports.ServiceByHcPartyIdentifiersFilter = ServiceByHcPartyIdentifiersFilter;
13
+ //# sourceMappingURL=ServiceByHcPartyIdentifiersFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceByHcPartyIdentifiersFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.ts"],"names":[],"mappings":";;;AAYA,qFAAiF;AAEjF,MAAa,iCAAkC,SAAQ,6CAAqB;IAE1E,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,mCAAmC,CAAA;QAIjD,MAAM,CAAC,MAAM,CAAC,IAAyC,EAAE,IAAI,CAAC,CAAA;IAChE,CAAC;CAKF;AAXD,8EAWC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { Identifier } from '../../icc-api/model/Identifier'\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\n\nexport class ServiceByHcPartyIdentifiersFilter extends AbstractFilterService {\n $type: string = 'ServiceByHcPartyIdentifiersFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as ServiceByHcPartyIdentifiersFilter, json)\n }\n\n healthcarePartyId?: string\n desc?: string\n identifiers?: Array<Identifier>\n}\n"]}
@@ -21,3 +21,4 @@ class ServiceByHcPartyTagCodeDateFilter extends AbstractFilterService_1.Abstract
21
21
  }
22
22
  }
23
23
  exports.ServiceByHcPartyTagCodeDateFilter = ServiceByHcPartyTagCodeDateFilter;
24
+ //# sourceMappingURL=ServiceByHcPartyTagCodeDateFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceByHcPartyTagCodeDateFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,qFAAiF;AAEjF,MAAa,iCAAkC,SAAQ,6CAAqB;IAE1E,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,mCAAmC,CAAA;QAIjD,MAAM,CAAC,MAAM,CAAC,IAAyC,EAAE,IAAI,CAAC,CAAA;IAChE,CAAC;CAWF;AAjBD,8EAiBC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\n\nexport class ServiceByHcPartyTagCodeDateFilter extends AbstractFilterService {\n $type: string = 'ServiceByHcPartyTagCodeDateFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as ServiceByHcPartyTagCodeDateFilter, json)\n }\n\n desc?: string\n healthcarePartyId?: string\n patientSecretForeignKey?: string\n tagType?: string\n tagCode?: string\n codeType?: string\n codeCode?: string\n startValueDate?: number\n endValueDate?: number\n}\n"]}
@@ -21,3 +21,4 @@ class ServiceByIdsFilter extends AbstractFilterService_1.AbstractFilterService {
21
21
  }
22
22
  }
23
23
  exports.ServiceByIdsFilter = ServiceByIdsFilter;
24
+ //# sourceMappingURL=ServiceByIdsFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceByIdsFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/ServiceByIdsFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,qFAAiF;AAEjF,MAAa,kBAAmB,SAAQ,6CAAqB;IAE3D,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,oBAAoB,CAAA;QAIlC,MAAM,CAAC,MAAM,CAAC,IAA0B,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC;CAIF;AAVD,gDAUC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\n\nexport class ServiceByIdsFilter extends AbstractFilterService {\n $type: string = 'ServiceByIdsFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as ServiceByIdsFilter, json)\n }\n\n ids?: Array<string>\n desc?: string\n}\n"]}
@@ -20,3 +20,4 @@ class ServiceBySecretForeignKeys extends AbstractFilterService_1.AbstractFilterS
20
20
  }
21
21
  }
22
22
  exports.ServiceBySecretForeignKeys = ServiceBySecretForeignKeys;
23
+ //# sourceMappingURL=ServiceBySecretForeignKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceBySecretForeignKeys.js","sourceRoot":"","sources":["../../../icc-x-api/filters/ServiceBySecretForeignKeys.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,qFAAiF;AAEjF,MAAa,0BAA2B,SAAQ,6CAAqB;IACnE,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAEX,MAAM,CAAC,MAAM,CAAC,IAAkC,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;CAKF;AAVD,gEAUC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\n\nexport class ServiceBySecretForeignKeys extends AbstractFilterService {\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as ServiceBySecretForeignKeys, json)\n }\n\n desc?: string\n healthcarePartyId?: string\n patientSecretForeignKeys?: Array<string>\n}\n"]}
@@ -8,3 +8,4 @@ class UnionFilter {
8
8
  }
9
9
  }
10
10
  exports.UnionFilter = UnionFilter;
11
+ //# sourceMappingURL=UnionFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnionFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/UnionFilter.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACtB,YAAY,OAA4B;QAKxC,UAAK,GAAG,aAAa,CAAA;QAJnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CAIF;AAPD,kCAOC","sourcesContent":["import { AbstractFilter } from './filters'\n\nexport class UnionFilter<T> {\n constructor(filters: AbstractFilter<T>[]) {\n this.filters = filters\n }\n\n filters: AbstractFilter<T>[]\n $type = 'UnionFilter'\n}\n"]}
@@ -21,3 +21,4 @@ class UserByIdsFilter extends AbstractFilterUser_1.AbstractFilterUser {
21
21
  }
22
22
  }
23
23
  exports.UserByIdsFilter = UserByIdsFilter;
24
+ //# sourceMappingURL=UserByIdsFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserByIdsFilter.js","sourceRoot":"","sources":["../../../icc-x-api/filters/UserByIdsFilter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,+EAA2E;AAE3E,MAAa,eAAgB,SAAQ,uCAAkB;IAErD,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;QAFb,UAAK,GAAW,iBAAiB,CAAA;QAI/B,MAAM,CAAC,MAAM,CAAC,IAAuB,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;CAIF;AAVD,0CAUC","sourcesContent":["/**\n * iCure Data Stack API Documentation\n * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AbstractFilterUser } from '../../icc-api/model/AbstractFilterUser'\n\nexport class UserByIdsFilter extends AbstractFilterUser {\n $type: string = 'UserByIdsFilter'\n constructor(json: JSON | any) {\n super(json)\n\n Object.assign(this as UserByIdsFilter, json)\n }\n\n ids?: Array<string>\n desc?: string\n}\n"]}
@@ -220,3 +220,4 @@ class PatientFilterBuilder extends FilterBuilder {
220
220
  return ((_a = this.filterProvider) === null || _a === void 0 ? void 0 : _a.call(this)) || this.all().build();
221
221
  }
222
222
  }
223
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../icc-x-api/filters/filters.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConstantFilter } from './ConstantFilter'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { AbstractFilterPatient } from '../../icc-api/model/AbstractFilterPatient'\nimport { AbstractFilterContact } from '../../icc-api/model/AbstractFilterContact'\nimport { AbstractFilterService } from '../../icc-api/model/AbstractFilterService'\nimport { Service } from '../../icc-api/model/Service'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { IntersectionFilter } from './IntersectionFilter'\nimport { UnionFilter } from './UnionFilter'\nimport { ComplementFilter } from './ComplementFilter'\nimport { PatientByHcPartyAndActiveFilter } from './PatientByHcPartyAndActiveFilter'\nimport { PatientByHcPartyAndExternalIdFilter } from './PatientByHcPartyAndExternalIdFilter'\nimport { PatientByHcPartyAndSsinsFilter } from './PatientByHcPartyAndSsinsFilter'\nimport { PatientByHcPartyDateOfBirthBetweenFilter } from './PatientByHcPartyDateOfBirthBetweenFilter'\nimport { PatientByHcPartyDateOfBirthFilter } from './PatientByHcPartyDateOfBirthFilter'\n\nimport { add, format } from 'date-fns'\nimport { PatientByHcPartyFilter } from './PatientByHcPartyFilter'\nimport { PatientByHcPartyGenderEducationProfession } from './PatientByHcPartyGenderEducationProfession'\nimport { PatientByIdsFilter } from './PatientByIdsFilter'\nimport { PatientByHcPartyNameContainsFuzzyFilter } from './PatientByHcPartyNameContainsFuzzyFilter'\n\nimport GenderEnum = Patient.GenderEnum\nimport { ContactByHcPartyFilter } from './ContactByHcPartyFilter'\n\nexport * from './AllCodesFilter'\nexport * from './AllDevicesFilter'\nexport * from './AllHealthcarePartiesFilter'\nexport * from './AllUsersFilter'\nexport * from './CodeByIdsFilter'\nexport * from './CodeByRegionTypeLabelLanguageFilter'\nexport * from './ComplementFilter'\nexport * from './ConstantFilter'\nexport * from './ContactByHcPartyFilter'\nexport * from './ContactByHcPartyPatientTagCodeDateFilter'\nexport * from './ContactByHcPartyTagCodeDateFilter'\nexport * from './ContactByServiceIdsFilter'\nexport * from './DeviceByHcPartyFilter'\nexport * from './DeviceByIdsFilter'\nexport * from './HealthElementByHcPartyFilter'\nexport * from './HealthElementByHcPartyIdentifiersFilter'\nexport * from './HealthElementByHcPartySecretForeignKeysFilter'\nexport * from './HealthElementByHcPartyTagCodeFilter'\nexport * from './HealthElementByIdsFilter'\nexport * from './HealthcarePartyByIdsFilter'\nexport * from './IntersectionFilter'\nexport * from './InvoiceByHcPartyCodeDateFilter'\nexport * from './PatientByHcPartyAndActiveFilter'\nexport * from './PatientByHcPartyAndExternalIdFilter'\nexport * from './PatientByHcPartyAndIdentifiersFilter'\nexport * from './PatientByHcPartyAndSsinFilter'\nexport * from './PatientByHcPartyAndSsinsFilter'\nexport * from './PatientByHcPartyDateOfBirthBetweenFilter'\nexport * from './PatientByHcPartyDateOfBirthFilter'\nexport * from './PatientByHcPartyFilter'\nexport * from './PatientByHcPartyGenderEducationProfession'\nexport * from './PatientByHcPartyNameContainsFuzzyFilter'\nexport * from './PatientByHcPartyNameFilter'\nexport * from './PatientByIdsFilter'\nexport * from './ServiceByContactsAndSubcontactsFilter'\nexport * from './ServiceByHcPartyFilter'\nexport * from './ServiceByHcPartyIdentifiersFilter'\nexport * from './ServiceByHcPartyTagCodeDateFilter'\nexport * from './ServiceByIdsFilter'\nexport * from './ServiceBySecretForeignKeys'\nexport * from './UnionFilter'\nexport * from './UserByIdsFilter'\n\nexport class Filter {\n public static patient(): PatientFilterBuilder {\n return new PatientFilterBuilder()\n }\n}\n\nexport type AbstractFilter<T> = T extends Patient\n ? AbstractFilterPatient | ConstantFilter<Patient> | IntersectionFilter<Patient> | UnionFilter<Patient> | ComplementFilter<Patient>\n : T extends Contact\n ? AbstractFilterContact | ConstantFilter<T> | IntersectionFilter<T> | UnionFilter<T> | ComplementFilter<T>\n : T extends Service\n ? AbstractFilterService | ConstantFilter<T> | IntersectionFilter<T> | UnionFilter<T> | ComplementFilter<T>\n : ConstantFilter<T> | IntersectionFilter<T> | UnionFilter<T> | ComplementFilter<T>\n\nconst f: AbstractFilterContact = new ComplementFilter<Contact>(new ContactByHcPartyFilter({}), new ContactByHcPartyFilter({}))\n\nabstract class FilterBuilder<T> {\n // This is the current generator for the filter, when we call build(), filterProvider() is going to be called\n filterProvider?: () => AbstractFilter<T>\n // This is the method that is called each time we chain a filter to another filter. The default behaviour is to\n // return a FilterBuilder with the provider set to the last element in the chain, except when we use combination\n // operators like or()/and()/… . After one of those, the composer is set to a function that will return a FilterBuilder\n // that combines the existing filterBuilder with the filter definition we just added.\n composer: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T> = (\n thisFilterBuilder: FilterBuilder<T>,\n otherFilterBuilder: FilterBuilder<T>\n ) => otherFilterBuilder\n\n protected constructor(\n filterProvider?: () => AbstractFilter<T>,\n composer?: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T>\n ) {\n this.filterProvider = filterProvider\n composer && (this.composer = composer)\n }\n\n abstract build(): AbstractFilter<T>\n\n abstract clone(\n filterProvider?: () => AbstractFilter<T>,\n composer?: (thisFilterBuilder: FilterBuilder<T>, otherFilterBuilder: FilterBuilder<T>) => FilterBuilder<T>\n ): FilterBuilder<T>\n\n listOf(elements: T[]): FilterBuilder<T> {\n return this.clone(() => new ConstantFilter<T>(elements) as AbstractFilter<T>)\n }\n\n private makeLazyLeftRightFilterBuilder(\n leftHandRightHandFiltersCombiner: (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () => AbstractFilter<T>\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const leftHandFilterBuilder: FilterBuilder<T> = this\n const leftHandFilter = leftHandFilterBuilder.build() // Freeze the leftHand filter\n\n return leftHandFilterBuilder.filterProvider\n ? this.clone(\n undefined, //filter provider is indeterminate until we have performed a composition\n (unused: FilterBuilder<T>, rightHandFilterBuilder: FilterBuilder<T>) => {\n // because we freeze the leftHand in the state it is right now, we are not going to use its value when the composition occurs\n const rightHandFilter = rightHandFilterBuilder.build()\n\n return rightHandFilter\n ? this.clone(leftHandRightHandFiltersCombiner(leftHandFilter, rightHandFilter), rightHandFilterBuilder.composer)\n : rightHandFilterBuilder //Can this happen ?\n }\n )\n : this\n }\n\n private makeEagerLeftRightFilterBuilder(\n rightHandFilterBuilderFactory: (it: FilterBuilder<T>) => FilterBuilder<T>,\n leftHandRightHandFiltersCombiner: (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () => AbstractFilter<T>\n ) {\n const rightHandFilterBuilder = rightHandFilterBuilderFactory(this)\n return this.filterProvider ? this.clone(leftHandRightHandFiltersCombiner(this.build(), rightHandFilterBuilder.build())) : this\n }\n\n /**\n * There are two ways of doing and, or, …\n *\n * 1) for (...) or (...) we use the syntax ... .or((builder) => builder...)\n * ex: youngerThan(65).or((b) => b.olderThan(18).and().gender(M)) means any gender < 65 or male > 18\n * 2) for ((...) or ...) we use the syntax ... .or().…\n * ex: youngerThan(65).or().olderThan(18).and().gender(M) means males between 18 and 65\n *\n * When 1) is used we do not have to wait for anything to provide a resolved builder that can later be combined with extra elements in the chain.\n * In other words, we can build the current filter chain up to the or/and/… and we can build what is inside the or/and/… brackets and we can set\n * the filterProvider of the returned Builder to () => UnionFilter([leftHand.build(), innerBrackets.build()]).\n *\n * When 2) is used, things get more tricky because we will have to do an or/and/… between what we have on the leftHand and with what we do not have\n * yet on the right hand. What we do in that situation is to set the filterProvider() to undefined because calling build() without having provided a\n * rightHand doesn't make sense. We set a composer that is going to be called the next time we chain a filter.\n *\n * @param filterBuilderFactory\n */\n\n and(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new IntersectionFilter<T>([leftHandFilter, rightHandFilter]) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n or(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new UnionFilter<T>([leftHandFilter, rightHandFilter]) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n\n minus(filterBuilderFactory?: (it: FilterBuilder<T>) => FilterBuilder<T>): FilterBuilder<T> {\n const combiner = (leftHandFilter: AbstractFilter<T>, rightHandFilter: AbstractFilter<T>) => () =>\n new ComplementFilter<T>(leftHandFilter, rightHandFilter) as AbstractFilter<T>\n\n return filterBuilderFactory ? this.makeEagerLeftRightFilterBuilder(filterBuilderFactory, combiner) : this.makeLazyLeftRightFilterBuilder(combiner)\n }\n}\n\nclass PatientFilterBuilder extends FilterBuilder<Patient> {\n hcpId?: string\n\n constructor(\n filterProvider?: () => AbstractFilter<Patient>,\n hcpId?: string,\n composer?: (thisFilterBuilder: FilterBuilder<Patient>, otherFilterBuilder: FilterBuilder<Patient>) => FilterBuilder<Patient>\n ) {\n super(filterProvider, composer)\n this.hcpId = hcpId\n }\n\n clone(\n filterProvider?: () => AbstractFilter<Patient>,\n composer?: (thisFilterBuilder: FilterBuilder<Patient>, otherFilterBuilder: FilterBuilder<Patient>) => FilterBuilder<Patient>\n ): FilterBuilder<Patient> {\n return new PatientFilterBuilder(filterProvider, this.hcpId, composer)\n }\n\n listOf(elements: Patient[]): PatientFilterBuilder {\n return new PatientFilterBuilder(() => new ConstantFilter<Patient>(elements) as AbstractFilter<Patient>)\n }\n\n and(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.and(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n or(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.or(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n minus(filterBuilderFactory?: (it: PatientFilterBuilder) => PatientFilterBuilder): PatientFilterBuilder {\n return super.minus(filterBuilderFactory as any) as PatientFilterBuilder\n }\n\n forHcp(hcpId: string): PatientFilterBuilder {\n return this.composer(this, new PatientFilterBuilder(this.filterProvider, hcpId)) as PatientFilterBuilder\n }\n\n all(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyFilter({ healthcarePartyId: this.hcpId }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n activePatients(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndActiveFilter({ healthcarePartyId: this.hcpId, active: true }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n inactivePatients(): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndActiveFilter({ healthcarePartyId: this.hcpId, active: false }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n withExternalId(externalId: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyAndExternalIdFilter({\n healthcarePartyId: this.hcpId,\n externalId: externalId,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n withSsins(ssins: string[]): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(() => new PatientByHcPartyAndSsinsFilter({ healthcarePartyId: this.hcpId, ssins: ssins }), this.hcpId)\n ) as PatientFilterBuilder\n }\n\n withDateOfBirthBetween(from?: number, to?: number): PatientFilterBuilder {\n return this.composer(\n this,\n this.clone(\n () =>\n new PatientByHcPartyDateOfBirthBetweenFilter({\n healthcarePartyId: this.hcpId,\n minDateOfBirth: from,\n maxDateOfBirth: to,\n })\n )\n ) as PatientFilterBuilder\n }\n\n byDateOfBirth(dateOfBirth: number): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyDateOfBirthFilter({\n healthcarePartyId: this.hcpId,\n dateOfBirth: dateOfBirth,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n olderThan(age: number): PatientFilterBuilder {\n return this.withDateOfBirthBetween(10000101, parseInt(format(add(new Date(), { years: -age }), 'yyyyMMdd')))\n }\n\n youngerThan(age: number): PatientFilterBuilder {\n return this.withDateOfBirthBetween(parseInt(format(add(new Date(), { years: -age }), 'yyyyMMdd')), 99991231)\n }\n\n byGenderEducationProfession(gender?: GenderEnum, education?: string, profession?: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyGenderEducationProfession({\n healthcarePartyId: this.hcpId,\n gender: gender,\n education: education,\n profession: profession,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n byIds(ids: string[]): PatientFilterBuilder {\n return this.composer(this, new PatientFilterBuilder(() => new PatientByIdsFilter({ ids: ids }), this.hcpId)) as PatientFilterBuilder\n }\n\n searchByName(name: string): PatientFilterBuilder {\n return this.composer(\n this,\n new PatientFilterBuilder(\n () =>\n new PatientByHcPartyNameContainsFuzzyFilter({\n healthcarePartyId: this.hcpId,\n searchString: name,\n }),\n this.hcpId\n )\n ) as PatientFilterBuilder\n }\n\n build(): AbstractFilter<Patient> {\n return this.filterProvider?.() || this.all().build()\n }\n}\n"]}
@@ -217,3 +217,4 @@ class IccAccesslogXApi extends icc_api_1.IccAccesslogApi {
217
217
  }
218
218
  }
219
219
  exports.IccAccesslogXApi = IccAccesslogXApi;
220
+ //# sourceMappingURL=icc-accesslog-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-accesslog-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-accesslog-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccAccesslogApi } 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 { utils } from './crypto/utils'\nimport { AccessLog, PaginatedListAccessLog } from '../icc-api/model/models'\nimport { hex2ua, ua2utf8, utf8_2ua } from './utils/binary-utils'\n\nexport interface AccessLogWithPatientId extends AccessLog {\n patientId: string\n}\n\nexport class IccAccesslogXApi extends IccAccesslogApi {\n crypto: IccCryptoXApi\n cryptedKeys = ['detail', 'objectId']\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) {\n const hcpId = user.healthcarePartyId || user.patientId\n const accessslog = _.assign(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.AccessLog',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n date: +new Date(),\n responsible: hcpId,\n author: user.id,\n codes: [],\n tags: [],\n user: user.id,\n patientId: patient.id,\n accessType: 'USER_ACCESS',\n },\n h || {}\n )\n\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(accessslog, patient, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(accessslog, hcpId!),\n ])\n )\n .then(([dels, eks]) => {\n _.extend(accessslog, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(accessslog)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((helement) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, accessslog, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return accessslog\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) {\n return this.crypto\n .extractDelegationsSFKs(patient, hcpartyId)\n .then((secretForeignKeys) =>\n secretForeignKeys && secretForeignKeys.extractedKeys && secretForeignKeys.extractedKeys.length > 0\n ? this.findByHCPartyPatientSecretFKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n : Promise.resolve([])\n )\n }\n\n findByHCPartyPatientSecretFKeys(hcPartyId: string, secretFKeys: string): Promise<Array<AccessLog> | any> {\n return super.findAccessLogsByHCPartyPatientForeignKeys(hcPartyId, secretFKeys).then((accesslogs) => this.decrypt(hcPartyId, accesslogs))\n }\n\n decrypt(hcpId: string, accessLogs: Array<models.AccessLog>): Promise<Array<models.AccessLog>> {\n //First check that we have no dangling delegation\n\n return Promise.all(\n accessLogs.map((accessLog) => {\n return accessLog.encryptedSelf\n ? this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(\n hcpId!,\n accessLog.id!,\n _.size(accessLog.encryptionKeys) ? accessLog.encryptionKeys! : accessLog.delegations!\n )\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n //console.log(\"Cannot decrypt contact\", ctc.id)\n return Promise.resolve(accessLog)\n }\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, ''))).then((key) =>\n utils.decrypt(accessLog, (ec) =>\n this.crypto.AES.decrypt(key, ec).then((dec) => {\n const jsonContent = dec && ua2utf8(dec)\n try {\n return JSON.parse(jsonContent)\n } catch (e) {\n console.log('Cannot parse access log', accessLog.id, jsonContent || 'Invalid content')\n return {}\n }\n })\n )\n )\n })\n : Promise.resolve(accessLog)\n })\n )\n }\n\n initEncryptionKeys(user: models.User, accessLog: models.AccessLog): Promise<models.AccessLog> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(accessLog, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(accessLog, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((accessLog) =>\n this.crypto.appendEncryptionKeys(accessLog, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(accessLog, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n encrypt(user: models.User, accessLogs: Array<models.AccessLog>): Promise<Array<models.AccessLog>> {\n return Promise.all(\n accessLogs.map((accessLog) =>\n (accessLog.encryptionKeys && Object.keys(accessLog.encryptionKeys).length\n ? Promise.resolve(accessLog)\n : this.initEncryptionKeys(user, accessLog)\n )\n .then((accessLog: AccessLog) =>\n this.crypto.extractKeysFromDelegationsForHcpHierarchy(\n (user.healthcarePartyId || user.patientId)!,\n accessLog.id!,\n accessLog.encryptionKeys!\n )\n )\n .then((eks: { extractedKeys: Array<string>; hcpartyId: string }) =>\n this.crypto.AES.importKey('raw', hex2ua(eks.extractedKeys[0].replace(/-/g, '')))\n )\n .then((key: CryptoKey) =>\n utils.crypt(accessLog, (obj: { [key: string]: string }) => this.crypto.AES.encrypt(key, utf8_2ua(JSON.stringify(obj))), this.cryptedKeys)\n )\n )\n )\n }\n\n createAccessLog(body?: models.AccessLog): never {\n throw new Error('Cannot call a method that returns access logs without providing a user for de/encryption')\n }\n\n createAccessLogWithUser(user: models.User, body?: models.AccessLog): Promise<models.AccessLog | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(body)])\n .then((als) => super.createAccessLog(als[0]))\n .then((accessLog) => this.decrypt((user.healthcarePartyId || user.patientId)!, [accessLog]))\n .then((als) => als[0])\n : Promise.resolve(null)\n }\n\n getAccessLog(accessLogId: string): never {\n throw new Error('Cannot call a method that returns access logs without providing a user for de/encryption')\n }\n\n getAccessLogWithUser(user: models.User, accessLogId: string): Promise<models.AccessLog | any> {\n return super\n .getAccessLog(accessLogId)\n .then((accessLog) => this.decrypt((user.healthcarePartyId || user.patientId)!, [accessLog]))\n .then((als) => als[0])\n }\n\n listAccessLogs(fromEpoch?: number, toEpoch?: number, startKey?: number, startDocumentId?: string, limit?: number): never {\n throw new Error('Cannot call a method that returns access logs without providing a user for de/encryption')\n }\n\n listAccessLogsWithUser(\n user: models.User,\n fromEpoch?: number,\n toEpoch?: number,\n startKey?: number,\n startDocumentId?: string,\n limit?: number,\n descending?: boolean\n ): Promise<PaginatedListAccessLog> {\n return super\n .listAccessLogs(fromEpoch, toEpoch, startKey, startDocumentId, limit, descending)\n .then((accessLog) =>\n this.decrypt((user.healthcarePartyId || user.patientId)!, accessLog.rows!).then((dr) => Object.assign(accessLog, { rows: dr }))\n )\n }\n\n modifyAccessLog(body?: models.AccessLog): never {\n throw new Error('Cannot call a method that returns access logs without providing a user for de/encryption')\n }\n\n modifyAccessLogWithUser(user: models.User, body?: models.AccessLog): Promise<models.AccessLog | null> {\n return body\n ? this.encrypt(user, [_.cloneDeep(body)])\n .then((als) => super.modifyAccessLog(als[0]))\n .then((accessLog) => this.decrypt((user.healthcarePartyId || user.patientId)!, [accessLog]))\n .then((als) => als[0])\n : Promise.resolve(null)\n }\n\n findByUserAfterDate(\n userId: string,\n accessType?: string,\n startDate?: number,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n descending?: boolean\n ): never {\n throw new Error('Cannot call a method that returns access logs without providing a user for de/encryption')\n }\n\n findByUserAfterDateWithUser(\n user: models.User,\n userId: string,\n accessType?: string,\n startDate?: number,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n descending?: boolean\n ): Promise<models.AccessLog | any> {\n return super\n .findByUserAfterDate(userId, accessType, startDate, startKey, startDocumentId, limit, descending)\n .then((accessLog) =>\n this.decrypt((user.healthcarePartyId || user.patientId)!, accessLog.rows!).then((dr) => Object.assign(accessLog, { rows: dr }))\n )\n }\n\n async findLatestAccessLogsOfPatientsWithUser(user: models.User, userId: string, limit = 100, startDate?: number): Promise<models.AccessLog[]> {\n let foundAccessLogs: AccessLogWithPatientId[] = [],\n nextKeyPair: models.PaginatedDocumentKeyIdPairObject | undefined = undefined\n const numberRequestedAccessLogs = 100\n const MAX_WHILE_ITERATIONS = 5\n\n for (let currentIteration = 0; foundAccessLogs.length < limit && currentIteration < MAX_WHILE_ITERATIONS; currentIteration++) {\n const currentLimit = limit - foundAccessLogs.length\n const { rows: logs, nextKeyPair: newNextKeyPair }: models.PaginatedListAccessLog = (await super.findByUserAfterDate(\n userId,\n 'USER_ACCESS',\n startDate,\n nextKeyPair && JSON.stringify(nextKeyPair.startKey!),\n nextKeyPair && nextKeyPair.startKeyDocId!,\n numberRequestedAccessLogs,\n true\n )) as models.PaginatedListAccessLog\n const logsWithPatientId: AccessLogWithPatientId[] = await this.decrypt((user.healthcarePartyId || user.patientId)!, logs as AccessLog[]).then(\n (decryptedLogs) =>\n Promise.all(\n _.map(decryptedLogs, (decryptedLog) => {\n return this.crypto.extractCryptedFKs(decryptedLog, user.healthcarePartyId as string).then(\n (keys) =>\n ({\n ...decryptedLog,\n patientId: _.head(keys.extractedKeys),\n } as AccessLogWithPatientId)\n )\n })\n )\n )\n\n const uniqueLogs: AccessLogWithPatientId[] = _.chain(logsWithPatientId)\n .reject((log) => _.some(foundAccessLogs, ({ patientId }) => patientId === log.patientId))\n .uniqBy((log: AccessLogWithPatientId) => log.patientId)\n .value()\n .slice(0, currentLimit)\n\n foundAccessLogs = [...foundAccessLogs, ...uniqueLogs]\n\n if ((logs || []).length < numberRequestedAccessLogs) {\n break\n } else if (newNextKeyPair) {\n nextKeyPair = newNextKeyPair\n } else {\n break\n }\n }\n\n return foundAccessLogs\n }\n}\n"]}
@@ -199,3 +199,4 @@ class IccBekmehrXApi extends icc_api_1.IccBekmehrApi {
199
199
  }
200
200
  }
201
201
  exports.IccBekmehrXApi = IccBekmehrXApi;
202
+ //# sourceMappingURL=icc-bekmehr-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-bekmehr-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-bekmehr-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import * as models from '../icc-api/model/models'\nimport { IccAuthApi, IccBekmehrApi } from '../icc-api'\nimport { IccContactXApi } from './icc-contact-x-api'\nimport { IccDocumentXApi } from './icc-document-x-api'\nimport { IccHelementXApi } from './icc-helement-x-api'\nimport { string2ua, ua2string } from './utils/binary-utils'\nimport { Contact, Document, HealthElement, Service } from '../icc-api/model/models'\n\nexport type Patcher = ContactPatcher | HealthElementPatcher | DocumentPatcher | ServicePatcher\nexport interface ContactPatcher {\n type: 'ContactDto'\n patch: (contacts: Contact[]) => Promise<Contact[]>\n}\nexport interface HealthElementPatcher {\n type: 'HealthElementDto'\n patch: (patients: HealthElement[]) => Promise<HealthElement[]>\n}\nexport interface DocumentPatcher {\n type: 'DocumentDto'\n patch: (documents: Document[]) => Promise<Document[]>\n}\nexport interface ServicePatcher {\n type: 'ServiceDto'\n patch: (documents: Service[]) => Promise<Service[]>\n}\n\nexport class IccBekmehrXApi extends IccBekmehrApi {\n private readonly ctcApi: IccContactXApi\n private readonly helementApi: IccHelementXApi\n private readonly documentApi: IccDocumentXApi\n private readonly wssHost: string\n private readonly authApi: IccAuthApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n authApi: IccAuthApi,\n ctcApi: IccContactXApi,\n helementApi: IccHelementXApi,\n documentApi: IccDocumentXApi,\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.authApi = authApi\n this.ctcApi = ctcApi\n this.helementApi = helementApi\n this.documentApi = documentApi\n\n this.wssHost = new URL(this.host, typeof window !== 'undefined' ? window.location.href : undefined).href\n .replace(/^http/, 'ws')\n .replace(/\\/rest\\/v.+/, '/ws')\n }\n\n socketEventListener(\n socket: WebSocket,\n healthcarePartyId: string,\n resolve: (value: Blob) => void,\n reject: (reason?: any) => void,\n patchers: Patcher[],\n progressCallback?: (progress: number) => void\n ) {\n const that = this\n\n const send = (command: string, uuid: string, body: any) => {\n const data = JSON.stringify({ command, uuid, body })\n socket.send(data.length > 65000 ? string2ua(data).buffer : data)\n }\n\n const messageHandler = (msg: any, event: any) => {\n if (msg.command === 'decrypt') {\n if (msg.type === 'ContactDto') {\n that.ctcApi\n .decrypt(healthcarePartyId, msg.body)\n .then((res) =>\n patchers\n .filter((p) => p.type === 'ContactDto')\n .reduce(async (p, patcher) => (patcher as ContactPatcher).patch(await p), Promise.resolve(res))\n )\n .then((res) => send('decryptResponse', msg.uuid, res))\n } else if (msg.type === 'HealthElementDto') {\n that.helementApi\n .decrypt(healthcarePartyId, msg.body)\n .then((res) =>\n patchers\n .filter((p) => p.type === 'HealthElementDto')\n .reduce(async (p, patcher) => (patcher as HealthElementPatcher).patch(await p), Promise.resolve(res))\n )\n .then((res) => send('decryptResponse', msg.uuid, res))\n } else if (msg.type === 'DocumentDto') {\n that.documentApi\n .decrypt(\n healthcarePartyId,\n msg.body.map((d: JSON) => new Document(d))\n )\n .then((res) =>\n patchers\n .filter((p) => p.type === 'DocumentDto')\n .reduce(async (p, patcher) => (patcher as DocumentPatcher).patch(await p), Promise.resolve(res))\n )\n .then((res) =>\n send(\n 'decryptResponse',\n msg.uuid,\n res?.map((d) => {\n const de = d.decryptedAttachment\n const { encryptedAttachment, ...stripped } = d\n return de ? { ...stripped, decryptedAttachment: btoa(ua2string(de)) } : stripped\n })\n )\n )\n } else if (msg.type === 'ServiceDto') {\n that.ctcApi\n .decryptServices(healthcarePartyId, msg.body)\n .then((res) =>\n patchers\n .filter((p) => p.type === 'ServiceDto')\n .reduce(async (p, patcher) => (patcher as ServicePatcher).patch(await p), Promise.resolve(res))\n )\n .then((res) => send('decryptResponse', msg.uuid, res))\n }\n } else if (msg.command === 'progress') {\n if (progressCallback && msg.body && msg.body[0]) {\n progressCallback(msg.body[0].progress)\n }\n } else {\n console.error('error received from backend:' + event.data)\n reject('websocket error: ' + event.data)\n socket.close(4000, 'backend error')\n }\n }\n\n return (event: MessageEvent) => {\n if (typeof event.data === 'string') {\n const msg = JSON.parse(event.data)\n messageHandler(msg, event)\n } else {\n const blob: Blob = event.data\n const subBlob = blob.slice(0, 1)\n const br = new FileReader()\n br.onload = function (e) {\n const firstChar = e.target && new Uint8Array((e.target as any).result as ArrayBuffer)[0]\n\n if (firstChar === 0x7b) {\n const tr = new FileReader()\n tr.onload = function (e) {\n const msg = e.target && JSON.parse((e.target as any).result as string)\n messageHandler(msg, event)\n }\n tr.readAsBinaryString(blob)\n } else {\n resolve(blob)\n socket.close(1000, 'Ok')\n }\n }\n br.readAsArrayBuffer(subBlob)\n }\n }\n }\n\n generateSmfExportWithEncryptionSupport(\n patientId: string,\n healthcarePartyId: string,\n language: string,\n body: models.SoftwareMedicalFileExport,\n progressCallback?: (progress: number) => void,\n sessionId?: string,\n patchers: Patcher[] = []\n ): Promise<Blob | undefined> {\n return (!sessionId ? this.authApi.token('GET', '/ws/be_kmehr/generateSmf') : Promise.resolve('')).then(\n (token) =>\n new Promise<Blob | undefined>((resolve, reject) => {\n const socket = new WebSocket(\n token.length ? `${this.wssHost}/be_kmehr/generateSmf;tokenid=${token}` : `${this.wssHost}/be_kmehr/generateSmf;sessionid=${sessionId}`\n )\n socket.addEventListener('open', function () {\n socket.send(\n JSON.stringify({\n parameters: { patientId: patientId, language: language, info: body },\n })\n )\n })\n\n // Listen for messages\n socket.addEventListener('message', this.socketEventListener(socket, healthcarePartyId, resolve, reject, patchers, progressCallback))\n })\n )\n }\n\n generateSumehrExportWithEncryptionSupport(\n patientId: string,\n healthcarePartyId: string,\n language: string,\n body: models.SumehrExportInfo,\n sessionId?: string,\n patchers: Patcher[] = []\n ): Promise<Blob | undefined> {\n return (!sessionId ? this.authApi.token('GET', '/ws/be_kmehr/generateSumehr') : Promise.resolve('')).then(\n (token) =>\n new Promise<Blob | undefined>((resolve, reject) => {\n const socket = new WebSocket(\n token.length\n ? `${this.wssHost}/be_kmehr/generateSumehr;tokenid=${token}`\n : `${this.wssHost}/be_kmehr/generateSumehr;sessionid=${sessionId}`\n )\n socket.addEventListener('open', function () {\n socket.send(\n JSON.stringify({\n parameters: { patientId: patientId, language: language, info: body },\n })\n )\n })\n // Listen for messages\n socket.addEventListener('message', this.socketEventListener(socket, healthcarePartyId, resolve, reject, patchers))\n })\n )\n }\n\n generateSumehrV2ExportWithEncryptionSupport(\n patientId: string,\n healthcarePartyId: string,\n language: string,\n body: models.SumehrExportInfo,\n sessionId?: string,\n patchers: Patcher[] = []\n ): Promise<Blob | undefined> {\n return (!sessionId ? this.authApi.token('GET', '/ws/be_kmehr/generateSumehrV2') : Promise.resolve('')).then(\n (token) =>\n new Promise<Blob | undefined>((resolve, reject) => {\n const socket = new WebSocket(\n token.length\n ? `${this.wssHost}/be_kmehr/generateSumehrV2;tokenid=${token}`\n : `${this.wssHost}/be_kmehr/generateSumehrV2;sessionid=${sessionId}`\n )\n socket.addEventListener('open', function () {\n socket.send(\n JSON.stringify({\n parameters: { patientId: patientId, language: language, info: body },\n })\n )\n })\n // Listen for messages\n socket.addEventListener('message', this.socketEventListener(socket, healthcarePartyId, resolve, reject, patchers))\n })\n )\n }\n\n generateDiaryNoteExportWithEncryptionSupport(\n patientId: string,\n healthcarePartyId: string,\n language: string,\n body: models.SumehrExportInfo,\n sessionId?: string,\n patchers: Patcher[] = []\n ): Promise<Blob | undefined> {\n return (!sessionId ? this.authApi.token('GET', '/ws/be_kmehr/generateDiaryNote') : Promise.resolve('')).then(\n (token) =>\n new Promise<Blob | undefined>((resolve, reject) => {\n const socket = new WebSocket(\n token.length\n ? `${this.wssHost}/be_kmehr/generateDiaryNote;tokenid=${token}`\n : `${this.wssHost}/be_kmehr/generateDiaryNote;sessionid=${sessionId}`\n )\n socket.addEventListener('open', function () {\n socket.send(\n JSON.stringify({\n parameters: { patientId: patientId, language: language, info: body },\n })\n )\n })\n // Listen for messages\n socket.addEventListener('message', this.socketEventListener(socket, healthcarePartyId, resolve, reject, patchers))\n })\n )\n }\n\n generateMedicationSchemeWithEncryptionSupport(\n patientId: string,\n healthcarePartyId: string,\n language: string,\n recipientSafe: string,\n version: number,\n body: models.MedicationSchemeExportInfo,\n sessionId?: string,\n patchers: Patcher[] = []\n ): Promise<Blob | undefined> {\n return (!sessionId ? this.authApi.token('GET', '/ws/be_kmehr/generateMedicationScheme') : Promise.resolve('')).then(\n (token) =>\n new Promise<Blob | undefined>((resolve, reject) => {\n const socket = new WebSocket(\n token.length\n ? `${this.wssHost}/be_kmehr/generateMedicationScheme;tokenid=${token}`\n : `${this.wssHost}/be_kmehr/generateMedicationScheme;sessionid=${sessionId}`\n )\n socket.addEventListener('open', function () {\n socket.send(\n JSON.stringify({\n parameters: {\n patientId: patientId,\n language: language,\n recipientSafe: recipientSafe,\n version: version,\n info: body,\n },\n })\n )\n })\n // Listen for messages\n socket.addEventListener('message', this.socketEventListener(socket, healthcarePartyId, resolve, reject, patchers))\n })\n )\n }\n}\n"]}
@@ -221,3 +221,4 @@ class IccCalendarItemXApi extends icc_api_1.IccCalendarItemApi {
221
221
  }
222
222
  }
223
223
  exports.IccCalendarItemXApi = IccCalendarItemXApi;
224
+ //# sourceMappingURL=icc-calendar-item-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-calendar-item-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-calendar-item-x-api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4CAA2C;AAE3C,4BAA2B;AAE3B,0CAAsC;AAEtC,wCAA+C;AAE/C,uDAAgE;AAEhE,MAAa,mBAAoB,SAAQ,4BAAkB;IAKzD,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;QAdjC,SAAI,GAAQ,IAAI,CAAA;QAEhB,gBAAW,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAahC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,WAAW,CAAC,IAAU,EAAE,EAAgB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAA;QAEtD,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAC3B;YACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,wCAAwC;YAC/C,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC7B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC9B,WAAW,EAAE,KAAK;YAClB,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,YAAY,EAAE,IAAI,EAAE,KAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3F,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;YAE7D,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAC1C;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,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,wCAAwC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBACrH,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAC1F,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,kBAAkB,CAAC,IAAiB,EAAE,OAAuB,EAAE,EAAO,EAAE,YAAsB,EAAE;QAC9F,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAC3B;YACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,wCAAwC;YAC/C,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,gCAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;IACtF,CAAC;IAED,gCAAgC,CAC9B,IAAiB,EACjB,OAAuB,EACvB,YAAiC,EACjC,YAAsB,EAAE;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM;aACf,sBAAsB,CAAC,OAAO,EAAE,KAAM,CAAC;aACvC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAC1B,OAAO,CAAC,GAAG,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,KAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAM,CAAC;SACrD,CAAC,CACH;aACA,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC,CAAC,CAAA;YAEF,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YAC3C,CAAC,CAAC,IAAI,CACJ,SAAS,CAAC,MAAM,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,CACrI,CAAC,OAAO,CACP,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAClC,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAM,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAC/G,CAAC,CACL,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAuB;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE;YACvF,OAAO,iBAAiB,IAAI,iBAAiB,CAAC,aAAa,IAAI,iBAAiB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACvG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,SAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/G,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+BAA+B,CAAC,SAAiB,EAAE,WAAmB;QACpE,OAAO,KAAK,CAAC,4CAA4C,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;IACnJ,CAAC;IAED,kBAAkB,CAAC,IAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAA;IACtH,CAAC;IAED,6BAA6B,CAAC,IAAiB,EAAE,IAA0B;QACzE,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;iBACpC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC7E,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,uBAAuB,CAAC,IAAiB,EAAE,cAAsB;QAC/D,OAAO,KAAK;aACT,eAAe,CAAC,cAAc,CAAC;aAC/B,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;aACjG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,eAAe,CAAC,cAAsB;QACpC,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;IACzH,CAAC;IAED,wBAAwB,CAAC,IAAiB;QACxC,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACnI,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;IACzH,CAAC;IAED,+BAA+B,CAAC,IAAiB,EAAE,IAAuB;QACxE,OAAO,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IAC9I,CAAC;IAED,uBAAuB,CAAC,IAAuB;QAC7C,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;IACzH,CAAC;IAED,4CAA4C,CAC1C,IAAiB,EACjB,SAAiB,EACjB,OAAe,EACf,SAAiB;QAEjB,OAAO,KAAK;aACT,oCAAoC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;aACnE,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACtG,CAAC;IAED,oCAAoC,CAAC,SAAkB,EAAE,OAAgB,EAAE,SAAkB;QAC3F,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;IACzH,CAAC;IAED,uCAAuC,CACrC,IAAiB,EACjB,SAAiB,EACjB,OAAe,EACf,QAAgB;QAEhB,OAAO,KAAK;aACT,+BAA+B,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;aAC7D,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACtG,CAAC;IAED,+BAA+B,CAAC,SAAkB,EAAE,OAAgB,EAAE,QAAiB;QACrF,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;IACzH,CAAC;IAED,kBAAkB,CAAC,IAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAA;IACtH,CAAC;IAED;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,YAAiC;QAC9D,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,KAA2B,YAAY,EAAlC,iBAAiB,UAAK,YAAY,EAA9E,2CAA+D,CAAe,CAAA;QACpF,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,6BAA6B,CAAC,IAAiB,EAAE,IAA0B;QACzE,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;iBACpC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC7E,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,kBAAkB,CAAC,IAAiB,EAAE,YAAiC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACvE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAC3B,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE;gBACrB,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC,CAAC,CACH,CACA;YAAA,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAC3H,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAM,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACzF,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;oBACpB,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC,CAAA;YACJ,CAAC,CAAC,CACH,CAAC,CACL,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,IAAiB,EAAE,aAAyC;QAClE,OAAO,OAAO,CAAC,GAAG,CAChB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CACjC,CAAC,YAAY,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,MAAM;YAC7E,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,CAAC,CAC9C;aACE,IAAI,CAAC,CAAC,YAA0B,EAAE,EAAE,CACnC,IAAI,CAAC,MAAM,CAAC,yCAAyC,CACnD,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAE,EAC3C,YAAY,CAAC,EAAG,EAChB,YAAY,CAAC,cAAe,CAC7B,CACF;aACA,IAAI,CAAC,CAAC,GAAwD,EAAE,EAAE,CACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,qBAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CACjF;aACA,IAAI,CAAC,CAAC,GAAc,EAAE,EAAE,CACvB,aAAK,CAAC,KAAK,CACT,YAAY,EACZ,CAAC,GAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,uBAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAC/F,IAAI,CAAC,WAAW,CACjB,CACF,CACJ,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,aAAyC;QAC9D,iDAAiD;QAEjD,OAAO,OAAO,CAAC,GAAG,CAChB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACjC,OAAO,YAAY,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,CAAC,MAAM;qBACR,yCAAyC,CACxC,KAAM,EACN,YAAY,CAAC,EAAG,EAChB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC,CAAC,YAAY,CAAC,WAAY,CAC/F;qBACA,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE;oBAChC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBACzB,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;qBACrC;oBACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,qBAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACtF,aAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;yBAC7B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;wBACZ,MAAM,WAAW,GAAG,GAAG,IAAI,sBAAO,CAAC,GAAG,CAAC,CAAA;wBACvC,IAAI;4BACF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;yBAC/B;wBAAC,OAAO,CAAC,EAAE;4BACV,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,IAAI,iBAAiB,CAAC,CAAA;4BAC5F,OAAO,EAAE,CAAA;yBACV;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;wBAC/C,OAAO,EAAE,CAAA;oBACX,CAAC,CAAC,CACL,CACF,CAAA;gBACH,CAAC,CAAC;gBACN,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACnC,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAlTD,kDAkTC","sourcesContent":["import * as i18n from './rsrc/contact.i18n'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport { utils } from './crypto/utils'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport { IccCalendarItemApi } from '../icc-api'\nimport { CalendarItem, User } from '../icc-api/model/models'\nimport { hex2ua, ua2utf8, utf8_2ua } from './utils/binary-utils'\n\nexport class IccCalendarItemXApi extends IccCalendarItemApi {\n i18n: any = i18n\n crypto: IccCryptoXApi\n cryptedKeys = ['details', 'title']\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, ci: CalendarItem) {\n const hcpId = user.healthcarePartyId || user.patientId\n\n const calendarItem = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.CalendarItem',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: hcpId,\n author: user.id,\n codes: [],\n tags: [],\n },\n ci || {}\n )\n\n return this.crypto.initObjectDelegations(calendarItem, null, hcpId!, null).then((initData) => {\n _.extend(calendarItem, { delegations: initData.delegations })\n\n let promise = Promise.resolve(calendarItem)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise\n .then((cal) => this.crypto.extendedDelegationsAndCryptedForeignKeys(cal, null, hcpId!, delegateId, initData.secretId))\n .then((extraData) => _.extend(calendarItem, { delegations: extraData.delegations })))\n )\n return promise\n })\n }\n\n newInstancePatient(user: models.User, patient: models.Patient, ci: any, delegates: string[] = []): Promise<models.CalendarItem> {\n const calendarItem = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.CalendarItem',\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 ci || {}\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, calendarItem, delegates)\n }\n\n initDelegationsAndEncryptionKeys(\n user: models.User,\n patient: models.Patient,\n calendarItem: models.CalendarItem,\n delegates: string[] = []\n ): Promise<models.CalendarItem> {\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(calendarItem, patient, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(calendarItem, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(calendarItem, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(calendarItem)\n _.uniq(\n delegates.concat(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : [])\n ).forEach(\n (delegateId) =>\n (promise = promise.then((contact) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, contact, hcpId!, delegateId, dels.secretId, eks.secretId)\n ))\n )\n return promise\n })\n }\n\n findBy(hcpartyId: string, patient: models.Patient) {\n return this.crypto.extractDelegationsSFKs(patient, hcpartyId).then((secretForeignKeys) => {\n return secretForeignKeys && secretForeignKeys.extractedKeys && secretForeignKeys.extractedKeys.length > 0\n ? this.findByHCPartyPatientSecretFKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n : Promise.resolve([])\n })\n }\n\n findByHCPartyPatientSecretFKeys(hcPartyId: string, secretFKeys: string): Promise<Array<models.CalendarItem> | any> {\n return super.findCalendarItemsByHCPartyPatientForeignKeys(hcPartyId, secretFKeys).then((calendarItems) => this.decrypt(hcPartyId, calendarItems))\n }\n\n createCalendarItem(body?: CalendarItem): never {\n throw new Error('Cannot call a method that must encrypt a calendar item without providing a user for de/encryption')\n }\n\n createCalendarItemWithHcParty(user: models.User, body?: models.CalendarItem): Promise<models.CalendarItem | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(body)])\n .then((items) => super.createCalendarItem(items[0]))\n .then((ci) => this.decrypt((user.healthcarePartyId || user.patientId)!, [ci]))\n .then((cis) => cis[0])\n : Promise.resolve(null)\n }\n\n getCalendarItemWithUser(user: models.User, calendarItemId: string): Promise<CalendarItem | any> {\n return super\n .getCalendarItem(calendarItemId)\n .then((calendarItem) => this.decrypt((user.healthcarePartyId || user.patientId)!, [calendarItem]))\n .then((cis) => cis[0])\n }\n\n getCalendarItem(calendarItemId: string): never {\n throw new Error('Cannot call a method that must en/decrypt a calendar item without providing a user for de/encryption')\n }\n\n getCalendarItemsWithUser(user: models.User): Promise<Array<CalendarItem> | any> {\n return super.getCalendarItems().then((calendarItems) => this.decrypt((user.healthcarePartyId || user.patientId)!, calendarItems))\n }\n\n getCalendarItems(): never {\n throw new Error('Cannot call a method that must en/decrypt a calendar item without providing a user for de/encryption')\n }\n\n getCalendarItemsWithIdsWithUser(user: models.User, body?: models.ListOfIds): Promise<Array<CalendarItem> | any> {\n return super.getCalendarItemsWithIds(body).then((calendarItems) => this.decrypt((user.healthcarePartyId || user.patientId)!, calendarItems))\n }\n\n getCalendarItemsWithIds(body?: models.ListOfIds): never {\n throw new Error('Cannot call a method that must en/decrypt a calendar item without providing a user for de/encryption')\n }\n\n getCalendarItemsByPeriodAndHcPartyIdWithUser(\n user: models.User,\n startDate: number,\n endDate: number,\n hcPartyId: string\n ): Promise<Array<CalendarItem> | any> {\n return super\n .getCalendarItemsByPeriodAndHcPartyId(startDate, endDate, hcPartyId)\n .then((calendarItems) => this.decrypt((user.healthcarePartyId || user.patientId)!, calendarItems))\n }\n\n getCalendarItemsByPeriodAndHcPartyId(startDate?: number, endDate?: number, hcPartyId?: string): never {\n throw new Error('Cannot call a method that must en/decrypt a calendar item without providing a user for de/encryption')\n }\n\n getCalendarsByPeriodAndAgendaIdWithUser(\n user: models.User,\n startDate: number,\n endDate: number,\n agendaId: string\n ): Promise<Array<CalendarItem> | any> {\n return super\n .getCalendarsByPeriodAndAgendaId(startDate, endDate, agendaId)\n .then((calendarItems) => this.decrypt((user.healthcarePartyId || user.patientId)!, calendarItems))\n }\n\n getCalendarsByPeriodAndAgendaId(startDate?: number, endDate?: number, agendaId?: string): never {\n throw new Error('Cannot call a method that must en/decrypt a calendar item without providing a user for de/encryption')\n }\n\n modifyCalendarItem(body?: CalendarItem): never {\n throw new Error('Cannot call a method that must encrypt a calendar item without providing a user for de/encryption')\n }\n\n /**\n * Remove the following delegation objects from the\n * CalendarItem instance: cryptedForeignKeys, secretForeignKeys.\n *\n * The delegations & encryptionKeys objects are not removed because\n * in the case the CalendarItem is saved in the DB & then encrypted,\n * if later we remove the patient from it, it'd reset the delegations\n * and encryptionKeys thus impossibilitating further access.\n *\n * @param calendarItem The Calendar Item object\n */\n resetCalendarDelegationObjects(calendarItem: models.CalendarItem): models.CalendarItem {\n const { cryptedForeignKeys, secretForeignKeys, ...resetCalendarItem } = calendarItem\n return resetCalendarItem\n }\n\n modifyCalendarItemWithHcParty(user: models.User, body?: models.CalendarItem): Promise<models.CalendarItem | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(body)])\n .then((items) => super.modifyCalendarItem(items[0]))\n .then((ci) => this.decrypt((user.healthcarePartyId || user.patientId)!, [ci]))\n .then((cis) => cis[0])\n : Promise.resolve(null)\n }\n\n initEncryptionKeys(user: models.User, calendarItem: models.CalendarItem): Promise<models.CalendarItem> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(calendarItem, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(calendarItem, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((item) =>\n this.crypto.appendEncryptionKeys(item, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(item, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n encrypt(user: models.User, calendarItems: Array<models.CalendarItem>): Promise<Array<models.CalendarItem>> {\n return Promise.all(\n calendarItems.map((calendarItem) =>\n (calendarItem.encryptionKeys && Object.keys(calendarItem.encryptionKeys).length\n ? Promise.resolve(calendarItem)\n : this.initEncryptionKeys(user, calendarItem)\n )\n .then((calendarItem: CalendarItem) =>\n this.crypto.extractKeysFromDelegationsForHcpHierarchy(\n (user.healthcarePartyId || user.patientId)!,\n calendarItem.id!,\n calendarItem.encryptionKeys!\n )\n )\n .then((eks: { extractedKeys: Array<string>; hcpartyId: string }) =>\n this.crypto.AES.importKey('raw', hex2ua(eks.extractedKeys[0].replace(/-/g, '')))\n )\n .then((key: CryptoKey) =>\n utils.crypt(\n calendarItem,\n (obj: { [key: string]: string }) => this.crypto.AES.encrypt(key, utf8_2ua(JSON.stringify(obj))),\n this.cryptedKeys\n )\n )\n )\n )\n }\n\n decrypt(hcpId: string, calendarItems: Array<models.CalendarItem>): Promise<Array<models.CalendarItem>> {\n //First check that we have no dangling delegation\n\n return Promise.all(\n calendarItems.map((calendarItem) => {\n return calendarItem.encryptedSelf\n ? this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(\n hcpId!,\n calendarItem.id!,\n _.size(calendarItem.encryptionKeys) ? calendarItem.encryptionKeys! : calendarItem.delegations!\n )\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n return Promise.resolve(calendarItem)\n }\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, ''))).then((key) =>\n utils.decrypt(calendarItem, (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 calendar item', calendarItem.id, jsonContent || 'Invalid content')\n return {}\n }\n })\n .catch((err) => {\n console.log('Error during AES decryption', err)\n return {}\n })\n )\n )\n })\n : Promise.resolve(calendarItem)\n })\n )\n }\n}\n"]}
@@ -60,3 +60,4 @@ class IccClassificationXApi extends icc_api_1.IccClassificationApi {
60
60
  }
61
61
  }
62
62
  exports.IccClassificationXApi = IccClassificationXApi;
63
+ //# sourceMappingURL=icc-classification-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-classification-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-classification-x-api.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AAKjD,4BAA2B;AAC3B,iCAAgC;AAEhC,MAAa,qBAAsB,SAAQ,8BAAoB;IAG7D,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;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,WAAW,CAAC,IAAiB,EAAE,OAAuB,EAAE,CAAM;QAC5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAC7B;YACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,0CAA0C;YACjD,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;YACR,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACzC,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;SACzD,EACD,CAAC,IAAI,EAAE,CACR,CAAA;QAED,OAAO,IAAI,CAAC,gCAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;IAC7E,CAAC;IAED,gCAAgC,CAC9B,IAAiB,EACjB,OAAuB,EACvB,cAAqC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM;aACf,sBAAsB,CAAC,OAAO,EAAE,KAAM,CAAC;aACvC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,cAAc,EAAE,OAAO,EAAE,KAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aACnI,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE;gBACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;aAC9C,CAAC,CAAA;YAEF,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAC5C;YAAA,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAC3H,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CACzC,IAAI,CAAC,MAAM;iBACR,wCAAwC,CAAC,cAAc,EAAE,OAAO,EAAE,KAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;iBACxG,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAClB,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE;gBACvB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;aACjD,CAAC,CACH;iBACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACd,OAAO,cAAc,CAAA;YACvB,CAAC,CAAC,CACL,CAAC,CACL,CAAA;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAuB;QAC/C,OAAO,IAAI,CAAC,MAAM;aACf,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC;aAC1C,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAC1B,IAAI,CAAC,8CAA8C,CAAC,iBAAiB,CAAC,SAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAC7H,CAAA;IACL,CAAC;CACF;AAnFD,sDAmFC","sourcesContent":["import { IccClassificationApi } 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'\n\nexport class IccClassificationXApi extends IccClassificationApi {\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, c: any): Promise<models.Classification> {\n const classification = _.assign(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Classification',\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 healthElementId: this.crypto.randomUuid(),\n openingDate: parseInt(moment().format('YYYYMMDDHHmmss')),\n },\n c || {}\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, classification)\n }\n\n initDelegationsAndEncryptionKeys(\n user: models.User,\n patient: models.Patient,\n classification: models.Classification\n ): Promise<models.Classification> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId!)\n .then((secretForeignKeys) => this.crypto.initObjectDelegations(classification, patient, hcpId!, secretForeignKeys.extractedKeys[0]))\n .then((initData) => {\n _.extend(classification, {\n delegations: initData.delegations,\n cryptedForeignKeys: initData.cryptedForeignKeys,\n secretForeignKeys: initData.secretForeignKeys,\n })\n\n let promise = Promise.resolve(classification)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((classification) =>\n this.crypto\n .extendedDelegationsAndCryptedForeignKeys(classification, patient, hcpId!, delegateId, initData.secretId)\n .then((extraData) =>\n _.extend(classification, {\n delegations: extraData.delegations,\n cryptedForeignKeys: extraData.cryptedForeignKeys,\n })\n )\n .catch((e) => {\n console.log(e)\n return classification\n })\n ))\n )\n\n return promise\n })\n }\n\n findBy(hcpartyId: string, patient: models.Patient) {\n return this.crypto\n .extractDelegationsSFKs(patient, hcpartyId)\n .then((secretForeignKeys) =>\n this.findClassificationsByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n )\n }\n}\n"]}
@@ -92,3 +92,4 @@ class IccCodeXApi extends icc_api_1.IccCodeApi {
92
92
  }
93
93
  }
94
94
  exports.IccCodeXApi = IccCodeXApi;
95
+ //# sourceMappingURL=icc-code-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-code-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-code-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccCodeApi } from '../icc-api'\n\nimport codeLanguages from './rsrc/codelng'\nimport icd10 from './rsrc/icd10'\nimport icpc2 from './rsrc/icpc2'\n\nimport * as _ from 'lodash'\nimport { Code } from '../icc-api/model/Code'\n\nexport class IccCodeXApi extends IccCodeApi {\n icd10: any = icd10\n icpc2: any = icpc2\n codeLanguages: any = codeLanguages\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 }\n\n // noinspection JSUnusedGlobalSymbols\n icdChapters(listOfCodes: Array<string>) {\n return Promise.resolve(\n _.sortBy(\n _.values(\n _.reduce(\n _.fromPairs(\n listOfCodes.map((code) => [\n code,\n _.toPairs(this.icd10).find(([k]) => {\n const parts = k.split(/-/)\n return code.substr(0, 3) >= parts[0] && code.substr(0, 3) <= parts[1]\n }),\n ])\n ),\n (acc: any, pairOfRangeAndIcdInfo, code) => {\n if (!pairOfRangeAndIcdInfo) {\n return acc\n }\n const shortKey = pairOfRangeAndIcdInfo[0].substr(0, 2)\n ;(\n acc[shortKey] ||\n (acc[shortKey] = {\n code: shortKey,\n descr: pairOfRangeAndIcdInfo[1],\n subCodes: [],\n })\n ).subCodes.push(code)\n return acc\n },\n {}\n )\n ),\n (c: any) => c.shortKey\n )\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n icpcChapters(listOfCodes: Array<string>) {\n return Promise.resolve(\n _.sortBy(\n _.values(\n _.reduce(\n _.fromPairs(listOfCodes.map((code) => [code, _.toPairs(this.icpc2).find(([k]) => k === code.substr(0, 1).toUpperCase())])),\n (acc: any, pairOfRangeAndIcdInfo, code) => {\n if (!pairOfRangeAndIcdInfo) {\n return acc\n }\n const shortKey = pairOfRangeAndIcdInfo[0]\n ;(\n acc[shortKey] ||\n (acc[shortKey] = {\n code: shortKey,\n descr: pairOfRangeAndIcdInfo[1],\n subCodes: [],\n })\n ).subCodes.push(code)\n return acc\n },\n {}\n )\n ),\n (c: any) => c.shortKey\n )\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n languageForType(type: string, lng: string) {\n const availableLanguages = this.codeLanguages[type]\n return availableLanguages && availableLanguages.indexOf(lng) >= 0 ? lng : 'fr'\n }\n\n // noinspection JSMethodCanBeStatic, JSUnusedGlobalSymbols\n normalize(c: Code | string) {\n return typeof c === 'string'\n ? {\n id: c,\n type: c.split(/\\|/)[0],\n code: c.split(/\\|/)[1],\n version: c.split(/\\|/)[2],\n }\n : (c as Code).type && (c as Code).code && !(c as Code).id\n ? {\n id: (c as Code).type + '|' + (c as Code).code + '|' + ((c as Code).version || '1'),\n type: (c as Code).type,\n code: (c as Code).code,\n version: (c as Code).version || '1',\n }\n : (c as Code).id && (!(c as Code).code || !(c as Code).type || !(c as Code).version)\n ? {\n id: (c as Code).id,\n type: (c as Code).id!.split(/\\|/)[0],\n code: (c as Code).id!.split(/\\|/)[1],\n version: (c as Code).id!.split(/\\|/)[2],\n }\n : {\n id: (c as Code).id!,\n type: (c as Code).type,\n code: (c as Code).code,\n version: (c as Code).version || '1',\n }\n }\n}\n"]}
@@ -736,3 +736,4 @@ class IccContactXApi extends icc_api_1.IccContactApi {
736
736
  }
737
737
  }
738
738
  exports.IccContactXApi = IccContactXApi;
739
+ //# sourceMappingURL=icc-contact-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-contact-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-contact-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccContactApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport i18n from './rsrc/contact.i18n'\nimport { utils } from './crypto/utils'\n\nimport * as moment from 'moment'\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport { Contact, ListOfIds, Service } from '../icc-api/model/models'\nimport { PaginatedListContact } from '../icc-api/model/PaginatedListContact'\nimport { a2b, b2a, hex2ua, string2ua, ua2string, ua2utf8, utf8_2ua } from './utils/binary-utils'\n\nexport class IccContactXApi extends IccContactApi {\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: models.User, patient: models.Patient, c: any, confidential = false): Promise<models.Contact> {\n const contact = new models.Contact(\n _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Contact',\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 groupId: this.crypto.randomUuid(),\n subContacts: [],\n services: [],\n openingDate: parseInt(moment().format('YYYYMMDDHHmmss')),\n },\n c || {}\n )\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, contact, confidential)\n }\n\n /**\n * 1. Extract(decrypt) the patient's secretForeignKeys from the\n * \"delegations\" object.\n * 2. Initialize & encrypt the Contact's delegations & cryptedForeignKeys.\n * 3. Initialize & encrypt the Contact's encryptionKeys.\n * 4. Return the contact with the extended delegations, cryptedForeignKeys\n * & encryptionKeys.\n */\n private initDelegationsAndEncryptionKeys(\n user: models.User,\n patient: models.Patient,\n contact: models.Contact,\n confidential = false\n ): Promise<models.Contact> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractPreferredSfk(patient, hcpId!, confidential)\n .then((key) => {\n if (!key) {\n console.error(`SFK cannot be found for HealthElement ${key}. The health element will not be reachable from the patient side`)\n }\n return Promise.all([this.crypto.initObjectDelegations(contact, patient, hcpId!, key), this.crypto.initEncryptionKeys(contact, hcpId!)])\n })\n .then(([dels, eks]) => {\n _.extend(contact, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(contact)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((contact) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, contact, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return contact\n })\n ))\n )\n ;(user.autoDelegations && user.autoDelegations.anonymousMedicalInformation ? user.autoDelegations.anonymousMedicalInformation : []).forEach(\n (delegateId) =>\n (promise = promise.then((contact) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, contact, hcpId!, delegateId, null, eks.secretId).catch((e) => {\n console.log(e)\n return contact\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, ctc: models.Contact) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(ctc, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(ctc, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations\n ? (user.autoDelegations.all || [])\n .concat(user.autoDelegations.medicalInformation || [])\n .concat(user.autoDelegations.anonymousMedicalInformation || [])\n : []\n ).forEach(\n (delegateId) =>\n (promise = promise.then((contact) =>\n this.crypto\n .appendEncryptionKeys(contact, hcpId!, delegateId, eks.secretId)\n .then((extraEks) => {\n return _.extend(contact, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n .catch((e) => {\n console.log(e.message)\n return contact\n })\n ))\n )\n return promise\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 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.extractSFKsHierarchyFromDelegations(patient, hcpartyId).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 }\n\n async findByPatientSFKs(hcpartyId: string, patients: Array<models.Patient>): Promise<Array<models.Contact>> {\n const perHcpId: { [key: string]: string[] } = {}\n for (const patient of patients) {\n ;(await this.crypto.extractSFKsHierarchyFromDelegations(patient, hcpartyId))\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 .forEach(({ hcpartyId, extractedKeys }) => {\n ;(perHcpId[hcpartyId] || (perHcpId[hcpartyId] = [])).push(...extractedKeys)\n })\n }\n\n return _.uniqBy(\n _.flatMap(\n await Promise.all(\n Object.keys(perHcpId).map((hcpId) =>\n this.findContactsByHCPartyPatientForeignKeys(\n hcpartyId,\n new models.ListOfIds({\n ids: perHcpId[hcpId],\n })\n )\n )\n )\n ),\n (x) => x.id\n )\n }\n\n filterBy(startKey?: string, startDocumentId?: string, limit?: number, body?: models.FilterChainContact): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listContactsByOpeningDate(startKey: number, endKey: number, hcpartyid: string, 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 listServices(body?: ListOfIds): Promise<Array<Service>> {\n throw new Error('Cannot call a method that returns services without providing a user for de/encryption')\n }\n\n findByHCPartyFormId(hcPartyId?: string, formId?: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByHCPartyFormIds(hcPartyId?: string, 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 getContact(contactId: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n getContacts(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 modifyContact(body?: Contact): never {\n throw new Error('Cannot call a method that modify contacts without providing a user for de/encryption')\n }\n\n modifyContacts(body?: Array<Contact>): never {\n throw new Error('Cannot call a method that modify contacts without providing a user for de/encryption')\n }\n\n createContact(body?: Contact): never {\n throw new Error('Cannot call a method that modify contacts without providing a user for de/encryption')\n }\n\n findByHCPartyPatientSecretFKeys(\n hcPartyId: string,\n secretFKeys: string,\n planOfActionIds?: string,\n skipClosedContacts?: boolean\n ): Promise<Array<models.Contact> | any> {\n return super\n .findByHCPartyPatientSecretFKeys(hcPartyId, secretFKeys, planOfActionIds, skipClosedContacts)\n .then((contacts) => this.decrypt(hcPartyId, contacts))\n }\n\n filterByWithUser(\n user: models.User,\n startDocumentId?: string,\n limit?: number,\n body?: models.FilterChainContact\n ): Promise<PaginatedListContact | any> {\n return super\n .filterContactsBy(startDocumentId, limit, body)\n .then((ctcs) =>\n this.decrypt(user.healthcarePartyId! || user.patientId!, ctcs.rows!).then((decryptedRows) => Object.assign(ctcs, { rows: decryptedRows }))\n )\n }\n\n listContactsByOpeningDateWithUser(\n user: models.User,\n startKey: number,\n endKey: number,\n hcpartyid: string,\n startDocumentId?: string,\n limit?: number\n ): Promise<PaginatedListContact | any> {\n return super\n .listContactsByOpeningDate(startKey, endKey, hcpartyid, startDocumentId, limit)\n .then((ctcs) =>\n this.decrypt(user.healthcarePartyId! || user.patientId!, ctcs.rows!).then((decryptedRows) => Object.assign(ctcs, { rows: decryptedRows }))\n )\n }\n\n listServicesWithUser(user: models.User, serviceIds: ListOfIds): Promise<Array<Service> | any> {\n return super\n .listServices(serviceIds)\n .then((services) => this.decryptServices(user.healthcarePartyId! || user.patientId!, services, undefined, undefined))\n }\n\n findByHCPartyFormIdWithUser(user: models.User, hcPartyId: string, formId: string): Promise<Array<models.Contact> | any> {\n return super.findByHCPartyFormId(hcPartyId, formId).then((ctcs) => this.decrypt((user.healthcarePartyId || user.patientId)!, ctcs))\n }\n\n findByHCPartyFormIdsWithUser(user: models.User, hcPartyId: string, body: models.ListOfIds): Promise<Array<models.Contact> | any> {\n return super.findByHCPartyFormIds(hcPartyId, body).then((ctcs) => this.decrypt((user.healthcarePartyId || user.patientId)!, ctcs))\n }\n\n getContactWithUser(user: models.User, contactId: string): Promise<models.Contact | any> {\n return super\n .getContact(contactId)\n .then((ctc) => this.decrypt((user.healthcarePartyId || user.patientId)!, [ctc]))\n .then((ctcs) => ctcs[0])\n }\n\n getContactsWithUser(user: models.User, body?: models.ListOfIds): Promise<Array<models.Contact> | any> {\n return super.getContacts(body).then((ctcs) => this.decrypt((user.healthcarePartyId || user.patientId)!, ctcs))\n }\n\n modifyContactWithUser(user: models.User, body?: models.Contact): Promise<models.Contact | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(body)])\n .then((ctcs) => super.modifyContact(ctcs[0]))\n .then((ctc) => this.decrypt((user.healthcarePartyId || user.patientId)!, [ctc]))\n .then((ctcs) => ctcs[0])\n : Promise.resolve(null)\n }\n\n modifyContactsWithUser(user: models.User, bodies?: Array<models.Contact>): Promise<models.Contact[] | any> {\n return bodies\n ? this.encrypt(\n user,\n bodies.map((c) => _.cloneDeep(c))\n )\n .then((ctcs) => super.modifyContacts(ctcs))\n .then((ctcs) => this.decrypt((user.healthcarePartyId || user.patientId)!, ctcs))\n : Promise.resolve(null)\n }\n\n createContactWithUser(user: models.User, body?: models.Contact): Promise<models.Contact | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(body)])\n .then((ctcs) => super.createContact(ctcs[0]))\n .then((ctc) => this.decrypt((user.healthcarePartyId || user.patientId)!, [ctc]))\n .then((ctcs) => ctcs[0])\n : Promise.resolve(null)\n }\n\n createContactsWithUser(user: models.User, bodies?: Array<models.Contact>): Promise<models.Contact[] | any> {\n return bodies\n ? this.encrypt(\n user,\n bodies.map((c) => _.cloneDeep(c))\n )\n .then((ctcs) => super.createContacts(ctcs))\n .then((ctcs) => this.decrypt((user.healthcarePartyId || user.patientId)!, ctcs))\n : Promise.resolve(null)\n }\n\n encryptServices(key: CryptoKey, rawKey: string, services: Service[]): PromiseLike<Service[]> {\n return Promise.all(\n services.map(async (svc) => {\n if (!svc.content) {\n return svc\n }\n\n if (\n Object.values(svc.content).every(\n (c) =>\n c.compoundValue &&\n !c.stringValue &&\n !c.documentId &&\n !c.measureValue &&\n !c.medicationValue &&\n (c.booleanValue === null || c.booleanValue === undefined) &&\n (c.numberValue === null || c.numberValue === undefined) &&\n !c.instantValue &&\n !c.fuzzyDateValue &&\n !c.binaryValue\n )\n ) {\n svc.content = _.fromPairs(\n await Promise.all(\n _.toPairs(svc.content).map(async (p) => {\n if (p[1].compoundValue?.length) {\n p[1].compoundValue = await this.encryptServices(key, rawKey, p[1].compoundValue!)\n }\n return p\n })\n )\n )\n } else {\n svc.encryptedSelf = b2a(ua2string(await this.crypto.AES.encrypt(key, utf8_2ua(JSON.stringify({ content: svc.content })), rawKey)))\n delete svc.content\n }\n return svc\n })\n )\n }\n\n encrypt(user: models.User, ctcs: Array<models.Contact>) {\n const hcpartyId = (user.healthcarePartyId || user.patientId)!\n const bypassEncryption = false //Used for debug\n\n return Promise.all(\n ctcs.map(async (ctc) => {\n const initialisedCtc = bypassEncryption //Prevent encryption for test ctc\n ? ctc\n : await (ctc.encryptionKeys && Object.keys(ctc.encryptionKeys || {}).length ? Promise.resolve(ctc) : this.initEncryptionKeys(user, ctc))\n\n const sfks: {\n extractedKeys: Array<string>\n hcpartyId: string\n } = await this.crypto.extractKeysFromDelegationsForHcpHierarchy(hcpartyId, initialisedCtc.id!, initialisedCtc.encryptionKeys!)\n const rawKey = sfks.extractedKeys[0].replace(/-/g, '')\n const key = await this.crypto.AES.importKey('raw', hex2ua(rawKey))\n\n initialisedCtc.services = await this.encryptServices(key, rawKey, ctc.services || [])\n initialisedCtc.encryptedSelf = b2a(ua2string(await this.crypto.AES.encrypt(key, utf8_2ua(JSON.stringify({ descr: ctc.descr })), rawKey)))\n delete initialisedCtc.descr\n\n return initialisedCtc\n })\n )\n }\n\n decrypt(hcpartyId: string, ctcs: Array<models.Contact>): Promise<Array<models.Contact>> {\n return Promise.all(\n ctcs.map(async (ctc) => {\n const { extractedKeys: sfks } = await this.crypto.extractKeysFromDelegationsForHcpHierarchy(\n hcpartyId,\n ctc.id!,\n _.size(ctc.encryptionKeys) ? ctc.encryptionKeys! : ctc.delegations!\n )\n if (!sfks || !sfks.length) {\n console.log('Cannot decrypt contact', ctc.id)\n return ctc\n }\n const rawKey = sfks[0].replace(/-/g, '')\n const key = await this.crypto.AES.importKey('raw', hex2ua(rawKey))\n\n ctc.services = await this.decryptServices(hcpartyId, ctc.services || [], key, rawKey)\n if (ctc.encryptedSelf) {\n try {\n const dec = await this.crypto.AES.decrypt(key, string2ua(a2b(ctc.encryptedSelf!)), rawKey)\n let jsonContent\n try {\n jsonContent = dec && ua2utf8(dec)\n jsonContent && _.assign(ctc, JSON.parse(jsonContent))\n } catch (e) {\n console.log('Cannot parse ctc', ctc.id, jsonContent || '<- Invalid encoding')\n }\n } catch {\n console.log('Cannot decrypt contact', ctc.id)\n }\n }\n return ctc\n })\n )\n }\n\n decryptServices(hcpartyId: string, svcs: Array<models.Service>, key?: CryptoKey, rawKey?: string): Promise<Array<models.Service>> {\n return Promise.all(\n svcs.map(async (svc) => {\n if (!key) {\n const { extractedKeys: sfks } = await this.crypto.extractKeysFromDelegationsForHcpHierarchy(\n hcpartyId,\n svc.id!,\n _.size(svc.encryptionKeys) ? svc.encryptionKeys! : svc.delegations!\n )\n key = await this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, '')))\n }\n\n if (svc.encryptedContent) {\n try {\n const dec = await this.crypto.AES.decrypt(key, string2ua(a2b(svc.encryptedContent!)))\n let jsonContent\n try {\n jsonContent = ua2utf8(utils.truncateTrailingNulls(new Uint8Array(dec)))\n Object.assign(svc, { content: JSON.parse(jsonContent) })\n } catch (e) {\n console.log('Cannot parse service', svc.id, jsonContent || '<- Invalid encoding')\n }\n } catch {\n console.log('Cannot decrypt service', svc.id)\n }\n } else if (svc.encryptedSelf) {\n try {\n const dec = await this.crypto.AES.decrypt(key, string2ua(a2b(svc.encryptedSelf!)))\n let jsonContent\n try {\n jsonContent = ua2utf8(utils.truncateTrailingNulls(new Uint8Array(dec)))\n Object.assign(svc, JSON.parse(jsonContent))\n } catch (e) {\n console.log('Cannot parse service', svc.id, jsonContent || '<- Invalid encoding')\n }\n } catch {\n console.log('Cannot decrypt service', svc.id)\n }\n } else {\n svc.content = _.fromPairs(\n await Promise.all(\n _.toPairs(svc.content).map(async (p) => {\n if (p[1].compoundValue) {\n p[1].compoundValue = await this.decryptServices(hcpartyId, p[1].compoundValue, key, rawKey)\n }\n return p\n })\n )\n )\n }\n return svc\n })\n )\n }\n\n contactOfService(ctcs: Array<models.Contact>, svcId: string): models.Contact | undefined {\n let latestContact: models.Contact | undefined = undefined\n let latestService: models.Service\n ctcs.forEach((c) => {\n const s: models.Service | undefined = c.services!.find((it) => svcId === it.id)\n if (s && (!latestService || moment(s.valueDate).isAfter(moment(latestService.valueDate)))) {\n latestContact = c\n latestService = s\n }\n })\n return latestContact\n }\n\n filteredServices(ctcs: Array<models.Contact>, filter: any): Array<models.Service> {\n const byIds: { [key: string]: models.Service } = {}\n ctcs.forEach((c) =>\n (c.services || [])\n .filter((s) => filter(s, c))\n .forEach((s) => {\n const ps = byIds[s.id!]\n if (!ps || !ps.modified || (s.modified && ps.modified < s.modified)) {\n byIds[s.id!] = s\n s.contactId = c.id\n }\n })\n )\n return _.values(byIds).filter((s: any) => !s.deleted && !s.endOfLife)\n }\n\n //Return a promise\n filterServices(ctcs: Array<models.Contact>, filter: any): Promise<Array<models.Service>> {\n return Promise.resolve(this.filteredServices(ctcs, filter))\n }\n\n services(ctc: models.Contact, label: string) {\n return ctc.services!.filter((s) => s.label === label)\n }\n\n preferredContent(svc: models.Service, lng: string) {\n return (\n svc && svc.content && (svc.content[lng] || svc.content['fr'] || (Object.keys(svc.content)[0] ? svc.content[Object.keys(svc.content)[0]] : null))\n )\n }\n\n contentValue(c: models.Content) {\n return (\n c.stringValue ||\n ((c.numberValue || c.numberValue === 0) && c.numberValue) ||\n (c.measureValue && (c.measureValue.value || c.measureValue.value === 0) ? c.measureValue : null) ||\n c.medicationValue ||\n c.booleanValue\n )\n }\n\n shortServiceDescription(svc: models.Service, lng: string) {\n const c = this.preferredContent(svc, lng)\n return !c ? '' : this.shortContentDescription(c, lng, svc.label)\n }\n\n shortContentDescription(c: models.Content, lng: string, label?: string) {\n return (\n c.stringValue ||\n ((c.numberValue || c.numberValue === 0) && c.numberValue) ||\n (c.measureValue &&\n '' +\n (c.measureValue.value || c.measureValue.value === 0 ? c.measureValue.value : '-') +\n (c.measureValue.unit ? ' ' + c.measureValue.unit : '')) ||\n (c.medicationValue ? this.medication().medicationToString(c.medicationValue, lng) : null) ||\n (c.booleanValue && label) ||\n 'OK'\n )\n }\n\n medicationValue(svc: models.Service, lng: string) {\n const c =\n svc && svc.content && (svc.content[lng] || svc.content['fr'] || (Object.keys(svc.content)[0] ? svc.content[Object.keys(svc.content)[0]] : null))\n return c && c.medicationValue\n }\n\n contentHasData(c: any): boolean {\n return c.stringValue || c.numberValue || c.measureValue || c.booleanValue || c.booleanValue === false || c.medicationValue || c.documentId\n }\n\n localize(e: any, lng: string) {\n if (!e) {\n return null\n }\n return e[lng] || e.fr || e.en || e.nl\n }\n\n /**\n * Modifies the subcontacts this svc belongs to while minimizing the number of references to the svcs inside the subcontacts\n * After the invocation, there is at least one subcontact with provided poaId and heId that contains the svc\n * The svc is not removed from a previous subcontact it would belong to except if the new conditions are compatible\n * Note that undefined and null do not have the same meaning for formId\n * If formId is null: the subcontact which refers svc must have a null formId\n * If formId is undefined, the subcontact can have any value for formId\n *\n * When a svc does not exist yet in the current contact but exists in a previous contact, all the scs it was belonging to are\n * copied in the current contact\n *\n * the svc returned is the one that's inside the ctc\n *\n * @param ctc\n * @param user\n * @param ctcs\n * @param svc\n * @param formId\n * @param poaId aMap {heId2: [poaId11, poaId12], heId2: [poaId21] }\n * @param heId an Array of heIds, equivalent to poaIds = {heId: [], ...}\n * @param init\n * @returns {*}\n */\n\n promoteServiceInContact(\n ctc: models.Contact,\n user: models.User,\n ctcs: Array<models.Contact>,\n svc: models.Service,\n formId: string,\n poaIds?: { [key: string]: string[] },\n heIds?: Array<string>,\n init?: any\n ) {\n if (!ctc) {\n return null\n }\n const existing = ctc.services!.find((s) => s.id === svc.id)\n const promoted = _.extend(_.extend(existing || {}, svc), {\n author: user.id,\n responsible: user.healthcarePartyId || user.patientId,\n modified: new Date().getTime(),\n })\n if (!existing) {\n ;(ctc.services || (ctc.services = [])).push(promoted)\n }\n const allSubcontactsInCurrentContactContainingService = (ctc.subContacts || []).filter((csc) =>\n (csc.services || []).some((s) => s.serviceId === svc.id)\n )\n\n //Rearrange poaIds and heIds as a hierarchy\n const hierarchyOfHeAndPoaIds: { [key: string]: Array<any> } = {}\n ;(heIds || []).forEach((id) => (hierarchyOfHeAndPoaIds[id || '_'] = []))\n Object.keys(poaIds || {}).forEach((k: string) => {\n const poas = hierarchyOfHeAndPoaIds[k]\n if (poas) {\n hierarchyOfHeAndPoaIds[k] = _.concat(poas, (poaIds || {})[k])\n } else {\n hierarchyOfHeAndPoaIds[k] = (poaIds || {})[k]\n }\n })\n\n const pastCtc =\n (svc.contactId && svc.contactId !== ctc.id && ctcs.find((c) => c.id === svc.contactId)) ||\n ctcs.reduce(\n (selected: { s: models.Service | null; c: models.Contact | null }, c: models.Contact) => {\n const candidate = (c.services || []).find((s) => s.id === svc.id)\n return ctc.id !== c.id && candidate && (selected.s === null || utils.before(selected.s.modified || 0, candidate.modified || 0))\n ? { s: candidate, c: c }\n : selected\n },\n { s: null, c: null }\n ).c\n //Make sure that all scs the svc was belonging to are copied inside the current contact\n pastCtc &&\n pastCtc\n .subContacts!.filter((psc) => psc.services!.some((s) => s.serviceId === svc.id))\n .forEach((psc) => {\n const sameInCurrent = allSubcontactsInCurrentContactContainingService.find(\n (csc) => csc.formId === psc.formId && csc.planOfActionId === psc.planOfActionId && csc.healthElementId === psc.healthElementId\n )\n if (sameInCurrent) {\n if (!sameInCurrent.services!.some((s) => s.serviceId === svc.id)) {\n sameInCurrent.services!.push({ serviceId: svc.id })\n }\n } else {\n const newSubContact = _.assign(_.assign({}, psc), {\n services: [{ serviceId: svc.id }],\n })\n ctc.subContacts!.push(newSubContact)\n allSubcontactsInCurrentContactContainingService.push(newSubContact)\n }\n })\n\n if (!Object.keys(hierarchyOfHeAndPoaIds).length) {\n hierarchyOfHeAndPoaIds._ = [] //Default is to have at least one option with heId equals to null (represented by _)\n }\n\n Object.keys(hierarchyOfHeAndPoaIds).forEach((heId: string | null) => {\n if (heId === '_') {\n heId = null\n }\n const subPoaIds = heId ? hierarchyOfHeAndPoaIds[heId] : []\n ;((subPoaIds || []).length ? subPoaIds : [null]).forEach((poaId) => {\n //Create or assign subcontacts for all pairs he/poa (can be null/null)\n let destinationSubcontact = ctc.subContacts!.find(\n (sc) =>\n (!formId || sc.formId === formId) &&\n ((!poaId && !sc.planOfActionId) || sc.planOfActionId === poaId) &&\n ((!heId && !sc.healthElementId) || sc.healthElementId === heId)\n )\n if (!destinationSubcontact) {\n ctc.subContacts!.push(\n (destinationSubcontact = new models.SubContact({\n formId: formId || undefined,\n planOfActionId: poaId,\n healthElementId: heId,\n services: [],\n }))\n )\n }\n\n const redundantSubcontact =\n allSubcontactsInCurrentContactContainingService.find((aSc) => destinationSubcontact === aSc) ||\n allSubcontactsInCurrentContactContainingService.find(\n (aSc) =>\n (!aSc.planOfActionId || aSc.planOfActionId === destinationSubcontact!.planOfActionId) &&\n (!aSc.healthElementId || aSc.healthElementId === destinationSubcontact!.healthElementId) &&\n (!aSc.formId || aSc.formId === destinationSubcontact!.formId)\n ) // Find a compatible sc: one that does not contain extra and ≠ information than the destination\n\n if (redundantSubcontact && redundantSubcontact !== destinationSubcontact) {\n redundantSubcontact.services!.splice(\n redundantSubcontact.services!.findIndex((link) => link.serviceId === svc.id),\n 1\n )\n }\n if (!destinationSubcontact.services!.some((s) => s.serviceId === svc.id)) {\n destinationSubcontact.services!.push({ serviceId: svc.id! })\n }\n })\n })\n\n return (init && init(promoted)) || promoted\n }\n\n isNumeric(svc: models.Service, lng: string) {\n const c = this.preferredContent(svc, lng)\n return c && (c.measureValue || c.numberValue || c.numberValue == 0)\n }\n\n service() {\n return {\n newInstance: (user: models.User, s: any) =>\n _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.embed.Service',\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 content: {},\n valueDate: parseInt(moment().format('YYYYMMDDHHmmss')),\n },\n s\n ),\n }\n }\n\n medication() {\n const regimenScores: any = {\n afterwakingup: 63000,\n beforebreakfast: 70000,\n duringbreakfast: 80000,\n afterbreakfast: 90000,\n morning: 100000,\n betweenbreakfastandlunch: 103000,\n beforelunch: 113000,\n midday: 120000,\n duringlunch: 123000,\n afterlunch: 130000,\n afternoon: 140000,\n betweenlunchanddinner: 160000,\n beforedinner: 180000,\n duringdinner: 190000,\n afterdinner: 200000,\n evening: 210000,\n betweendinnerandsleep: 213000,\n thehourofsleep: 220000,\n night: 230000,\n beforemeals: -30000,\n betweenmeals: -20000,\n aftermeals: -10000,\n }\n\n const myself = {\n regimenScores: function () {\n return regimenScores\n },\n medicationNameToString: function (m: any): string {\n return m && m.compoundPrescription\n ? m.compoundPrescription\n : m && m.substanceProduct\n ? myself.productToString(m && m.substanceProduct)\n : myself.productToString(m && m.medicinalProduct)\n },\n reimbursementReasonToString: (m: any, lang: string) => {\n return m && m.reimbursementReason && m.reimbursementReason.label && m.reimbursementReason.label.hasOwnProperty(lang)\n ? m.reimbursementReason.label[lang]\n : ''\n },\n medicationToString: (m: any, lang: string) => {\n let res = `${myself.medicationNameToString(m)}, ${myself.posologyToString(m, lang)}`\n const reason = myself.reimbursementReasonToString(m, lang)\n res = m.numberOfPackages\n ? `${m.numberOfPackages} ${m.numberOfPackages > 1 ? this.i18n[lang].packagesOf : this.i18n[lang].packageOf} ${res}`\n : res\n res = m.duration ? `${res} ${this.i18n[lang].during} ${myself.durationToString(m.duration, lang)}` : res\n res = reason ? `${res} (${reason})` : res\n return res\n },\n productToString: (m: any): string => {\n if (!m) {\n return ''\n }\n return m.intendedname\n },\n posologyToString: (m: any, lang: string) => {\n if (m) {\n if (m.instructionForPatient && m.instructionForPatient.length) {\n return m.instructionForPatient\n }\n if (!m.regimen || !m.regimen.length) {\n return ''\n }\n\n const unit =\n m.regimen[0].administratedQuantity && m.regimen[0].administratedQuantity.administrationUnit\n ? m.regimen[0].administratedQuantity.administrationUnit.code\n : m.regimen[0].administratedQuantity && m.regimen[0].administratedQuantity.unit\n let quantity = m.regimen[0].administratedQuantity && m.regimen[0].administratedQuantity.quantity\n\n m.regimen.slice(1).find((ri: any) => {\n const oUnit =\n ri.administratedQuantity && ri.administratedQuantity.administrationUnit\n ? ri.administratedQuantity.administrationUnit.code\n : ri.administratedQuantity && ri.administratedQuantity.unit\n const oQuantity = ri.administratedQuantity && ri.administratedQuantity.quantity\n\n if (oQuantity !== quantity) {\n quantity = -1\n }\n return oUnit !== unit && oQuantity !== quantity\n })\n\n const cplxRegimen = !unit || quantity < 0\n const quantityUnit = cplxRegimen ? `1 ${this.i18n[lang].take_s_}` : `${quantity} ${unit || this.i18n[lang].take_s_}`\n\n const dayPeriod = m.regimen.find((r: any) => r.weekday !== null && r.weekday !== undefined)\n ? this.i18n[lang].weekly\n : m.regimen.find((r: any) => r.date)\n ? this.i18n[lang].monthly\n : this.i18n[lang].daily\n\n return `${quantityUnit}, ${m.regimen.length} x ${dayPeriod}, ${_.sortBy(\n m.regimen,\n (r) =>\n (r.date ? r.date * 1000000 : 29990000000000) +\n (r.dayNumber || 0) * 1000000 +\n ((r.weekday && r.weekday.weekNumber) || 0) * 7 * 1000000 +\n (r.timeOfDay ? r.timeOfDay : r.dayPeriod && r.dayPeriod.code ? (regimenScores[r.dayPeriod.code] as number) : 0)\n )\n .map((r) => (cplxRegimen ? myself.regimenToExtString(r, lang) : myself.regimenToString(r, lang)))\n .join(', ')}`\n }\n },\n frequencyToString: (m: any, lang: string) => {\n if (m.instructionForPatient && m.instructionForPatient.length) {\n return m.instructionForPatient\n }\n if (!m.regimen || !m.regimen.length) {\n return ''\n }\n\n const dayPeriod = m.regimen.find((r: any) => r.weekday !== null && r.weekday !== undefined)\n ? this.i18n[lang].weekly\n : m.regimen.find((r: any) => r.date)\n ? this.i18n[lang].monthly\n : this.i18n[lang].daily\n\n return `${m.regimen.length} x ${dayPeriod}`\n },\n durationToString: (d: models.Duration, lang: string) => {\n return d.value ? `${d.value} ${this.localize(d.unit!.label, lang)}` : ''\n },\n regimenToExtString: (r: models.RegimenItem, lang: string) => {\n const desc = myself.regimenToString(r, lang)\n return (\n (r.administratedQuantity && r.administratedQuantity.quantity && desc\n ? `${desc} (${r.administratedQuantity.quantity} ${\n (r.administratedQuantity.administrationUnit ? r.administratedQuantity.administrationUnit.code : r.administratedQuantity.unit) ||\n this.i18n[lang].take_s_\n })`\n : desc) || ''\n )\n },\n regimenToString: (r: models.RegimenItem, lang: string) => {\n let res = r.date\n ? `${this.i18n[lang].the} ${moment(r.date).format('DD/MM/YYYY')}`\n : r.dayNumber\n ? `${this.i18n[lang].onDay} ${r.dayNumber}`\n : r.weekday && r.weekday.weekday\n ? `${this.i18n[lang].on} ${r.weekday.weekday}`\n : null\n if (r.dayPeriod && r.dayPeriod.code && r.dayPeriod.code.length) {\n res = res\n ? `${res} ${this.i18n[lang][r.dayPeriod.code] || this.localize(r.dayPeriod.label, lang) || r.dayPeriod.code}`\n : this.i18n[lang][r.dayPeriod.code] || this.localize(r.dayPeriod.label, lang) || r.dayPeriod.code\n }\n if (r.timeOfDay) {\n const timeOfDay =\n r.timeOfDay === 120000\n ? this.i18n[lang].noon\n : `${Math.floor(r.timeOfDay / 10000)}:${('' + (Math.floor(r.timeOfDay / 100) % 100)).replace(/^(.)$/, '0$1')}`\n res = res ? res + ' ' + this.i18n[lang].at + ' ' + timeOfDay : timeOfDay\n }\n return res\n },\n localize: (s: any, lang: string) => {\n if (!s) {\n return s\n }\n return (\n this.i18n[lang][s] ||\n (this.i18n[lang][s.toLowerCase()] &&\n this.i18n[lang][s.toLowerCase()]\n .split('')\n .map((c: string, idx: number) => (idx >= s.length || s[idx].toLocaleLowerCase() === s[idx] ? c : c.toLocaleUpperCase()))\n .join('')) ||\n s\n ) //Applies the (lower/upper)case to the translated lowercase version of the input string (s)\n },\n }\n return myself\n }\n}\n"]}