@icure/api 4.0.93 → 4.0.94

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 (789) 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.js +1 -0
  6. package/icc-api/api/IccAnonymousAccessApi.js.map +1 -0
  7. package/icc-api/api/IccApplicationsettingsApi.js +1 -0
  8. package/icc-api/api/IccApplicationsettingsApi.js.map +1 -0
  9. package/icc-api/api/IccArticleApi.js +1 -0
  10. package/icc-api/api/IccArticleApi.js.map +1 -0
  11. package/icc-api/api/IccAuthApi.js +1 -0
  12. package/icc-api/api/IccAuthApi.js.map +1 -0
  13. package/icc-api/api/IccBeefactApi.js +1 -0
  14. package/icc-api/api/IccBeefactApi.js.map +1 -0
  15. package/icc-api/api/IccBekmehrApi.js +1 -0
  16. package/icc-api/api/IccBekmehrApi.js.map +1 -0
  17. package/icc-api/api/IccBemikronoApi.js +1 -0
  18. package/icc-api/api/IccBemikronoApi.js.map +1 -0
  19. package/icc-api/api/IccBeresultexportApi.js +1 -0
  20. package/icc-api/api/IccBeresultexportApi.js.map +1 -0
  21. package/icc-api/api/IccBeresultimportApi.js +1 -0
  22. package/icc-api/api/IccBeresultimportApi.js.map +1 -0
  23. package/icc-api/api/IccBesamv2Api.js +1 -0
  24. package/icc-api/api/IccBesamv2Api.js.map +1 -0
  25. package/icc-api/api/IccCalendarItemApi.js +1 -0
  26. package/icc-api/api/IccCalendarItemApi.js.map +1 -0
  27. package/icc-api/api/IccCalendarItemTypeApi.js +1 -0
  28. package/icc-api/api/IccCalendarItemTypeApi.js.map +1 -0
  29. package/icc-api/api/IccClassificationApi.js +1 -0
  30. package/icc-api/api/IccClassificationApi.js.map +1 -0
  31. package/icc-api/api/IccClassificationTemplateApi.js +1 -0
  32. package/icc-api/api/IccClassificationTemplateApi.js.map +1 -0
  33. package/icc-api/api/IccCodeApi.js +1 -0
  34. package/icc-api/api/IccCodeApi.js.map +1 -0
  35. package/icc-api/api/IccContactApi.js +1 -0
  36. package/icc-api/api/IccContactApi.js.map +1 -0
  37. package/icc-api/api/IccDeviceApi.js +1 -0
  38. package/icc-api/api/IccDeviceApi.js.map +1 -0
  39. package/icc-api/api/IccDoctemplateApi.js +1 -0
  40. package/icc-api/api/IccDoctemplateApi.js.map +1 -0
  41. package/icc-api/api/IccDocumentApi.js +1 -0
  42. package/icc-api/api/IccDocumentApi.js.map +1 -0
  43. package/icc-api/api/IccDocumentTemplateApi.js +1 -0
  44. package/icc-api/api/IccDocumentTemplateApi.js.map +1 -0
  45. package/icc-api/api/IccEntityrefApi.js +1 -0
  46. package/icc-api/api/IccEntityrefApi.js.map +1 -0
  47. package/icc-api/api/IccEntitytemplateApi.js +1 -0
  48. package/icc-api/api/IccEntitytemplateApi.js.map +1 -0
  49. package/icc-api/api/IccFormApi.js +1 -0
  50. package/icc-api/api/IccFormApi.js.map +1 -0
  51. package/icc-api/api/IccFrontendmigrationApi.js +1 -0
  52. package/icc-api/api/IccFrontendmigrationApi.js.map +1 -0
  53. package/icc-api/api/IccGroupApi.js +1 -0
  54. package/icc-api/api/IccGroupApi.js.map +1 -0
  55. package/icc-api/api/IccHcpartyApi.js +1 -0
  56. package/icc-api/api/IccHcpartyApi.js.map +1 -0
  57. package/icc-api/api/IccHealthElementApi.js +1 -0
  58. package/icc-api/api/IccHealthElementApi.js.map +1 -0
  59. package/icc-api/api/IccHealthcarePartyApi.js +1 -0
  60. package/icc-api/api/IccHealthcarePartyApi.js.map +1 -0
  61. package/icc-api/api/IccHelementApi.js +1 -0
  62. package/icc-api/api/IccHelementApi.js.map +1 -0
  63. package/icc-api/api/IccIcureApi.js +1 -0
  64. package/icc-api/api/IccIcureApi.js.map +1 -0
  65. package/icc-api/api/IccInsuranceApi.js +1 -0
  66. package/icc-api/api/IccInsuranceApi.js.map +1 -0
  67. package/icc-api/api/IccInvoiceApi.js +1 -0
  68. package/icc-api/api/IccInvoiceApi.js.map +1 -0
  69. package/icc-api/api/IccKeywordApi.js +1 -0
  70. package/icc-api/api/IccKeywordApi.js.map +1 -0
  71. package/icc-api/api/IccMedexApi.js +1 -0
  72. package/icc-api/api/IccMedexApi.js.map +1 -0
  73. package/icc-api/api/IccMedicallocationApi.js +1 -0
  74. package/icc-api/api/IccMedicallocationApi.js.map +1 -0
  75. package/icc-api/api/IccMessageApi.js +1 -0
  76. package/icc-api/api/IccMessageApi.js.map +1 -0
  77. package/icc-api/api/IccPatientApi.js +1 -0
  78. package/icc-api/api/IccPatientApi.js.map +1 -0
  79. package/icc-api/api/IccPermissionApi.js +1 -0
  80. package/icc-api/api/IccPermissionApi.js.map +1 -0
  81. package/icc-api/api/IccPlaceApi.js +1 -0
  82. package/icc-api/api/IccPlaceApi.js.map +1 -0
  83. package/icc-api/api/IccPubsubApi.js +1 -0
  84. package/icc-api/api/IccPubsubApi.js.map +1 -0
  85. package/icc-api/api/IccReceiptApi.js +1 -0
  86. package/icc-api/api/IccReceiptApi.js.map +1 -0
  87. package/icc-api/api/IccReplicationApi.js +1 -0
  88. package/icc-api/api/IccReplicationApi.js.map +1 -0
  89. package/icc-api/api/IccTarificationApi.js +1 -0
  90. package/icc-api/api/IccTarificationApi.js.map +1 -0
  91. package/icc-api/api/IccTimeTableApi.js +1 -0
  92. package/icc-api/api/IccTimeTableApi.js.map +1 -0
  93. package/icc-api/api/IccTmpApi.js +1 -0
  94. package/icc-api/api/IccTmpApi.js.map +1 -0
  95. package/icc-api/api/IccUserApi.js +1 -0
  96. package/icc-api/api/IccUserApi.js.map +1 -0
  97. package/icc-api/api/XHR.js +1 -0
  98. package/icc-api/api/XHR.js.map +1 -0
  99. package/icc-api/iccApi.js +1 -0
  100. package/icc-api/iccApi.js.map +1 -0
  101. package/icc-api/index.js +1 -0
  102. package/icc-api/index.js.map +1 -0
  103. package/icc-api/model/AbstractFilterCode.js +1 -0
  104. package/icc-api/model/AbstractFilterCode.js.map +1 -0
  105. package/icc-api/model/AbstractFilterContact.js +1 -0
  106. package/icc-api/model/AbstractFilterContact.js.map +1 -0
  107. package/icc-api/model/AbstractFilterDevice.js +1 -0
  108. package/icc-api/model/AbstractFilterDevice.js.map +1 -0
  109. package/icc-api/model/AbstractFilterHealthElement.js +1 -0
  110. package/icc-api/model/AbstractFilterHealthElement.js.map +1 -0
  111. package/icc-api/model/AbstractFilterHealthcareParty.js +1 -0
  112. package/icc-api/model/AbstractFilterHealthcareParty.js.map +1 -0
  113. package/icc-api/model/AbstractFilterInvoice.js +1 -0
  114. package/icc-api/model/AbstractFilterInvoice.js.map +1 -0
  115. package/icc-api/model/AbstractFilterPatient.js +1 -0
  116. package/icc-api/model/AbstractFilterPatient.js.map +1 -0
  117. package/icc-api/model/AbstractFilterService.js +1 -0
  118. package/icc-api/model/AbstractFilterService.js.map +1 -0
  119. package/icc-api/model/AbstractFilterUser.js +1 -0
  120. package/icc-api/model/AbstractFilterUser.js.map +1 -0
  121. package/icc-api/model/AccessLog.js +1 -0
  122. package/icc-api/model/AccessLog.js.map +1 -0
  123. package/icc-api/model/Address.js +1 -0
  124. package/icc-api/model/Address.js.map +1 -0
  125. package/icc-api/model/AdministrationQuantity.js +1 -0
  126. package/icc-api/model/AdministrationQuantity.js.map +1 -0
  127. package/icc-api/model/Agenda.js +1 -0
  128. package/icc-api/model/Agenda.js.map +1 -0
  129. package/icc-api/model/AgreementAppendix.js +1 -0
  130. package/icc-api/model/AgreementAppendix.js.map +1 -0
  131. package/icc-api/model/Amp.js +1 -0
  132. package/icc-api/model/Amp.js.map +1 -0
  133. package/icc-api/model/AmpComponent.js +1 -0
  134. package/icc-api/model/AmpComponent.js.map +1 -0
  135. package/icc-api/model/Ampp.js +1 -0
  136. package/icc-api/model/Ampp.js.map +1 -0
  137. package/icc-api/model/AmppComponent.js +1 -0
  138. package/icc-api/model/AmppComponent.js.map +1 -0
  139. package/icc-api/model/Annotation.js +1 -0
  140. package/icc-api/model/Annotation.js.map +1 -0
  141. package/icc-api/model/ApplicationSettings.js +1 -0
  142. package/icc-api/model/ApplicationSettings.js.map +1 -0
  143. package/icc-api/model/Appointment.js +1 -0
  144. package/icc-api/model/Appointment.js.map +1 -0
  145. package/icc-api/model/AppointmentImport.js +1 -0
  146. package/icc-api/model/AppointmentImport.js.map +1 -0
  147. package/icc-api/model/Article.js +1 -0
  148. package/icc-api/model/Article.js.map +1 -0
  149. package/icc-api/model/Atc.js +1 -0
  150. package/icc-api/model/Atc.js.map +1 -0
  151. package/icc-api/model/Attachment.js +1 -0
  152. package/icc-api/model/Attachment.js.map +1 -0
  153. package/icc-api/model/Authentication.js +1 -0
  154. package/icc-api/model/Authentication.js.map +1 -0
  155. package/icc-api/model/AuthenticationResponse.js +1 -0
  156. package/icc-api/model/AuthenticationResponse.js.map +1 -0
  157. package/icc-api/model/AuthenticationToken.js +1 -0
  158. package/icc-api/model/AuthenticationToken.js.map +1 -0
  159. package/icc-api/model/Basic.js +1 -0
  160. package/icc-api/model/Basic.js.map +1 -0
  161. package/icc-api/model/Body.js +1 -0
  162. package/icc-api/model/Body.js.map +1 -0
  163. package/icc-api/model/Body1.js +1 -0
  164. package/icc-api/model/Body1.js.map +1 -0
  165. package/icc-api/model/Body2.js +1 -0
  166. package/icc-api/model/Body2.js.map +1 -0
  167. package/icc-api/model/Body3.js +1 -0
  168. package/icc-api/model/Body3.js.map +1 -0
  169. package/icc-api/model/ByteArray.js +1 -0
  170. package/icc-api/model/ByteArray.js.map +1 -0
  171. package/icc-api/model/CalendarItem.js +1 -0
  172. package/icc-api/model/CalendarItem.js.map +1 -0
  173. package/icc-api/model/CalendarItemTag.js +1 -0
  174. package/icc-api/model/CalendarItemTag.js.map +1 -0
  175. package/icc-api/model/CalendarItemType.js +1 -0
  176. package/icc-api/model/CalendarItemType.js.map +1 -0
  177. package/icc-api/model/CareTeamMember.js +1 -0
  178. package/icc-api/model/CareTeamMember.js.map +1 -0
  179. package/icc-api/model/CareTeamMembership.js +1 -0
  180. package/icc-api/model/CareTeamMembership.js.map +1 -0
  181. package/icc-api/model/CheckSMFPatientResult.js +1 -0
  182. package/icc-api/model/CheckSMFPatientResult.js.map +1 -0
  183. package/icc-api/model/Classification.js +1 -0
  184. package/icc-api/model/Classification.js.map +1 -0
  185. package/icc-api/model/ClassificationTemplate.js +1 -0
  186. package/icc-api/model/ClassificationTemplate.js.map +1 -0
  187. package/icc-api/model/Code.js +1 -0
  188. package/icc-api/model/Code.js.map +1 -0
  189. package/icc-api/model/CodeStub.js +1 -0
  190. package/icc-api/model/CodeStub.js.map +1 -0
  191. package/icc-api/model/CodeType.js +1 -0
  192. package/icc-api/model/CodeType.js.map +1 -0
  193. package/icc-api/model/CommentedClassification.js +1 -0
  194. package/icc-api/model/CommentedClassification.js.map +1 -0
  195. package/icc-api/model/Commercialization.js +1 -0
  196. package/icc-api/model/Commercialization.js.map +1 -0
  197. package/icc-api/model/Company.js +1 -0
  198. package/icc-api/model/Company.js.map +1 -0
  199. package/icc-api/model/Contact.js +1 -0
  200. package/icc-api/model/Contact.js.map +1 -0
  201. package/icc-api/model/Content.js +1 -0
  202. package/icc-api/model/Content.js.map +1 -0
  203. package/icc-api/model/Copayment.js +1 -0
  204. package/icc-api/model/Copayment.js.map +1 -0
  205. package/icc-api/model/Data.js +1 -0
  206. package/icc-api/model/Data.js.map +1 -0
  207. package/icc-api/model/DatabaseInitialisation.js +1 -0
  208. package/icc-api/model/DatabaseInitialisation.js.map +1 -0
  209. package/icc-api/model/DatabaseSynchronization.js +1 -0
  210. package/icc-api/model/DatabaseSynchronization.js.map +1 -0
  211. package/icc-api/model/Delegation.js +1 -0
  212. package/icc-api/model/Delegation.js.map +1 -0
  213. package/icc-api/model/Device.js +1 -0
  214. package/icc-api/model/Device.js.map +1 -0
  215. package/icc-api/model/DeviceType.js +1 -0
  216. package/icc-api/model/DeviceType.js.map +1 -0
  217. package/icc-api/model/DiaryNoteExportInfo.js +1 -0
  218. package/icc-api/model/DiaryNoteExportInfo.js.map +1 -0
  219. package/icc-api/model/Dmpp.js +1 -0
  220. package/icc-api/model/Dmpp.js.map +1 -0
  221. package/icc-api/model/DocIdentifier.js +1 -0
  222. package/icc-api/model/DocIdentifier.js.map +1 -0
  223. package/icc-api/model/Document.js +1 -0
  224. package/icc-api/model/Document.js.map +1 -0
  225. package/icc-api/model/DocumentGroup.js +1 -0
  226. package/icc-api/model/DocumentGroup.js.map +1 -0
  227. package/icc-api/model/DocumentTemplate.js +1 -0
  228. package/icc-api/model/DocumentTemplate.js.map +1 -0
  229. package/icc-api/model/Duration.js +1 -0
  230. package/icc-api/model/Duration.js.map +1 -0
  231. package/icc-api/model/EIDItem.js +1 -0
  232. package/icc-api/model/EIDItem.js.map +1 -0
  233. package/icc-api/model/Editor.js +1 -0
  234. package/icc-api/model/Editor.js.map +1 -0
  235. package/icc-api/model/EfactInvoice.js +1 -0
  236. package/icc-api/model/EfactInvoice.js.map +1 -0
  237. package/icc-api/model/EmailOrSmsMessage.js +1 -0
  238. package/icc-api/model/EmailOrSmsMessage.js.map +1 -0
  239. package/icc-api/model/EmailTemplate.js +1 -0
  240. package/icc-api/model/EmailTemplate.js.map +1 -0
  241. package/icc-api/model/Employer.js +1 -0
  242. package/icc-api/model/Employer.js.map +1 -0
  243. package/icc-api/model/EmploymentInfo.js +1 -0
  244. package/icc-api/model/EmploymentInfo.js.map +1 -0
  245. package/icc-api/model/EntityReference.js +1 -0
  246. package/icc-api/model/EntityReference.js.map +1 -0
  247. package/icc-api/model/EntityTemplate.js +1 -0
  248. package/icc-api/model/EntityTemplate.js.map +1 -0
  249. package/icc-api/model/Episode.js +1 -0
  250. package/icc-api/model/Episode.js.map +1 -0
  251. package/icc-api/model/FilterChainCode.js +1 -0
  252. package/icc-api/model/FilterChainCode.js.map +1 -0
  253. package/icc-api/model/FilterChainContact.js +1 -0
  254. package/icc-api/model/FilterChainContact.js.map +1 -0
  255. package/icc-api/model/FilterChainDevice.js +1 -0
  256. package/icc-api/model/FilterChainDevice.js.map +1 -0
  257. package/icc-api/model/FilterChainHealthElement.js +1 -0
  258. package/icc-api/model/FilterChainHealthElement.js.map +1 -0
  259. package/icc-api/model/FilterChainHealthcareParty.js +1 -0
  260. package/icc-api/model/FilterChainHealthcareParty.js.map +1 -0
  261. package/icc-api/model/FilterChainInvoice.js +1 -0
  262. package/icc-api/model/FilterChainInvoice.js.map +1 -0
  263. package/icc-api/model/FilterChainPatient.js +1 -0
  264. package/icc-api/model/FilterChainPatient.js.map +1 -0
  265. package/icc-api/model/FilterChainService.js +1 -0
  266. package/icc-api/model/FilterChainService.js.map +1 -0
  267. package/icc-api/model/FilterChainUser.js +1 -0
  268. package/icc-api/model/FilterChainUser.js.map +1 -0
  269. package/icc-api/model/FinancialInstitutionInformation.js +1 -0
  270. package/icc-api/model/FinancialInstitutionInformation.js.map +1 -0
  271. package/icc-api/model/FlatRateTarification.js +1 -0
  272. package/icc-api/model/FlatRateTarification.js.map +1 -0
  273. package/icc-api/model/FlowItem.js +1 -0
  274. package/icc-api/model/FlowItem.js.map +1 -0
  275. package/icc-api/model/Form.js +1 -0
  276. package/icc-api/model/Form.js.map +1 -0
  277. package/icc-api/model/FormColumn.js +1 -0
  278. package/icc-api/model/FormColumn.js.map +1 -0
  279. package/icc-api/model/FormDataOption.js +1 -0
  280. package/icc-api/model/FormDataOption.js.map +1 -0
  281. package/icc-api/model/FormLayout.js +1 -0
  282. package/icc-api/model/FormLayout.js.map +1 -0
  283. package/icc-api/model/FormLayoutData.js +1 -0
  284. package/icc-api/model/FormLayoutData.js.map +1 -0
  285. package/icc-api/model/FormPlanning.js +1 -0
  286. package/icc-api/model/FormPlanning.js.map +1 -0
  287. package/icc-api/model/FormSection.js +1 -0
  288. package/icc-api/model/FormSection.js.map +1 -0
  289. package/icc-api/model/FormTemplate.js +1 -0
  290. package/icc-api/model/FormTemplate.js.map +1 -0
  291. package/icc-api/model/FormTemplateLayout.js +1 -0
  292. package/icc-api/model/FormTemplateLayout.js.map +1 -0
  293. package/icc-api/model/Formula.js +1 -0
  294. package/icc-api/model/Formula.js.map +1 -0
  295. package/icc-api/model/FrontEndMigration.js +1 -0
  296. package/icc-api/model/FrontEndMigration.js.map +1 -0
  297. package/icc-api/model/Group.js +1 -0
  298. package/icc-api/model/Group.js.map +1 -0
  299. package/icc-api/model/GuiCode.js +1 -0
  300. package/icc-api/model/GuiCode.js.map +1 -0
  301. package/icc-api/model/GuiCodeType.js +1 -0
  302. package/icc-api/model/GuiCodeType.js.map +1 -0
  303. package/icc-api/model/HealthElement.js +1 -0
  304. package/icc-api/model/HealthElement.js.map +1 -0
  305. package/icc-api/model/HealthcareParty.js +1 -0
  306. package/icc-api/model/HealthcareParty.js.map +1 -0
  307. package/icc-api/model/HealthcarePartyHistoryStatus.js +1 -0
  308. package/icc-api/model/HealthcarePartyHistoryStatus.js.map +1 -0
  309. package/icc-api/model/IcureStub.js +1 -0
  310. package/icc-api/model/IcureStub.js.map +1 -0
  311. package/icc-api/model/IdWithRev.js +1 -0
  312. package/icc-api/model/IdWithRev.js.map +1 -0
  313. package/icc-api/model/Identifier.js +1 -0
  314. package/icc-api/model/Identifier.js.map +1 -0
  315. package/icc-api/model/IdentityDocumentReader.js +1 -0
  316. package/icc-api/model/IdentityDocumentReader.js.map +1 -0
  317. package/icc-api/model/ImportMapping.js +1 -0
  318. package/icc-api/model/ImportMapping.js.map +1 -0
  319. package/icc-api/model/ImportResult.js +1 -0
  320. package/icc-api/model/ImportResult.js.map +1 -0
  321. package/icc-api/model/IndexedIdentifier.js +1 -0
  322. package/icc-api/model/IndexedIdentifier.js.map +1 -0
  323. package/icc-api/model/IndexingInfo.js +1 -0
  324. package/icc-api/model/IndexingInfo.js.map +1 -0
  325. package/icc-api/model/Ingredient.js +1 -0
  326. package/icc-api/model/Ingredient.js.map +1 -0
  327. package/icc-api/model/Insurability.js +1 -0
  328. package/icc-api/model/Insurability.js.map +1 -0
  329. package/icc-api/model/Insurance.js +1 -0
  330. package/icc-api/model/Insurance.js.map +1 -0
  331. package/icc-api/model/Invoice.js +1 -0
  332. package/icc-api/model/Invoice.js.map +1 -0
  333. package/icc-api/model/InvoiceItem.js +1 -0
  334. package/icc-api/model/InvoiceItem.js.map +1 -0
  335. package/icc-api/model/InvoiceSender.js +1 -0
  336. package/icc-api/model/InvoiceSender.js.map +1 -0
  337. package/icc-api/model/InvoicesBatch.js +1 -0
  338. package/icc-api/model/InvoicesBatch.js.map +1 -0
  339. package/icc-api/model/InvoicingCode.js +1 -0
  340. package/icc-api/model/InvoicingCode.js.map +1 -0
  341. package/icc-api/model/Keyword.js +1 -0
  342. package/icc-api/model/Keyword.js.map +1 -0
  343. package/icc-api/model/KeywordSubword.js +1 -0
  344. package/icc-api/model/KeywordSubword.js.map +1 -0
  345. package/icc-api/model/LabelledOccurence.js +1 -0
  346. package/icc-api/model/LabelledOccurence.js.map +1 -0
  347. package/icc-api/model/LetterValue.js +1 -0
  348. package/icc-api/model/LetterValue.js.map +1 -0
  349. package/icc-api/model/ListOfIds.js +1 -0
  350. package/icc-api/model/ListOfIds.js.map +1 -0
  351. package/icc-api/model/ListOfProperties.js +1 -0
  352. package/icc-api/model/ListOfProperties.js.map +1 -0
  353. package/icc-api/model/LoginCredentials.js +1 -0
  354. package/icc-api/model/LoginCredentials.js.map +1 -0
  355. package/icc-api/model/MapOfIds.js +1 -0
  356. package/icc-api/model/MapOfIds.js.map +1 -0
  357. package/icc-api/model/Measure.js +1 -0
  358. package/icc-api/model/Measure.js.map +1 -0
  359. package/icc-api/model/MedexInfo.js +1 -0
  360. package/icc-api/model/MedexInfo.js.map +1 -0
  361. package/icc-api/model/MedicalHouseContract.js +1 -0
  362. package/icc-api/model/MedicalHouseContract.js.map +1 -0
  363. package/icc-api/model/MedicalLocation.js +1 -0
  364. package/icc-api/model/MedicalLocation.js.map +1 -0
  365. package/icc-api/model/Medication.js +1 -0
  366. package/icc-api/model/Medication.js.map +1 -0
  367. package/icc-api/model/MedicationSchemeExportInfo.js +1 -0
  368. package/icc-api/model/MedicationSchemeExportInfo.js.map +1 -0
  369. package/icc-api/model/Medicinalproduct.js +1 -0
  370. package/icc-api/model/Medicinalproduct.js.map +1 -0
  371. package/icc-api/model/Message.js +1 -0
  372. package/icc-api/model/Message.js.map +1 -0
  373. package/icc-api/model/MessageReadStatus.js +1 -0
  374. package/icc-api/model/MessageReadStatus.js.map +1 -0
  375. package/icc-api/model/MessageWithBatch.js +1 -0
  376. package/icc-api/model/MessageWithBatch.js.map +1 -0
  377. package/icc-api/model/MessagesReadStatusUpdate.js +1 -0
  378. package/icc-api/model/MessagesReadStatusUpdate.js.map +1 -0
  379. package/icc-api/model/MikronoAppointmentTypeRest.js +1 -0
  380. package/icc-api/model/MikronoAppointmentTypeRest.js.map +1 -0
  381. package/icc-api/model/MikronoCredentials.js +1 -0
  382. package/icc-api/model/MikronoCredentials.js.map +1 -0
  383. package/icc-api/model/MimeAttachment.js +1 -0
  384. package/icc-api/model/MimeAttachment.js.map +1 -0
  385. package/icc-api/model/ModelHelper.js +1 -0
  386. package/icc-api/model/ModelHelper.js.map +1 -0
  387. package/icc-api/model/Nmp.js +1 -0
  388. package/icc-api/model/Nmp.js.map +1 -0
  389. package/icc-api/model/NoGenericPrescriptionReason.js +1 -0
  390. package/icc-api/model/NoGenericPrescriptionReason.js.map +1 -0
  391. package/icc-api/model/NoSwitchReason.js +1 -0
  392. package/icc-api/model/NoSwitchReason.js.map +1 -0
  393. package/icc-api/model/NumeratorRange.js +1 -0
  394. package/icc-api/model/NumeratorRange.js.map +1 -0
  395. package/icc-api/model/PackagingType.js +1 -0
  396. package/icc-api/model/PackagingType.js.map +1 -0
  397. package/icc-api/model/PaginatedDocumentKeyIdPairObject.js +1 -0
  398. package/icc-api/model/PaginatedDocumentKeyIdPairObject.js.map +1 -0
  399. package/icc-api/model/PaginatedListAccessLog.js +1 -0
  400. package/icc-api/model/PaginatedListAccessLog.js.map +1 -0
  401. package/icc-api/model/PaginatedListAmp.js +1 -0
  402. package/icc-api/model/PaginatedListAmp.js.map +1 -0
  403. package/icc-api/model/PaginatedListClassification.js +1 -0
  404. package/icc-api/model/PaginatedListClassification.js.map +1 -0
  405. package/icc-api/model/PaginatedListClassificationTemplate.js +1 -0
  406. package/icc-api/model/PaginatedListClassificationTemplate.js.map +1 -0
  407. package/icc-api/model/PaginatedListCode.js +1 -0
  408. package/icc-api/model/PaginatedListCode.js.map +1 -0
  409. package/icc-api/model/PaginatedListContact.js +1 -0
  410. package/icc-api/model/PaginatedListContact.js.map +1 -0
  411. package/icc-api/model/PaginatedListDevice.js +1 -0
  412. package/icc-api/model/PaginatedListDevice.js.map +1 -0
  413. package/icc-api/model/PaginatedListDocument.js +1 -0
  414. package/icc-api/model/PaginatedListDocument.js.map +1 -0
  415. package/icc-api/model/PaginatedListEntityTemplate.js +1 -0
  416. package/icc-api/model/PaginatedListEntityTemplate.js.map +1 -0
  417. package/icc-api/model/PaginatedListForm.js +1 -0
  418. package/icc-api/model/PaginatedListForm.js.map +1 -0
  419. package/icc-api/model/PaginatedListHealthElement.js +1 -0
  420. package/icc-api/model/PaginatedListHealthElement.js.map +1 -0
  421. package/icc-api/model/PaginatedListHealthcareParty.js +1 -0
  422. package/icc-api/model/PaginatedListHealthcareParty.js.map +1 -0
  423. package/icc-api/model/PaginatedListInvoice.js +1 -0
  424. package/icc-api/model/PaginatedListInvoice.js.map +1 -0
  425. package/icc-api/model/PaginatedListMessage.js +1 -0
  426. package/icc-api/model/PaginatedListMessage.js.map +1 -0
  427. package/icc-api/model/PaginatedListNmp.js +1 -0
  428. package/icc-api/model/PaginatedListNmp.js.map +1 -0
  429. package/icc-api/model/PaginatedListPatient.js +1 -0
  430. package/icc-api/model/PaginatedListPatient.js.map +1 -0
  431. package/icc-api/model/PaginatedListService.js +1 -0
  432. package/icc-api/model/PaginatedListService.js.map +1 -0
  433. package/icc-api/model/PaginatedListString.js +1 -0
  434. package/icc-api/model/PaginatedListString.js.map +1 -0
  435. package/icc-api/model/PaginatedListTarification.js +1 -0
  436. package/icc-api/model/PaginatedListTarification.js.map +1 -0
  437. package/icc-api/model/PaginatedListUser.js +1 -0
  438. package/icc-api/model/PaginatedListUser.js.map +1 -0
  439. package/icc-api/model/PaginatedListVmp.js +1 -0
  440. package/icc-api/model/PaginatedListVmp.js.map +1 -0
  441. package/icc-api/model/PaginatedListVmpGroup.js +1 -0
  442. package/icc-api/model/PaginatedListVmpGroup.js.map +1 -0
  443. package/icc-api/model/ParagraphAgreement.js +1 -0
  444. package/icc-api/model/ParagraphAgreement.js.map +1 -0
  445. package/icc-api/model/Partnership.js +1 -0
  446. package/icc-api/model/Partnership.js.map +1 -0
  447. package/icc-api/model/Patient.js +1 -0
  448. package/icc-api/model/Patient.js.map +1 -0
  449. package/icc-api/model/PatientByHcPartyGenderEducationProfession.js +1 -0
  450. package/icc-api/model/PatientByHcPartyGenderEducationProfession.js.map +1 -0
  451. package/icc-api/model/PatientHealthCareParty.js +1 -0
  452. package/icc-api/model/PatientHealthCareParty.js.map +1 -0
  453. package/icc-api/model/PatientRegistrationSuccess.js +1 -0
  454. package/icc-api/model/PatientRegistrationSuccess.js.map +1 -0
  455. package/icc-api/model/Payment.js +1 -0
  456. package/icc-api/model/Payment.js.map +1 -0
  457. package/icc-api/model/Periodicity.js +1 -0
  458. package/icc-api/model/Periodicity.js.map +1 -0
  459. package/icc-api/model/Permission.js +1 -0
  460. package/icc-api/model/Permission.js.map +1 -0
  461. package/icc-api/model/PermissionCriterion.js +1 -0
  462. package/icc-api/model/PermissionCriterion.js.map +1 -0
  463. package/icc-api/model/PermissionItem.js +1 -0
  464. package/icc-api/model/PermissionItem.js.map +1 -0
  465. package/icc-api/model/PersonName.js +1 -0
  466. package/icc-api/model/PersonName.js.map +1 -0
  467. package/icc-api/model/PharmaceuticalForm.js +1 -0
  468. package/icc-api/model/PharmaceuticalForm.js.map +1 -0
  469. package/icc-api/model/PharmaceuticalFormStub.js +1 -0
  470. package/icc-api/model/PharmaceuticalFormStub.js.map +1 -0
  471. package/icc-api/model/Place.js +1 -0
  472. package/icc-api/model/Place.js.map +1 -0
  473. package/icc-api/model/PlanOfAction.js +1 -0
  474. package/icc-api/model/PlanOfAction.js.map +1 -0
  475. package/icc-api/model/Predicate.js +1 -0
  476. package/icc-api/model/Predicate.js.map +1 -0
  477. package/icc-api/model/Pricing.js +1 -0
  478. package/icc-api/model/Pricing.js.map +1 -0
  479. package/icc-api/model/PropertyStub.js +1 -0
  480. package/icc-api/model/PropertyStub.js.map +1 -0
  481. package/icc-api/model/PropertyTypeStub.js +1 -0
  482. package/icc-api/model/PropertyTypeStub.js.map +1 -0
  483. package/icc-api/model/PublicKey.js +1 -0
  484. package/icc-api/model/PublicKey.js.map +1 -0
  485. package/icc-api/model/Quantity.js +1 -0
  486. package/icc-api/model/Quantity.js.map +1 -0
  487. package/icc-api/model/Receipt.js +1 -0
  488. package/icc-api/model/Receipt.js.map +1 -0
  489. package/icc-api/model/ReferralPeriod.js +1 -0
  490. package/icc-api/model/ReferralPeriod.js.map +1 -0
  491. package/icc-api/model/RegimenItem.js +1 -0
  492. package/icc-api/model/RegimenItem.js.map +1 -0
  493. package/icc-api/model/RegistrationInformation.js +1 -0
  494. package/icc-api/model/RegistrationInformation.js.map +1 -0
  495. package/icc-api/model/RegistrationSuccess.js +1 -0
  496. package/icc-api/model/RegistrationSuccess.js.map +1 -0
  497. package/icc-api/model/Reimbursement.js +1 -0
  498. package/icc-api/model/Reimbursement.js.map +1 -0
  499. package/icc-api/model/ReimbursementCriterion.js +1 -0
  500. package/icc-api/model/ReimbursementCriterion.js.map +1 -0
  501. package/icc-api/model/Remote.js +1 -0
  502. package/icc-api/model/Remote.js.map +1 -0
  503. package/icc-api/model/RemoteAuthentication.js +1 -0
  504. package/icc-api/model/RemoteAuthentication.js.map +1 -0
  505. package/icc-api/model/Renewal.js +1 -0
  506. package/icc-api/model/Renewal.js.map +1 -0
  507. package/icc-api/model/ReplicateCommand.js +1 -0
  508. package/icc-api/model/ReplicateCommand.js.map +1 -0
  509. package/icc-api/model/Replication.js +1 -0
  510. package/icc-api/model/Replication.js.map +1 -0
  511. package/icc-api/model/ReplicationInfo.js +1 -0
  512. package/icc-api/model/ReplicationInfo.js.map +1 -0
  513. package/icc-api/model/ReplicationStats.js +1 -0
  514. package/icc-api/model/ReplicationStats.js.map +1 -0
  515. package/icc-api/model/ReplicatorDocument.js +1 -0
  516. package/icc-api/model/ReplicatorDocument.js.map +1 -0
  517. package/icc-api/model/ReplicatorResponse.js +1 -0
  518. package/icc-api/model/ReplicatorResponse.js.map +1 -0
  519. package/icc-api/model/ResultInfo.js +1 -0
  520. package/icc-api/model/ResultInfo.js.map +1 -0
  521. package/icc-api/model/RevisionInfo.js +1 -0
  522. package/icc-api/model/RevisionInfo.js.map +1 -0
  523. package/icc-api/model/Right.js +1 -0
  524. package/icc-api/model/Right.js.map +1 -0
  525. package/icc-api/model/RouteOfAdministration.js +1 -0
  526. package/icc-api/model/RouteOfAdministration.js.map +1 -0
  527. package/icc-api/model/SamText.js +1 -0
  528. package/icc-api/model/SamText.js.map +1 -0
  529. package/icc-api/model/SamVersion.js +1 -0
  530. package/icc-api/model/SamVersion.js.map +1 -0
  531. package/icc-api/model/SchoolingInfo.js +1 -0
  532. package/icc-api/model/SchoolingInfo.js.map +1 -0
  533. package/icc-api/model/Section.js +1 -0
  534. package/icc-api/model/Section.js.map +1 -0
  535. package/icc-api/model/Service.js +1 -0
  536. package/icc-api/model/Service.js.map +1 -0
  537. package/icc-api/model/ServiceLink.js +1 -0
  538. package/icc-api/model/ServiceLink.js.map +1 -0
  539. package/icc-api/model/SoftwareMedicalFileExport.js +1 -0
  540. package/icc-api/model/SoftwareMedicalFileExport.js.map +1 -0
  541. package/icc-api/model/StandardSubstance.js +1 -0
  542. package/icc-api/model/StandardSubstance.js.map +1 -0
  543. package/icc-api/model/StrengthRange.js +1 -0
  544. package/icc-api/model/StrengthRange.js.map +1 -0
  545. package/icc-api/model/StructureElement.js +1 -0
  546. package/icc-api/model/StructureElement.js.map +1 -0
  547. package/icc-api/model/SubContact.js +1 -0
  548. package/icc-api/model/SubContact.js.map +1 -0
  549. package/icc-api/model/Substance.js +1 -0
  550. package/icc-api/model/Substance.js.map +1 -0
  551. package/icc-api/model/SubstanceStub.js +1 -0
  552. package/icc-api/model/SubstanceStub.js.map +1 -0
  553. package/icc-api/model/Substanceproduct.js +1 -0
  554. package/icc-api/model/Substanceproduct.js.map +1 -0
  555. package/icc-api/model/Suggest.js +1 -0
  556. package/icc-api/model/Suggest.js.map +1 -0
  557. package/icc-api/model/SumehrContent.js +1 -0
  558. package/icc-api/model/SumehrContent.js.map +1 -0
  559. package/icc-api/model/SumehrExportInfo.js +1 -0
  560. package/icc-api/model/SumehrExportInfo.js.map +1 -0
  561. package/icc-api/model/SumehrValidity.js +1 -0
  562. package/icc-api/model/SumehrValidity.js.map +1 -0
  563. package/icc-api/model/SupplyProblem.js +1 -0
  564. package/icc-api/model/SupplyProblem.js.map +1 -0
  565. package/icc-api/model/Suspension.js +1 -0
  566. package/icc-api/model/Suspension.js.map +1 -0
  567. package/icc-api/model/Tag.js +1 -0
  568. package/icc-api/model/Tag.js.map +1 -0
  569. package/icc-api/model/Tarification.js +1 -0
  570. package/icc-api/model/Tarification.js.map +1 -0
  571. package/icc-api/model/Telecom.js +1 -0
  572. package/icc-api/model/Telecom.js.map +1 -0
  573. package/icc-api/model/TimeSeries.js +1 -0
  574. package/icc-api/model/TimeSeries.js.map +1 -0
  575. package/icc-api/model/TimeTable.js +1 -0
  576. package/icc-api/model/TimeTable.js.map +1 -0
  577. package/icc-api/model/TimeTableHour.js +1 -0
  578. package/icc-api/model/TimeTableHour.js.map +1 -0
  579. package/icc-api/model/TimeTableItem.js +1 -0
  580. package/icc-api/model/TimeTableItem.js.map +1 -0
  581. package/icc-api/model/TypedValueObject.js +1 -0
  582. package/icc-api/model/TypedValueObject.js.map +1 -0
  583. package/icc-api/model/Unit.js +1 -0
  584. package/icc-api/model/Unit.js.map +1 -0
  585. package/icc-api/model/User.js +1 -0
  586. package/icc-api/model/User.js.map +1 -0
  587. package/icc-api/model/UserAndHealthcareParty.js +1 -0
  588. package/icc-api/model/UserAndHealthcareParty.js.map +1 -0
  589. package/icc-api/model/UserGroup.js +1 -0
  590. package/icc-api/model/UserGroup.js.map +1 -0
  591. package/icc-api/model/Valorisation.js +1 -0
  592. package/icc-api/model/Valorisation.js.map +1 -0
  593. package/icc-api/model/VirtualForm.js +1 -0
  594. package/icc-api/model/VirtualForm.js.map +1 -0
  595. package/icc-api/model/VirtualIngredient.js +1 -0
  596. package/icc-api/model/VirtualIngredient.js.map +1 -0
  597. package/icc-api/model/Vmp.js +1 -0
  598. package/icc-api/model/Vmp.js.map +1 -0
  599. package/icc-api/model/VmpComponent.js +1 -0
  600. package/icc-api/model/VmpComponent.js.map +1 -0
  601. package/icc-api/model/VmpGroup.js +1 -0
  602. package/icc-api/model/VmpGroup.js.map +1 -0
  603. package/icc-api/model/VmpGroupStub.js +1 -0
  604. package/icc-api/model/VmpGroupStub.js.map +1 -0
  605. package/icc-api/model/VmpStub.js +1 -0
  606. package/icc-api/model/VmpStub.js.map +1 -0
  607. package/icc-api/model/Vtm.js +1 -0
  608. package/icc-api/model/Vtm.js.map +1 -0
  609. package/icc-api/model/Wada.js +1 -0
  610. package/icc-api/model/Wada.js.map +1 -0
  611. package/icc-api/model/WebSession.js +1 -0
  612. package/icc-api/model/WebSession.js.map +1 -0
  613. package/icc-api/model/WebSessionMaxIdleTime.js +1 -0
  614. package/icc-api/model/WebSessionMaxIdleTime.js.map +1 -0
  615. package/icc-api/model/WebSessionMaxIdleTimeUnits.js +1 -0
  616. package/icc-api/model/WebSessionMaxIdleTimeUnits.js.map +1 -0
  617. package/icc-api/model/Weekday.js +1 -0
  618. package/icc-api/model/Weekday.js.map +1 -0
  619. package/icc-api/model/models.js +1 -0
  620. package/icc-api/model/models.js.map +1 -0
  621. package/icc-x-api/crypto/AES.js +1 -0
  622. package/icc-x-api/crypto/AES.js.map +1 -0
  623. package/icc-x-api/crypto/RSA.js +1 -0
  624. package/icc-x-api/crypto/RSA.js.map +1 -0
  625. package/icc-x-api/crypto/shamir.js +1 -0
  626. package/icc-x-api/crypto/shamir.js.map +1 -0
  627. package/icc-x-api/crypto/utils.js +1 -0
  628. package/icc-x-api/crypto/utils.js.map +1 -0
  629. package/icc-x-api/filters/AllCodesFilter.js +1 -0
  630. package/icc-x-api/filters/AllCodesFilter.js.map +1 -0
  631. package/icc-x-api/filters/AllDevicesFilter.js +1 -0
  632. package/icc-x-api/filters/AllDevicesFilter.js.map +1 -0
  633. package/icc-x-api/filters/AllHealthcarePartiesFilter.js +1 -0
  634. package/icc-x-api/filters/AllHealthcarePartiesFilter.js.map +1 -0
  635. package/icc-x-api/filters/AllUsersFilter.js +1 -0
  636. package/icc-x-api/filters/AllUsersFilter.js.map +1 -0
  637. package/icc-x-api/filters/CodeByIdsFilter.js +1 -0
  638. package/icc-x-api/filters/CodeByIdsFilter.js.map +1 -0
  639. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.js +1 -0
  640. package/icc-x-api/filters/CodeByRegionTypeLabelLanguageFilter.js.map +1 -0
  641. package/icc-x-api/filters/ComplementFilter.js +1 -0
  642. package/icc-x-api/filters/ComplementFilter.js.map +1 -0
  643. package/icc-x-api/filters/ConstantFilter.js +1 -0
  644. package/icc-x-api/filters/ConstantFilter.js.map +1 -0
  645. package/icc-x-api/filters/ContactByHcPartyFilter.js +1 -0
  646. package/icc-x-api/filters/ContactByHcPartyFilter.js.map +1 -0
  647. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.js +1 -0
  648. package/icc-x-api/filters/ContactByHcPartyPatientTagCodeDateFilter.js.map +1 -0
  649. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.js +1 -0
  650. package/icc-x-api/filters/ContactByHcPartyTagCodeDateFilter.js.map +1 -0
  651. package/icc-x-api/filters/ContactByServiceIdsFilter.js +1 -0
  652. package/icc-x-api/filters/ContactByServiceIdsFilter.js.map +1 -0
  653. package/icc-x-api/filters/DeviceByHcPartyFilter.js +1 -0
  654. package/icc-x-api/filters/DeviceByHcPartyFilter.js.map +1 -0
  655. package/icc-x-api/filters/DeviceByIdsFilter.js +1 -0
  656. package/icc-x-api/filters/DeviceByIdsFilter.js.map +1 -0
  657. package/icc-x-api/filters/HealthElementByHcPartyFilter.js +1 -0
  658. package/icc-x-api/filters/HealthElementByHcPartyFilter.js.map +1 -0
  659. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.js +1 -0
  660. package/icc-x-api/filters/HealthElementByHcPartyIdentifiersFilter.js.map +1 -0
  661. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.js +1 -0
  662. package/icc-x-api/filters/HealthElementByHcPartySecretForeignKeysFilter.js.map +1 -0
  663. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.js +1 -0
  664. package/icc-x-api/filters/HealthElementByHcPartyTagCodeFilter.js.map +1 -0
  665. package/icc-x-api/filters/HealthElementByIdsFilter.js +1 -0
  666. package/icc-x-api/filters/HealthElementByIdsFilter.js.map +1 -0
  667. package/icc-x-api/filters/HealthcarePartyByIdsFilter.js +1 -0
  668. package/icc-x-api/filters/HealthcarePartyByIdsFilter.js.map +1 -0
  669. package/icc-x-api/filters/IntersectionFilter.js +1 -0
  670. package/icc-x-api/filters/IntersectionFilter.js.map +1 -0
  671. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.js +1 -0
  672. package/icc-x-api/filters/InvoiceByHcPartyCodeDateFilter.js.map +1 -0
  673. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.js +1 -0
  674. package/icc-x-api/filters/PatientByHcPartyAndActiveFilter.js.map +1 -0
  675. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.js +1 -0
  676. package/icc-x-api/filters/PatientByHcPartyAndExternalIdFilter.js.map +1 -0
  677. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.js +1 -0
  678. package/icc-x-api/filters/PatientByHcPartyAndIdentifiersFilter.js.map +1 -0
  679. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.js +1 -0
  680. package/icc-x-api/filters/PatientByHcPartyAndSsinFilter.js.map +1 -0
  681. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.js +1 -0
  682. package/icc-x-api/filters/PatientByHcPartyAndSsinsFilter.js.map +1 -0
  683. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.js +1 -0
  684. package/icc-x-api/filters/PatientByHcPartyDateOfBirthBetweenFilter.js.map +1 -0
  685. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.js +1 -0
  686. package/icc-x-api/filters/PatientByHcPartyDateOfBirthFilter.js.map +1 -0
  687. package/icc-x-api/filters/PatientByHcPartyFilter.js +1 -0
  688. package/icc-x-api/filters/PatientByHcPartyFilter.js.map +1 -0
  689. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js +1 -0
  690. package/icc-x-api/filters/PatientByHcPartyGenderEducationProfession.js.map +1 -0
  691. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.js +1 -0
  692. package/icc-x-api/filters/PatientByHcPartyNameContainsFuzzyFilter.js.map +1 -0
  693. package/icc-x-api/filters/PatientByHcPartyNameFilter.js +1 -0
  694. package/icc-x-api/filters/PatientByHcPartyNameFilter.js.map +1 -0
  695. package/icc-x-api/filters/PatientByIdsFilter.js +1 -0
  696. package/icc-x-api/filters/PatientByIdsFilter.js.map +1 -0
  697. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.js +1 -0
  698. package/icc-x-api/filters/ServiceByContactsAndSubcontactsFilter.js.map +1 -0
  699. package/icc-x-api/filters/ServiceByHcPartyFilter.js +1 -0
  700. package/icc-x-api/filters/ServiceByHcPartyFilter.js.map +1 -0
  701. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.js +1 -0
  702. package/icc-x-api/filters/ServiceByHcPartyIdentifiersFilter.js.map +1 -0
  703. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.js +1 -0
  704. package/icc-x-api/filters/ServiceByHcPartyTagCodeDateFilter.js.map +1 -0
  705. package/icc-x-api/filters/ServiceByIdsFilter.js +1 -0
  706. package/icc-x-api/filters/ServiceByIdsFilter.js.map +1 -0
  707. package/icc-x-api/filters/ServiceBySecretForeignKeys.js +1 -0
  708. package/icc-x-api/filters/ServiceBySecretForeignKeys.js.map +1 -0
  709. package/icc-x-api/filters/UnionFilter.js +1 -0
  710. package/icc-x-api/filters/UnionFilter.js.map +1 -0
  711. package/icc-x-api/filters/UserByIdsFilter.js +1 -0
  712. package/icc-x-api/filters/UserByIdsFilter.js.map +1 -0
  713. package/icc-x-api/filters/filters.js +1 -0
  714. package/icc-x-api/filters/filters.js.map +1 -0
  715. package/icc-x-api/icc-accesslog-x-api.js +1 -0
  716. package/icc-x-api/icc-accesslog-x-api.js.map +1 -0
  717. package/icc-x-api/icc-bekmehr-x-api.js +1 -0
  718. package/icc-x-api/icc-bekmehr-x-api.js.map +1 -0
  719. package/icc-x-api/icc-calendar-item-x-api.js +1 -0
  720. package/icc-x-api/icc-calendar-item-x-api.js.map +1 -0
  721. package/icc-x-api/icc-classification-x-api.js +1 -0
  722. package/icc-x-api/icc-classification-x-api.js.map +1 -0
  723. package/icc-x-api/icc-code-x-api.js +1 -0
  724. package/icc-x-api/icc-code-x-api.js.map +1 -0
  725. package/icc-x-api/icc-contact-x-api.js +1 -0
  726. package/icc-x-api/icc-contact-x-api.js.map +1 -0
  727. package/icc-x-api/icc-crypto-x-api.js +1 -0
  728. package/icc-x-api/icc-crypto-x-api.js.map +1 -0
  729. package/icc-x-api/icc-doctemplate-x-api.js +1 -0
  730. package/icc-x-api/icc-doctemplate-x-api.js.map +1 -0
  731. package/icc-x-api/icc-document-x-api.js +1 -0
  732. package/icc-x-api/icc-document-x-api.js.map +1 -0
  733. package/icc-x-api/icc-form-x-api.js +1 -0
  734. package/icc-x-api/icc-form-x-api.js.map +1 -0
  735. package/icc-x-api/icc-hcparty-x-api.js +1 -0
  736. package/icc-x-api/icc-hcparty-x-api.js.map +1 -0
  737. package/icc-x-api/icc-helement-x-api.js +1 -0
  738. package/icc-x-api/icc-helement-x-api.js.map +1 -0
  739. package/icc-x-api/icc-invoice-x-api.js +1 -0
  740. package/icc-x-api/icc-invoice-x-api.js.map +1 -0
  741. package/icc-x-api/icc-message-x-api.js +1 -0
  742. package/icc-x-api/icc-message-x-api.js.map +1 -0
  743. package/icc-x-api/icc-patient-x-api.js +1 -0
  744. package/icc-x-api/icc-patient-x-api.js.map +1 -0
  745. package/icc-x-api/icc-receipt-x-api.js +1 -0
  746. package/icc-x-api/icc-receipt-x-api.js.map +1 -0
  747. package/icc-x-api/icc-time-table-x-api.js +1 -0
  748. package/icc-x-api/icc-time-table-x-api.js.map +1 -0
  749. package/icc-x-api/icc-user-x-api.js +1 -0
  750. package/icc-x-api/icc-user-x-api.js.map +1 -0
  751. package/icc-x-api/index.js +1 -0
  752. package/icc-x-api/index.js.map +1 -0
  753. package/icc-x-api/rsrc/codelng.js +1 -0
  754. package/icc-x-api/rsrc/codelng.js.map +1 -0
  755. package/icc-x-api/rsrc/contact.i18n.js +1 -0
  756. package/icc-x-api/rsrc/contact.i18n.js.map +1 -0
  757. package/icc-x-api/rsrc/icd10.js +1 -0
  758. package/icc-x-api/rsrc/icd10.js.map +1 -0
  759. package/icc-x-api/rsrc/icpc2.js +1 -0
  760. package/icc-x-api/rsrc/icpc2.js.map +1 -0
  761. package/icc-x-api/utils/asn1-packer.js +1 -0
  762. package/icc-x-api/utils/asn1-packer.js.map +1 -0
  763. package/icc-x-api/utils/asn1-parser.js +1 -0
  764. package/icc-x-api/utils/asn1-parser.js.map +1 -0
  765. package/icc-x-api/utils/binary-utils.js +1 -0
  766. package/icc-x-api/utils/binary-utils.js.map +1 -0
  767. package/icc-x-api/utils/code-util.js +1 -0
  768. package/icc-x-api/utils/code-util.js.map +1 -0
  769. package/icc-x-api/utils/formatting-util.js +1 -0
  770. package/icc-x-api/utils/formatting-util.js.map +1 -0
  771. package/icc-x-api/utils/functional-util.js +1 -0
  772. package/icc-x-api/utils/functional-util.js.map +1 -0
  773. package/icc-x-api/utils/hcp-util.js +1 -0
  774. package/icc-x-api/utils/hcp-util.js.map +1 -0
  775. package/icc-x-api/utils/index.js +1 -0
  776. package/icc-x-api/utils/index.js.map +1 -0
  777. package/icc-x-api/utils/insurability-util.js +1 -0
  778. package/icc-x-api/utils/insurability-util.js.map +1 -0
  779. package/icc-x-api/utils/net-utils.js +1 -0
  780. package/icc-x-api/utils/net-utils.js.map +1 -0
  781. package/icc-x-api/utils/person-util.js +1 -0
  782. package/icc-x-api/utils/person-util.js.map +1 -0
  783. package/icc-x-api/utils/uuid-encoder.js +1 -0
  784. package/icc-x-api/utils/uuid-encoder.js.map +1 -0
  785. package/index.js +1 -0
  786. package/index.js.map +1 -0
  787. package/node-compat.js +1 -0
  788. package/node-compat.js.map +1 -0
  789. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-document-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-document-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccAuthApi, IccDocumentApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport { XHR } from '../icc-api/api/XHR'\nimport * as models from '../icc-api/model/models'\n\nimport { a2b, hex2ua, string2ua, ua2string } from './utils/binary-utils'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccDocumentXApi extends IccDocumentApi {\n crypto: IccCryptoXApi\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response>\n authApi: IccAuthApi\n\n /** maps invalid UTI values to corresponding MIME type for backward-compatibility (pre-v1.0.117) */\n compatUtiRevDefs: { [key: string]: string } = {\n 'com.adobe.encapsulatedPostscript': 'image/eps',\n 'com.adobe.illustrator.aiImage': 'application/illustrator',\n 'com.adobe.indesignImage': 'image/indesign',\n 'com.adobe.photoshopImage': 'image/psd',\n 'com.adobe.postscriptPfaFont': 'application/x-font-type1',\n 'com.adobe.postscriptPfbFont': 'application/x-font-type1',\n 'com.allume.stuffitArchive': 'application/stuffit',\n 'com.apple.binhexArchive': 'application/binhex',\n 'com.apple.diskImageUdif': 'application/x-apple-diskimage',\n 'com.apple.macbinaryArchive': 'application/macbinary',\n 'com.apple.quartzComposerComposition': 'application/x-quartzcomposer',\n 'com.apple.quicktimeImage': 'image/x-quicktime',\n 'com.apple.quicktimeMovie': 'video/quicktime',\n 'com.js.efxFax': 'image/efax',\n 'com.macromedia.shockwaveFlash': 'application/x-shockwave-flash',\n 'com.microsoft.advancedStreamRedirector': 'video/x-ms-asx',\n 'com.microsoft.advancedSystemsFormat': 'video/x-ms-asf',\n 'com.microsoft.waveformAudio': 'audio/wave',\n 'com.microsoft.windowsDynamicLinkLibrary': 'application/x-msdownload',\n 'com.microsoft.windowsExecutable': 'application/exe',\n 'com.microsoft.windowsMediaWax': 'audio/x-ms-wax',\n 'com.microsoft.windowsMediaWm': 'video/x-ms-wm',\n 'com.microsoft.windowsMediaWma': 'audio/x-ms-wma',\n 'com.microsoft.windowsMediaWmd': 'video/x-ms-wmd',\n 'com.microsoft.windowsMediaWmp': 'video/x-ms-wmp',\n 'com.microsoft.windowsMediaWmv': 'video/x-ms-wmv',\n 'com.microsoft.windowsMediaWmx': 'video/x-ms-wmx',\n 'com.microsoft.windowsMediaWmz': 'video/x-ms-wmz',\n 'com.microsoft.windowsMediaWvx': 'video/x-ms-wvx',\n 'com.netscape.javascriptSource': 'text/javascript',\n 'com.pkware.zipArchive': 'application/zip',\n 'com.rarlab.rarArchive': 'application/rar',\n 'com.redhat.redhatPackage': 'application/x-redhat-package',\n 'com.sgi.sgiImage': 'image/sgi',\n 'com.sun.javaAppDescriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.javaArchive': 'application/java-archive',\n 'com.sun.javaClass': 'application/java',\n 'com.sun.javaSource': 'text/x-java-source',\n 'com.sun.javaWebStart': 'application/jnlp',\n 'com.truevision.tgaImage': 'image/tga',\n 'org.bzip.bzip2Archive': 'application/x-bzip2',\n 'org.debian.debianPackage': 'application/x-debian-package',\n 'org.gnu.gnuTarArchive': 'application/x-gtar',\n 'org.gnu.gnuZipArchive': 'application/gzip',\n 'org.oasis.opendocument.textMaster': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.textWeb': 'application/vnd.oasis.opendocument.text-web',\n 'org.xiph.oggTheora': 'video/ogg',\n 'org.xiph.oggVorbis': 'audio/ogg',\n 'public.aifcAudio': 'audio/aiff',\n 'public.aiffAudio': 'audio/aiff',\n 'public.assemblySource': 'text/x-asm',\n 'public.cHeader': 'text/x-c-header',\n 'public.cpioArchive': 'application/x-cpio',\n 'public.cPlusPlusHeader': 'text/x-c++-hdr',\n 'public.cPlusPlusSource': 'application/x-cplusplus',\n 'public.cshScript': 'application/x-csh',\n 'public.cSource': 'text/x-c-code',\n 'public.isoImage': 'application/x-iso-image',\n 'public.mpeg4Audio': 'audio/mp4',\n 'public.objectiveCPlusPlusSource': 'text/x-objcppsrc',\n 'public.objectiveCSource': 'text/x-objcsrc',\n 'public.opentypeFont': 'font/opentype',\n 'public.perlScript': 'text/x-perl',\n 'public.phpScript': 'text/php',\n 'public.plainText': 'text/plain',\n 'public.pythonScript': 'text/x-python-script',\n 'public.shellScript': 'application/x-sh',\n 'public.tarArchive': 'application/tar',\n 'public.truetypeTtfFont': 'application/x-font-ttf',\n 'public.ulawAudio': 'audio/au',\n 'public.xbitmapImage': 'image/xbm',\n 'unofficial.atomFeed': 'application/atom+xml',\n 'unofficial.m3u8Playlist': 'application/x-mpegURL',\n 'unofficial.plsPlaylist': 'audio/scpls',\n 'unofficial.rdfFeed': 'application/rdf+xml',\n 'unofficial.rssFeed': 'application/rss+xml',\n }\n\n utiRevDefs: { [key: string]: string } = {\n ...this.compatUtiRevDefs,\n 'com.adobe.encapsulated-postscript': 'image/eps',\n 'com.adobe.illustrator.ai-image': 'application/illustrator',\n 'com.adobe.indesign-image': 'image/indesign',\n 'com.adobe.pdf': 'application/pdf',\n 'com.adobe.photoshop-image': 'image/psd',\n 'com.adobe.postscript': 'application/postscript',\n 'com.adobe.postscript-pfa-font': 'application/x-font-type1',\n 'com.adobe.postscript-pfb-font': 'application/x-font-type1',\n 'com.allume.stuffit-archive': 'application/stuffit',\n 'com.apple.applescript.script': 'application/x-applescript',\n 'com.apple.applescript.text': 'application/x-applescript',\n 'com.apple.binhex-archive': 'application/binhex',\n 'com.apple.disk-image-udif': 'application/x-apple-diskimage',\n 'com.apple.ical.ics': 'text/calendar',\n 'com.apple.ical.vcs': 'text/x-vcalendar',\n 'com.apple.macbinary-archive': 'application/macbinary',\n 'com.apple.pict': 'image/pict',\n 'com.apple.quartz-composer-composition': 'application/x-quartzcomposer',\n 'com.apple.quicktime-image': 'image/x-quicktime',\n 'com.apple.quicktime-movie': 'video/quicktime',\n 'com.bittorrent.torrent': 'application/x-bittorrent',\n 'com.compuserve.gif': 'image/gif',\n 'com.js.efx-fax': 'image/efax',\n 'com.kodak.flashpix.image': 'image/vndfpx',\n 'com.lizardtech.djvu': 'image/vnd.djvu',\n 'com.macromedia.shockwave-flash': 'application/x-shockwave-flash',\n 'com.microsoft.advanced-stream-redirector': 'video/x-ms-asx',\n 'com.microsoft.advanced-systems-format': 'video/x-ms-asf',\n 'com.microsoft.bmp': 'image/bmp',\n 'com.microsoft.excel.xls': 'application/excel',\n 'com.microsoft.ico': 'image/x-icon',\n 'com.microsoft.powerpoint.ppt': 'application/powerpoint',\n 'com.microsoft.waveform-audio': 'audio/wave',\n 'com.microsoft.windows-dynamic-link-library': 'application/x-msdownload',\n 'com.microsoft.windows-executable': 'application/exe',\n 'com.microsoft.windows-media-wax': 'audio/x-ms-wax',\n 'com.microsoft.windows-media-wm': 'video/x-ms-wm',\n 'com.microsoft.windows-media-wma': 'audio/x-ms-wma',\n 'com.microsoft.windows-media-wmd': 'video/x-ms-wmd',\n 'com.microsoft.windows-media-wmp': 'video/x-ms-wmp',\n 'com.microsoft.windows-media-wmv': 'video/x-ms-wmv',\n 'com.microsoft.windows-media-wmx': 'video/x-ms-wmx',\n 'com.microsoft.windows-media-wmz': 'video/x-ms-wmz',\n 'com.microsoft.windows-media-wvx': 'video/x-ms-wvx',\n 'com.microsoft.word.doc': 'application/msword',\n 'com.netscape.javascript-source': 'text/javascript',\n 'com.pkware.zip-archive': 'application/zip',\n 'com.rarlab.rar-archive': 'application/rar',\n 'com.real.realaudio': 'audio/vnd.rn-realaudio',\n 'com.real.realmedia': 'application/vnd.rn-realmedia',\n 'com.real.smil': 'application/smil',\n 'com.redhat.redhat-package': 'application/x-redhat-package',\n 'com.sgi.sgi-image': 'image/sgi',\n 'com.soundblaster.soundfont': 'application/x-soundfont',\n 'com.sun.java-app-descriptor': 'text/vnd.sun.j2me.app-descriptor',\n 'com.sun.java-archive': 'application/java-archive',\n 'com.sun.java-class': 'application/java',\n 'com.sun.java-source': 'text/x-java-source',\n 'com.sun.java-web-start': 'application/jnlp',\n 'com.truevision.tga-image': 'image/tga',\n 'org.bzip.bzip2-archive': 'application/x-bzip2',\n 'org.debian.debian-package': 'application/x-debian-package',\n 'org.gnu.gnu-tar-archive': 'application/x-gtar',\n 'org.gnu.gnu-zip-archive': 'application/gzip',\n 'org.neooffice.calc': 'application/vnd.sun.xml.calc',\n 'org.neooffice.draw': 'application/vnd.sun.xml.draw',\n 'org.neooffice.global': 'application/vnd.sun.xml.writer.global',\n 'org.neooffice.impress': 'application/vnd.sun.xml.impress',\n 'org.neooffice.math': 'application/vnd.sun.xml.math',\n 'org.neooffice.writer': 'application/vnd.sun.xml.writer',\n 'org.oasis.opendocument.chart': 'application/vnd.oasis.opendocument.chart',\n 'org.oasis.opendocument.database': 'application/vnd.oasis.opendocument.database',\n 'org.oasis.opendocument.formula': 'application/vnd.oasis.opendocument.formula',\n 'org.oasis.opendocument.graphics': 'application/vnd.oasis.opendocument.graphics',\n 'org.oasis.opendocument.image': 'application/vnd.oasis.opendocument.image',\n 'org.oasis.opendocument.presentation': 'application/vnd.oasis.opendocument.presentation',\n 'org.oasis.opendocument.spreadsheet': 'application/vnd.oasis.opendocument.spreadsheet',\n 'org.oasis.opendocument.text': 'application/vnd.oasis.opendocument.text',\n 'org.oasis.opendocument.text-master': 'application/vnd.oasis.opendocument.text-master',\n 'org.oasis.opendocument.text-web': 'application/vnd.oasis.opendocument.text-web',\n 'org.tug.tex': 'text/tex',\n 'org.xiph.flac': 'audio/flac',\n 'org.xiph.ogg-theora': 'video/ogg',\n 'org.xiph.ogg-vorbis': 'audio/ogg',\n 'public.3gpp': 'video/3gpp',\n 'public.3gpp2': 'video/3gpp2',\n 'public.aifc-audio': 'audio/aiff',\n 'public.aiff-audio': 'audio/aiff',\n 'public.assembly-source': 'text/x-asm',\n 'public.avi': 'video/avi',\n 'public.c-header': 'text/x-c-header',\n 'public.cpio-archive': 'application/x-cpio',\n 'public.c-plus-plus-header': 'text/x-c++-hdr',\n 'public.c-plus-plus-source': 'application/x-cplusplus',\n 'public.csh-script': 'application/x-csh',\n 'public.c-source': 'text/x-c-code',\n 'public.css': 'text/css',\n 'public.dv': 'video/x-dv',\n 'public.flv': 'video/x-flv',\n 'public.html': 'text/html',\n 'public.iso-image': 'application/x-iso-image',\n 'public.jpeg': 'image/jpeg',\n 'public.jpeg2000': 'image/jp2',\n 'public.midi': 'audio/midi',\n 'public.mka': 'audio/x-matroska',\n 'public.mkv': 'video/x-matroska',\n 'public.mp3': 'audio/mp3',\n 'public.mpeg': 'video/mpeg',\n 'public.mpeg4': 'video/mp4',\n 'public.mpeg4-audio': 'audio/mp4',\n 'public.mpegts': 'video/MP2T',\n 'public.objective-c-plus-plus-source': 'text/x-objcppsrc',\n 'public.objective-c-source': 'text/x-objcsrc',\n 'public.opentype-font': 'font/opentype',\n 'public.perl-script': 'text/x-perl',\n 'public.php-script': 'text/php',\n 'public.plain-text': 'text/plain',\n 'public.png': 'image/png',\n 'public.python-script': 'text/x-python-script',\n 'public.rtf': 'text/rtf',\n 'public.shell-script': 'application/x-sh',\n 'public.tar-archive': 'application/tar',\n 'public.tiff': 'image/tiff',\n 'public.truetype-ttf-font': 'application/x-font-ttf',\n 'public.ulaw-audio': 'audio/au',\n 'public.vcard': 'text/vcard',\n 'public.webm': 'video/webm',\n 'public.xbitmap-image': 'image/xbm',\n 'public.xml': 'text/xml',\n 'unofficial.atom-feed': 'application/atom+xml',\n 'unofficial.m3u8-playlist': 'application/x-mpegURL',\n 'unofficial.opml': 'text/x-opml',\n 'unofficial.pls-playlist': 'audio/scpls',\n 'unofficial.rdf-feed': 'application/rdf+xml',\n 'unofficial.rss-feed': 'application/rss+xml',\n }\n\n utiExts: { [key: string]: string } = {\n jpg: 'public.jpeg',\n jpeg: 'public.jpeg',\n png: 'public.png',\n rtf: 'public.rtf',\n mpeg: 'public.mpeg',\n mpg: 'public.mpeg',\n html: 'public.html',\n htm: 'public.html',\n pdf: 'com.adobe.pdf',\n xls: 'com.microsoft.excel.xls',\n xlsx: 'com.microsoft.excel.xls',\n doc: 'com.microsoft.word.doc',\n docx: 'com.microsoft.word.doc',\n }\n\n utiDefs: { [key: string]: string } = {\n 'application/atom+xml': 'unofficial.atom-feed',\n 'application/bat': 'com.microsoft.windows-executable',\n 'application/binhex': 'com.apple.binhex-archive',\n 'application/binhex4': 'com.apple.binhex-archive',\n 'application/ecmascript': 'com.netscape.javascript-source',\n 'application/eps': 'com.adobe.encapsulated-postscript',\n 'application/excel': 'com.microsoft.excel.xls',\n 'application/exe': 'com.microsoft.windows-executable',\n 'application/gnutar': 'public.tar-archive',\n 'application/gzip': 'org.gnu.gnu-zip-archive',\n 'application/illustrator': 'com.adobe.illustrator.ai-image',\n 'application/indesign': 'com.adobe.indesign-image',\n 'application/java-archive': 'com.sun.java-archive',\n 'application/java-byte-code': 'com.sun.java-class',\n 'application/java': 'com.sun.java-class',\n 'application/javascript': 'com.netscape.javascript-source',\n 'application/jnlp': 'com.sun.java-web-start',\n 'application/latex': 'org.tug.tex',\n 'application/mac-binary': 'com.apple.macbinary-archive',\n 'application/mac-binhex': 'com.apple.binhex-archive',\n 'application/mac-binhex40': 'com.apple.binhex-archive',\n 'application/macbinary': 'com.apple.macbinary-archive',\n 'application/mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/msword': 'com.microsoft.word.doc',\n 'application/octet-stream': 'com.microsoft.windows-executable',\n 'application/pdf': 'com.adobe.pdf',\n 'application/photoshop': 'com.adobe.photoshop-image',\n 'application/php': 'public.php-script',\n 'application/plain': 'public.plain-text',\n 'application/postscript': 'com.adobe.postscript',\n 'application/powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/rar': 'com.rarlab.rar-archive',\n 'application/rdf+xml': 'unofficial.rdf-feed',\n 'application/rss+xml': 'unofficial.rss-feed',\n 'application/rtf': 'public.rtf',\n 'application/smil': 'com.real.smil',\n 'application/stuffit': 'com.allume.stuffit-archive',\n 'application/tar': 'public.tar-archive',\n 'application/tga': 'com.truevision.tga-image',\n 'application/vnd.fpx': 'com.kodak.flashpix.image',\n 'application/vnd.ms-excel': 'com.microsoft.excel.xls',\n 'application/vnd.ms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vnd.oasis.opendocument.chart': 'org.oasis.opendocument.chart',\n 'application/vnd.oasis.opendocument.database': 'org.oasis.opendocument.database',\n 'application/vnd.oasis.opendocument.formula': 'org.oasis.opendocument.formula',\n 'application/vnd.oasis.opendocument.graphics-template': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.graphics': 'org.oasis.opendocument.graphics',\n 'application/vnd.oasis.opendocument.image': 'org.oasis.opendocument.image',\n 'application/vnd.oasis.opendocument.presentation-template': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.presentation': 'org.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet-template': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.spreadsheet': 'org.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text-master': 'org.oasis.opendocument.text-master',\n 'application/vnd.oasis.opendocument.text-template': 'org.oasis.opendocument.text',\n 'application/vnd.oasis.opendocument.text-web': 'org.oasis.opendocument.text-web',\n 'application/vnd.oasis.opendocument.text': 'org.oasis.opendocument.text',\n 'application/vnd.rn-realmedia': 'com.real.realmedia',\n 'application/vnd.sun.xml.calc.template': 'org.neooffice.calc',\n 'application/vnd.sun.xml.calc': 'org.neooffice.calc',\n 'application/vnd.sun.xml.draw.template': 'org.neooffice.draw',\n 'application/vnd.sun.xml.draw': 'org.neooffice.draw',\n 'application/vnd.sun.xml.impress.template': 'org.neooffice.impress',\n 'application/vnd.sun.xml.impress': 'org.neooffice.impress',\n 'application/vnd.sun.xml.math': 'org.neooffice.math',\n 'application/vnd.sun.xml.writer.global': 'org.neooffice.global',\n 'application/vnd.sun.xml.writer.template': 'org.neooffice.writer',\n 'application/vnd.sun.xml.writer': 'org.neooffice.writer',\n 'application/vndms-excel': 'com.microsoft.excel.xls',\n 'application/vndms-powerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/vndrn-realmedia': 'com.real.realmedia',\n 'application/x-apple-diskimage': 'com.apple.disk-image-udif',\n 'application/x-applescript': 'com.apple.applescript.script',\n 'application/x-bat': 'com.microsoft.windows-executable',\n 'application/x-binary': 'com.apple.macbinary-archive',\n 'application/x-binhex40': 'com.apple.binhex-archive',\n 'application/x-bittorrent': 'com.bittorrent.torrent',\n 'application/x-bzip2': 'org.bzip.bzip2-archive',\n 'application/x-cpio': 'public.cpio-archive',\n 'application/x-cplusplus': 'public.c-plus-plus-source',\n 'application/x-csh': 'public.csh-script',\n 'application/x-deb': 'org.debian.debian-package',\n 'application/x-debian-package': 'org.debian.debian-package',\n 'application/x-eps': 'com.adobe.encapsulated-postscript',\n 'application/x-excel': 'com.microsoft.excel.xls',\n 'application/x-exe': 'com.microsoft.windows-executable',\n 'application/x-flac': 'org.xiph.flac',\n 'application/x-font-ttf': 'public.truetype-ttf-font',\n 'application/x-font-type1': 'com.adobe.postscript-pfa-font',\n 'application/x-gtar': 'org.gnu.gnu-tar-archive',\n 'application/x-gzip': 'org.gnu.gnu-zip-archive',\n 'application/x-iso-image': 'public.iso-image',\n 'application/x-java-class': 'com.sun.java-class',\n 'application/x-java': 'com.sun.java-web-start',\n 'application/x-javascript': 'com.netscape.javascript-source',\n 'application/x-latex': 'org.tug.tex',\n 'application/x-mac-binhex40': 'com.apple.binhex-archive',\n 'application/x-macbinary': 'com.apple.macbinary-archive',\n 'application/x-midi': 'public.midi',\n 'application/x-mpegURL': 'unofficial.m3u8-playlist',\n 'application/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'application/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'application/x-msdos-program': 'com.microsoft.windows-executable',\n 'application/x-msdownload': 'com.microsoft.windows-executable',\n 'application/x-msexcel': 'com.microsoft.excel.xls',\n 'application/x-mspowerpoint': 'com.microsoft.powerpoint.ppt',\n 'application/x-pdf': 'com.adobe.pdf',\n 'application/x-perl': 'public.perl-script',\n 'application/x-php': 'public.php-script',\n 'application/x-quartzcomposer': 'com.apple.quartz-composer-composition',\n 'application/x-rar-compressed': 'com.rarlab.rar-archive',\n 'application/x-redhat-package': 'com.redhat.redhat-package',\n 'application/x-rpm': 'com.redhat.redhat-package',\n 'application/x-rtf': 'public.rtf',\n 'application/x-sh': 'public.shell-script',\n 'application/x-shellscript': 'public.shell-script',\n 'application/x-shockwave-flash': 'com.macromedia.shockwave-flash',\n 'application/x-sit': 'com.allume.stuffit-archive',\n 'application/x-smil': 'com.real.smil',\n 'application/x-soundfont': 'com.soundblaster.soundfont',\n 'application/x-stuffit': 'com.allume.stuffit-archive',\n 'application/x-tar': 'public.tar-archive',\n 'application/x-tex': 'org.tug.tex',\n 'application/x-texinfo': 'org.tug.tex',\n 'application/x-troff-msvideo': 'public.avi',\n 'application/x-zip-compressed': 'com.pkware.zip-archive',\n 'application/xhtml+xml': 'public.html',\n 'application/xml': 'public.xml',\n 'application/zip': 'com.pkware.zip-archive',\n 'audio/3gpp': 'public.3gpp',\n 'audio/3gpp2': 'public.3gpp2',\n 'audio/aiff': 'public.aiff-audio',\n 'audio/au': 'public.ulaw-audio',\n 'audio/basic': 'public.ulaw-audio',\n 'audio/flac': 'org.xiph.flac',\n 'audio/mid': 'public.midi',\n 'audio/midi': 'public.midi',\n 'audio/mp3': 'public.mp3',\n 'audio/mp4': 'public.mpeg4-audio',\n 'audio/mp4a-latm': 'public.mpeg4-audio',\n 'audio/mpeg': 'public.mp3',\n 'audio/mpeg3': 'public.mp3',\n 'audio/mpegurl': 'unofficial.m3u-playlist',\n 'audio/mpg': 'public.mp3',\n 'audio/ogg': 'org.xiph.ogg-vorbis',\n 'audio/scpls': 'unofficial.pls-playlist',\n 'audio/snd': 'public.ulaw-audio',\n 'audio/vnd.rn-realaudio': 'com.real.realaudio',\n 'audio/wav': 'com.microsoft.waveform-audio',\n 'audio/wave': 'com.microsoft.waveform-audio',\n 'audio/webm': 'public.webm',\n 'audio/x-adpcm': 'public.ulaw-audio',\n 'audio/x-aiff': 'public.aiff-audio',\n 'audio/x-au': 'public.ulaw-audio',\n 'audio/x-flac': 'org.xiph.flac',\n 'audio/x-matroska': 'public.mka',\n 'audio/x-mid': 'public.midi',\n 'audio/x-midi': 'public.midi',\n 'audio/x-mp3': 'public.mp3',\n 'audio/x-mpeg-3': 'public.mp3',\n 'audio/x-mpeg': 'public.mp3',\n 'audio/x-mpeg3': 'public.mp3',\n 'audio/x-mpegurl': 'unofficial.m3u-playlist',\n 'audio/x-mpg': 'public.mp3',\n 'audio/x-ms-wax': 'com.microsoft.windows-media-wax',\n 'audio/x-ms-wma': 'com.microsoft.windows-media-wma',\n 'audio/x-ogg': 'org.xiph.ogg-vorbis',\n 'audio/x-pn-realaudio-plugin': 'com.real.realaudio',\n 'audio/x-pn-realaudio': 'com.real.realaudio',\n 'audio/x-pn-wav': 'com.microsoft.waveform-audio',\n 'audio/x-realaudio': 'com.real.realmedia',\n 'audio/x-scpls': 'unofficial.pls-playlist',\n 'audio/x-wav': 'com.microsoft.waveform-audio',\n 'font/opentype': 'public.opentype-font',\n 'image/bmp': 'com.microsoft.bmp',\n 'image/efax': 'com.js.efx-fax',\n 'image/eps': 'com.adobe.encapsulated-postscript',\n 'image/fpx': 'com.kodak.flashpix.image',\n 'image/gif': 'com.compuserve.gif',\n 'image/indd': 'com.adobe.indesign-image',\n 'image/indesign': 'com.adobe.indesign-image',\n 'image/jp2': 'public.jpeg2000',\n 'image/jpeg': 'public.jpeg',\n 'image/ms-bmp': 'com.microsoft.bmp',\n 'image/photoshop': 'com.adobe.photoshop-image',\n 'image/pict': 'com.apple.pict',\n 'image/pipeg': 'public.jpeg',\n 'image/pjpeg': 'public.jpeg',\n 'image/png': 'public.png',\n 'image/psd': 'com.adobe.photoshop-image',\n 'image/sgi': 'com.sgi.sgi-image',\n 'image/targa': 'com.truevision.tga-image',\n 'image/tga': 'com.truevision.tga-image',\n 'image/tiff': 'public.tiff',\n 'image/vnd.djvu': 'com.lizardtech.djvu',\n 'image/vndfpx': 'com.kodak.flashpix.image',\n 'image/vndnet-fpx': 'com.kodak.flashpix.image',\n 'image/webp': 'public.webp',\n 'image/x-bitmap': 'com.microsoft.bmp',\n 'image/x-bmp': 'com.microsoft.bmp',\n 'image/x-djvu': 'com.lizardtech.djvu',\n 'image/x-eps': 'com.adobe.encapsulated-postscript',\n 'image/x-icon': 'com.microsoft.ico',\n 'image/x-indesign': 'com.adobe.indesign-image',\n 'image/x-macpict': 'com.apple.pict',\n 'image/x-ms-bmp': 'com.microsoft.bmp',\n 'image/x-photoshop': 'com.adobe.photoshop-image',\n 'image/x-pict': 'com.apple.pict',\n 'image/x-quicktime': 'com.apple.quicktime-image',\n 'image/x-tiff': 'public.tiff',\n 'image/x-windows-bmp': 'com.microsoft.bmp',\n 'image/x-xbitmap': 'com.microsoft.bmp',\n 'image/x-xbm': 'public.xbitmap-image',\n 'image/xbm': 'public.xbitmap-image',\n 'multipart/x-gzip': 'org.gnu.gnu-zip-archive',\n 'multipart/x-zip': 'com.pkware.zip-archive',\n 'music/crescendo': 'public.midi',\n 'text/calendar': 'com.apple.ical.ics',\n 'text/css': 'public.css',\n 'text/directory': 'public.vcard',\n 'text/ecmascript': 'com.netscape.javascript-source',\n 'text/html': 'public.html',\n 'text/javascript': 'com.netscape.javascript-source',\n 'text/php': 'public.php-script',\n 'text/plain': 'public.plain-text',\n 'text/richtext': 'public.rtf',\n 'text/rtf': 'public.rtf',\n 'text/ruby-script': 'public.ruby-script',\n 'text/tex': 'org.tug.tex',\n 'text/vcard': 'public.vcard',\n 'text/vnd.sun.j2me.app-descriptor': 'com.sun.java-app-descriptor',\n 'text/x-asm': 'public.assembly-source',\n 'text/x-c-code': 'public.c-source',\n 'text/x-c-header': 'public.c-header',\n 'text/x-c': 'public.c-source',\n 'text/x-c++-code': 'public.c-plus-plus-source',\n 'text/x-c++-hdr': 'public.c-plus-plus-header',\n 'text/x-c++-src': 'public.c-plus-plus-source',\n 'text/x-c++src': 'public.c-plus-plus-source',\n 'text/x-h': 'public.c-header',\n 'text/x-java-source': 'com.sun.java-source',\n 'text/x-latex': 'org.tug.tex',\n 'text/x-objcppsrc': 'public.objective-c-plus-plus-source',\n 'text/x-objcsrc': 'public.objective-c-source',\n 'text/x-opml': 'unofficial.opml',\n 'text/x-perl-script': 'public.perl-script',\n 'text/x-perl': 'public.perl-script',\n 'text/x-php-script': 'public.php-script',\n 'text/x-python-script': 'public.python-script',\n 'text/x-python': 'public.python-script',\n 'text/x-scriptcsh': 'public.csh-script',\n 'text/x-scriptperl-module': 'public.perl-script',\n 'text/x-scriptperl': 'public.perl-script',\n 'text/x-scriptphyton': 'public.python-script',\n 'text/x-scriptsh': 'public.shell-script',\n 'text/x-server-parsed-html': 'public.html',\n 'text/x-tex': 'org.tug.tex',\n 'text/x-vcalendar': 'com.apple.ical.vcs',\n 'text/x-vcard': 'public.vcard',\n 'text/xhtml': 'public.html',\n 'text/xml': 'public.xml',\n 'video/3gpp': 'public.3gpp',\n 'video/3gpp2': 'public.3gpp2',\n 'video/avi': 'public.avi',\n 'video/MP2T': 'public.mpegts',\n 'video/mp4': 'public.mpeg4',\n 'video/mp4v': 'public.mpeg4',\n 'video/mpeg': 'public.mpeg',\n 'video/mpg': 'public.mpeg',\n 'video/msvideo': 'public.avi',\n 'video/ogg': 'org.xiph.ogg-theora',\n 'video/quicktime': 'com.apple.quicktime-movie',\n 'video/webm': 'public.webm',\n 'video/x-dv': 'public.dv',\n 'video/x-flv': 'public.flv',\n 'video/x-m4v': 'public.mpeg4',\n 'video/x-matroska': 'public.mkv',\n 'video/x-mpeg': 'public.mpeg',\n 'video/x-mpg': 'public.mpeg',\n 'video/x-ms-asf-plugin': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asf': 'com.microsoft.advanced-systems-format',\n 'video/x-ms-asx': 'com.microsoft.advanced-stream-redirector',\n 'video/x-ms-wm': 'com.microsoft.windows-media-wm',\n 'video/x-ms-wmd': 'com.microsoft.windows-media-wmd',\n 'video/x-ms-wmp': 'com.microsoft.windows-media-wmp',\n 'video/x-ms-wmv': 'com.microsoft.windows-media-wmv',\n 'video/x-ms-wmx': 'com.microsoft.windows-media-wmx',\n 'video/x-ms-wmz': 'com.microsoft.windows-media-wmz',\n 'video/x-ms-wvx': 'com.microsoft.windows-media-wvx',\n 'video/x-msvideo': 'public.avi',\n 'video/x-ogg': 'org.xiph.ogg-theora',\n 'x-msdos-program': 'com.microsoft.windows-executable',\n 'x-music/x-midi': 'public.midi',\n }\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n authApi: IccAuthApi,\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.crypto = crypto\n this.fetchImpl = fetchImpl\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: models.User, message?: models.Message, c: any = {}) {\n const document = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Document',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n c\n )\n\n return this.initDelegationsAndEncryptionKeys(user, message, document)\n }\n\n private initDelegationsAndEncryptionKeys(\n user: models.User,\n message: models.Message | undefined = undefined,\n document: models.Document\n ): Promise<models.Document> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(message || null, hcpId)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(document, message, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(document, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(document, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(document)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((document) =>\n this.crypto.addDelegationsAndEncryptionKeys(message || null, document, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return document\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, document: models.Document) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(document, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(document, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((document) =>\n this.crypto.appendEncryptionKeys(document, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(document, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n findByMessage(hcpartyId: string, message: models.Message) {\n return this.crypto\n .extractDelegationsSFKs(message, hcpartyId)\n .then((secretForeignKeys) =>\n this.findDocumentsByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n )\n .then((documents) => this.decrypt(hcpartyId, documents))\n .then(function (decryptedForms) {\n return decryptedForms\n })\n }\n\n decrypt(hcpartyId: string, documents: Array<models.Document>): Promise<Array<models.Document>> {\n return Promise.all(\n documents.map((document) =>\n this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(\n hcpartyId,\n document.id!,\n _.size(document.encryptionKeys) ? document.encryptionKeys! : document.delegations!\n )\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n console.log('Cannot decrypt document', document.id)\n return Promise.resolve(document)\n }\n\n if (sfks.length && (document.encryptedSelf || document.encryptedAttachment)) {\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, '')))\n .then((key: CryptoKey) =>\n Promise.all([\n document.encryptedSelf\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.AES.decrypt(key, string2ua(a2b(document.encryptedSelf!))).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n document.encryptedAttachment\n ? new Promise((resolve: (value: ArrayBuffer | null) => any) => {\n this.crypto.AES.decrypt(key, document.encryptedAttachment!).then(resolve, () => {\n console.log('Cannot decrypt document', document.id)\n resolve(null)\n })\n })\n : Promise.resolve(null),\n ])\n )\n .then((decrypted: [ArrayBuffer | null, ArrayBuffer | null]) => {\n if (decrypted) {\n if (decrypted[0]) {\n document = _.extend(document, JSON.parse(ua2string(decrypted[0])))\n }\n if (decrypted[1]) {\n document.decryptedAttachment = decrypted[1]\n }\n }\n return document\n })\n } else {\n return Promise.resolve(document)\n }\n })\n )\n ).catch(function (e: Error) {\n console.log(e)\n return Promise.resolve(documents)\n })\n }\n\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/octet-stream\", enckeys?: string, fileName?: string): Promise<ArrayBuffer>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"text/plain\", enckeys?: string, fileName?: string): Promise<string>\n //prettier-ignore\n getAttachmentAs(documentId: string, attachmentId: string, returnType: \"application/json\", enckeys?: string, fileName?: string): Promise<any>\n getAttachmentAs(\n documentId: string,\n attachmentId: string,\n returnType: 'application/octet-stream' | 'text/plain' | 'application/json',\n enckeys?: string,\n fileName?: string\n ): Promise<any> {\n const url =\n this.host +\n `/document/${documentId}/attachment/${attachmentId}` +\n '?ts=' +\n new Date().getTime() +\n (enckeys ? `&enckeys=${enckeys}` : '') +\n (fileName ? `&fileName=${fileName}` : '')\n return XHR.sendCommand('GET', url, this.headers, null, this.fetchImpl, returnType)\n .then((doc) => doc.body)\n .catch((err) => this.handleError(err))\n }\n\n // noinspection JSUnusedGlobalSymbols\n getAttachmentUrl(documentId: string, attachmentId: string, sfks: Array<{ delegatorId: string; key: CryptoKey }>, fileName?: string) {\n return this.authApi\n .token('GET', `/rest/v1/document/${documentId}/attachment/${attachmentId}`)\n .then(\n (token) =>\n this.host +\n `/document/${documentId}/attachment/${attachmentId}${token ? `;tokenid=${token}` : ''}` +\n (sfks && sfks.length ? '?enckeys=' + sfks.join(',') : '') +\n (fileName && fileName.length ? `${sfks && sfks.length ? '&' : '?'}fileName=${encodeURIComponent(fileName)}` : '')\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n uti(mimeType: string, extension: string) {\n return (mimeType && mimeType !== 'application/octet-stream' ? this.utiDefs[mimeType] : this.utiExts[extension]) || this.utiDefs[mimeType]\n }\n\n // noinspection JSUnusedGlobalSymbols\n mimeType(uti: string) {\n return this.utiRevDefs[uti]\n }\n}\n"]}
@@ -123,3 +123,4 @@ class IccFormXApi extends icc_api_1.IccFormApi {
123
123
  }
124
124
  }
125
125
  exports.IccFormXApi = IccFormXApi;
126
+ //# sourceMappingURL=icc-form-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-form-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-form-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccFormApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\n\nimport { a2b, hex2ua, string2ua, ua2string } from './utils/binary-utils'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccFormXApi extends IccFormApi {\n crypto: IccCryptoXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: models.User, patient: models.Patient, c: any) {\n const form = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Form',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n c || {}\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, form)\n }\n\n private initDelegationsAndEncryptionKeys(user: models.User, patient: models.Patient, form: models.Form): Promise<models.Form> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId!)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(form, patient, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(form, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(form, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(form)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((form) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, form, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return form\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, form: models.Form) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(form, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(form, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((contact) =>\n this.crypto.appendEncryptionKeys(contact, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(contact, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n /**\n * 1. Check whether there is a delegation with 'hcpartyId' or not.\n * 2. 'fetchHcParty[hcpartyId][1]': is encrypted AES exchange key by RSA public key of him.\n * 3. Obtain the AES exchange key, by decrypting the previous step value with hcparty private key\n * 3.1. KeyPair should be fetch from cache (in jwk)\n * 3.2. if it doesn't exist in the cache, it has to be loaded from Browser Local store, and then import it to WebCrypto\n * 4. Obtain the array of delegations which are delegated to his ID (hcpartyId) in this patient\n * 5. Decrypt and collect all keys (secretForeignKeys) within delegations of previous step (with obtained AES key of step 4)\n * 6. Do the REST call to get all contacts with (allSecretForeignKeysDelimitedByComa, hcpartyId)\n *\n * After these painful steps, you have the contacts of the patient.\n *\n * @param hcpartyId\n * @param patient (Promise)\n */\n findBy(hcpartyId: string, patient: models.Patient) {\n return this.crypto\n .extractDelegationsSFKs(patient, hcpartyId)\n .then((secretForeignKeys) => this.findFormsByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(',')))\n .then((forms) => this.decrypt(hcpartyId, forms))\n .then(function (decryptedForms) {\n return decryptedForms\n })\n }\n\n decrypt(hcpartyId: string, forms: Array<models.Form>) {\n return Promise.all(\n forms.map((form) =>\n this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(hcpartyId, form.id!, _.size(form.encryptionKeys) ? form.encryptionKeys! : form.delegations!)\n .then(({ extractedKeys: sfks }) => {\n if (form.encryptedSelf) {\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, '')))\n .then(\n (key) =>\n new Promise((resolve: (value: any) => any) => {\n this.crypto.AES.decrypt(key, string2ua(a2b(form.encryptedSelf!))).then(resolve, () => {\n console.log('Cannot decrypt form', form.id)\n resolve(null)\n })\n })\n )\n .then((decrypted: ArrayBuffer) => {\n if (decrypted) {\n form = _.extend(form, JSON.parse(ua2string(decrypted)))\n }\n return form\n })\n } else {\n return Promise.resolve(form)\n }\n })\n .catch(function (e) {\n console.log(e)\n })\n )\n ).catch(function (e) {\n console.log(e)\n })\n }\n}\n"]}
@@ -98,3 +98,4 @@ class IccHcpartyXApi extends icc_api_1.IccHcpartyApi {
98
98
  }
99
99
  }
100
100
  exports.IccHcpartyXApi = IccHcpartyXApi;
101
+ //# sourceMappingURL=icc-hcparty-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-hcparty-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-hcparty-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccHcpartyApi } from '../icc-api'\nimport { HealthcareParty } from '../icc-api/model/HealthcareParty'\nimport * as models from '../icc-api/model/models'\nimport { findName, garnishPersonWithName, hasName } from './utils/person-util'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccHcpartyXApi extends IccHcpartyApi {\n hcPartyKeysCache: { [key: string]: { [key: string]: string } } = {}\n hcPartyCache: { [key: string]: [number, Promise<HealthcareParty>] } = {}\n\n private CACHE_RETENTION_IN_MS = 300_000\n constructor(\n host: string,\n headers: { [key: string]: string },\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n }\n\n private getHcPartyFromCache(key: string) {\n const hcpInCache = this.hcPartyCache[key]\n const now = Date.now()\n if (hcpInCache && hcpInCache[0] > now) {\n return hcpInCache[1]\n }\n if (!hcpInCache) {\n console.log(`Cache miss for key ${key} because not in cache`)\n } else {\n console.log(`Cache miss for key ${key} because ${hcpInCache[0]} > ${now}`)\n }\n return null\n }\n\n completeNames(hcParty?: models.HealthcareParty): models.HealthcareParty | undefined {\n if (!hcParty) {\n return hcParty\n }\n\n let finalHcParty = hcParty\n\n if ((!!finalHcParty.lastName || !!finalHcParty.name) && !hasName(finalHcParty, models.PersonName.UseEnum.Official)) {\n finalHcParty = garnishPersonWithName(\n finalHcParty,\n models.PersonName.UseEnum.Official,\n finalHcParty.lastName,\n finalHcParty.firstName,\n finalHcParty.name\n )\n }\n\n if ((!finalHcParty.lastName || !finalHcParty.name) && !!hasName(finalHcParty, models.PersonName.UseEnum.Official)) {\n let officialName = findName(finalHcParty, models.PersonName.UseEnum.Official)\n finalHcParty = {\n ...finalHcParty,\n lastName: officialName!.lastName,\n firstName: officialName!.firstNames ? officialName!.firstNames[0] : undefined,\n name: officialName!.text,\n }\n }\n\n return finalHcParty\n }\n\n putHcPartyInCache(key: string, value: Promise<HealthcareParty> | null = null): Promise<HealthcareParty> {\n const hcp =\n value ||\n super.getHealthcareParty(key).catch((e) => {\n console.log(`Evict key ${key} because of error`)\n delete this.hcPartyCache[key]\n throw e\n })\n this.hcPartyCache[key] = [Date.now() + this.CACHE_RETENTION_IN_MS, hcp]\n return hcp\n }\n\n createHealthcareParty(body?: HealthcareParty): Promise<HealthcareParty> {\n return super.createHealthcareParty(this.completeNames(body))\n }\n\n createHealthcarePartyInGroup(groupId: string, body?: HealthcareParty): Promise<HealthcareParty> {\n return super.createHealthcarePartyInGroup(groupId, this.completeNames(body))\n }\n\n modifyHealthcareParty(body?: HealthcareParty): Promise<HealthcareParty | any> {\n if (body && body.id) {\n console.log(`Evict key ${body.id} because of modification`)\n delete this.hcPartyCache[body.id]\n }\n\n return super.modifyHealthcareParty(this.completeNames(body)).then((hcp) => this.putHcPartyInCache(hcp.id!, Promise.resolve(hcp)))\n }\n\n getHealthcareParty(healthcarePartyId: string, bypassCache = false): Promise<HealthcareParty | any> {\n const fromCache = bypassCache ? undefined : this.getHcPartyFromCache(healthcarePartyId)\n return fromCache || this.putHcPartyInCache(healthcarePartyId)\n }\n\n getHealthcareParties(healthcarePartyIds: string): Promise<Array<HealthcareParty> | any> {\n const ids = healthcarePartyIds.split(',').filter((x) => !!x)\n const cached: Array<[string, Promise<HealthcareParty> | null]> = ids.map((id) => [id, this.getHcPartyFromCache(id)])\n const toFetch = cached.filter((x) => !x[1]).map((x) => x[0])\n\n if (!toFetch.length) {\n return Promise.all(cached.map((x) => x[1]!))\n }\n\n const prom: Promise<HealthcareParty[]> = super.getHealthcareParties(toFetch.join(','))\n return Promise.all(\n cached.map(\n (x) =>\n x[1] ||\n this.putHcPartyInCache(\n x[0],\n prom.then((hcps) => hcps.find((h) => h.id === x[0])!)\n )\n )\n )\n }\n\n getCurrentHealthcareParty(): Promise<HealthcareParty | any> {\n return super.getCurrentHealthcareParty().then((hcp) => this.putHcPartyInCache(hcp.id!, Promise.resolve(hcp)))\n }\n\n getHcPartyKeysForDelegate(healthcarePartyId: string, bypassCache = false): Promise<{ [key: string]: string }> {\n const cached = bypassCache ? null : this.hcPartyKeysCache[healthcarePartyId]\n return cached\n ? Promise.resolve(cached)\n : super.getHcPartyKeysForDelegate(healthcarePartyId).then((r) => (this.hcPartyKeysCache[healthcarePartyId] = r))\n }\n\n isValidCbe(cbe: string) {\n cbe = cbe.replace(new RegExp('[^(0-9)]', 'g'), '')\n cbe = cbe.length == 9 ? '0' + cbe : cbe\n\n return 97 - (Number(cbe.substr(0, 8)) % 97) === Number(cbe.substr(8, 2))\n }\n}\n"]}
@@ -169,3 +169,4 @@ class IccHelementXApi extends icc_api_1.IccHelementApi {
169
169
  }
170
170
  }
171
171
  exports.IccHelementXApi = IccHelementXApi;
172
+ //# sourceMappingURL=icc-helement-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-helement-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-helement-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccHelementApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as models from '../icc-api/model/models'\n\nimport * as _ from 'lodash'\nimport * as moment from 'moment'\nimport { a2b, hex2ua, string2ua, ua2utf8 } from './utils/binary-utils'\n\nexport class IccHelementXApi extends IccHelementApi {\n crypto: IccCryptoXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n }\n\n newInstance(user: models.User, patient: models.Patient, h: any, confidential = false) {\n const hcpId = user.healthcarePartyId || user.patientId\n const helement = _.assign(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.HealthElement',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: hcpId,\n author: user.id,\n codes: [],\n tags: [],\n healthElementId: this.crypto.randomUuid(),\n openingDate: parseInt(moment().format('YYYYMMDDHHmmss')),\n },\n h || {}\n )\n\n return this.crypto\n .extractPreferredSfk(patient, hcpId!, confidential)\n .then((key) => {\n if (!key) {\n console.error(`SFK cannot be found for HealthElement ${helement.id}. The health element will not be reachable from the patient side`)\n }\n\n return this.crypto.initObjectDelegations(helement, patient, hcpId!, key)\n })\n .then((initData) => {\n _.extend(helement, {\n delegations: initData.delegations,\n cryptedForeignKeys: initData.cryptedForeignKeys,\n secretForeignKeys: initData.secretForeignKeys,\n })\n\n let promise = Promise.resolve(helement)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((helement) =>\n this.crypto\n .extendedDelegationsAndCryptedForeignKeys(helement, patient, hcpId!, delegateId, initData.secretId)\n .then((extraData) =>\n _.extend(helement, {\n delegations: extraData.delegations,\n cryptedForeignKeys: extraData.cryptedForeignKeys,\n })\n )\n .catch((e) => {\n console.log(e)\n return helement\n })\n ))\n )\n return promise\n })\n }\n\n // noinspection JSUnusedGlobalSymbols\n /**\n * 1. Check whether there is a delegation with 'hcpartyId' or not.\n * 2. 'fetchHcParty[hcpartyId][1]': is encrypted AES exchange key by RSA public key of him.\n * 3. Obtain the AES exchange key, by decrypting the previous step value with hcparty private key\n * 3.1. KeyPair should be fetch from cache (in jwk)\n * 3.2. if it doesn't exist in the cache, it has to be loaded from Browser Local store, and then import it to WebCrypto\n * 4. Obtain the array of delegations which are delegated to his ID (hcpartyId) in this patient\n * 5. Decrypt and collect all keys (secretForeignKeys) within delegations of previous step (with obtained AES key of step 4)\n * 6. Do the REST call to get all helements with (allSecretForeignKeysDelimitedByComa, hcpartyId)\n *\n * After these painful steps, you have the helements of the patient.\n *\n * @param hcpartyId\n * @param patient (Promise)\n * @param keepObsoleteVersions\n */\n\n findBy(hcpartyId: string, patient: models.Patient, keepObsoleteVersions = false) {\n return this.crypto\n .extractSFKsHierarchyFromDelegations(patient, hcpartyId)\n .then((secretForeignKeys) =>\n secretForeignKeys && secretForeignKeys.length > 0\n ? Promise.all(\n secretForeignKeys\n .reduce((acc, level) => {\n return acc.concat([\n {\n hcpartyId: level.hcpartyId,\n extractedKeys: level.extractedKeys.filter((key) => !acc.some((previousLevel) => previousLevel.extractedKeys.includes(key))),\n },\n ])\n }, [] as Array<{ hcpartyId: string; extractedKeys: Array<string> }>)\n .filter((l) => l.extractedKeys.length > 0)\n .map(({ hcpartyId, extractedKeys }) => this.findByHCPartyPatientSecretFKeys(hcpartyId, extractedKeys.join(',')))\n ).then((results) => _.uniqBy(_.flatMap(results), (x) => x.id))\n : Promise.resolve([])\n )\n .then((decryptedHelements: Array<models.HealthElement>) => {\n const byIds: { [key: string]: models.HealthElement } = {}\n\n if (keepObsoleteVersions) {\n return decryptedHelements\n } else {\n decryptedHelements.forEach((he) => {\n if (he.healthElementId) {\n const phe = byIds[he.healthElementId]\n if (!phe || !phe.modified || (he.modified && phe.modified < he.modified)) {\n byIds[he.healthElementId] = he\n }\n }\n })\n return _.values(byIds).filter((s: any) => !s.endOfLife)\n }\n })\n }\n\n findByHCPartyPatientSecretFKeys(hcPartyId: string, secretFKeys: string): Promise<Array<models.Contact> | any> {\n return super.findHealthElementsByHCPartyPatientForeignKeys(hcPartyId, secretFKeys).then((helements) => this.decrypt(hcPartyId, helements))\n }\n\n decrypt(hcpartyId: string, hes: Array<models.HealthElement>): Promise<Array<models.HealthElement>> {\n return Promise.all(\n hes.map((he) =>\n this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(hcpartyId, he.id!, _.size(he.encryptionKeys) ? he.encryptionKeys! : he.delegations!)\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n console.log('Cannot decrypt helement', he.id)\n return Promise.resolve(he)\n }\n if (he.encryptedSelf) {\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, ''))).then(\n (key) =>\n new Promise((resolve: (value: any) => any) =>\n this.crypto.AES.decrypt(key, string2ua(a2b(he.encryptedSelf!))).then(\n (dec) => {\n let jsonContent\n try {\n jsonContent = dec && ua2utf8(dec)\n jsonContent && _.assign(he, JSON.parse(jsonContent))\n } catch (e) {\n console.log('Cannot parse he', he.id, jsonContent || '<- Invalid encoding')\n }\n resolve(he)\n },\n () => {\n console.log('Cannot decrypt contact', he.id)\n resolve(he)\n }\n )\n )\n )\n } else {\n return Promise.resolve(he)\n }\n })\n )\n )\n }\n\n // noinspection JSUnusedGlobalSymbols\n serviceToHealthElement(user: models.User, patient: models.Patient, heSvc: models.Service, descr: string) {\n return this.newInstance(user, patient, {\n idService: heSvc.id,\n author: heSvc.author,\n responsible: heSvc.responsible,\n openingDate: heSvc.valueDate || heSvc.openingDate,\n descr: descr,\n idOpeningContact: heSvc.contactId,\n modified: heSvc.modified,\n created: heSvc.created,\n codes: heSvc.codes,\n tags: heSvc.tags,\n }).then((he) => {\n return this.createHealthElement(he)\n })\n }\n\n // noinspection JSUnusedGlobalSymbols, JSMethodCanBeStatic\n stringToCode(code: string) {\n const c = code.split('|')\n return new models.Code({\n type: c[0],\n code: c[1],\n version: c[2],\n id: code,\n })\n }\n}\n"]}
@@ -142,3 +142,4 @@ class IccInvoiceXApi extends icc_api_1.IccInvoiceApi {
142
142
  }
143
143
  }
144
144
  exports.IccInvoiceXApi = IccInvoiceXApi;
145
+ //# sourceMappingURL=icc-invoice-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-invoice-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-invoice-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccInvoiceApi, IccEntityrefApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport { Invoice } from '../icc-api/model/models'\n\nexport class IccInvoiceXApi extends IccInvoiceApi {\n crypto: IccCryptoXApi\n entityrefApi: IccEntityrefApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n entityrefApi: IccEntityrefApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.entityrefApi = entityrefApi\n }\n\n newInstance(user: models.User, patient: models.Patient, inv?: any): Promise<models.Invoice> {\n const invoice = new models.Invoice(\n _.extend(\n {\n id: this.crypto.randomUuid(),\n groupId: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Invoice',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n invoicingCodes: [],\n },\n inv || {}\n )\n )\n\n return this.initDelegationsAndEncryptionKeys(user, patient, invoice)\n }\n\n private initDelegationsAndEncryptionKeys(user: models.User, patient: models.Patient, invoice: models.Invoice): Promise<models.Invoice> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId)\n .then((secretForeignKeys) =>\n Promise.all([\n this.crypto.initObjectDelegations(invoice, patient, hcpId!, secretForeignKeys.extractedKeys[0]),\n this.crypto.initEncryptionKeys(invoice, hcpId!),\n ])\n )\n .then((initData) => {\n const dels = initData[0]\n const eks = initData[1]\n _.extend(invoice, {\n delegations: dels.delegations,\n cryptedForeignKeys: dels.cryptedForeignKeys,\n secretForeignKeys: dels.secretForeignKeys,\n encryptionKeys: eks.encryptionKeys,\n })\n\n let promise = Promise.resolve(invoice)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.financialInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((invoice) =>\n this.crypto.addDelegationsAndEncryptionKeys(patient, invoice, hcpId!, delegateId, dels.secretId, eks.secretId).catch((e) => {\n console.log(e)\n return invoice\n })\n ))\n )\n return promise\n })\n }\n\n initEncryptionKeys(user: models.User, invoice: models.Invoice) {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(invoice, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(invoice, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.financialInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((invoice) =>\n this.crypto.appendEncryptionKeys(invoice, hcpId!, delegateId, eks.secretId).then((extraEks) => {\n return _.extend(invoice, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n ))\n )\n return promise\n })\n }\n\n createInvoice(invoice: Invoice, prefix?: string): Promise<Invoice> {\n if (!prefix) {\n return super.createInvoice(invoice)\n }\n if (!invoice.id) {\n invoice.id = this.crypto.randomUuid()\n }\n return this.getNextInvoiceReference(prefix, this.entityrefApi)\n .then((reference) => this.createInvoiceReference(reference, invoice.id!, prefix, this.entityrefApi))\n .then((entityReference) => {\n if (!entityReference.id) {\n throw new Error('Cannot create invoice')\n }\n\n if (invoice.internshipNihii) {\n const ref = entityReference.id.substr(prefix.length).replace('0', '1')\n invoice.invoiceReference = ref\n } else {\n invoice.invoiceReference = entityReference.id.substr(prefix.length)\n }\n return super.createInvoice(invoice)\n })\n }\n\n getNextInvoiceReference(prefix: string, entityrefApi: IccEntityrefApi): Promise<number> {\n return entityrefApi.getLatest(prefix).then((entRef: models.EntityReference) => {\n if (!entRef || !entRef.id || !entRef.id!.startsWith(prefix)) return 1\n const sequenceNumber = entRef.id!.split(':').pop() || 0\n return Number(sequenceNumber) + 1\n })\n }\n\n createInvoiceReference(nextReference: number, docId: string, prefix: string, entityrefApi: IccEntityrefApi): Promise<models.EntityReference> {\n return entityrefApi\n .createEntityReference(\n new models.EntityReference({\n id: prefix + nextReference.toString().padStart(6, '0'),\n docId,\n })\n )\n .catch((err) => {\n console.log(err)\n return this.createInvoiceReference(nextReference + 1, docId, prefix, entityrefApi)\n })\n }\n\n /**\n * 1. Check whether there is a delegation with 'hcpartyId' or not.\n * 2. 'fetchHcParty[hcpartyId][1]': is encrypted AES exchange key by RSA public key of him.\n * 3. Obtain the AES exchange key, by decrypting the previous step value with hcparty private key\n * 3.1. KeyPair should be fetch from cache (in jwk)\n * 3.2. if it doesn't exist in the cache, it has to be loaded from Browser Local store, and then import it to WebCrypto\n * 4. Obtain the array of delegations which are delegated to his ID (hcpartyId) in this patient\n * 5. Decrypt and collect all keys (secretForeignKeys) within delegations of previous step (with obtained AES key of step 4)\n * 6. Do the REST call to get all invoices with (allSecretForeignKeysDelimitedByComa, hcpartyId)\n *\n * After these painful steps, you have the invoices of the patient.\n *\n * @param hcpartyId\n * @param patient (Promise)\n */\n findBy(hcpartyId: string, patient: models.Patient): Promise<Array<models.Invoice>> {\n return this.crypto\n .extractDelegationsSFKs(patient, hcpartyId)\n .then((secretForeignKeys) =>\n this.findInvoicesByHCPartyPatientForeignKeys(secretForeignKeys.hcpartyId!, secretForeignKeys.extractedKeys.join(','))\n )\n .then((invoices) => this.decrypt(hcpartyId, invoices))\n .then(function (decryptedInvoices) {\n return decryptedInvoices\n })\n }\n\n encrypt(user: models.User, invoices: Array<models.Invoice>) {\n return Promise.resolve(invoices)\n }\n\n decrypt(hcpartyId: string, invoices: Array<models.Invoice>): Promise<Array<models.Invoice>> {\n return Promise.resolve(invoices)\n }\n}\n"]}
@@ -59,3 +59,4 @@ class IccMessageXApi extends icc_api_1.IccMessageApi {
59
59
  }
60
60
  }
61
61
  exports.IccMessageXApi = IccMessageXApi;
62
+ //# sourceMappingURL=icc-message-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-message-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-message-x-api.ts"],"names":[],"mappings":";;;AAAA,wCAA4E;AAK5E,4BAA2B;AAuB3B,MAAa,cAAe,SAAQ,uBAAa;IAS/C,YACE,IAAY,EACZ,OAAkC,EAClC,MAAqB,EACrB,YAA6B,EAC7B,kBAAmC,EACnC,WAA2B,EAC3B,YAA6B,EAC7B,WAA2B,EAC3B,UAA0B,EAC1B,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;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,qCAAqC;IACrC,WAAW,CAAC,IAAU,EAAE,CAAM;QAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,sBAAsB,CAAC,IAAU,EAAE,OAAuB,EAAE,CAAM;QAChE,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CACtB;YACE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,mCAAmC;YAC1C,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC7B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YAC9B,WAAW,EAAE,IAAI,CAAC,iBAAiB;YACnC,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;SACT,EACD,CAAC,IAAI,EAAE,CACR,CAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM;aACf,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC;aACtC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5H,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;gBAChB,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,OAAO,CAAC,CACrC;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,QAAQ,EAAE,EAAE,CACnC,IAAI,CAAC,MAAM;iBACR,wCAAwC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;iBAClG,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAClB,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACjB,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,QAAQ,CAAA;YACjB,CAAC,CAAC,CACL,CAAC,CACL,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACN,CAAC;CACF;AAvFD,wCAuFC","sourcesContent":["import { IccEntityrefApi, IccInsuranceApi, IccMessageApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport { IccDocumentXApi } from './icc-document-x-api'\nimport { IccInvoiceXApi } from './icc-invoice-x-api'\n\nimport * as _ from 'lodash'\nimport * as moment from 'moment'\n\nimport {\n AbstractFilterPatient,\n EntityReference,\n FilterChainPatient,\n HealthcareParty,\n Insurance,\n Invoice,\n ListOfIds,\n Message,\n PaginatedListPatient,\n Patient,\n PatientHealthCareParty,\n Receipt,\n ReferralPeriod,\n User,\n} from '../icc-api/model/models'\n\nimport { IccReceiptXApi } from './icc-receipt-x-api'\nimport { IccPatientXApi } from './icc-patient-x-api'\n\nexport class IccMessageXApi extends IccMessageApi {\n private crypto: IccCryptoXApi\n private insuranceApi: IccInsuranceApi\n private entityReferenceApi: IccEntityrefApi\n private receiptXApi: IccReceiptXApi\n private invoiceXApi: IccInvoiceXApi\n private documentXApi: IccDocumentXApi\n private patientApi: IccPatientXApi\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n insuranceApi: IccInsuranceApi,\n entityReferenceApi: IccEntityrefApi,\n invoiceXApi: IccInvoiceXApi,\n documentXApi: IccDocumentXApi,\n receiptXApi: IccReceiptXApi,\n patientApi: IccPatientXApi,\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.insuranceApi = insuranceApi\n this.entityReferenceApi = entityReferenceApi\n this.receiptXApi = receiptXApi\n this.invoiceXApi = invoiceXApi\n this.documentXApi = documentXApi\n this.patientApi = patientApi\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: User, m: any) {\n return this.newInstanceWithPatient(user, null, m)\n }\n\n newInstanceWithPatient(user: User, patient: Patient | null, m: any) {\n const message = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Message',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId,\n author: user.id,\n codes: [],\n tags: [],\n },\n m || {}\n )\n\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto\n .extractDelegationsSFKs(patient, hcpId)\n .then((secretForeignKeys) => this.crypto.initObjectDelegations(message, patient, hcpId!, secretForeignKeys.extractedKeys[0]))\n .then((initData) => {\n _.extend(message, {\n delegations: initData.delegations,\n cryptedForeignKeys: initData.cryptedForeignKeys,\n secretForeignKeys: initData.secretForeignKeys,\n })\n\n let promise = Promise.resolve(message)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((helement) =>\n this.crypto\n .extendedDelegationsAndCryptedForeignKeys(helement, patient, hcpId!, delegateId, initData.secretId)\n .then((extraData) =>\n _.extend(helement, {\n delegations: extraData.delegations,\n cryptedForeignKeys: extraData.cryptedForeignKeys,\n })\n )\n .catch((e) => {\n console.log(e)\n return helement\n })\n ))\n )\n return promise\n })\n }\n}\n"]}
@@ -835,3 +835,4 @@ class IccPatientXApi extends icc_api_1.IccPatientApi {
835
835
  }
836
836
  }
837
837
  exports.IccPatientXApi = IccPatientXApi;
838
+ //# sourceMappingURL=icc-patient-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-patient-x-api.js","sourceRoot":"","sources":["../../icc-x-api/icc-patient-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { IccPatientApi, IccEntityrefApi, IccAuthApi } from '../icc-api'\nimport { IccCryptoXApi } from './icc-crypto-x-api'\nimport { IccContactXApi } from './icc-contact-x-api'\nimport { IccFormXApi } from './icc-form-x-api'\nimport { IccHcpartyXApi } from './icc-hcparty-x-api'\nimport { IccInvoiceXApi } from './icc-invoice-x-api'\nimport { IccDocumentXApi } from './icc-document-x-api'\nimport { IccHelementXApi } from './icc-helement-x-api'\nimport { IccClassificationXApi } from './icc-classification-x-api'\n\nimport * as _ from 'lodash'\nimport * as models from '../icc-api/model/models'\nimport {\n CalendarItem,\n Classification,\n Delegation,\n Document,\n HealthcareParty,\n IcureStub,\n Invoice,\n ListOfIds,\n Patient,\n PersonName,\n} from '../icc-api/model/models'\nimport { retry } from './utils'\nimport { utils } from './crypto/utils'\nimport { IccCalendarItemXApi } from './icc-calendar-item-x-api'\nimport { b64_2ab } from '../icc-api/model/ModelHelper'\nimport { b2a, hex2ua, string2ua, ua2hex, ua2utf8, utf8_2ua } from './utils/binary-utils'\nimport { findName, garnishPersonWithName, hasName } from './utils/person-util'\n\n// noinspection JSUnusedGlobalSymbols\nexport class IccPatientXApi extends IccPatientApi {\n crypto: IccCryptoXApi\n contactApi: IccContactXApi\n formApi: IccFormXApi\n helementApi: IccHelementXApi\n invoiceApi: IccInvoiceXApi\n hcpartyApi: IccHcpartyXApi\n documentApi: IccDocumentXApi\n classificationApi: IccClassificationXApi\n calendarItemApi: IccCalendarItemXApi\n\n private readonly encryptedKeys: Array<string>\n\n constructor(\n host: string,\n headers: { [key: string]: string },\n crypto: IccCryptoXApi,\n contactApi: IccContactXApi,\n formApi: IccFormXApi,\n helementApi: IccHelementXApi,\n invoiceApi: IccInvoiceXApi,\n documentApi: IccDocumentXApi,\n hcpartyApi: IccHcpartyXApi,\n classificationApi: IccClassificationXApi,\n calendarItemaApi: IccCalendarItemXApi,\n encryptedKeys: Array<string> = ['note'],\n fetchImpl: (input: RequestInfo, init?: RequestInit) => Promise<Response> = typeof window !== 'undefined'\n ? window.fetch\n : typeof self !== 'undefined'\n ? self.fetch\n : fetch\n ) {\n super(host, headers, fetchImpl)\n this.crypto = crypto\n this.contactApi = contactApi\n this.formApi = formApi\n this.helementApi = helementApi\n this.invoiceApi = invoiceApi\n this.hcpartyApi = hcpartyApi\n this.documentApi = documentApi\n this.classificationApi = classificationApi\n this.calendarItemApi = calendarItemaApi\n\n this.encryptedKeys = encryptedKeys\n }\n\n // noinspection JSUnusedGlobalSymbols\n newInstance(user: models.User, p: any) {\n const patient = _.extend(\n {\n id: this.crypto.randomUuid(),\n _type: 'org.taktik.icure.entities.Patient',\n created: new Date().getTime(),\n modified: new Date().getTime(),\n responsible: user.healthcarePartyId || user.patientId,\n author: user.id,\n codes: [],\n tags: [],\n },\n p || {}\n )\n return this.initDelegations(patient, user)\n }\n\n completeNames(patient: models.Patient): models.Patient {\n let finalPatient = patient\n\n if (!!finalPatient.lastName && !hasName(finalPatient, models.PersonName.UseEnum.Official)) {\n finalPatient = garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Official, finalPatient.lastName, finalPatient.firstName)\n }\n\n if (!!finalPatient.maidenName && !hasName(finalPatient, models.PersonName.UseEnum.Maiden)) {\n finalPatient = garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Maiden, finalPatient.maidenName, finalPatient.firstName)\n }\n\n if (!!finalPatient.alias && !hasName(finalPatient, models.PersonName.UseEnum.Nickname)) {\n finalPatient = garnishPersonWithName(finalPatient, models.PersonName.UseEnum.Nickname, finalPatient.alias, finalPatient.firstName)\n }\n\n if (!finalPatient.lastName && !!hasName(finalPatient, models.PersonName.UseEnum.Official)) {\n let officialName = findName(finalPatient, models.PersonName.UseEnum.Official)\n finalPatient = {\n ...finalPatient,\n lastName: officialName!.lastName,\n firstName: officialName!.firstNames?.[0],\n }\n }\n\n if (!finalPatient.maidenName && !!hasName(finalPatient, models.PersonName.UseEnum.Maiden)) {\n finalPatient = {\n ...finalPatient,\n maidenName: findName(finalPatient, models.PersonName.UseEnum.Maiden)!.lastName,\n }\n }\n\n if (!finalPatient.alias && !!hasName(finalPatient, models.PersonName.UseEnum.Nickname)) {\n finalPatient = {\n ...finalPatient,\n alias: findName(finalPatient, models.PersonName.UseEnum.Nickname)!.lastName,\n }\n }\n\n return finalPatient\n }\n\n initDelegations(patient: models.Patient, user: models.User, secretForeignKey?: string): Promise<models.Patient> {\n return this.crypto\n .initObjectDelegations(patient, null, (user.healthcarePartyId || user.patientId)!, secretForeignKey || null)\n .then((initData) => {\n _.extend(patient, { delegations: initData.delegations })\n\n let promise = Promise.resolve(patient)\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise\n .then((patient) =>\n this.crypto.extendedDelegationsAndCryptedForeignKeys(\n patient,\n null,\n (user.healthcarePartyId || user.patientId)!,\n delegateId,\n initData.secretId\n )\n )\n .then((extraData) => _.extend(patient, { delegations: extraData.delegations }))\n .catch((e) => {\n console.log(e)\n return patient\n }))\n )\n return promise\n })\n }\n\n initConfidentialDelegation(patient: models.Patient, user: models.User): Promise<models.Patient | null> {\n const ownerId = user.healthcarePartyId || user.patientId\n return this.crypto.extractPreferredSfk(patient, ownerId!, true).then((k) => {\n if (!k) {\n const secretId = this.crypto.randomUuid()\n return this.crypto\n .decryptAndImportAesHcPartyKeysForDelegators([ownerId!], ownerId!)\n .then((hcPartyKeys) => {\n return this.crypto.AES.encrypt(hcPartyKeys[0].key, string2ua(patient.id + ':' + secretId).buffer as ArrayBuffer)\n })\n .then((newDelegation) => {\n ;(patient.delegations![ownerId!] || (patient.delegations![ownerId!] = [])).push(\n new Delegation({\n owner: ownerId,\n delegatedTo: ownerId,\n tag: 'confidential',\n key: ua2hex(newDelegation),\n })\n )\n return patient.rev ? this.modifyPatientWithUser(user, patient) : this.createPatientWithUser(user, patient)\n })\n } else {\n return patient\n }\n })\n }\n\n createPatient(body?: models.Patient): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n createPatientWithUser(user: models.User, body?: models.Patient): Promise<models.Patient | any> {\n return body\n ? this.encrypt(user, [_.cloneDeep(this.completeNames(body))])\n .then((pats) => super.createPatient(pats[0]))\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n : Promise.resolve(null)\n }\n\n filterBy(\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n skip?: number,\n sort?: string,\n desc?: boolean,\n body?: models.FilterChainPatient\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n filterByWithUser(\n user: models.User,\n filterChain: models.FilterChainPatient,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n skip?: number,\n sort?: string,\n desc?: boolean\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .filterPatientsBy(startKey, startDocumentId, limit, skip, sort, desc, filterChain)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n findByAccessLogUserAfterDate(\n userId: string,\n accessType?: string,\n startDate?: number,\n startKey?: string,\n startDocumentId?: string,\n limit?: number\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByAccessLogUserAfterDateWithUser(\n user: models.User,\n userId: string,\n accessType?: string,\n startDate?: number,\n startKey?: string,\n startDocumentId?: string,\n limit?: number\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .findByAccessLogUserAfterDate(userId, accessType, startDate, startKey, startDocumentId, limit)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n findByAccessLogUserAfterDate_1(externalId: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByExternalIdWithUser(user: models.User, externalId: string): Promise<models.Patient | any> {\n return super\n .findByExternalId(externalId)\n .then((pats) => this.decrypt(user, [pats]))\n .then((x) => x[0])\n }\n\n findByNameBirthSsinAuto(\n healthcarePartyId?: string,\n filterValue?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n findByNameBirthSsinAutoWithUser(\n user: models.User,\n healthcarePartyId?: string,\n filterValue?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .findByNameBirthSsinAuto(healthcarePartyId, filterValue, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n fuzzySearch(firstName?: string, lastName?: string, dateOfBirth?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n fuzzySearchWithUser(user: models.User, firstName?: string, lastName?: string, dateOfBirth?: number): Promise<Array<models.Patient> | any> {\n return super.fuzzySearch(firstName, lastName, dateOfBirth).then((pats) => this.decrypt(user, pats))\n }\n\n getPatient(patientId: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n getPatientRaw(patientId: string): Promise<models.Patient | any> {\n return super.getPatient(patientId)\n }\n\n getPatientWithUser(user: models.User, patientId: string): Promise<models.Patient | any> {\n return super\n .getPatient(patientId)\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n }\n\n getPatients(body?: models.ListOfIds): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n getPatientsWithUser(user: models.User, body?: models.ListOfIds): Promise<Array<models.Patient> | any> {\n return super.getPatients(body).then((pats) => this.decrypt(user, pats))\n }\n\n listDeletedPatients(startDate?: number, endDate?: number, desc?: boolean, startDocumentId?: string, limit?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listDeletedPatientsWithUser(\n user: models.User,\n startDate?: number,\n endDate?: number,\n desc?: boolean,\n startDocumentId?: string,\n limit?: number\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listDeletedPatients(startDate, endDate, desc, startDocumentId, limit)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listDeletedPatients_2(firstName?: string, lastName?: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listDeletedPatientsByNameWithUser(user: models.User, firstName?: string, lastName?: string): Promise<Array<models.Patient> | any> {\n return super.listDeletedPatientsByName(firstName, lastName).then((rows) => this.decrypt(user, rows, false))\n }\n\n listOfMergesAfter(date: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listOfMergesAfterWithUser(user: models.User, date: number): Promise<Array<models.Patient> | any> {\n return super.listOfMergesAfter(date).then((pats) => this.decrypt(user, pats, false))\n }\n\n listOfPatientsModifiedAfter(date: number, startKey?: number, startDocumentId?: string, limit?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listOfPatientsModifiedAfterWithUser(\n user: models.User,\n date: number,\n startKey?: number,\n startDocumentId?: string,\n limit?: number\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listOfPatientsModifiedAfter(date, startKey, startDocumentId, limit)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listPatients(hcPartyId?: string, sortField?: string, startKey?: string, startDocumentId?: string, limit?: number, sortDirection?: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listPatientsWithUser(\n user: models.User,\n hcPartyId?: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listPatients(hcPartyId, sortField, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listPatientsByHcParty(\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listPatientsByHcPartyWithUser(\n user: models.User,\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listPatientsByHcParty(hcPartyId, sortField, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n listPatientsOfHcParty(\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n listPatientsOfHcPartyWithUser(\n user: models.User,\n hcPartyId: string,\n sortField?: string,\n startKey?: string,\n startDocumentId?: string,\n limit?: number,\n sortDirection?: string\n ): Promise<models.PaginatedListPatient | any> {\n return super\n .listPatientsOfHcParty(hcPartyId, sortField, startKey, startDocumentId, limit, sortDirection)\n .then((pl) => this.decrypt(user, pl.rows!, false).then((dr) => Object.assign(pl, { rows: dr })))\n }\n\n mergeInto(toId: string, fromIds: string): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n mergeIntoWithUser(user: models.User, toId: string, fromIds: string): Promise<models.Patient | any> {\n return super\n .mergeInto(toId, fromIds)\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n }\n\n modifyPatient(body?: models.Patient): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n modifyPatientRaw(body?: models.Patient): Promise<models.Patient | any> {\n return super.modifyPatient(body)\n }\n\n modifyPatientWithUser(user: models.User, body?: models.Patient): Promise<models.Patient | null> {\n return body\n ? this.encrypt(user, [_.cloneDeep(this.completeNames(body))])\n .then((pats) => super.modifyPatient(pats[0]))\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n : Promise.resolve(null)\n }\n\n modifyPatientReferral(patientId: string, referralId: string, start?: number, end?: number): never {\n throw new Error('Cannot call a method that returns contacts without providing a user for de/encryption')\n }\n\n modifyPatientReferralWithUser(\n user: models.User,\n patientId: string,\n referralId: string,\n start?: number,\n end?: number\n ): Promise<models.Patient | any> {\n return super\n .modifyPatientReferral(patientId, referralId, start, end)\n .then((p) => this.decrypt(user, [p]))\n .then((pats) => pats[0])\n }\n\n encrypt(user: models.User, pats: Array<models.Patient>): Promise<Array<models.Patient>> {\n return Promise.all(\n pats.map((p) =>\n (p.encryptionKeys && Object.keys(p.encryptionKeys).some((k) => !!p.encryptionKeys![k].length)\n ? Promise.resolve(p)\n : this.initEncryptionKeys(user, p)\n )\n .then((p: Patient) =>\n this.crypto.extractKeysFromDelegationsForHcpHierarchy((user.healthcarePartyId || user.patientId)!, p.id!, p.encryptionKeys!)\n )\n .then((sfks: { extractedKeys: Array<string>; hcpartyId: string }) =>\n this.crypto.AES.importKey('raw', hex2ua(sfks.extractedKeys[0].replace(/-/g, '')))\n )\n .then((key: CryptoKey) =>\n utils.crypt(\n p,\n (obj: { [key: string]: string }) =>\n this.crypto.AES.encrypt(\n key,\n utf8_2ua(\n JSON.stringify(obj, (k, v) => {\n return v instanceof ArrayBuffer || v instanceof Uint8Array\n ? b2a(new Uint8Array(v).reduce((d, b) => d + String.fromCharCode(b), ''))\n : v\n })\n )\n ),\n this.encryptedKeys\n )\n )\n )\n )\n }\n\n decrypt(user: models.User, pats: Array<models.Patient>, fillDelegations = true): Promise<Array<models.Patient>> {\n return (\n user.healthcarePartyId\n ? this.hcpartyApi.getHealthcareParty(user.healthcarePartyId!).then((hcp) => [hcp.id, hcp.parentId])\n : Promise.resolve([user.patientId])\n ).then((ids) => {\n const hcpId = ids[0]\n //First check that we have no dangling delegation\n const patsWithMissingDelegations = pats.filter(\n (p) =>\n p.delegations &&\n ids.some((id) => p.delegations![id!] && !p.delegations![id!].length) &&\n !Object.values(p.delegations).some((d) => d.length > 0)\n )\n\n let prom: Promise<{ [key: string]: models.Patient }> = Promise.resolve({})\n fillDelegations &&\n patsWithMissingDelegations.forEach((p) => {\n prom = prom.then((acc) =>\n this.initDelegations(p, user).then((p) =>\n this.modifyPatientWithUser(user, p).then((mp) => {\n acc[p.id!] = mp || p\n return acc\n })\n )\n )\n })\n\n return prom\n .then((acc: { [key: string]: models.Patient }) =>\n pats.map((p) => {\n const fixedPatient = acc[p.id!]\n return fixedPatient || p\n })\n )\n .then((pats) => {\n return Promise.all(\n pats.map((p) => {\n return p.encryptedSelf\n ? this.crypto\n .extractKeysFromDelegationsForHcpHierarchy(hcpId!, p.id!, _.size(p.encryptionKeys) ? p.encryptionKeys! : p.delegations!)\n .then(({ extractedKeys: sfks }) => {\n if (!sfks || !sfks.length) {\n //console.log(\"Cannot decrypt contact\", ctc.id)\n return Promise.resolve(p)\n }\n return this.crypto.AES.importKey('raw', hex2ua(sfks[0].replace(/-/g, ''))).then((key) =>\n utils\n .decrypt(p, (ec) =>\n this.crypto.AES.decrypt(key, ec)\n .then((dec) => {\n const jsonContent = dec && ua2utf8(dec)\n try {\n return JSON.parse(jsonContent)\n } catch (e) {\n console.log('Cannot parse patient', p.id, jsonContent || 'Invalid content')\n return p\n }\n })\n .catch((err) => {\n console.log('Cannot decrypt patient', p.id, err)\n return p\n })\n )\n .then((p) => {\n if (p.picture && !(p.picture instanceof ArrayBuffer)) {\n p.picture = b64_2ab(p.picture)\n }\n return p\n })\n )\n })\n : Promise.resolve(p)\n })\n )\n })\n })\n }\n\n initEncryptionKeys(user: models.User, pat: models.Patient): Promise<models.Patient> {\n const hcpId = user.healthcarePartyId || user.patientId\n return this.crypto.initEncryptionKeys(pat, hcpId!).then((eks) => {\n let promise = Promise.resolve(\n _.extend(pat, {\n encryptionKeys: eks.encryptionKeys,\n })\n )\n ;(user.autoDelegations ? (user.autoDelegations.all || []).concat(user.autoDelegations.medicalInformation || []) : []).forEach(\n (delegateId) =>\n (promise = promise.then((patient) =>\n this.crypto\n .appendEncryptionKeys(patient, hcpId!, delegateId, eks.secretId)\n .then((extraEks) => {\n return _.extend(patient, {\n encryptionKeys: extraEks.encryptionKeys,\n })\n })\n .catch((e) => {\n console.log(e.message)\n return patient\n })\n ))\n )\n return promise\n })\n }\n\n share(\n user: models.User,\n patId: string,\n ownerId: string,\n delegateIds: Array<string>,\n delegationTags: { [key: string]: Array<string> }\n ): Promise<{\n patient: models.Patient | null\n statuses: { [key: string]: { success: boolean | null; error: Error | null } }\n } | null> {\n const addDelegationsAndKeys = (\n dtos: Array<models.Form | models.Document | models.Contact | models.HealthElement | models.Classification | models.CalendarItem>,\n markerPromise: Promise<any>,\n delegateId: string,\n patient: models.Patient | null\n ) => {\n return dtos.reduce(\n (p, x) =>\n p.then(() =>\n Promise.all([this.crypto.extractDelegationsSFKs(x, ownerId), this.crypto.extractEncryptionsSKs(x, ownerId)]).then(([sfks, eks]) => {\n //console.log(`share ${x.id} to ${delegateId}`)\n return this.crypto\n .addDelegationsAndEncryptionKeys(patient, x, ownerId, delegateId, sfks.extractedKeys[0], eks.extractedKeys[0])\n .catch((e: any) => {\n console.log(e)\n return x\n })\n })\n ),\n markerPromise\n )\n }\n\n const allTags: string[] = _.uniq(_.flatMap(Object.values(delegationTags)))\n\n // Determine which keys to share, depending on the delegation tag. For example, anonymousMedicalData only shares encryption keys and no delegations or secret foreign keys.\n const shareDelegations: boolean = allTags.some((tag) => tag != 'anonymousMedicalInformation')\n const shareEncryptionKeys = true\n const shareCryptedForeignKeys: boolean = allTags.some((tag) => tag != 'anonymousMedicalInformation')\n\n // Anonymous sharing, will not change anything to the patient, only its contacts and health elements.\n const shareAnonymously: boolean = allTags.every((tag) => tag == 'anonymousMedicalInformation')\n\n return this.hcpartyApi.getHealthcareParty(ownerId).then((hcp) => {\n const parentId = hcp.parentId\n const status = {\n contacts: {\n success:\n allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n forms: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n healthElements: {\n success:\n allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n invoices: {\n success: allTags.includes('financialInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n documents: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n classifications: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n calendarItems: {\n success: allTags.includes('medicalInformation') || allTags.includes('all') ? false : null,\n error: null,\n modified: 0,\n },\n patient: { success: false, error: null, modified: 0 } as {\n success: boolean\n error: Error | null\n },\n }\n return retry(() => this.getPatientWithUser(user, patId))\n .then((patient: models.Patient) =>\n patient.encryptionKeys && Object.keys(patient.encryptionKeys || {}).length\n ? Promise.resolve(patient)\n : this.initEncryptionKeys(user, patient).then((patient: models.Patient) => this.modifyPatientWithUser(user, patient))\n )\n .then((patient: models.Patient | null) => {\n if (!patient) {\n status.patient = {\n success: false,\n error: new Error('Patient does not exist or cannot initialise encryption keys'),\n }\n return Promise.resolve({ patient: patient, statuses: status })\n }\n\n return this.crypto.extractDelegationsSFKsAndEncryptionSKs(patient, ownerId).then(([delSfks, ecKeys]) => {\n return delSfks.length\n ? Promise.all([\n retry(() =>\n this.helementApi\n .findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((hes) =>\n parentId\n ? this.helementApi\n .findHealthElementsDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreHes) => _.uniqBy(hes.concat(moreHes), 'id'))\n : hes\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.formApi\n .findFormsDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((frms) =>\n parentId\n ? this.formApi\n .findFormsDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreFrms) => _.uniqBy(frms.concat(moreFrms), 'id'))\n : frms\n )\n ) as Promise<Array<models.Form>>,\n retry(() =>\n this.contactApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((ctcs) =>\n parentId\n ? this.contactApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreCtcs) => _.uniqBy(ctcs.concat(moreCtcs), 'id'))\n : ctcs\n )\n ) as Promise<Array<models.Contact>>,\n retry(() =>\n this.invoiceApi\n .findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((ivs) =>\n parentId\n ? this.invoiceApi\n .findInvoicesDelegationsStubsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreIvs) => _.uniqBy(ivs.concat(moreIvs), 'id'))\n : ivs\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((cls) =>\n parentId\n ? this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))\n : cls\n )\n ) as Promise<Array<models.Classification>>,\n retry(() =>\n this.calendarItemApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((cls) =>\n parentId\n ? this.calendarItemApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))\n : cls\n )\n ) as Promise<Array<models.CalendarItem>>,\n ]).then(([hes, frms, ctcs, ivs, cls, cis]) => {\n const cloneKeysAndDelegations = function (x: models.IcureStub) {\n return {\n delegations: shareDelegations ? _.clone(x.delegations) : undefined,\n cryptedForeignKeys: shareCryptedForeignKeys ? _.clone(x.cryptedForeignKeys) : undefined,\n encryptionKeys: shareEncryptionKeys ? _.clone(x.encryptionKeys) : undefined,\n }\n }\n\n const ctcsStubs = ctcs.map((c) => ({\n id: c.id,\n rev: c.rev,\n ...cloneKeysAndDelegations(c),\n }))\n const oHes = hes.map((x) => _.assign(new IcureStub({}), x, cloneKeysAndDelegations(x)))\n const oFrms = frms.map((x) => _.assign(new IcureStub({}), x, cloneKeysAndDelegations(x)))\n const oCtcsStubs = ctcsStubs.map((x) => _.assign({}, x, cloneKeysAndDelegations(x)))\n const oIvs = ivs.map((x) => _.assign(new Invoice({}), x, cloneKeysAndDelegations(x)))\n const oCls = cls.map((x) => _.assign(new Classification({}), x, cloneKeysAndDelegations(x)))\n const oCis = cis.map((x) => _.assign(new CalendarItem({}), x, cloneKeysAndDelegations(x)))\n\n const docIds: { [key: string]: number } = {}\n ctcs.forEach(\n (c: models.Contact) =>\n c.services &&\n c.services.forEach((s) => s.content && Object.values(s.content).forEach((c) => c.documentId && (docIds[c.documentId] = 1)))\n )\n\n return retry(() => this.documentApi.getDocuments(new ListOfIds({ ids: Object.keys(docIds) }))).then((docs: Array<Document>) => {\n const oDocs = docs.map((x) => _.assign({}, x, cloneKeysAndDelegations(x)))\n\n let markerPromise: Promise<any> = Promise.resolve(null)\n delegateIds.forEach((delegateId) => {\n const tags = delegationTags[delegateId]\n markerPromise = markerPromise.then(() => {\n //Share patient\n //console.log(`share ${patient.id} to ${delegateId}`)\n return shareAnonymously\n ? patient\n : this.crypto\n .addDelegationsAndEncryptionKeys(null, patient, ownerId, delegateId, delSfks[0], ecKeys[0])\n .then(async (patient) => {\n if (delSfks.length > 1) {\n return delSfks.slice(1).reduce(async (patientPromise: Promise<models.Patient>, delSfk: string) => {\n const patient = await patientPromise\n return shareAnonymously\n ? patient\n : this.crypto\n .addDelegationsAndEncryptionKeys(null, patient, ownerId, delegateId, delSfk, null)\n .catch((e: any) => {\n console.log(e)\n return patient\n })\n }, Promise.resolve(patient))\n }\n return patient\n })\n .catch((e) => {\n console.log(e)\n return patient\n })\n })\n ;(tags.includes('medicalInformation') || tags.includes('anonymousMedicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(hes, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(frms, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('anonymousMedicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(ctcsStubs, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(cls, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(cis, markerPromise, delegateId, patient))\n ;(tags.includes('financialInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(ivs, markerPromise, delegateId, patient))\n ;(tags.includes('medicalInformation') || tags.includes('all')) &&\n (markerPromise = addDelegationsAndKeys(docs, markerPromise, delegateId, null))\n })\n\n return markerPromise\n .then(() => {\n //console.log(\"scd\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all')) &&\n ctcsStubs &&\n ctcsStubs.length &&\n !_.isEqual(oCtcsStubs, ctcsStubs) &&\n this.contactApi\n .setContactsDelegations(ctcsStubs)\n .then(() => {\n status.contacts.success = true\n status.contacts.modified += ctcsStubs.length\n })\n .catch((e) => (status.contacts.error = e))) ||\n Promise.resolve((status.contacts.success = true))\n )\n })\n .then(() => {\n //console.log(\"shed\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('anonymousMedicalInformation') || allTags.includes('all')) &&\n hes &&\n hes.length &&\n !_.isEqual(oHes, hes) &&\n this.helementApi\n .setHealthElementsDelegations(hes)\n .then(() => {\n status.healthElements.success = true\n status.healthElements.modified += hes.length\n })\n .catch((e) => (status.healthElements.error = e))) ||\n Promise.resolve((status.healthElements.success = true))\n )\n })\n .then(() => {\n //console.log(\"sfd\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n frms &&\n frms.length &&\n !_.isEqual(oFrms, frms) &&\n this.formApi\n .setFormsDelegations(frms)\n .then(() => {\n status.forms.success = true\n status.forms.modified += frms.length\n })\n .catch((e) => (status.forms.error = e))) ||\n Promise.resolve((status.forms.success = true))\n )\n })\n .then(() => {\n //console.log(\"sid\")\n return (\n ((allTags.includes('financialInformation') || allTags.includes('all')) &&\n ivs &&\n ivs.length &&\n !_.isEqual(oIvs, ivs) &&\n this.invoiceApi\n .setInvoicesDelegations(ivs)\n .then(() => {\n status.invoices.success = true\n status.invoices.modified += ivs.length\n })\n .catch((e) => (status.invoices.error = e))) ||\n Promise.resolve((status.invoices.success = true))\n )\n })\n .then(() => {\n //console.log(\"sdd\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n docs &&\n docs.length &&\n !_.isEqual(oDocs, docs) &&\n this.documentApi\n .setDocumentsDelegations(docs)\n .then(() => {\n status.documents.success = true\n status.documents.modified += docs.length\n })\n .catch((e) => (status.documents.error = e))) ||\n Promise.resolve((status.documents.success = true))\n )\n })\n .then(() => {\n //console.log(\"scld\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n cls &&\n cls.length &&\n !_.isEqual(oCls, cls) &&\n this.classificationApi\n .setClassificationsDelegations(cls)\n .then(() => {\n status.classifications.success = true\n status.classifications.modified += cls.length\n })\n .catch((e) => (status.classifications.error = e))) ||\n Promise.resolve((status.classifications.success = true))\n )\n })\n .then(() => {\n //console.log(\"scid\")\n return (\n ((allTags.includes('medicalInformation') || allTags.includes('all')) &&\n cis &&\n cis.length &&\n !_.isEqual(oCis, cis) &&\n this.calendarItemApi\n .setCalendarItemsDelegations(cis)\n .then(() => {\n status.calendarItems.success = true\n status.calendarItems.modified += cis.length\n })\n .catch((e) => (status.calendarItems.error = e))) ||\n Promise.resolve((status.calendarItems.success = true))\n )\n })\n .then(() => this.modifyPatientWithUser(user, patient))\n .then((p) => {\n status.patient.success = true\n console.log(\n `c: ${status.contacts.modified}, he: ${status.healthElements.modified}, docs: ${status.documents.modified}, frms: ${status.forms.modified}, ivs: ${status.invoices.modified}, cis: ${status.calendarItems.modified}, cls: ${status.classifications.modified}`\n )\n return { patient: p, statuses: status }\n })\n .catch((e) => {\n status.patient.error = e\n return { patient: patient, statuses: status }\n })\n })\n })\n : (allTags.includes('anonymousMedicalInformation')\n ? Promise.resolve(patient)\n : this.modifyPatientWithUser(\n user,\n _.assign(patient, {\n delegations: _.assign(\n patient.delegations,\n delegateIds\n .filter((id) => !patient.delegations || !patient.delegations[id]) //If there are delegations do not modify\n .reduce((acc, del: string) => Object.assign(acc, _.fromPairs([[del, []]])), patient.delegations || {})\n ),\n })\n )\n )\n .then((p) => {\n status.patient.success = true\n return { patient: p, statuses: status }\n })\n .catch((e) => {\n status.patient.error = e\n return { patient: patient, statuses: status }\n })\n })\n })\n })\n }\n\n export(user: models.User, patId: string, ownerId: string): Promise<{ id: string }> {\n return this.hcpartyApi.getHealthcareParty(ownerId).then((hcp) => {\n const parentId = hcp.parentId\n\n return retry(() => this.getPatientWithUser(user, patId))\n .then((patient: models.Patient) =>\n patient.encryptionKeys && Object.keys(patient.encryptionKeys || {}).length\n ? Promise.resolve(patient)\n : this.initEncryptionKeys(user, patient).then((patient: models.Patient) => this.modifyPatientWithUser(user, patient))\n )\n .then((patient: models.Patient | null) => {\n if (!patient) {\n return Promise.resolve({ id: patId })\n }\n\n return this.crypto.extractDelegationsSFKsAndEncryptionSKs(patient, ownerId).then(([delSfks, ecKeys]) => {\n return delSfks.length\n ? Promise.all([\n retry(() =>\n this.helementApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((hes) =>\n parentId\n ? this.helementApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreHes) => _.uniqBy(hes.concat(moreHes), 'id'))\n : hes\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.formApi\n .findFormsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((frms) =>\n parentId\n ? this.formApi\n .findFormsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreFrms) => _.uniqBy(frms.concat(moreFrms), 'id'))\n : frms\n )\n ) as Promise<Array<models.Form>>,\n retry(() =>\n this.contactApi\n .findByHCPartyPatientSecretFKeys(ownerId, delSfks.join(','))\n .then((ctcs) =>\n parentId\n ? this.contactApi\n .findByHCPartyPatientSecretFKeys(parentId, delSfks.join(','))\n .then((moreCtcs) => _.uniqBy(ctcs.concat(moreCtcs), 'id'))\n : ctcs\n )\n ) as Promise<Array<models.Contact>>,\n retry(() =>\n this.invoiceApi\n .findInvoicesByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((ivs) =>\n parentId\n ? this.invoiceApi\n .findInvoicesByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreIvs) => _.uniqBy(ivs.concat(moreIvs), 'id'))\n : ivs\n )\n ) as Promise<Array<models.IcureStub>>,\n retry(() =>\n this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(ownerId, delSfks.join(','))\n .then((cls) =>\n parentId\n ? this.classificationApi\n .findClassificationsByHCPartyPatientForeignKeys(parentId, delSfks.join(','))\n .then((moreCls) => _.uniqBy(cls.concat(moreCls), 'id'))\n : cls\n )\n ) as Promise<Array<models.Classification>>,\n retry(async () => {\n const delegationSFKs = delSfks.join(',')\n try {\n let calendarItems = await this.calendarItemApi.findByHCPartyPatientSecretFKeys(ownerId, delegationSFKs)\n\n if (parentId) {\n const moreCalendarItems = await this.calendarItemApi.findByHCPartyPatientSecretFKeys(parentId, delegationSFKs)\n calendarItems = _.uniqBy(calendarItems.concat(moreCalendarItems), 'id')\n }\n\n return calendarItems\n } catch (ex) {\n console.log(`exception occured exporting calendarItem for ownerId: ${ownerId} - ${ex}`)\n //throw ex\n }\n }) as Promise<Array<models.CalendarItem>>,\n ]).then(([hes, frms, ctcs, ivs, cls, cis]) => {\n const docIds: { [key: string]: number } = {}\n ctcs.forEach(\n (c: models.Contact) =>\n c.services &&\n c.services.forEach((s) => s.content && Object.values(s.content).forEach((c) => c.documentId && (docIds[c.documentId] = 1)))\n )\n\n return retry(() => this.documentApi.getDocuments(new ListOfIds({ ids: Object.keys(docIds) }))).then((docs: Array<Document>) => {\n return {\n id: patId,\n patient: patient,\n contacts: ctcs,\n forms: frms,\n healthElements: hes,\n invoices: ivs,\n classifications: cls,\n calItems: cis,\n documents: docs,\n }\n })\n })\n : Promise.resolve({\n id: patId,\n patient: patient,\n contacts: [],\n forms: [],\n healthElements: [],\n invoices: [],\n classifications: [],\n calItems: [],\n documents: [],\n })\n })\n })\n })\n }\n\n checkInami(inami: string): boolean {\n const num_inami = inami.replace(new RegExp('[^(0-9)]', 'g'), '')\n\n const checkDigit = num_inami.substr(6, 2)\n const numSansCheck = num_inami.substr(0, 6)\n let retour = false\n\n //modulo du niss\n const modINAMI = parseInt(numSansCheck) % 97\n\n //obtention du num de check 97 - le resultat du mod\n const checkDigit_2 = 97 - modINAMI\n\n if (parseInt(checkDigit) == checkDigit_2) {\n retour = true\n }\n return retour\n }\n\n isValidSsin(ssin: string) {\n ssin = ssin.replace(new RegExp('[^(0-9)]', 'g'), '')\n let isValidNiss = false\n\n const normalNumber =\n /^[0-9][0-9](([0][0-9])|([1][0-2]))(([0-2][0-9])|([3][0-1]))(([0-9]{2}[1-9])|([0-9][1-9][0-9])|([1-9][0-9]{2}))(([0-8][0-9])|([9][0-7]))$/.test(\n ssin\n )\n const bisNumber = /^[0-9][0-9](([2][0-9])|([3][0-2]))(([0-2][0-9])|([3][0-1]))[0-9]{3}(([0-8][0-9])|([9][0-7]))$/.test(ssin)\n const terNumber = /^[0-9][0-9](([4][0-9])|([5][0-2]))(([0-2][0-9])|([3][0-1]))[0-9]{3}(([0-8][0-9])|([9][0-7]))$/.test(ssin)\n\n if (normalNumber || bisNumber || terNumber) {\n isValidNiss =\n 97 - (Number(ssin.substr(0, 9)) % 97) === Number(ssin.substr(9, 2))\n ? true\n : 97 - (Number('2' + ssin.substr(0, 9)) % 97) === Number(ssin.substr(9, 2))\n }\n\n return isValidNiss\n }\n\n async getPatientIdOfChildDocumentForHcpAndHcpParents(\n childDocument: models.Invoice | models.CalendarItem | models.Contact | models.AccessLog,\n hcpId: string\n ): Promise<string> {\n const parentIdsArray = (await this.crypto.extractCryptedFKs(childDocument, hcpId)).extractedKeys\n\n const multipleParentIds = _.uniq(parentIdsArray).length > 1\n\n if (multipleParentIds) {\n throw 'Child document with id ' + childDocument.id + ' contains multiple parent ids in its CFKs for hcpId: ' + hcpId\n }\n\n const parentId = _.first(parentIdsArray)\n\n if (!parentId) {\n throw 'Parent id is empty in CFK of child document with id ' + childDocument.id + ' for hcpId: ' + hcpId\n }\n\n let patient: models.Patient = await super.getPatient(parentId!)\n\n let mergeLevel = 0\n const maxMergeLevel = 10\n while (patient.mergeToPatientId) {\n mergeLevel++\n if (mergeLevel === maxMergeLevel) {\n throw 'Too many merged levels for parent (Patient) of child document ' + childDocument.id + ' ; hcpId: ' + hcpId\n }\n\n patient = await super.getPatient(patient.mergeToPatientId!)\n }\n\n return patient.id!\n }\n}\n"]}
@@ -69,3 +69,4 @@ class IccReceiptXApi extends icc_api_1.IccReceiptApi {
69
69
  }
70
70
  }
71
71
  exports.IccReceiptXApi = IccReceiptXApi;
72
+ //# sourceMappingURL=icc-receipt-x-api.js.map