@icure/api 8.4.14 → 8.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/icc-api/api/IccApplicationsettingsApi.d.ts +13 -1
  2. package/icc-api/api/IccApplicationsettingsApi.js +70 -24
  3. package/icc-api/api/IccApplicationsettingsApi.js.map +1 -1
  4. package/icc-api/api/IccDocumentApi.js +1 -1
  5. package/icc-api/api/IccDocumentApi.js.map +1 -1
  6. package/icc-api/model/ApplicationSettings.d.ts +32 -0
  7. package/icc-api/model/ApplicationSettings.js.map +1 -1
  8. package/icc-x-api/filters/ServiceByHcPartyMonthCodePrefixFilter.d.ts +22 -0
  9. package/icc-x-api/filters/ServiceByHcPartyMonthCodePrefixFilter.js +19 -0
  10. package/icc-x-api/filters/ServiceByHcPartyMonthCodePrefixFilter.js.map +1 -0
  11. package/icc-x-api/filters/ServiceByHcPartyMonthTagPrefixFilter.d.ts +22 -0
  12. package/icc-x-api/filters/ServiceByHcPartyMonthTagPrefixFilter.js +19 -0
  13. package/icc-x-api/filters/ServiceByHcPartyMonthTagPrefixFilter.js.map +1 -0
  14. package/icc-x-api/filters/ServiceByHcPartyPatientCodePrefixFilter.d.ts +20 -0
  15. package/icc-x-api/filters/ServiceByHcPartyPatientCodePrefixFilter.js +18 -0
  16. package/icc-x-api/filters/ServiceByHcPartyPatientCodePrefixFilter.js.map +1 -0
  17. package/icc-x-api/filters/ServiceByHcPartyPatientTagPrefixFilter.d.ts +20 -0
  18. package/icc-x-api/filters/ServiceByHcPartyPatientTagPrefixFilter.js +18 -0
  19. package/icc-x-api/filters/ServiceByHcPartyPatientTagPrefixFilter.js.map +1 -0
  20. package/icc-x-api/icc-application-settings-x-api.d.ts +76 -0
  21. package/icc-x-api/icc-application-settings-x-api.js +160 -0
  22. package/icc-x-api/icc-application-settings-x-api.js.map +1 -0
  23. package/icc-x-api/index.d.ts +3 -2
  24. package/icc-x-api/index.js +2 -1
  25. package/icc-x-api/index.js.map +1 -1
  26. package/icc-x-api/utils/EntityWithDelegationTypeName.d.ts +1 -0
  27. package/icc-x-api/utils/EntityWithDelegationTypeName.js +2 -0
  28. package/icc-x-api/utils/EntityWithDelegationTypeName.js.map +1 -1
  29. package/package.json +1 -1
  30. package/test/icc-x-api/icc-application-settings-x-api.d.ts +1 -0
  31. package/test/icc-x-api/icc-application-settings-x-api.js +91 -0
  32. package/test/icc-x-api/icc-application-settings-x-api.js.map +1 -0
  33. package/test/icc-x-api/icc-contact-x-api.js +74 -0
  34. package/test/icc-x-api/icc-contact-x-api.js.map +1 -1
  35. package/test/utils/roles.js +8 -0
  36. package/test/utils/roles.js.map +1 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ require("isomorphic-fetch");
13
+ const test_utils_1 = require("../utils/test_utils");
14
+ const mocha_1 = require("mocha");
15
+ const crypto_1 = require("crypto");
16
+ const chai_1 = require("chai");
17
+ const types_1 = require("@icure/test-setup/types");
18
+ var initApi = test_utils_1.TestUtils.initApi;
19
+ const icc_api_1 = require("../../icc-api");
20
+ const ApplicationSettings_1 = require("../../icc-api/model/ApplicationSettings");
21
+ (0, test_utils_1.setLocalStorage)(fetch);
22
+ let env;
23
+ let unencryptedAppSettings;
24
+ (0, test_utils_1.describeNoLite)('icc-application-settings-x-api Tests', () => {
25
+ (0, mocha_1.before)(function () {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ this.timeout(600000);
28
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
29
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
30
+ });
31
+ });
32
+ (0, mocha_1.it)('Should still be able to create and get application settings that are not encrypted using the base api', () => __awaiter(void 0, void 0, void 0, function* () {
33
+ const api1 = yield initApi(env, test_utils_1.hcp1Username);
34
+ const appSettingsApi = new icc_api_1.IccApplicationsettingsApi(env.iCureUrl, {}, api1.authApi.authenticationProvider, fetch);
35
+ unencryptedAppSettings = yield appSettingsApi.createApplicationSettings(new ApplicationSettings_1.ApplicationSettings({
36
+ id: (0, crypto_1.randomUUID)(),
37
+ settings: { demo: 'plaintext' },
38
+ }));
39
+ (0, chai_1.expect)((yield appSettingsApi.getApplicationSettings()).map((x) => x.id)).to.have.members([unencryptedAppSettings.id]);
40
+ (0, chai_1.expect)((yield api1.applicationSettingsApi.getApplicationSettingsWithUser(undefined)).map((x) => x.id)).to.have.members([
41
+ unencryptedAppSettings.id,
42
+ ]);
43
+ })).timeout(10000);
44
+ (0, mocha_1.it)('Should be able to create encrypted application settings', () => __awaiter(void 0, void 0, void 0, function* () {
45
+ var _a, _b, _c;
46
+ const api2 = yield initApi(env, test_utils_1.hcp2Username);
47
+ const user = yield api2.userApi.getCurrentUser();
48
+ const appSettingsApi = new icc_api_1.IccApplicationsettingsApi(env.iCureUrl, {}, api2.authApi.authenticationProvider, fetch);
49
+ const createdWithEncryption = yield api2.applicationSettingsApi.createApplicationSettingsWithUser(undefined, yield api2.applicationSettingsApi.newInstance(user, {
50
+ id: (0, crypto_1.randomUUID)(),
51
+ settings: { demo: 'plaintext' },
52
+ encryptedSettings: { demo: 'willsucceed' },
53
+ }));
54
+ const retrievedWithoutDecryption = yield appSettingsApi.getApplicationSettings();
55
+ (0, chai_1.expect)(retrievedWithoutDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, createdWithEncryption.id]);
56
+ retrievedWithoutDecryption.forEach((x) => { var _a; return (0, chai_1.expect)((_a = x.encryptedSettings) !== null && _a !== void 0 ? _a : {}).to.deep.eq({}); });
57
+ (0, chai_1.expect)((_a = retrievedWithoutDecryption.find((x) => x.id == createdWithEncryption.id)) === null || _a === void 0 ? void 0 : _a.settings).to.deep.eq({ demo: 'plaintext' });
58
+ const retrievedWithDecryption = yield api2.applicationSettingsApi.getApplicationSettingsWithUser(undefined);
59
+ (0, chai_1.expect)(retrievedWithDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, createdWithEncryption.id]);
60
+ (0, chai_1.expect)((_b = retrievedWithDecryption.find((x) => x.id == createdWithEncryption.id)) === null || _b === void 0 ? void 0 : _b.settings).to.deep.eq({ demo: 'plaintext' });
61
+ (0, chai_1.expect)((_c = retrievedWithDecryption.find((x) => x.id == createdWithEncryption.id)) === null || _c === void 0 ? void 0 : _c.encryptedSettings).to.deep.eq({ demo: 'willsucceed' });
62
+ })).timeout(10000);
63
+ (0, mocha_1.it)('Should be able to make existing application settings encrypted', () => __awaiter(void 0, void 0, void 0, function* () {
64
+ var _a, _b, _c;
65
+ const api1 = yield initApi(env, test_utils_1.hcp1Username);
66
+ const user = yield api1.userApi.getCurrentUser();
67
+ const appSettingsApi = new icc_api_1.IccApplicationsettingsApi(env.iCureUrl, {}, api1.authApi.authenticationProvider, fetch);
68
+ const newToEncryptAfter = yield appSettingsApi.createApplicationSettings(new ApplicationSettings_1.ApplicationSettings({
69
+ id: (0, crypto_1.randomUUID)(),
70
+ settings: { demo: 'plaintext' },
71
+ }));
72
+ // Should not be allowed to set encryptedSettings on application settings where encryption key is not initialized through with user method
73
+ yield api1.applicationSettingsApi
74
+ .updateApplicationSettingsWithUser(user, new ApplicationSettings_1.ApplicationSettings(Object.assign(Object.assign({}, newToEncryptAfter), { encryptedSettings: { demo: 'willfail' } })))
75
+ .then((x) => {
76
+ throw new Error('Should not succeed');
77
+ }, (x) => {
78
+ (0, chai_1.expect)(x.toString()).to.contain('Application settings does not have initialized encryption metadata; initialize or use non-encrypted api');
79
+ });
80
+ yield api1.applicationSettingsApi.updateApplicationSettingsWithUser(undefined, yield api1.applicationSettingsApi.newInstance(user, Object.assign(Object.assign({}, newToEncryptAfter), { encryptedSettings: { demo: 'willsucceed' } })));
81
+ const retrievedWithoutDecryption = yield appSettingsApi.getApplicationSettings();
82
+ (0, chai_1.expect)(retrievedWithoutDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, newToEncryptAfter.id]);
83
+ retrievedWithoutDecryption.forEach((x) => { var _a; return (0, chai_1.expect)((_a = x.encryptedSettings) !== null && _a !== void 0 ? _a : {}).to.deep.eq({}); });
84
+ (0, chai_1.expect)((_a = retrievedWithoutDecryption.find((x) => x.id == newToEncryptAfter.id)) === null || _a === void 0 ? void 0 : _a.settings).to.deep.eq({ demo: 'plaintext' });
85
+ const retrievedWithDecryption = yield api1.applicationSettingsApi.getApplicationSettingsWithUser(undefined);
86
+ (0, chai_1.expect)(retrievedWithDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, newToEncryptAfter.id]);
87
+ (0, chai_1.expect)((_b = retrievedWithDecryption.find((x) => x.id == newToEncryptAfter.id)) === null || _b === void 0 ? void 0 : _b.settings).to.deep.eq({ demo: 'plaintext' });
88
+ (0, chai_1.expect)((_c = retrievedWithDecryption.find((x) => x.id == newToEncryptAfter.id)) === null || _c === void 0 ? void 0 : _c.encryptedSettings).to.deep.eq({ demo: 'willsucceed' });
89
+ })).timeout(10000);
90
+ });
91
+ //# sourceMappingURL=icc-application-settings-x-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icc-application-settings-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-application-settings-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\nimport { describeNoLite, getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { before, it, describe } from 'mocha'\nimport { IccPatientXApi, sleep, SubscriptionOptions } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { User } from '../../icc-api/model/User'\nimport { randomUUID } from 'crypto'\nimport { expect } from 'chai'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { IccTopicXApi } from '../../icc-x-api/icc-topic-x-api'\nimport { Topic, TopicRole } from '../../icc-api/model/Topic'\nimport { SecureDelegation } from '../../icc-api/model/SecureDelegation'\nimport initApi = TestUtils.initApi\nimport { XHR } from '../../icc-api/api/XHR'\nimport XHRError = XHR.XHRError\nimport { FilterChainTopic } from '../../icc-api/model/FilterChainTopic'\nimport { TopicByHcPartyFilter } from '../../icc-x-api/filters/TopicByHcPartyFilter'\nimport { TopicByParticipantFilter } from '../../icc-x-api/filters/TopicByParticipantFilter'\nimport { Connection } from '../../icc-api/model/Connection'\nimport { Message } from '../../icc-api/model/Message'\nimport { IccApplicationsettingsApi, IccTopicApi } from '../../icc-api'\nimport { ApplicationSettings } from '../../icc-api/model/ApplicationSettings'\n\nsetLocalStorage(fetch)\nlet env: TestVars\nlet unencryptedAppSettings: ApplicationSettings\n\ndescribeNoLite('icc-application-settings-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('Should still be able to create and get application settings that are not encrypted using the base api', async () => {\n const api1 = await initApi(env, hcp1Username)\n const appSettingsApi = new IccApplicationsettingsApi(env.iCureUrl, {}, api1.authApi.authenticationProvider, fetch)\n unencryptedAppSettings = await appSettingsApi.createApplicationSettings(\n new ApplicationSettings({\n id: randomUUID(),\n settings: { demo: 'plaintext' },\n })\n )\n expect((await appSettingsApi.getApplicationSettings()).map((x) => x.id)).to.have.members([unencryptedAppSettings.id])\n expect((await api1.applicationSettingsApi.getApplicationSettingsWithUser(undefined)).map((x) => x.id)).to.have.members([\n unencryptedAppSettings.id,\n ])\n }).timeout(10_000)\n\n it('Should be able to create encrypted application settings', async () => {\n const api2 = await initApi(env, hcp2Username)\n const user = await api2.userApi.getCurrentUser()\n const appSettingsApi = new IccApplicationsettingsApi(env.iCureUrl, {}, api2.authApi.authenticationProvider, fetch)\n const createdWithEncryption = await api2.applicationSettingsApi.createApplicationSettingsWithUser(\n undefined,\n await api2.applicationSettingsApi.newInstance(user, {\n id: randomUUID(),\n settings: { demo: 'plaintext' },\n encryptedSettings: { demo: 'willsucceed' },\n })\n )\n const retrievedWithoutDecryption = await appSettingsApi.getApplicationSettings()\n expect(retrievedWithoutDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, createdWithEncryption.id])\n retrievedWithoutDecryption.forEach((x) => expect(x.encryptedSettings ?? {}).to.deep.eq({}))\n expect(retrievedWithoutDecryption.find((x) => x.id == createdWithEncryption.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n const retrievedWithDecryption = await api2.applicationSettingsApi.getApplicationSettingsWithUser(undefined)\n expect(retrievedWithDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, createdWithEncryption.id])\n expect(retrievedWithDecryption.find((x) => x.id == createdWithEncryption.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n expect(retrievedWithDecryption.find((x) => x.id == createdWithEncryption.id)?.encryptedSettings).to.deep.eq({ demo: 'willsucceed' })\n }).timeout(10_000)\n\n it('Should be able to make existing application settings encrypted', async () => {\n const api1 = await initApi(env, hcp1Username)\n const user = await api1.userApi.getCurrentUser()\n\n const appSettingsApi = new IccApplicationsettingsApi(env.iCureUrl, {}, api1.authApi.authenticationProvider, fetch)\n const newToEncryptAfter = await appSettingsApi.createApplicationSettings(\n new ApplicationSettings({\n id: randomUUID(),\n settings: { demo: 'plaintext' },\n })\n )\n // Should not be allowed to set encryptedSettings on application settings where encryption key is not initialized through with user method\n await api1.applicationSettingsApi\n .updateApplicationSettingsWithUser(\n user,\n new ApplicationSettings({\n ...newToEncryptAfter,\n encryptedSettings: { demo: 'willfail' },\n })\n )\n .then(\n (x) => {\n throw new Error('Should not succeed')\n },\n (x) => {\n expect(x.toString()).to.contain('Application settings does not have initialized encryption metadata; initialize or use non-encrypted api')\n }\n )\n await api1.applicationSettingsApi.updateApplicationSettingsWithUser(\n undefined,\n await api1.applicationSettingsApi.newInstance(user, {\n ...newToEncryptAfter,\n encryptedSettings: { demo: 'willsucceed' },\n })\n )\n const retrievedWithoutDecryption = await appSettingsApi.getApplicationSettings()\n expect(retrievedWithoutDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, newToEncryptAfter.id])\n retrievedWithoutDecryption.forEach((x) => expect(x.encryptedSettings ?? {}).to.deep.eq({}))\n expect(retrievedWithoutDecryption.find((x) => x.id == newToEncryptAfter.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n const retrievedWithDecryption = await api1.applicationSettingsApi.getApplicationSettingsWithUser(undefined)\n expect(retrievedWithDecryption.map((x) => x.id)).to.have.members([unencryptedAppSettings.id, newToEncryptAfter.id])\n expect(retrievedWithDecryption.find((x) => x.id == newToEncryptAfter.id)?.settings).to.deep.eq({ demo: 'plaintext' })\n expect(retrievedWithDecryption.find((x) => x.id == newToEncryptAfter.id)?.encryptedSettings).to.deep.eq({ demo: 'willsucceed' })\n }).timeout(10_000)\n})\n"]}
@@ -30,6 +30,10 @@ const Measure_1 = require("../../icc-api/model/Measure");
30
30
  var initApi = test_utils_1.TestUtils.initApi;
31
31
  const SecretIdUseOption_1 = require("../../icc-x-api/crypto/SecretIdUseOption");
32
32
  var UseAnyConfidential = SecretIdUseOption_1.SecretIdUseOption.UseAnyConfidential;
33
+ const ServiceByHcPartyMonthTagPrefixFilter_1 = require("../../icc-x-api/filters/ServiceByHcPartyMonthTagPrefixFilter");
34
+ const ServiceByHcPartyMonthCodePrefixFilter_1 = require("../../icc-x-api/filters/ServiceByHcPartyMonthCodePrefixFilter");
35
+ const ServiceByHcPartyPatientCodePrefixFilter_1 = require("../../icc-x-api/filters/ServiceByHcPartyPatientCodePrefixFilter");
36
+ const ServiceByHcPartyPatientTagPrefixFilter_1 = require("../../icc-x-api/filters/ServiceByHcPartyPatientTagPrefixFilter");
33
37
  (0, test_utils_1.setLocalStorage)(fetch);
34
38
  let env;
35
39
  (0, mocha_1.before)(function () {
@@ -277,5 +281,75 @@ describe('icc-x-contact-api Tests', () => {
277
281
  (0, chai_1.expect)(Object.keys((_r = (_q = contact.services[0].content) === null || _q === void 0 ? void 0 : _q.en) === null || _r === void 0 ? void 0 : _r.measureValue)).to.not.contain('min');
278
282
  (0, chai_1.expect)(Object.keys((_t = (_s = contact.services[0].content) === null || _s === void 0 ? void 0 : _s.en) === null || _t === void 0 ? void 0 : _t.measureValue)).to.not.contain('max');
279
283
  });
284
+ it('Service filters by prefix should work', () => __awaiter(void 0, void 0, void 0, function* () {
285
+ const codeType = `DEMO-${(0, crypto_1.randomUUID)()}`;
286
+ const codeStub = {
287
+ id: `${codeType}|PREFIXED|1`,
288
+ code: 'PREFIXED',
289
+ type: codeType,
290
+ version: '1',
291
+ };
292
+ const serviceByTagMonth = {
293
+ id: (0, crypto_1.randomUUID)(),
294
+ valueDate: 20250101123000,
295
+ tags: [codeStub],
296
+ };
297
+ const serviceByCodeMonth = {
298
+ id: (0, crypto_1.randomUUID)(),
299
+ valueDate: 20250101123000,
300
+ codes: [codeStub],
301
+ };
302
+ const serviceByTagPatient = {
303
+ id: (0, crypto_1.randomUUID)(),
304
+ valueDate: 20250201123000,
305
+ tags: [codeStub],
306
+ };
307
+ const serviceByCodePatient = {
308
+ id: (0, crypto_1.randomUUID)(),
309
+ valueDate: 20250201123000,
310
+ codes: [codeStub],
311
+ };
312
+ const api = yield initApi(env);
313
+ const user = yield api.userApi.getCurrentUser();
314
+ const patient1 = yield createPatient(api.patientApi, user);
315
+ const patient2 = yield createPatient(api.patientApi, user);
316
+ yield api.contactApi.createContactsWithUser(user, [
317
+ yield api.contactApi.newInstance(user, patient1, {
318
+ id: (0, crypto_1.randomUUID)(),
319
+ services: [serviceByCodeMonth, serviceByTagMonth],
320
+ }),
321
+ yield api.contactApi.newInstance(user, patient2, {
322
+ id: (0, crypto_1.randomUUID)(),
323
+ services: [serviceByCodePatient, serviceByTagPatient],
324
+ }),
325
+ ]);
326
+ (0, chai_1.expect)(yield api.contactApi.matchServicesBy(new ServiceByHcPartyMonthTagPrefixFilter_1.ServiceByHcPartyMonthTagPrefixFilter({
327
+ healthcarePartyId: user.healthcarePartyId,
328
+ year: 2025,
329
+ month: 1,
330
+ tagType: codeType,
331
+ tagCodePrefix: 'PREFIX',
332
+ }))).to.have.members([serviceByTagMonth.id]);
333
+ (0, chai_1.expect)(yield api.contactApi.matchServicesBy(new ServiceByHcPartyMonthCodePrefixFilter_1.ServiceByHcPartyMonthCodePrefixFilter({
334
+ healthcarePartyId: user.healthcarePartyId,
335
+ year: 2025,
336
+ month: 1,
337
+ codeType: codeType,
338
+ codeCodePrefix: 'PREFIX',
339
+ }))).to.have.members([serviceByCodeMonth.id]);
340
+ const patientSfks = yield api.patientApi.decryptSecretIdsOf(patient2);
341
+ (0, chai_1.expect)(yield api.contactApi.matchServicesBy(new ServiceByHcPartyPatientTagPrefixFilter_1.ServiceByHcPartyPatientTagPrefixFilter({
342
+ healthcarePartyId: user.healthcarePartyId,
343
+ patientSecretForeignKeys: patientSfks,
344
+ tagType: codeType,
345
+ tagCodePrefix: 'PREFIX',
346
+ }))).to.have.members([serviceByTagPatient.id]);
347
+ (0, chai_1.expect)(yield api.contactApi.matchServicesBy(new ServiceByHcPartyPatientCodePrefixFilter_1.ServiceByHcPartyPatientCodePrefixFilter({
348
+ healthcarePartyId: user.healthcarePartyId,
349
+ patientSecretForeignKeys: patientSfks,
350
+ codeType: codeType,
351
+ codeCodePrefix: 'PREFIX',
352
+ }))).to.have.members([serviceByCodePatient.id]);
353
+ }));
280
354
  });
281
355
  //# sourceMappingURL=icc-contact-x-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icc-contact-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-contact-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { EntityWithDelegationTypeName, IccContactXApi, IccHelementXApi, IccPatientXApi } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { Code } from '../../icc-api/model/Code'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { Service } from '../../icc-api/model/Service'\nimport { Content } from '../../icc-api/model/Content'\nimport { User } from '../../icc-api/model/User'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { SubContact } from '../../icc-api/model/SubContact'\nimport { ServiceLink } from '../../icc-api/model/ServiceLink'\nimport { FilterChainService } from '../../icc-api/model/FilterChainService'\nimport { ServiceByHcPartyHealthElementIdsFilter } from '../../icc-x-api/filters/ServiceByHcPartyHealthElementIdsFilter'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { Measure } from '../../icc-api/model/Measure'\nimport initApi = TestUtils.initApi\nimport { SecretIdUseOption } from '../../icc-x-api/crypto/SecretIdUseOption'\nimport UseAnyConfidential = SecretIdUseOption.UseAnyConfidential\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nbefore(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n})\n\nasync function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User) {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n}\n\nasync function createHealthElement(healthElementApi: IccHelementXApi, hcpUser: User, patient: Patient) {\n return healthElementApi.createHealthElementWithUser(\n hcpUser,\n await healthElementApi.newInstance(\n hcpUser,\n patient,\n new HealthElement({\n id: randomUUID(),\n note: 'My secret note',\n tags: [\n new Code({\n id: 'ICURE|MY-CODE|1',\n code: 'MY-CODE',\n type: 'ICURE',\n version: '1',\n }),\n ],\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n )\n}\n\nfunction createBasicContact(contactApiForHcp: IccContactXApi, hcpUser: User, patient: Patient) {\n return contactApiForHcp.newInstance(\n hcpUser,\n patient,\n new Contact({\n id: randomUUID(),\n services: [\n contactApiForHcp.service().newInstance(\n hcpUser,\n new Service({\n id: randomUUID(),\n valueDate: 20220203111034,\n content: { en: new Content({ numberValue: 53.5 }) },\n tags: [\n new Code({\n id: 'LOINC|29463-7|2',\n code: '29463-7',\n type: 'LOINC',\n version: '2',\n }),\n ],\n })\n ),\n ],\n descr: 'Weight value',\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n}\n\ndescribe('icc-x-contact-api Tests', () => {\n it('CreateContactWithUser Success for HCP', async () => {\n // Given\n const { userApi: userApiForHcp, patientApi: patientApiForHcp, contactApi: contactApiForHcp, cryptoApi } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const contactToCreate = await createBasicContact(contactApiForHcp, hcpUser, patient)\n\n // When\n const createdContact = (await contactApiForHcp.createContactWithUser(hcpUser, contactToCreate)) as Contact\n\n // Then\n const readContact = await contactApiForHcp.getContactWithUser(hcpUser, createdContact.id!)\n expect(readContact).to.not.be.undefined\n expect(readContact).to.not.be.null\n expect(readContact.openingDate).to.not.be.undefined\n expect(readContact.openingDate).to.not.be.null\n expect(readContact.groupId).to.not.be.undefined\n expect(readContact.groupId).to.not.be.null\n expect(readContact.responsible).to.be.equal(hcpUser.healthcarePartyId)\n expect(readContact.id).to.be.equal(contactToCreate.id)\n expect(readContact.descr).to.be.equal(contactToCreate.descr)\n expect(readContact.services![0].responsible).to.be.equal(hcpUser.healthcarePartyId)\n expect(readContact.services![0].id).to.be.equal(contactToCreate.services![0].id)\n expect(readContact.services![0].valueDate).to.be.equal(contactToCreate.services![0].valueDate)\n expect(readContact.services![0].tags![0].id).to.be.equal(contactToCreate.services![0].tags![0].id!)\n expect(await cryptoApi.xapi.encryptionKeysOf({ entity: readContact, type: EntityWithDelegationTypeName.Contact }, undefined)).to.have.length(1)\n const decryptedPatientIds = await contactApiForHcp.decryptPatientIdOf(readContact)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('Filter Services By HealthElementId - Success', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n patientApi: patientApiForHcp,\n contactApi: contactApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const healthElement = await createHealthElement(hElementApiForHcp, hcpUser, patient)\n const contactToCreate = await createBasicContact(contactApiForHcp, hcpUser, patient).then((contact) => {\n return {\n ...contact,\n subContacts: [\n new SubContact({\n id: randomUUID(),\n healthElementId: healthElement!.id!,\n services: [new ServiceLink({ serviceId: contact.services![0].id })],\n }),\n ],\n }\n })\n\n const createdContact = (await contactApiForHcp.createContactWithUser(hcpUser, new Contact(contactToCreate))) as Contact\n assert(createdContact != null)\n\n // When\n const foundServices = await contactApiForHcp.filterServicesBy(\n undefined,\n undefined,\n new FilterChainService({\n filter: new ServiceByHcPartyHealthElementIdsFilter({\n healthcarePartyId: hcpUser.healthcarePartyId!,\n healthElementIds: [healthElement!.id!],\n }),\n })\n )\n\n // Then\n assert(foundServices.rows!.length == 1)\n assert(foundServices.rows![0].id == createdContact.services![0].id)\n assert(foundServices.rows![0].healthElementsIds!.find((heId) => heId == healthElement!.id!) != undefined)\n })\n\n it('contacts findBy for HCP GET and POSt', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n contactApi: contactApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const healthElement = await createHealthElement(hElementApiForHcp, hcpUser, patient)\n const contactToCreate = await createBasicContact(contactApiForHcp, hcpUser, patient).then((contact) => {\n return {\n ...contact,\n subContacts: [\n new SubContact({\n id: randomUUID(),\n healthElementId: healthElement!.id!,\n services: [new ServiceLink({ serviceId: contact.services![0].id })],\n }),\n ],\n }\n })\n\n const createdContact = (await contactApiForHcp.createContactWithUser(hcpUser, contactToCreate)) as Contact\n\n // When\n const foundContats = await contactApiForHcp.findBy(hcpUser.healthcarePartyId!, patient, false)\n const foundContatsUsingPost = await contactApiForHcp.findBy(hcpUser.healthcarePartyId!, patient, true)\n\n // Then\n assert(foundContats.length == 1, 'Found items should be 1')\n assert(foundContats[0].id == contactToCreate.id, 'Found item should be the same as the created one')\n\n assert(foundContatsUsingPost.length == 1, 'Found items using post should be 1')\n assert(foundContatsUsingPost[0].id == createdContact.id, 'Found item using post should be the same as the created one')\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = await api1.calendarItemApi.createCalendarItemWithHcParty(\n user1,\n await api1.calendarItemApi.newInstancePatient(user1, samplePatient, { details: encryptedField })\n )\n expect(entity.details).to.be.equal(encryptedField)\n await api2.calendarItemApi\n .getCalendarItemWithUser(user2, entity.id)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.calendarItemApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.calendarItemApi.getCalendarItemWithUser(user2, entity.id)\n expect(retrieved.details).to.be.equal(encryptedField)\n expect((await api2.calendarItemApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n\n it('Instanciation of old Measure should be mapped to new Measure with referenceRanges', () => {\n const oldMeasure = {\n min: 0,\n max: 10,\n }\n\n const newMeasure = new Measure({ ...oldMeasure })\n\n expect(newMeasure.referenceRanges).to.not.be.undefined\n expect(newMeasure.referenceRanges).to.not.undefined\n expect(newMeasure.referenceRanges).to.have.length(1)\n expect(newMeasure.referenceRanges![0].low).to.be.equal(oldMeasure.min)\n expect(newMeasure.referenceRanges![0].high).to.be.equal(oldMeasure.max)\n\n expect(Object.keys(newMeasure)).to.not.contain('min')\n expect(Object.keys(newMeasure)).to.not.contain('max')\n })\n\n it('Instanciation of Service with old Measure should be mapped to new Measure with referenceRanges', () => {\n const serviceJson = {\n id: 'serviceId',\n valueDate: 20220203111034,\n content: {\n en: {\n numberValue: 53.5,\n measureValue: {\n min: 0,\n max: 10,\n },\n },\n },\n tags: [\n {\n id: 'LOINC|29463-7|2',\n code: '29463-7',\n type: 'LOINC',\n version: '2',\n },\n ],\n }\n\n const service = new Service(JSON.parse(JSON.stringify(serviceJson)))\n\n expect(service.content?.en?.measureValue).to.not.be.undefined\n expect(service.content?.en?.measureValue?.referenceRanges).to.not.be.undefined\n expect(service.content?.en?.measureValue?.referenceRanges).to.have.length(1)\n expect(service.content?.en?.measureValue?.referenceRanges![0].low).to.be.equal(serviceJson.content.en.measureValue.min)\n expect(service.content?.en?.measureValue?.referenceRanges![0].high).to.be.equal(serviceJson.content.en.measureValue.max)\n\n expect(Object.keys(service.content?.en?.measureValue!)).to.not.contain('min')\n expect(Object.keys(service.content?.en?.measureValue!)).to.not.contain('max')\n })\n\n it('Instanciation of Contact with old Measure should be mapped to new Measure with referenceRanges', () => {\n const contactJson = {\n id: 'contactId',\n services: [\n {\n id: 'serviceId',\n valueDate: 20220203111034,\n content: {\n en: {\n numberValue: 53.5,\n measureValue: {\n min: 0,\n max: 10,\n },\n },\n },\n tags: [\n {\n id: 'LOINC|29463-7|2',\n code: '29463-7',\n type: 'LOINC',\n version: '2',\n },\n ],\n },\n ],\n descr: 'Weight value',\n }\n\n const contact = new Contact(JSON.parse(JSON.stringify(contactJson)))\n\n expect(contact.services).to.not.be.undefined\n expect(contact.services).to.have.length(1)\n expect(contact.services![0].content?.en?.measureValue).to.not.be.undefined\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges).to.not.be.undefined\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges).to.have.length(1)\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges![0].low).to.be.equal(contactJson.services[0].content.en.measureValue.min)\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges![0].high).to.be.equal(contactJson.services[0].content.en.measureValue.max)\n\n expect(Object.keys(contact.services![0].content?.en?.measureValue!)).to.not.contain('min')\n expect(Object.keys(contact.services![0].content?.en?.measureValue!)).to.not.contain('max')\n })\n})\n"]}
1
+ {"version":3,"file":"icc-contact-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-contact-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { EntityWithDelegationTypeName, IccContactXApi, IccHelementXApi, IccPatientXApi } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { Code } from '../../icc-api/model/Code'\nimport { Contact } from '../../icc-api/model/Contact'\nimport { Service } from '../../icc-api/model/Service'\nimport { Content } from '../../icc-api/model/Content'\nimport { User } from '../../icc-api/model/User'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { SubContact } from '../../icc-api/model/SubContact'\nimport { ServiceLink } from '../../icc-api/model/ServiceLink'\nimport { FilterChainService } from '../../icc-api/model/FilterChainService'\nimport { ServiceByHcPartyHealthElementIdsFilter } from '../../icc-x-api/filters/ServiceByHcPartyHealthElementIdsFilter'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { Measure } from '../../icc-api/model/Measure'\nimport initApi = TestUtils.initApi\nimport { SecretIdUseOption } from '../../icc-x-api/crypto/SecretIdUseOption'\nimport UseAnyConfidential = SecretIdUseOption.UseAnyConfidential\nimport { random } from 'lodash'\nimport { ServiceByHcPartyMonthTagPrefixFilter } from '../../icc-x-api/filters/ServiceByHcPartyMonthTagPrefixFilter'\nimport { ServiceByHcPartyMonthCodePrefixFilter } from '../../icc-x-api/filters/ServiceByHcPartyMonthCodePrefixFilter'\nimport { ServiceByHcPartyPatientCodePrefixFilter } from '../../icc-x-api/filters/ServiceByHcPartyPatientCodePrefixFilter'\nimport { ServiceByHcPartyPatientTagPrefixFilter } from '../../icc-x-api/filters/ServiceByHcPartyPatientTagPrefixFilter'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nbefore(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n})\n\nasync function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User): Promise<Patient> {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n}\n\nasync function createHealthElement(healthElementApi: IccHelementXApi, hcpUser: User, patient: Patient) {\n return healthElementApi.createHealthElementWithUser(\n hcpUser,\n await healthElementApi.newInstance(\n hcpUser,\n patient,\n new HealthElement({\n id: randomUUID(),\n note: 'My secret note',\n tags: [\n new Code({\n id: 'ICURE|MY-CODE|1',\n code: 'MY-CODE',\n type: 'ICURE',\n version: '1',\n }),\n ],\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n )\n}\n\nfunction createBasicContact(contactApiForHcp: IccContactXApi, hcpUser: User, patient: Patient) {\n return contactApiForHcp.newInstance(\n hcpUser,\n patient,\n new Contact({\n id: randomUUID(),\n services: [\n contactApiForHcp.service().newInstance(\n hcpUser,\n new Service({\n id: randomUUID(),\n valueDate: 20220203111034,\n content: { en: new Content({ numberValue: 53.5 }) },\n tags: [\n new Code({\n id: 'LOINC|29463-7|2',\n code: '29463-7',\n type: 'LOINC',\n version: '2',\n }),\n ],\n })\n ),\n ],\n descr: 'Weight value',\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n}\n\ndescribe('icc-x-contact-api Tests', () => {\n it('CreateContactWithUser Success for HCP', async () => {\n // Given\n const { userApi: userApiForHcp, patientApi: patientApiForHcp, contactApi: contactApiForHcp, cryptoApi } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const contactToCreate = await createBasicContact(contactApiForHcp, hcpUser, patient)\n\n // When\n const createdContact = (await contactApiForHcp.createContactWithUser(hcpUser, contactToCreate)) as Contact\n\n // Then\n const readContact = await contactApiForHcp.getContactWithUser(hcpUser, createdContact.id!)\n expect(readContact).to.not.be.undefined\n expect(readContact).to.not.be.null\n expect(readContact.openingDate).to.not.be.undefined\n expect(readContact.openingDate).to.not.be.null\n expect(readContact.groupId).to.not.be.undefined\n expect(readContact.groupId).to.not.be.null\n expect(readContact.responsible).to.be.equal(hcpUser.healthcarePartyId)\n expect(readContact.id).to.be.equal(contactToCreate.id)\n expect(readContact.descr).to.be.equal(contactToCreate.descr)\n expect(readContact.services![0].responsible).to.be.equal(hcpUser.healthcarePartyId)\n expect(readContact.services![0].id).to.be.equal(contactToCreate.services![0].id)\n expect(readContact.services![0].valueDate).to.be.equal(contactToCreate.services![0].valueDate)\n expect(readContact.services![0].tags![0].id).to.be.equal(contactToCreate.services![0].tags![0].id!)\n expect(await cryptoApi.xapi.encryptionKeysOf({ entity: readContact, type: EntityWithDelegationTypeName.Contact }, undefined)).to.have.length(1)\n const decryptedPatientIds = await contactApiForHcp.decryptPatientIdOf(readContact)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('Filter Services By HealthElementId - Success', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n patientApi: patientApiForHcp,\n contactApi: contactApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const healthElement = await createHealthElement(hElementApiForHcp, hcpUser, patient)\n const contactToCreate = await createBasicContact(contactApiForHcp, hcpUser, patient).then((contact) => {\n return {\n ...contact,\n subContacts: [\n new SubContact({\n id: randomUUID(),\n healthElementId: healthElement!.id!,\n services: [new ServiceLink({ serviceId: contact.services![0].id })],\n }),\n ],\n }\n })\n\n const createdContact = (await contactApiForHcp.createContactWithUser(hcpUser, new Contact(contactToCreate))) as Contact\n assert(createdContact != null)\n\n // When\n const foundServices = await contactApiForHcp.filterServicesBy(\n undefined,\n undefined,\n new FilterChainService({\n filter: new ServiceByHcPartyHealthElementIdsFilter({\n healthcarePartyId: hcpUser.healthcarePartyId!,\n healthElementIds: [healthElement!.id!],\n }),\n })\n )\n\n // Then\n assert(foundServices.rows!.length == 1)\n assert(foundServices.rows![0].id == createdContact.services![0].id)\n assert(foundServices.rows![0].healthElementsIds!.find((heId) => heId == healthElement!.id!) != undefined)\n })\n\n it('contacts findBy for HCP GET and POSt', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n contactApi: contactApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const healthElement = await createHealthElement(hElementApiForHcp, hcpUser, patient)\n const contactToCreate = await createBasicContact(contactApiForHcp, hcpUser, patient).then((contact) => {\n return {\n ...contact,\n subContacts: [\n new SubContact({\n id: randomUUID(),\n healthElementId: healthElement!.id!,\n services: [new ServiceLink({ serviceId: contact.services![0].id })],\n }),\n ],\n }\n })\n\n const createdContact = (await contactApiForHcp.createContactWithUser(hcpUser, contactToCreate)) as Contact\n\n // When\n const foundContats = await contactApiForHcp.findBy(hcpUser.healthcarePartyId!, patient, false)\n const foundContatsUsingPost = await contactApiForHcp.findBy(hcpUser.healthcarePartyId!, patient, true)\n\n // Then\n assert(foundContats.length == 1, 'Found items should be 1')\n assert(foundContats[0].id == contactToCreate.id, 'Found item should be the same as the created one')\n\n assert(foundContatsUsingPost.length == 1, 'Found items using post should be 1')\n assert(foundContatsUsingPost[0].id == createdContact.id, 'Found item using post should be the same as the created one')\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = await api1.calendarItemApi.createCalendarItemWithHcParty(\n user1,\n await api1.calendarItemApi.newInstancePatient(user1, samplePatient, { details: encryptedField })\n )\n expect(entity.details).to.be.equal(encryptedField)\n await api2.calendarItemApi\n .getCalendarItemWithUser(user2, entity.id)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.calendarItemApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.calendarItemApi.getCalendarItemWithUser(user2, entity.id)\n expect(retrieved.details).to.be.equal(encryptedField)\n expect((await api2.calendarItemApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n\n it('Instanciation of old Measure should be mapped to new Measure with referenceRanges', () => {\n const oldMeasure = {\n min: 0,\n max: 10,\n }\n\n const newMeasure = new Measure({ ...oldMeasure })\n\n expect(newMeasure.referenceRanges).to.not.be.undefined\n expect(newMeasure.referenceRanges).to.not.undefined\n expect(newMeasure.referenceRanges).to.have.length(1)\n expect(newMeasure.referenceRanges![0].low).to.be.equal(oldMeasure.min)\n expect(newMeasure.referenceRanges![0].high).to.be.equal(oldMeasure.max)\n\n expect(Object.keys(newMeasure)).to.not.contain('min')\n expect(Object.keys(newMeasure)).to.not.contain('max')\n })\n\n it('Instanciation of Service with old Measure should be mapped to new Measure with referenceRanges', () => {\n const serviceJson = {\n id: 'serviceId',\n valueDate: 20220203111034,\n content: {\n en: {\n numberValue: 53.5,\n measureValue: {\n min: 0,\n max: 10,\n },\n },\n },\n tags: [\n {\n id: 'LOINC|29463-7|2',\n code: '29463-7',\n type: 'LOINC',\n version: '2',\n },\n ],\n }\n\n const service = new Service(JSON.parse(JSON.stringify(serviceJson)))\n\n expect(service.content?.en?.measureValue).to.not.be.undefined\n expect(service.content?.en?.measureValue?.referenceRanges).to.not.be.undefined\n expect(service.content?.en?.measureValue?.referenceRanges).to.have.length(1)\n expect(service.content?.en?.measureValue?.referenceRanges![0].low).to.be.equal(serviceJson.content.en.measureValue.min)\n expect(service.content?.en?.measureValue?.referenceRanges![0].high).to.be.equal(serviceJson.content.en.measureValue.max)\n\n expect(Object.keys(service.content?.en?.measureValue!)).to.not.contain('min')\n expect(Object.keys(service.content?.en?.measureValue!)).to.not.contain('max')\n })\n\n it('Instanciation of Contact with old Measure should be mapped to new Measure with referenceRanges', () => {\n const contactJson = {\n id: 'contactId',\n services: [\n {\n id: 'serviceId',\n valueDate: 20220203111034,\n content: {\n en: {\n numberValue: 53.5,\n measureValue: {\n min: 0,\n max: 10,\n },\n },\n },\n tags: [\n {\n id: 'LOINC|29463-7|2',\n code: '29463-7',\n type: 'LOINC',\n version: '2',\n },\n ],\n },\n ],\n descr: 'Weight value',\n }\n\n const contact = new Contact(JSON.parse(JSON.stringify(contactJson)))\n\n expect(contact.services).to.not.be.undefined\n expect(contact.services).to.have.length(1)\n expect(contact.services![0].content?.en?.measureValue).to.not.be.undefined\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges).to.not.be.undefined\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges).to.have.length(1)\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges![0].low).to.be.equal(contactJson.services[0].content.en.measureValue.min)\n expect(contact.services![0].content?.en?.measureValue?.referenceRanges![0].high).to.be.equal(contactJson.services[0].content.en.measureValue.max)\n\n expect(Object.keys(contact.services![0].content?.en?.measureValue!)).to.not.contain('min')\n expect(Object.keys(contact.services![0].content?.en?.measureValue!)).to.not.contain('max')\n })\n\n it('Service filters by prefix should work', async () => {\n const codeType = `DEMO-${randomUUID()}`\n const codeStub = {\n id: `${codeType}|PREFIXED|1`,\n code: 'PREFIXED',\n type: codeType,\n version: '1',\n }\n const serviceByTagMonth = {\n id: randomUUID(),\n valueDate: 20250101123000,\n tags: [codeStub],\n }\n const serviceByCodeMonth = {\n id: randomUUID(),\n valueDate: 20250101123000,\n codes: [codeStub],\n }\n const serviceByTagPatient = {\n id: randomUUID(),\n valueDate: 20250201123000,\n tags: [codeStub],\n }\n const serviceByCodePatient = {\n id: randomUUID(),\n valueDate: 20250201123000,\n codes: [codeStub],\n }\n const api = await initApi(env)\n const user = await api.userApi.getCurrentUser()\n const patient1 = await createPatient(api.patientApi, user)\n const patient2 = await createPatient(api.patientApi, user)\n await api.contactApi.createContactsWithUser(user, [\n await api.contactApi.newInstance(user, patient1, {\n id: randomUUID(),\n services: [serviceByCodeMonth, serviceByTagMonth],\n }),\n await api.contactApi.newInstance(user, patient2, {\n id: randomUUID(),\n services: [serviceByCodePatient, serviceByTagPatient],\n }),\n ])\n expect(\n await api.contactApi.matchServicesBy(\n new ServiceByHcPartyMonthTagPrefixFilter({\n healthcarePartyId: user.healthcarePartyId!,\n year: 2025,\n month: 1,\n tagType: codeType,\n tagCodePrefix: 'PREFIX',\n })\n )\n ).to.have.members([serviceByTagMonth.id])\n expect(\n await api.contactApi.matchServicesBy(\n new ServiceByHcPartyMonthCodePrefixFilter({\n healthcarePartyId: user.healthcarePartyId!,\n year: 2025,\n month: 1,\n codeType: codeType,\n codeCodePrefix: 'PREFIX',\n })\n )\n ).to.have.members([serviceByCodeMonth.id])\n const patientSfks = await api.patientApi.decryptSecretIdsOf(patient2)\n expect(\n await api.contactApi.matchServicesBy(\n new ServiceByHcPartyPatientTagPrefixFilter({\n healthcarePartyId: user.healthcarePartyId!,\n patientSecretForeignKeys: patientSfks,\n tagType: codeType,\n tagCodePrefix: 'PREFIX',\n })\n )\n ).to.have.members([serviceByTagPatient.id])\n expect(\n await api.contactApi.matchServicesBy(\n new ServiceByHcPartyPatientCodePrefixFilter({\n healthcarePartyId: user.healthcarePartyId!,\n patientSecretForeignKeys: patientSfks,\n codeType: codeType,\n codeCodePrefix: 'PREFIX',\n })\n )\n ).to.have.members([serviceByCodePatient.id])\n })\n})\n"]}
@@ -36,6 +36,10 @@ exports.defaultRoles = {
36
36
  'GroupManagement.Read.BasicInfo',
37
37
  ],
38
38
  HIERARCHICAL_DATA_OWNER: [
39
+ 'ApplicationSettingsManagement.Create',
40
+ 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',
41
+ 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',
42
+ 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',
39
43
  'ExtendedEncryptionMetadataEntitiesManagement.ForParent',
40
44
  'CryptoActorManagement.ExtendedExchangeKeysSearch.DelegatedToParents',
41
45
  'HealthElementManagement.ExtendedRead.DelegatedToParents',
@@ -171,6 +175,10 @@ exports.defaultRoles = {
171
175
  TOPIC_MANAGER: ['TopicManagement.Create'],
172
176
  LEGACY_MESSAGE_MANAGER: ['MessageManagement.Create', 'MessageManagement.Purge'],
173
177
  LEGACY_HCP: [
178
+ 'ApplicationSettingsManagement.Create',
179
+ 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',
180
+ 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',
181
+ 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',
174
182
  'ExtendedEncryptionMetadataEntitiesManagement.ForParent',
175
183
  'UserManagement.Update.Own.LoginIdentifiers',
176
184
  'AgendaManagement.Create',
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../test/utils/roles.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,gBAAgB,EAAE;QAChB,gCAAgC;QAChC,+BAA+B;QAC/B,4BAA4B;QAC5B,0BAA0B;QAC1B,yBAAyB;QACzB,+BAA+B;QAC/B,8BAA8B;QAC9B,iCAAiC;QACjC,gCAAgC;QAChC,yCAAyC;QACzC,qBAAqB;QACrB,0BAA0B;QAC1B,yBAAyB;QACzB,0BAA0B;QAC1B,yBAAyB;QACzB,2BAA2B;QAC3B,0BAA0B;QAC1B,uBAAuB;QACvB,sBAAsB;QACtB,0BAA0B;QAC1B,yBAAyB;QACzB,kCAAkC;QAClC,iCAAiC;QACjC,0BAA0B;QAC1B,yBAAyB;QACzB,0BAA0B;QAC1B,yBAAyB;QACzB,4BAA4B;QAC5B,2BAA2B;QAC3B,yBAAyB;QACzB,gCAAgC;KACjC;IACD,uBAAuB,EAAE;QACvB,wDAAwD;QACxD,qEAAqE;QACrE,yDAAyD;QACzD,qDAAqD;QACrD,mDAAmD;QACnD,wDAAwD;QACxD,0DAA0D;QAC1D,uCAAuC;QACvC,mDAAmD;QACnD,mDAAmD;QACnD,oDAAoD;QACpD,gDAAgD;QAChD,mDAAmD;QACnD,2DAA2D;QAC3D,mDAAmD;QACnD,mDAAmD;QACnD,mDAAmD;QACnD,qDAAqD;QACrD,iDAAiD;QACjD,2DAA2D;QAC3D,uDAAuD;QACvD,qDAAqD;QACrD,0DAA0D;QAC1D,4DAA4D;QAC5D,yCAAyC;QACzC,qDAAqD;QACrD,qDAAqD;QACrD,sDAAsD;QACtD,kDAAkD;QAClD,qDAAqD;QACrD,6DAA6D;QAC7D,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,uDAAuD;QACvD,mDAAmD;QACnD,0DAA0D;QAC1D,sDAAsD;QACtD,oDAAoD;QACpD,yDAAyD;QACzD,2DAA2D;QAC3D,yCAAyC;QACzC,oDAAoD;QACpD,oDAAoD;QACpD,qDAAqD;QACrD,iDAAiD;QACjD,oDAAoD;QACpD,4DAA4D;QAC5D,oDAAoD;QACpD,oDAAoD;QACpD,oDAAoD;QACpD,sDAAsD;QACtD,kDAAkD;QAClD,kEAAkE;QAClE,iDAAiD;QACjD,+CAA+C;QAC/C,iDAAiD;QACjD,mCAAmC;KACpC;IACD,oBAAoB,EAAE;QACpB,+BAA+B;QAC/B,6BAA6B;QAC7B,uCAAuC;QACvC,8CAA8C;QAC9C,qCAAqC;QACrC,sCAAsC;QACtC,gDAAgD;QAChD,qCAAqC;QACrC,wCAAwC;QACxC,+BAA+B;QAC/B,uBAAuB;QACvB,+CAA+C;QAC/C,6CAA6C;QAC7C,+CAA+C;KAChD;IACD,gBAAgB,EAAE;QAChB,uCAAuC;QACvC,qCAAqC;QACrC,+CAA+C;QAC/C,sDAAsD;QACtD,6CAA6C;QAC7C,8CAA8C;QAC9C,wDAAwD;QACxD,6CAA6C;QAC7C,gDAAgD;QAChD,uCAAuC;QACvC,uBAAuB;QACvB,sCAAsC;QACtC,oCAAoC;QACpC,sCAAsC;QACtC,sCAAsC;QACtC,mEAAmE;QACnE,yDAAyD;QACzD,8DAA8D;QAC9D,uDAAuD;QACvD,qDAAqD;QACrD,uDAAuD;KACxD;IACD,mBAAmB,EAAE;QACnB,8BAA8B;QAC9B,4BAA4B;QAC5B,sCAAsC;QACtC,6CAA6C;QAC7C,oCAAoC;QACpC,qCAAqC;QACrC,+CAA+C;QAC/C,oCAAoC;QACpC,uCAAuC;QACvC,8BAA8B;QAC9B,uBAAuB;QACvB,8CAA8C;QAC9C,4CAA4C;QAC5C,8CAA8C;QAC9C,2BAA2B;QAC3B,yBAAyB;QACzB,4BAA4B;QAC5B,6BAA6B;QAC7B,yBAAyB;KAC1B;IACD,UAAU,EAAE;QACV,yBAAyB;QACzB,mCAAmC;QACnC,0CAA0C;QAC1C,kCAAkC;QAClC,iCAAiC;QACjC,oCAAoC;QACpC,oDAAoD;QACpD,2BAA2B;QAC3B,gCAAgC;KACjC;IACD,kBAAkB,EAAE,CAAC,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,CAAC,wDAAwD,EAAE,yBAAyB,CAAC;IACxG,aAAa,EAAE,CAAC,wBAAwB,CAAC;IACzC,sBAAsB,EAAE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;IAC/E,UAAU,EAAE;QACV,wDAAwD;QACxD,4CAA4C;QAC5C,yBAAyB;QACzB,qDAAqD;QACrD,qDAAqD;QACrD,qDAAqD;QACrD,8DAA8D;QAC9D,yDAAyD;QACzD,8DAA8D;QAC9D,2DAA2D;QAC3D,iEAAiE;QACjE,sEAAsE;QACtE,mEAAmE;QACnE,sDAAsD;QACtD,uCAAuC;QACvC,+BAA+B;QAC/B,8BAA8B;QAC9B,yBAAyB;QACzB,2BAA2B;QAC3B,qCAAqC;QACrC,6BAA6B;QAC7B,4BAA4B;QAC5B,2BAA2B;QAC3B,uBAAuB;QACvB,iCAAiC;QACjC,0CAA0C;QAC1C,kCAAkC;QAClC,6CAA6C;QAC7C,sDAAsD;QACtD,8CAA8C;QAC9C,+CAA+C;QAC/C,qCAAqC;QACrC,8CAA8C;QAC9C,sCAAsC;QACtC,uCAAuC;QACvC,gDAAgD;QAChD,qCAAqC;QACrC,oCAAoC;QACpC,6CAA6C;QAC7C,qCAAqC;QACrC,sCAAsC;QACtC,+CAA+C;QAC/C,oCAAoC;QACpC,mCAAmC;QACnC,4CAA4C;QAC5C,oCAAoC;QACpC,qCAAqC;QACrC,8CAA8C;QAC9C,mCAAmC;QACnC,2BAA2B;QAC3B,6BAA6B;QAC7B,uCAAuC;QACvC,+BAA+B;QAC/B,8BAA8B;QAC9B,6BAA6B;QAC7B,gCAAgC;QAChC,0CAA0C;QAC1C,4CAA4C;QAC5C,2CAA2C;QAC3C,iEAAiE;QACjE,4BAA4B;QAC5B,sCAAsC;QACtC,wCAAwC;QACxC,uCAAuC;QACvC,6DAA6D;QAC7D,iDAAiD;QACjD,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,+BAA+B;QAC/B,yCAAyC;QACzC,2CAA2C;QAC3C,0CAA0C;QAC1C,gEAAgE;QAChE,iCAAiC;QACjC,2CAA2C;QAC3C,6CAA6C;QAC7C,4CAA4C;QAC5C,kEAAkE;QAClE,yCAAyC;QACzC,uCAAuC;QACvC,yCAAyC;QACzC,yCAAyC;QACzC,0EAA0E;QAC1E,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,oCAAoC;QACpC,2BAA2B;QAC3B,qCAAqC;QACrC,uCAAuC;QACvC,sCAAsC;QACtC,4DAA4D;QAC5D,uBAAuB;QACvB,iCAAiC;QACjC,mCAAmC;QACnC,kCAAkC;QAClC,wDAAwD;QACxD,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,wDAAwD;QACxD,mEAAmE;QACnE,kCAAkC;QAClC,4CAA4C;QAC5C,8CAA8C;QAC9C,6CAA6C;QAC7C,mEAAmE;QACnE,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,0BAA0B;QAC1B,oCAAoC;QACpC,sCAAsC;QACtC,qCAAqC;QACrC,2DAA2D;QAC3D,4BAA4B;QAC5B,sCAAsC;QACtC,wCAAwC;QACxC,uCAAuC;QACvC,6DAA6D;QAC7D,wBAAwB;QACxB,kCAAkC;QAClC,oCAAoC;QACpC,mCAAmC;QACnC,yDAAyD;QACzD,kCAAkC;QAClC,8BAA8B;QAC9B,wCAAwC;QACxC,2BAA2B;QAC3B,sCAAsC;QACtC,yCAAyC;QACzC,oCAAoC;QACpC,sCAAsC;QACtC,sCAAsC;QACtC,sCAAsC;QACtC,mEAAmE;QACnE,yDAAyD;QACzD,8DAA8D;QAC9D,mCAAmC;QACnC,8BAA8B;QAC9B,gCAAgC;KACjC;CACF,CAAA","sourcesContent":["export const defaultRoles = {\n BASIC_DATA_OWNER: [\n 'HealthElementManagement.Create',\n 'HealthElementManagement.Purge',\n 'AccessLogManagement.Create',\n 'ArticleManagement.Create',\n 'ArticleManagement.Purge',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.Purge',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.Purge',\n 'ClassificationTemplateManagement.Create',\n 'CodeManagement.Read',\n 'ContactManagement.Create',\n 'ContactManagement.Purge',\n 'ServiceManagement.Create',\n 'ServiceManagement.Purge',\n 'DocumentManagement.Create',\n 'DocumentManagement.Purge',\n 'FormManagement.Create',\n 'FormManagement.Purge',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.Purge',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.Purge',\n 'PatientManagement.Create',\n 'PatientManagement.Purge',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.Purge',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.Purge',\n 'AgendaManagement.Create',\n 'GroupManagement.Read.BasicInfo',\n ],\n HIERARCHICAL_DATA_OWNER: [\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.DelegatedToParents',\n 'HealthElementManagement.ExtendedRead.DelegatedToParents',\n 'AccessLogManagement.ExtendedRead.DelegatedToParents',\n 'ArticleManagement.ExtendedRead.DelegatedToParents',\n 'CalendarItemManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationTemplateManagement.Read',\n 'ContactManagement.ExtendedRead.DelegatedToParents',\n 'ServiceManagement.ExtendedRead.DelegatedToParents',\n 'DocumentManagement.ExtendedRead.DelegatedToParents',\n 'FormManagement.ExtendedRead.DelegatedToParents',\n 'InvoiceManagement.ExtendedRead.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedRead.DelegatedToParents',\n 'MessageManagement.ExtendedRead.DelegatedToParents',\n 'PatientManagement.ExtendedRead.DelegatedToParents',\n 'ReceiptManagement.ExtendedRead.DelegatedToParents',\n 'TimeTableManagement.ExtendedRead.DelegatedToParents',\n 'TopicManagement.ExtendedRead.DelegatedToParents',\n 'HealthElementManagement.ExtendedUpdate.DelegatedToParents',\n 'AccessLogManagement.ExtendedUpdate.DelegatedToParents',\n 'ArticleManagement.ExtendedUpdate.DelegatedToParents',\n 'CalendarItemManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationTemplateManagement.Update',\n 'ContactManagement.ExtendedUpdate.DelegatedToParents',\n 'ServiceManagement.ExtendedUpdate.DelegatedToParents',\n 'DocumentManagement.ExtendedUpdate.DelegatedToParents',\n 'FormManagement.ExtendedUpdate.DelegatedToParents',\n 'InvoiceManagement.ExtendedUpdate.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedUpdate.DelegatedToParents',\n 'MessageManagement.ExtendedUpdate.DelegatedToParents',\n 'PatientManagement.ExtendedUpdate.DelegatedToParents',\n 'ReceiptManagement.ExtendedUpdate.DelegatedToParents',\n 'TimeTableManagement.ExtendedUpdate.DelegatedToParents',\n 'TopicManagement.ExtendedUpdate.DelegatedToParents',\n 'HealthElementManagement.ExtendedPurge.DelegatedToParents',\n 'AccessLogManagement.ExtendedPurge.DelegatedToParents',\n 'ArticleManagement.ExtendedPurge.DelegatedToParents',\n 'CalendarItemManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationTemplateManagement.Delete',\n 'ContactManagement.ExtendedPurge.DelegatedToParents',\n 'ServiceManagement.ExtendedPurge.DelegatedToParents',\n 'DocumentManagement.ExtendedPurge.DelegatedToParents',\n 'FormManagement.ExtendedPurge.DelegatedToParents',\n 'InvoiceManagement.ExtendedPurge.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedPurge.DelegatedToParents',\n 'MessageManagement.ExtendedPurge.DelegatedToParents',\n 'PatientManagement.ExtendedPurge.DelegatedToParents',\n 'ReceiptManagement.ExtendedPurge.DelegatedToParents',\n 'TimeTableManagement.ExtendedPurge.DelegatedToParents',\n 'TopicManagement.ExtendedPurge.DelegatedToParents',\n 'SecureDelegationKeyMapManagement.ExtendedRead.DelegatedToParents',\n 'RecoveryDataManagement.ExtendedCreate.ForParent',\n 'RecoveryDataManagement.ExtendedRead.ForParent',\n 'RecoveryDataManagement.ExtendedDelete.ForParent',\n 'GroupManagement.Read.AdvancedInfo',\n ],\n PATIENT_USER_MANAGER: [\n 'UserManagement.Create.Patient',\n 'UserManagement.Read.Patient',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.Metadata',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Patient',\n 'RecoveryDataManagement.ExtendedRead.Patient',\n 'RecoveryDataManagement.ExtendedDelete.Patient',\n ],\n HCP_USER_MANAGER: [\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Roles',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.DataOwnerDetails',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.Metadata',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Search',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'RecoveryDataManagement.ExtendedCreate.HealthcareParty',\n 'RecoveryDataManagement.ExtendedRead.HealthcareParty',\n 'RecoveryDataManagement.ExtendedDelete.HealthcareParty',\n ],\n DEVICE_USER_MANAGER: [\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Device',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.Metadata',\n 'UserManagement.Delete.Device',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Device',\n 'RecoveryDataManagement.ExtendedRead.Device',\n 'RecoveryDataManagement.ExtendedDelete.Device',\n 'DeviceManagement.Read.Any',\n 'DeviceManagement.Create',\n 'DeviceManagement.Purge.Any',\n 'DeviceManagement.Update.Any',\n 'DeviceManagement.Search',\n ],\n BASIC_USER: [\n 'UserManagement.Read.Own',\n 'UserManagement.Update.Own.Secrets',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.Metadata',\n 'UserManagement.Update.Own.VerifiedLoginIdentifiers',\n 'UserManagement.Delete.Own',\n 'GroupManagement.Read.BasicInfo',\n ],\n BASIC_USER_MANAGER: ['UserManagement.Create.Other'],\n TOPIC_PARTICIPANT: ['MessageManagement.ConditionalCreate.AsTopicParticipant', 'MessageManagement.Purge'],\n TOPIC_MANAGER: ['TopicManagement.Create'],\n LEGACY_MESSAGE_MANAGER: ['MessageManagement.Create', 'MessageManagement.Purge'],\n LEGACY_HCP: [\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'UserManagement.Update.Own.LoginIdentifiers',\n 'AgendaManagement.Create',\n 'MessageManagement.ProtectedContentUpdate.ReadStatus',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedUser',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedTime',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedEntryOverride',\n 'CryptoActorManagement.ExtendedUpdate.Patient.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.RecoveryData',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.RecoveryData',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.Any',\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Create.Patient',\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Own',\n 'UserManagement.Read.Admin',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Read.Patient',\n 'UserManagement.Read.Device',\n 'UserManagement.Read.Other',\n 'UserManagement.Search',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Other.Basic',\n 'UserManagement.Update.Other.ContactDetails',\n 'UserManagement.Update.Other.Status',\n 'UserManagement.Update.Other.Secrets',\n 'UserManagement.Update.Other.DataOwnerDetails',\n 'UserManagement.Update.Other.Roles',\n 'UserManagement.Delete.Own',\n 'UserManagement.Delete.Admin',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Delete.Device',\n 'UserManagement.Delete.Other',\n 'HealthElementManagement.Create',\n 'HealthElementManagement.ExtendedRead.Any',\n 'HealthElementManagement.ExtendedUpdate.Any',\n 'HealthElementManagement.ExtendedPurge.Any',\n 'HealthElementManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.Create',\n 'AccessLogManagement.ExtendedRead.Any',\n 'AccessLogManagement.ExtendedUpdate.Any',\n 'AccessLogManagement.ExtendedPurge.Any',\n 'AccessLogManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.AggregatePatientsByUser.Any',\n 'ArticleManagement.Create',\n 'ArticleManagement.ExtendedRead.Any',\n 'ArticleManagement.ExtendedUpdate.Any',\n 'ArticleManagement.ExtendedPurge.Any',\n 'ArticleManagement.ProtectedContentUpdate.CreationMetadata',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.ExtendedRead.Any',\n 'CalendarItemManagement.ExtendedUpdate.Any',\n 'CalendarItemManagement.ExtendedPurge.Any',\n 'CalendarItemManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.ExtendedRead.Any',\n 'ClassificationManagement.ExtendedUpdate.Any',\n 'ClassificationManagement.ExtendedPurge.Any',\n 'ClassificationManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationTemplateManagement.Create',\n 'ClassificationTemplateManagement.Read',\n 'ClassificationTemplateManagement.Update',\n 'ClassificationTemplateManagement.Delete',\n 'ClassificationTemplateManagement.ProtectedContentUpdate.CreationMetadata',\n 'ContactManagement.Create',\n 'ContactManagement.ExtendedRead.Any',\n 'ContactManagement.ExtendedUpdate.Any',\n 'ContactManagement.ExtendedPurge.Any',\n 'ContactManagement.ProtectedContentUpdate.CreationMetadata',\n 'ServiceManagement.ExtendedRead.Any',\n 'DocumentManagement.Create',\n 'DocumentManagement.ExtendedRead.Any',\n 'DocumentManagement.ExtendedUpdate.Any',\n 'DocumentManagement.ExtendedPurge.Any',\n 'DocumentManagement.ProtectedContentUpdate.CreationMetadata',\n 'FormManagement.Create',\n 'FormManagement.ExtendedRead.Any',\n 'FormManagement.ExtendedUpdate.Any',\n 'FormManagement.ExtendedPurge.Any',\n 'FormManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.ExtendedRead.Any',\n 'InvoiceManagement.ExtendedUpdate.Any',\n 'InvoiceManagement.ExtendedPurge.Any',\n 'InvoiceManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Maintenance.InvoicingCodesUpdate.Any',\n 'InvoiceManagement.Maintenance.CanGetInvoicesForUsersAndInsurances',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.ExtendedRead.Any',\n 'MaintenanceTaskManagement.ExtendedUpdate.Any',\n 'MaintenanceTaskManagement.ExtendedPurge.Any',\n 'MaintenanceTaskManagement.ProtectedContentUpdate.CreationMetadata',\n 'MessageManagement.Create',\n 'MessageManagement.ExtendedRead.Any',\n 'MessageManagement.ExtendedUpdate.Any',\n 'MessageManagement.ExtendedPurge.Any',\n 'MessageManagement.ProtectedContentUpdate.CreationMetadata',\n 'PatientManagement.Create',\n 'PatientManagement.ExtendedRead.Any',\n 'PatientManagement.ExtendedUpdate.Any',\n 'PatientManagement.ExtendedPurge.Any',\n 'PatientManagement.ProtectedContentUpdate.CreationMetadata',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.ExtendedRead.Any',\n 'ReceiptManagement.ExtendedUpdate.Any',\n 'ReceiptManagement.ExtendedPurge.Any',\n 'ReceiptManagement.ProtectedContentUpdate.CreationMetadata',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.ExtendedRead.Any',\n 'TimeTableManagement.ExtendedUpdate.Any',\n 'TimeTableManagement.ExtendedPurge.Any',\n 'TimeTableManagement.ProtectedContentUpdate.CreationMetadata',\n 'TopicManagement.Create',\n 'TopicManagement.ExtendedRead.Any',\n 'TopicManagement.ExtendedUpdate.Any',\n 'TopicManagement.ExtendedPurge.Any',\n 'TopicManagement.ProtectedContentUpdate.CreationMetadata',\n 'SystemMaintenance.TmpServiceUser',\n 'SystemMaintenance.ViewUpdate',\n 'SystemMaintenance.AutoResolveConflicts',\n 'SystemMaintenance.Metrics',\n 'SystemMaintenance.IndexingInfoReader',\n 'SystemMaintenance.ReplicationInfoReader',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'GroupManagement.Read.AdvancedInfo',\n 'ObjectStorageManagement.Read',\n 'ObjectStorageManagement.Create',\n ],\n}\n"]}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../test/utils/roles.ts"],"names":[],"mappings":"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","sourcesContent":["export const defaultRoles = {\n BASIC_DATA_OWNER: [\n 'HealthElementManagement.Create',\n 'HealthElementManagement.Purge',\n 'AccessLogManagement.Create',\n 'ArticleManagement.Create',\n 'ArticleManagement.Purge',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.Purge',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.Purge',\n 'ClassificationTemplateManagement.Create',\n 'CodeManagement.Read',\n 'ContactManagement.Create',\n 'ContactManagement.Purge',\n 'ServiceManagement.Create',\n 'ServiceManagement.Purge',\n 'DocumentManagement.Create',\n 'DocumentManagement.Purge',\n 'FormManagement.Create',\n 'FormManagement.Purge',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.Purge',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.Purge',\n 'PatientManagement.Create',\n 'PatientManagement.Purge',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.Purge',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.Purge',\n 'AgendaManagement.Create',\n 'GroupManagement.Read.BasicInfo',\n ],\n HIERARCHICAL_DATA_OWNER: [\n 'ApplicationSettingsManagement.Create',\n 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.DelegatedToParents',\n 'HealthElementManagement.ExtendedRead.DelegatedToParents',\n 'AccessLogManagement.ExtendedRead.DelegatedToParents',\n 'ArticleManagement.ExtendedRead.DelegatedToParents',\n 'CalendarItemManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationManagement.ExtendedRead.DelegatedToParents',\n 'ClassificationTemplateManagement.Read',\n 'ContactManagement.ExtendedRead.DelegatedToParents',\n 'ServiceManagement.ExtendedRead.DelegatedToParents',\n 'DocumentManagement.ExtendedRead.DelegatedToParents',\n 'FormManagement.ExtendedRead.DelegatedToParents',\n 'InvoiceManagement.ExtendedRead.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedRead.DelegatedToParents',\n 'MessageManagement.ExtendedRead.DelegatedToParents',\n 'PatientManagement.ExtendedRead.DelegatedToParents',\n 'ReceiptManagement.ExtendedRead.DelegatedToParents',\n 'TimeTableManagement.ExtendedRead.DelegatedToParents',\n 'TopicManagement.ExtendedRead.DelegatedToParents',\n 'HealthElementManagement.ExtendedUpdate.DelegatedToParents',\n 'AccessLogManagement.ExtendedUpdate.DelegatedToParents',\n 'ArticleManagement.ExtendedUpdate.DelegatedToParents',\n 'CalendarItemManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationManagement.ExtendedUpdate.DelegatedToParents',\n 'ClassificationTemplateManagement.Update',\n 'ContactManagement.ExtendedUpdate.DelegatedToParents',\n 'ServiceManagement.ExtendedUpdate.DelegatedToParents',\n 'DocumentManagement.ExtendedUpdate.DelegatedToParents',\n 'FormManagement.ExtendedUpdate.DelegatedToParents',\n 'InvoiceManagement.ExtendedUpdate.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedUpdate.DelegatedToParents',\n 'MessageManagement.ExtendedUpdate.DelegatedToParents',\n 'PatientManagement.ExtendedUpdate.DelegatedToParents',\n 'ReceiptManagement.ExtendedUpdate.DelegatedToParents',\n 'TimeTableManagement.ExtendedUpdate.DelegatedToParents',\n 'TopicManagement.ExtendedUpdate.DelegatedToParents',\n 'HealthElementManagement.ExtendedPurge.DelegatedToParents',\n 'AccessLogManagement.ExtendedPurge.DelegatedToParents',\n 'ArticleManagement.ExtendedPurge.DelegatedToParents',\n 'CalendarItemManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationManagement.ExtendedPurge.DelegatedToParents',\n 'ClassificationTemplateManagement.Delete',\n 'ContactManagement.ExtendedPurge.DelegatedToParents',\n 'ServiceManagement.ExtendedPurge.DelegatedToParents',\n 'DocumentManagement.ExtendedPurge.DelegatedToParents',\n 'FormManagement.ExtendedPurge.DelegatedToParents',\n 'InvoiceManagement.ExtendedPurge.DelegatedToParents',\n 'MaintenanceTaskManagement.ExtendedPurge.DelegatedToParents',\n 'MessageManagement.ExtendedPurge.DelegatedToParents',\n 'PatientManagement.ExtendedPurge.DelegatedToParents',\n 'ReceiptManagement.ExtendedPurge.DelegatedToParents',\n 'TimeTableManagement.ExtendedPurge.DelegatedToParents',\n 'TopicManagement.ExtendedPurge.DelegatedToParents',\n 'SecureDelegationKeyMapManagement.ExtendedRead.DelegatedToParents',\n 'RecoveryDataManagement.ExtendedCreate.ForParent',\n 'RecoveryDataManagement.ExtendedRead.ForParent',\n 'RecoveryDataManagement.ExtendedDelete.ForParent',\n 'GroupManagement.Read.AdvancedInfo',\n ],\n PATIENT_USER_MANAGER: [\n 'UserManagement.Create.Patient',\n 'UserManagement.Read.Patient',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.Metadata',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Patient',\n 'RecoveryDataManagement.ExtendedRead.Patient',\n 'RecoveryDataManagement.ExtendedDelete.Patient',\n ],\n HCP_USER_MANAGER: [\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Roles',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.DataOwnerDetails',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.Metadata',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Search',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'RecoveryDataManagement.ExtendedCreate.HealthcareParty',\n 'RecoveryDataManagement.ExtendedRead.HealthcareParty',\n 'RecoveryDataManagement.ExtendedDelete.HealthcareParty',\n ],\n DEVICE_USER_MANAGER: [\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Device',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.Metadata',\n 'UserManagement.Delete.Device',\n 'UserManagement.Search',\n 'RecoveryDataManagement.ExtendedCreate.Device',\n 'RecoveryDataManagement.ExtendedRead.Device',\n 'RecoveryDataManagement.ExtendedDelete.Device',\n 'DeviceManagement.Read.Any',\n 'DeviceManagement.Create',\n 'DeviceManagement.Purge.Any',\n 'DeviceManagement.Update.Any',\n 'DeviceManagement.Search',\n ],\n BASIC_USER: [\n 'UserManagement.Read.Own',\n 'UserManagement.Update.Own.Secrets',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.Metadata',\n 'UserManagement.Update.Own.VerifiedLoginIdentifiers',\n 'UserManagement.Delete.Own',\n 'GroupManagement.Read.BasicInfo',\n ],\n BASIC_USER_MANAGER: ['UserManagement.Create.Other'],\n TOPIC_PARTICIPANT: ['MessageManagement.ConditionalCreate.AsTopicParticipant', 'MessageManagement.Purge'],\n TOPIC_MANAGER: ['TopicManagement.Create'],\n LEGACY_MESSAGE_MANAGER: ['MessageManagement.Create', 'MessageManagement.Purge'],\n LEGACY_HCP: [\n 'ApplicationSettingsManagement.Create',\n 'ApplicationSettingsManagement.ExtendedRead.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedUpdate.DelegatedToParents',\n 'ApplicationSettingsManagement.ExtendedPurge.DelegatedToParents',\n 'ExtendedEncryptionMetadataEntitiesManagement.ForParent',\n 'UserManagement.Update.Own.LoginIdentifiers',\n 'AgendaManagement.Create',\n 'MessageManagement.ProtectedContentUpdate.ReadStatus',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedUser',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedTime',\n 'MessageManagement.ReadStatusUpdate.UnrestrictedEntryOverride',\n 'CryptoActorManagement.ExtendedUpdate.Patient.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.Patient.RecoveryData',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.PublicKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.AnyExchangeKeys',\n 'CryptoActorManagement.ExtendedUpdate.HealthcareParty.RecoveryData',\n 'CryptoActorManagement.ExtendedExchangeKeysSearch.Any',\n 'UserManagement.Create.HealthcareParty',\n 'UserManagement.Create.Patient',\n 'UserManagement.Create.Device',\n 'UserManagement.Read.Own',\n 'UserManagement.Read.Admin',\n 'UserManagement.Read.HealthcareParty',\n 'UserManagement.Read.Patient',\n 'UserManagement.Read.Device',\n 'UserManagement.Read.Other',\n 'UserManagement.Search',\n 'UserManagement.Update.Own.Basic',\n 'UserManagement.Update.Own.ContactDetails',\n 'UserManagement.Update.Own.Status',\n 'UserManagement.Update.HealthcareParty.Basic',\n 'UserManagement.Update.HealthcareParty.ContactDetails',\n 'UserManagement.Update.HealthcareParty.Status',\n 'UserManagement.Update.HealthcareParty.Secrets',\n 'UserManagement.Update.Patient.Basic',\n 'UserManagement.Update.Patient.ContactDetails',\n 'UserManagement.Update.Patient.Status',\n 'UserManagement.Update.Patient.Secrets',\n 'UserManagement.Update.Patient.DataOwnerDetails',\n 'UserManagement.Update.Patient.Roles',\n 'UserManagement.Update.Device.Basic',\n 'UserManagement.Update.Device.ContactDetails',\n 'UserManagement.Update.Device.Status',\n 'UserManagement.Update.Device.Secrets',\n 'UserManagement.Update.Device.DataOwnerDetails',\n 'UserManagement.Update.Device.Roles',\n 'UserManagement.Update.Other.Basic',\n 'UserManagement.Update.Other.ContactDetails',\n 'UserManagement.Update.Other.Status',\n 'UserManagement.Update.Other.Secrets',\n 'UserManagement.Update.Other.DataOwnerDetails',\n 'UserManagement.Update.Other.Roles',\n 'UserManagement.Delete.Own',\n 'UserManagement.Delete.Admin',\n 'UserManagement.Delete.HealthcareParty',\n 'UserManagement.Delete.Patient',\n 'UserManagement.Delete.Device',\n 'UserManagement.Delete.Other',\n 'HealthElementManagement.Create',\n 'HealthElementManagement.ExtendedRead.Any',\n 'HealthElementManagement.ExtendedUpdate.Any',\n 'HealthElementManagement.ExtendedPurge.Any',\n 'HealthElementManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.Create',\n 'AccessLogManagement.ExtendedRead.Any',\n 'AccessLogManagement.ExtendedUpdate.Any',\n 'AccessLogManagement.ExtendedPurge.Any',\n 'AccessLogManagement.ProtectedContentUpdate.CreationMetadata',\n 'AccessLogManagement.AggregatePatientsByUser.Any',\n 'ArticleManagement.Create',\n 'ArticleManagement.ExtendedRead.Any',\n 'ArticleManagement.ExtendedUpdate.Any',\n 'ArticleManagement.ExtendedPurge.Any',\n 'ArticleManagement.ProtectedContentUpdate.CreationMetadata',\n 'CalendarItemManagement.Create',\n 'CalendarItemManagement.ExtendedRead.Any',\n 'CalendarItemManagement.ExtendedUpdate.Any',\n 'CalendarItemManagement.ExtendedPurge.Any',\n 'CalendarItemManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationManagement.Create',\n 'ClassificationManagement.ExtendedRead.Any',\n 'ClassificationManagement.ExtendedUpdate.Any',\n 'ClassificationManagement.ExtendedPurge.Any',\n 'ClassificationManagement.ProtectedContentUpdate.CreationMetadata',\n 'ClassificationTemplateManagement.Create',\n 'ClassificationTemplateManagement.Read',\n 'ClassificationTemplateManagement.Update',\n 'ClassificationTemplateManagement.Delete',\n 'ClassificationTemplateManagement.ProtectedContentUpdate.CreationMetadata',\n 'ContactManagement.Create',\n 'ContactManagement.ExtendedRead.Any',\n 'ContactManagement.ExtendedUpdate.Any',\n 'ContactManagement.ExtendedPurge.Any',\n 'ContactManagement.ProtectedContentUpdate.CreationMetadata',\n 'ServiceManagement.ExtendedRead.Any',\n 'DocumentManagement.Create',\n 'DocumentManagement.ExtendedRead.Any',\n 'DocumentManagement.ExtendedUpdate.Any',\n 'DocumentManagement.ExtendedPurge.Any',\n 'DocumentManagement.ProtectedContentUpdate.CreationMetadata',\n 'FormManagement.Create',\n 'FormManagement.ExtendedRead.Any',\n 'FormManagement.ExtendedUpdate.Any',\n 'FormManagement.ExtendedPurge.Any',\n 'FormManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Create',\n 'InvoiceManagement.ExtendedRead.Any',\n 'InvoiceManagement.ExtendedUpdate.Any',\n 'InvoiceManagement.ExtendedPurge.Any',\n 'InvoiceManagement.ProtectedContentUpdate.CreationMetadata',\n 'InvoiceManagement.Maintenance.InvoicingCodesUpdate.Any',\n 'InvoiceManagement.Maintenance.CanGetInvoicesForUsersAndInsurances',\n 'MaintenanceTaskManagement.Create',\n 'MaintenanceTaskManagement.ExtendedRead.Any',\n 'MaintenanceTaskManagement.ExtendedUpdate.Any',\n 'MaintenanceTaskManagement.ExtendedPurge.Any',\n 'MaintenanceTaskManagement.ProtectedContentUpdate.CreationMetadata',\n 'MessageManagement.Create',\n 'MessageManagement.ExtendedRead.Any',\n 'MessageManagement.ExtendedUpdate.Any',\n 'MessageManagement.ExtendedPurge.Any',\n 'MessageManagement.ProtectedContentUpdate.CreationMetadata',\n 'PatientManagement.Create',\n 'PatientManagement.ExtendedRead.Any',\n 'PatientManagement.ExtendedUpdate.Any',\n 'PatientManagement.ExtendedPurge.Any',\n 'PatientManagement.ProtectedContentUpdate.CreationMetadata',\n 'ReceiptManagement.Create',\n 'ReceiptManagement.ExtendedRead.Any',\n 'ReceiptManagement.ExtendedUpdate.Any',\n 'ReceiptManagement.ExtendedPurge.Any',\n 'ReceiptManagement.ProtectedContentUpdate.CreationMetadata',\n 'TimeTableManagement.Create',\n 'TimeTableManagement.ExtendedRead.Any',\n 'TimeTableManagement.ExtendedUpdate.Any',\n 'TimeTableManagement.ExtendedPurge.Any',\n 'TimeTableManagement.ProtectedContentUpdate.CreationMetadata',\n 'TopicManagement.Create',\n 'TopicManagement.ExtendedRead.Any',\n 'TopicManagement.ExtendedUpdate.Any',\n 'TopicManagement.ExtendedPurge.Any',\n 'TopicManagement.ProtectedContentUpdate.CreationMetadata',\n 'SystemMaintenance.TmpServiceUser',\n 'SystemMaintenance.ViewUpdate',\n 'SystemMaintenance.AutoResolveConflicts',\n 'SystemMaintenance.Metrics',\n 'SystemMaintenance.IndexingInfoReader',\n 'SystemMaintenance.ReplicationInfoReader',\n 'HealthcarePartyManagement.FullRead',\n 'HealthcarePartyManagement.Create.Any',\n 'HealthcarePartyManagement.Delete.Any',\n 'HealthcarePartyManagement.Update.Any',\n 'HealthcarePartyManagement.ProtectedContentUpdate.CreationMetadata',\n 'HealthcarePartyManagement.ProtectedContentUpdate.Parent',\n 'HealthcarePartyManagement.ProtectedContentUpdate.BankDetails',\n 'GroupManagement.Read.AdvancedInfo',\n 'ObjectStorageManagement.Read',\n 'ObjectStorageManagement.Create',\n ],\n}\n"]}