gdc-common-utils-ts 1.5.0 → 1.6.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.
- package/README.md +36 -4
- package/dist/constants/schemaorg.d.ts +2 -0
- package/dist/constants/schemaorg.js +2 -0
- package/dist/examples/api-flow-examples.d.ts +1 -0
- package/dist/examples/api-flow-examples.js +1 -0
- package/dist/examples/consent-access.d.ts +146 -0
- package/dist/examples/consent-access.js +112 -0
- package/dist/examples/contract-examples.d.ts +1 -0
- package/dist/examples/contract-examples.js +1 -0
- package/dist/examples/index.d.ts +3 -0
- package/dist/examples/index.js +3 -0
- package/dist/examples/individual-controller.d.ts +0 -15
- package/dist/examples/individual-controller.js +2 -1
- package/dist/examples/lifecycle.d.ts +503 -0
- package/dist/examples/lifecycle.js +289 -0
- package/dist/examples/organization-controller.d.ts +2 -2
- package/dist/examples/organization-controller.js +3 -3
- package/dist/examples/professional.d.ts +9 -2
- package/dist/examples/professional.js +16 -5
- package/dist/examples/relationship-access.d.ts +11 -0
- package/dist/examples/relationship-access.js +96 -0
- package/dist/examples/shared.d.ts +34 -0
- package/dist/examples/shared.js +30 -24
- package/dist/models/consent-access.d.ts +79 -0
- package/dist/models/consent-access.js +2 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.js +2 -0
- package/dist/models/relationship-access.d.ts +160 -0
- package/dist/models/relationship-access.js +21 -0
- package/dist/utils/activation-request.d.ts +42 -0
- package/dist/utils/activation-request.js +42 -0
- package/dist/utils/communication-identity.d.ts +25 -15
- package/dist/utils/communication-identity.js +23 -13
- package/dist/utils/consent.d.ts +74 -0
- package/dist/utils/consent.js +485 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/individual-form-pdf.d.ts +55 -0
- package/dist/utils/individual-form-pdf.js +191 -0
- package/package.json +1 -1
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical lifecycle naming for `v1`.
|
|
3
|
+
*
|
|
4
|
+
* SDKs, Swagger examples, portal payload builders, and GW adapters should use
|
|
5
|
+
* these semantic operation names instead of mixing `revoke`, `suspend`,
|
|
6
|
+
* `deactivate`, or product-specific labels at the API contract layer.
|
|
7
|
+
*/
|
|
8
|
+
export declare const EXAMPLE_LIFECYCLE_OPERATIONS: {
|
|
9
|
+
readonly enable: "enable";
|
|
10
|
+
readonly disable: "disable";
|
|
11
|
+
readonly delete: "delete";
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Shared placeholder values used by copy/paste examples.
|
|
15
|
+
*
|
|
16
|
+
* These are intentionally synthetic and stable. Repositories should override
|
|
17
|
+
* them at runtime with environment variables, UI form values, or test fixtures
|
|
18
|
+
* rather than committing personal data.
|
|
19
|
+
*/
|
|
20
|
+
export declare const EXAMPLE_LIFECYCLE_PLACEHOLDERS: {
|
|
21
|
+
readonly tenantId: "acme-id";
|
|
22
|
+
readonly jurisdiction: "ES";
|
|
23
|
+
readonly sector: "health-care";
|
|
24
|
+
readonly tenantTaxId: "{{tenantTaxId}}";
|
|
25
|
+
readonly tenantDid: "{{tenantDid}}";
|
|
26
|
+
readonly employeeIdentifier: "{{employeeIdentifier}}";
|
|
27
|
+
readonly employeeEmail: "{{employeeEmail}}";
|
|
28
|
+
readonly employeeRole: "{{employeeRole}}";
|
|
29
|
+
readonly individualIdentifier: "{{individualIdentifier}}";
|
|
30
|
+
readonly individualAlternateName: "{{individualAlternateName}}";
|
|
31
|
+
readonly individualSubjectDid: "{{individualSubjectDid}}";
|
|
32
|
+
readonly consentIdentifier: "{{consentIdentifier}}";
|
|
33
|
+
readonly consentActorIdentifier: "{{consentActorIdentifier}}";
|
|
34
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
35
|
+
readonly icaCredentialStatus: "{{icaCredentialStatus}}";
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Canonical semantic lifecycle message examples.
|
|
39
|
+
*
|
|
40
|
+
* These examples are transport-neutral. GW Swagger, Node SDK, Front SDK, and
|
|
41
|
+
* backend adapters may embed them inside route-specific envelopes, but they
|
|
42
|
+
* must not fork the claim content or lifecycle naming.
|
|
43
|
+
*/
|
|
44
|
+
export declare const EXAMPLE_EMPLOYEE_ENABLE_MESSAGE: {
|
|
45
|
+
readonly operation: "enable";
|
|
46
|
+
readonly resourceType: "Employee";
|
|
47
|
+
readonly routeContext: {
|
|
48
|
+
readonly tenantId: "acme-id";
|
|
49
|
+
readonly jurisdiction: "ES";
|
|
50
|
+
readonly sector: "health-care";
|
|
51
|
+
};
|
|
52
|
+
readonly claims: {
|
|
53
|
+
readonly '@context': "org.schema";
|
|
54
|
+
readonly "org.schema.Person.identifier": "{{employeeIdentifier}}";
|
|
55
|
+
readonly "org.schema.Person.email": "{{employeeEmail}}";
|
|
56
|
+
readonly "org.schema.Person.hasOccupation.identifier.value": "{{employeeRole}}";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export declare const EXAMPLE_EMPLOYEE_DISABLE_MESSAGE: {
|
|
60
|
+
readonly operation: "disable";
|
|
61
|
+
readonly resourceType: "Employee";
|
|
62
|
+
readonly routeContext: {
|
|
63
|
+
readonly tenantId: "acme-id";
|
|
64
|
+
readonly jurisdiction: "ES";
|
|
65
|
+
readonly sector: "health-care";
|
|
66
|
+
};
|
|
67
|
+
readonly claims: {
|
|
68
|
+
readonly '@context': "org.schema";
|
|
69
|
+
readonly "org.schema.Person.identifier": "{{employeeIdentifier}}";
|
|
70
|
+
readonly "org.schema.Person.email": "{{employeeEmail}}";
|
|
71
|
+
readonly "org.schema.Person.hasOccupation.identifier.value": "{{employeeRole}}";
|
|
72
|
+
};
|
|
73
|
+
readonly expectedSemantics: {
|
|
74
|
+
readonly keepsAuditTrail: true;
|
|
75
|
+
readonly releasesLicenseSeat: false;
|
|
76
|
+
readonly requiresIcaCredentialStatusUpdate: true;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export declare const EXAMPLE_EMPLOYEE_DELETE_MESSAGE: {
|
|
80
|
+
readonly operation: "delete";
|
|
81
|
+
readonly resourceType: "Employee";
|
|
82
|
+
readonly routeContext: {
|
|
83
|
+
readonly tenantId: "acme-id";
|
|
84
|
+
readonly jurisdiction: "ES";
|
|
85
|
+
readonly sector: "health-care";
|
|
86
|
+
};
|
|
87
|
+
readonly claims: {
|
|
88
|
+
readonly '@context': "org.schema";
|
|
89
|
+
readonly "org.schema.Person.identifier": "{{employeeIdentifier}}";
|
|
90
|
+
readonly "org.schema.Person.email": "{{employeeEmail}}";
|
|
91
|
+
readonly "org.schema.Person.hasOccupation.identifier.value": "{{employeeRole}}";
|
|
92
|
+
};
|
|
93
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
94
|
+
};
|
|
95
|
+
export declare const EXAMPLE_TENANT_ENABLE_MESSAGE: {
|
|
96
|
+
readonly operation: "enable";
|
|
97
|
+
readonly resourceType: "Organization";
|
|
98
|
+
readonly routeContext: {
|
|
99
|
+
readonly tenantId: "host";
|
|
100
|
+
readonly jurisdiction: "ES";
|
|
101
|
+
readonly sector: "health-care";
|
|
102
|
+
};
|
|
103
|
+
readonly claims: {
|
|
104
|
+
readonly '@context': "org.schema";
|
|
105
|
+
readonly "org.schema.Organization.identifier.value": "{{tenantTaxId}}";
|
|
106
|
+
readonly "org.schema.Organization.taxID": "{{tenantTaxId}}";
|
|
107
|
+
readonly "org.schema.Organization.identifier": "{{tenantDid}}";
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
export declare const EXAMPLE_TENANT_DISABLE_MESSAGE: {
|
|
111
|
+
readonly operation: "disable";
|
|
112
|
+
readonly resourceType: "Organization";
|
|
113
|
+
readonly routeContext: {
|
|
114
|
+
readonly tenantId: "host";
|
|
115
|
+
readonly jurisdiction: "ES";
|
|
116
|
+
readonly sector: "health-care";
|
|
117
|
+
};
|
|
118
|
+
readonly claims: {
|
|
119
|
+
readonly '@context': "org.schema";
|
|
120
|
+
readonly "org.schema.Organization.identifier.value": "{{tenantTaxId}}";
|
|
121
|
+
readonly "org.schema.Organization.taxID": "{{tenantTaxId}}";
|
|
122
|
+
readonly "org.schema.Organization.identifier": "{{tenantDid}}";
|
|
123
|
+
};
|
|
124
|
+
readonly expectedSemantics: {
|
|
125
|
+
readonly keepsAuditTrail: true;
|
|
126
|
+
readonly purgeAllowedByDefault: false;
|
|
127
|
+
readonly requiresIcaCredentialStatusUpdate: true;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
export declare const EXAMPLE_TENANT_DELETE_MESSAGE: {
|
|
131
|
+
readonly operation: "delete";
|
|
132
|
+
readonly resourceType: "Organization";
|
|
133
|
+
readonly routeContext: {
|
|
134
|
+
readonly tenantId: "host";
|
|
135
|
+
readonly jurisdiction: "ES";
|
|
136
|
+
readonly sector: "health-care";
|
|
137
|
+
};
|
|
138
|
+
readonly claims: {
|
|
139
|
+
readonly '@context': "org.schema";
|
|
140
|
+
readonly "org.schema.Organization.identifier.value": "{{tenantTaxId}}";
|
|
141
|
+
readonly "org.schema.Organization.taxID": "{{tenantTaxId}}";
|
|
142
|
+
readonly "org.schema.Organization.identifier": "{{tenantDid}}";
|
|
143
|
+
};
|
|
144
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
145
|
+
};
|
|
146
|
+
export declare const EXAMPLE_INDIVIDUAL_ENABLE_MESSAGE: {
|
|
147
|
+
readonly operation: "enable";
|
|
148
|
+
readonly resourceType: "IndividualOrganization";
|
|
149
|
+
readonly routeContext: {
|
|
150
|
+
readonly tenantId: "acme-id";
|
|
151
|
+
readonly jurisdiction: "ES";
|
|
152
|
+
readonly sector: "health-care";
|
|
153
|
+
};
|
|
154
|
+
readonly claims: {
|
|
155
|
+
readonly '@context': "org.schema";
|
|
156
|
+
readonly "org.schema.Organization.identifier": "{{individualIdentifier}}";
|
|
157
|
+
readonly "org.schema.Organization.alternateName": "{{individualAlternateName}}";
|
|
158
|
+
readonly "org.schema.Organization.owner.email": "ana.parent@example.org";
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
export declare const EXAMPLE_INDIVIDUAL_DISABLE_MESSAGE: {
|
|
162
|
+
readonly operation: "disable";
|
|
163
|
+
readonly resourceType: "IndividualOrganization";
|
|
164
|
+
readonly routeContext: {
|
|
165
|
+
readonly tenantId: "acme-id";
|
|
166
|
+
readonly jurisdiction: "ES";
|
|
167
|
+
readonly sector: "health-care";
|
|
168
|
+
};
|
|
169
|
+
readonly claims: {
|
|
170
|
+
readonly '@context': "org.schema";
|
|
171
|
+
readonly "org.schema.Organization.identifier": "{{individualIdentifier}}";
|
|
172
|
+
readonly "org.schema.Organization.alternateName": "{{individualAlternateName}}";
|
|
173
|
+
readonly "org.schema.Organization.owner.email": "ana.parent@example.org";
|
|
174
|
+
};
|
|
175
|
+
readonly expectedSemantics: {
|
|
176
|
+
readonly keepsAuditTrail: true;
|
|
177
|
+
readonly erasesPersonalDataImmediately: false;
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
export declare const EXAMPLE_INDIVIDUAL_DELETE_MESSAGE: {
|
|
181
|
+
readonly operation: "delete";
|
|
182
|
+
readonly resourceType: "IndividualOrganization";
|
|
183
|
+
readonly routeContext: {
|
|
184
|
+
readonly tenantId: "acme-id";
|
|
185
|
+
readonly jurisdiction: "ES";
|
|
186
|
+
readonly sector: "health-care";
|
|
187
|
+
};
|
|
188
|
+
readonly claims: {
|
|
189
|
+
readonly '@context': "org.schema";
|
|
190
|
+
readonly "org.schema.Organization.identifier": "{{individualIdentifier}}";
|
|
191
|
+
readonly "org.schema.Organization.alternateName": "{{individualAlternateName}}";
|
|
192
|
+
readonly "org.schema.Organization.owner.email": "ana.parent@example.org";
|
|
193
|
+
};
|
|
194
|
+
readonly deleteReason: "right-to-be-forgotten";
|
|
195
|
+
readonly expectedSemantics: {
|
|
196
|
+
readonly invokesPrivacyWorkflow: true;
|
|
197
|
+
readonly keepsMinimumAuditTrailRequiredByLaw: true;
|
|
198
|
+
};
|
|
199
|
+
};
|
|
200
|
+
export declare const EXAMPLE_CONSENT_ENABLE_MESSAGE: {
|
|
201
|
+
readonly operation: "enable";
|
|
202
|
+
readonly resourceType: "Consent";
|
|
203
|
+
readonly routeContext: {
|
|
204
|
+
readonly tenantId: "acme-id";
|
|
205
|
+
readonly jurisdiction: "ES";
|
|
206
|
+
readonly sector: "health-care";
|
|
207
|
+
};
|
|
208
|
+
readonly claims: {
|
|
209
|
+
readonly '@context': "org.hl7.fhir.api";
|
|
210
|
+
readonly "Consent.identifier": "{{consentIdentifier}}";
|
|
211
|
+
readonly "Consent.subject": "{{individualSubjectDid}}";
|
|
212
|
+
readonly "Consent.actor-identifier": "{{consentActorIdentifier}}";
|
|
213
|
+
readonly "Consent.actor-role": "ISCO-08|2211";
|
|
214
|
+
readonly "Consent.purpose": "TREAT";
|
|
215
|
+
readonly "Consent.action": "LOINC|48765-2";
|
|
216
|
+
readonly "Consent.decision": "permit";
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
export declare const EXAMPLE_CONSENT_DISABLE_MESSAGE: {
|
|
220
|
+
readonly operation: "disable";
|
|
221
|
+
readonly resourceType: "Consent";
|
|
222
|
+
readonly routeContext: {
|
|
223
|
+
readonly tenantId: "acme-id";
|
|
224
|
+
readonly jurisdiction: "ES";
|
|
225
|
+
readonly sector: "health-care";
|
|
226
|
+
};
|
|
227
|
+
readonly claims: {
|
|
228
|
+
readonly '@context': "org.hl7.fhir.api";
|
|
229
|
+
readonly "Consent.identifier": "{{consentIdentifier}}";
|
|
230
|
+
readonly "Consent.subject": "{{individualSubjectDid}}";
|
|
231
|
+
readonly "Consent.actor-identifier": "{{consentActorIdentifier}}";
|
|
232
|
+
readonly "Consent.actor-role": "ISCO-08|2211";
|
|
233
|
+
readonly "Consent.purpose": "TREAT";
|
|
234
|
+
readonly "Consent.action": "LOINC|48765-2";
|
|
235
|
+
readonly "Consent.decision": "permit";
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
export declare const EXAMPLE_CONSENT_DELETE_MESSAGE: {
|
|
239
|
+
readonly operation: "delete";
|
|
240
|
+
readonly resourceType: "Consent";
|
|
241
|
+
readonly routeContext: {
|
|
242
|
+
readonly tenantId: "acme-id";
|
|
243
|
+
readonly jurisdiction: "ES";
|
|
244
|
+
readonly sector: "health-care";
|
|
245
|
+
};
|
|
246
|
+
readonly claims: {
|
|
247
|
+
readonly '@context': "org.hl7.fhir.api";
|
|
248
|
+
readonly "Consent.identifier": "{{consentIdentifier}}";
|
|
249
|
+
readonly "Consent.subject": "{{individualSubjectDid}}";
|
|
250
|
+
readonly "Consent.actor-identifier": "{{consentActorIdentifier}}";
|
|
251
|
+
};
|
|
252
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* A compact reference object that documentation generators and SDK tutorials can
|
|
256
|
+
* render without having to cherry-pick individual exports by hand.
|
|
257
|
+
*/
|
|
258
|
+
export declare const EXAMPLE_LIFECYCLE_REFERENCE: {
|
|
259
|
+
readonly placeholders: {
|
|
260
|
+
readonly tenantId: "acme-id";
|
|
261
|
+
readonly jurisdiction: "ES";
|
|
262
|
+
readonly sector: "health-care";
|
|
263
|
+
readonly tenantTaxId: "{{tenantTaxId}}";
|
|
264
|
+
readonly tenantDid: "{{tenantDid}}";
|
|
265
|
+
readonly employeeIdentifier: "{{employeeIdentifier}}";
|
|
266
|
+
readonly employeeEmail: "{{employeeEmail}}";
|
|
267
|
+
readonly employeeRole: "{{employeeRole}}";
|
|
268
|
+
readonly individualIdentifier: "{{individualIdentifier}}";
|
|
269
|
+
readonly individualAlternateName: "{{individualAlternateName}}";
|
|
270
|
+
readonly individualSubjectDid: "{{individualSubjectDid}}";
|
|
271
|
+
readonly consentIdentifier: "{{consentIdentifier}}";
|
|
272
|
+
readonly consentActorIdentifier: "{{consentActorIdentifier}}";
|
|
273
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
274
|
+
readonly icaCredentialStatus: "{{icaCredentialStatus}}";
|
|
275
|
+
};
|
|
276
|
+
readonly operations: {
|
|
277
|
+
readonly enable: "enable";
|
|
278
|
+
readonly disable: "disable";
|
|
279
|
+
readonly delete: "delete";
|
|
280
|
+
};
|
|
281
|
+
readonly employee: {
|
|
282
|
+
readonly enable: {
|
|
283
|
+
readonly operation: "enable";
|
|
284
|
+
readonly resourceType: "Employee";
|
|
285
|
+
readonly routeContext: {
|
|
286
|
+
readonly tenantId: "acme-id";
|
|
287
|
+
readonly jurisdiction: "ES";
|
|
288
|
+
readonly sector: "health-care";
|
|
289
|
+
};
|
|
290
|
+
readonly claims: {
|
|
291
|
+
readonly '@context': "org.schema";
|
|
292
|
+
readonly "org.schema.Person.identifier": "{{employeeIdentifier}}";
|
|
293
|
+
readonly "org.schema.Person.email": "{{employeeEmail}}";
|
|
294
|
+
readonly "org.schema.Person.hasOccupation.identifier.value": "{{employeeRole}}";
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
readonly disable: {
|
|
298
|
+
readonly operation: "disable";
|
|
299
|
+
readonly resourceType: "Employee";
|
|
300
|
+
readonly routeContext: {
|
|
301
|
+
readonly tenantId: "acme-id";
|
|
302
|
+
readonly jurisdiction: "ES";
|
|
303
|
+
readonly sector: "health-care";
|
|
304
|
+
};
|
|
305
|
+
readonly claims: {
|
|
306
|
+
readonly '@context': "org.schema";
|
|
307
|
+
readonly "org.schema.Person.identifier": "{{employeeIdentifier}}";
|
|
308
|
+
readonly "org.schema.Person.email": "{{employeeEmail}}";
|
|
309
|
+
readonly "org.schema.Person.hasOccupation.identifier.value": "{{employeeRole}}";
|
|
310
|
+
};
|
|
311
|
+
readonly expectedSemantics: {
|
|
312
|
+
readonly keepsAuditTrail: true;
|
|
313
|
+
readonly releasesLicenseSeat: false;
|
|
314
|
+
readonly requiresIcaCredentialStatusUpdate: true;
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
readonly delete: {
|
|
318
|
+
readonly operation: "delete";
|
|
319
|
+
readonly resourceType: "Employee";
|
|
320
|
+
readonly routeContext: {
|
|
321
|
+
readonly tenantId: "acme-id";
|
|
322
|
+
readonly jurisdiction: "ES";
|
|
323
|
+
readonly sector: "health-care";
|
|
324
|
+
};
|
|
325
|
+
readonly claims: {
|
|
326
|
+
readonly '@context': "org.schema";
|
|
327
|
+
readonly "org.schema.Person.identifier": "{{employeeIdentifier}}";
|
|
328
|
+
readonly "org.schema.Person.email": "{{employeeEmail}}";
|
|
329
|
+
readonly "org.schema.Person.hasOccupation.identifier.value": "{{employeeRole}}";
|
|
330
|
+
};
|
|
331
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
readonly tenant: {
|
|
335
|
+
readonly enable: {
|
|
336
|
+
readonly operation: "enable";
|
|
337
|
+
readonly resourceType: "Organization";
|
|
338
|
+
readonly routeContext: {
|
|
339
|
+
readonly tenantId: "host";
|
|
340
|
+
readonly jurisdiction: "ES";
|
|
341
|
+
readonly sector: "health-care";
|
|
342
|
+
};
|
|
343
|
+
readonly claims: {
|
|
344
|
+
readonly '@context': "org.schema";
|
|
345
|
+
readonly "org.schema.Organization.identifier.value": "{{tenantTaxId}}";
|
|
346
|
+
readonly "org.schema.Organization.taxID": "{{tenantTaxId}}";
|
|
347
|
+
readonly "org.schema.Organization.identifier": "{{tenantDid}}";
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
readonly disable: {
|
|
351
|
+
readonly operation: "disable";
|
|
352
|
+
readonly resourceType: "Organization";
|
|
353
|
+
readonly routeContext: {
|
|
354
|
+
readonly tenantId: "host";
|
|
355
|
+
readonly jurisdiction: "ES";
|
|
356
|
+
readonly sector: "health-care";
|
|
357
|
+
};
|
|
358
|
+
readonly claims: {
|
|
359
|
+
readonly '@context': "org.schema";
|
|
360
|
+
readonly "org.schema.Organization.identifier.value": "{{tenantTaxId}}";
|
|
361
|
+
readonly "org.schema.Organization.taxID": "{{tenantTaxId}}";
|
|
362
|
+
readonly "org.schema.Organization.identifier": "{{tenantDid}}";
|
|
363
|
+
};
|
|
364
|
+
readonly expectedSemantics: {
|
|
365
|
+
readonly keepsAuditTrail: true;
|
|
366
|
+
readonly purgeAllowedByDefault: false;
|
|
367
|
+
readonly requiresIcaCredentialStatusUpdate: true;
|
|
368
|
+
};
|
|
369
|
+
};
|
|
370
|
+
readonly delete: {
|
|
371
|
+
readonly operation: "delete";
|
|
372
|
+
readonly resourceType: "Organization";
|
|
373
|
+
readonly routeContext: {
|
|
374
|
+
readonly tenantId: "host";
|
|
375
|
+
readonly jurisdiction: "ES";
|
|
376
|
+
readonly sector: "health-care";
|
|
377
|
+
};
|
|
378
|
+
readonly claims: {
|
|
379
|
+
readonly '@context': "org.schema";
|
|
380
|
+
readonly "org.schema.Organization.identifier.value": "{{tenantTaxId}}";
|
|
381
|
+
readonly "org.schema.Organization.taxID": "{{tenantTaxId}}";
|
|
382
|
+
readonly "org.schema.Organization.identifier": "{{tenantDid}}";
|
|
383
|
+
};
|
|
384
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
385
|
+
};
|
|
386
|
+
};
|
|
387
|
+
readonly individual: {
|
|
388
|
+
readonly enable: {
|
|
389
|
+
readonly operation: "enable";
|
|
390
|
+
readonly resourceType: "IndividualOrganization";
|
|
391
|
+
readonly routeContext: {
|
|
392
|
+
readonly tenantId: "acme-id";
|
|
393
|
+
readonly jurisdiction: "ES";
|
|
394
|
+
readonly sector: "health-care";
|
|
395
|
+
};
|
|
396
|
+
readonly claims: {
|
|
397
|
+
readonly '@context': "org.schema";
|
|
398
|
+
readonly "org.schema.Organization.identifier": "{{individualIdentifier}}";
|
|
399
|
+
readonly "org.schema.Organization.alternateName": "{{individualAlternateName}}";
|
|
400
|
+
readonly "org.schema.Organization.owner.email": "ana.parent@example.org";
|
|
401
|
+
};
|
|
402
|
+
};
|
|
403
|
+
readonly disable: {
|
|
404
|
+
readonly operation: "disable";
|
|
405
|
+
readonly resourceType: "IndividualOrganization";
|
|
406
|
+
readonly routeContext: {
|
|
407
|
+
readonly tenantId: "acme-id";
|
|
408
|
+
readonly jurisdiction: "ES";
|
|
409
|
+
readonly sector: "health-care";
|
|
410
|
+
};
|
|
411
|
+
readonly claims: {
|
|
412
|
+
readonly '@context': "org.schema";
|
|
413
|
+
readonly "org.schema.Organization.identifier": "{{individualIdentifier}}";
|
|
414
|
+
readonly "org.schema.Organization.alternateName": "{{individualAlternateName}}";
|
|
415
|
+
readonly "org.schema.Organization.owner.email": "ana.parent@example.org";
|
|
416
|
+
};
|
|
417
|
+
readonly expectedSemantics: {
|
|
418
|
+
readonly keepsAuditTrail: true;
|
|
419
|
+
readonly erasesPersonalDataImmediately: false;
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
readonly delete: {
|
|
423
|
+
readonly operation: "delete";
|
|
424
|
+
readonly resourceType: "IndividualOrganization";
|
|
425
|
+
readonly routeContext: {
|
|
426
|
+
readonly tenantId: "acme-id";
|
|
427
|
+
readonly jurisdiction: "ES";
|
|
428
|
+
readonly sector: "health-care";
|
|
429
|
+
};
|
|
430
|
+
readonly claims: {
|
|
431
|
+
readonly '@context': "org.schema";
|
|
432
|
+
readonly "org.schema.Organization.identifier": "{{individualIdentifier}}";
|
|
433
|
+
readonly "org.schema.Organization.alternateName": "{{individualAlternateName}}";
|
|
434
|
+
readonly "org.schema.Organization.owner.email": "ana.parent@example.org";
|
|
435
|
+
};
|
|
436
|
+
readonly deleteReason: "right-to-be-forgotten";
|
|
437
|
+
readonly expectedSemantics: {
|
|
438
|
+
readonly invokesPrivacyWorkflow: true;
|
|
439
|
+
readonly keepsMinimumAuditTrailRequiredByLaw: true;
|
|
440
|
+
};
|
|
441
|
+
};
|
|
442
|
+
};
|
|
443
|
+
readonly consent: {
|
|
444
|
+
readonly enable: {
|
|
445
|
+
readonly operation: "enable";
|
|
446
|
+
readonly resourceType: "Consent";
|
|
447
|
+
readonly routeContext: {
|
|
448
|
+
readonly tenantId: "acme-id";
|
|
449
|
+
readonly jurisdiction: "ES";
|
|
450
|
+
readonly sector: "health-care";
|
|
451
|
+
};
|
|
452
|
+
readonly claims: {
|
|
453
|
+
readonly '@context': "org.hl7.fhir.api";
|
|
454
|
+
readonly "Consent.identifier": "{{consentIdentifier}}";
|
|
455
|
+
readonly "Consent.subject": "{{individualSubjectDid}}";
|
|
456
|
+
readonly "Consent.actor-identifier": "{{consentActorIdentifier}}";
|
|
457
|
+
readonly "Consent.actor-role": "ISCO-08|2211";
|
|
458
|
+
readonly "Consent.purpose": "TREAT";
|
|
459
|
+
readonly "Consent.action": "LOINC|48765-2";
|
|
460
|
+
readonly "Consent.decision": "permit";
|
|
461
|
+
};
|
|
462
|
+
};
|
|
463
|
+
readonly disable: {
|
|
464
|
+
readonly operation: "disable";
|
|
465
|
+
readonly resourceType: "Consent";
|
|
466
|
+
readonly routeContext: {
|
|
467
|
+
readonly tenantId: "acme-id";
|
|
468
|
+
readonly jurisdiction: "ES";
|
|
469
|
+
readonly sector: "health-care";
|
|
470
|
+
};
|
|
471
|
+
readonly claims: {
|
|
472
|
+
readonly '@context': "org.hl7.fhir.api";
|
|
473
|
+
readonly "Consent.identifier": "{{consentIdentifier}}";
|
|
474
|
+
readonly "Consent.subject": "{{individualSubjectDid}}";
|
|
475
|
+
readonly "Consent.actor-identifier": "{{consentActorIdentifier}}";
|
|
476
|
+
readonly "Consent.actor-role": "ISCO-08|2211";
|
|
477
|
+
readonly "Consent.purpose": "TREAT";
|
|
478
|
+
readonly "Consent.action": "LOINC|48765-2";
|
|
479
|
+
readonly "Consent.decision": "permit";
|
|
480
|
+
};
|
|
481
|
+
};
|
|
482
|
+
readonly delete: {
|
|
483
|
+
readonly operation: "delete";
|
|
484
|
+
readonly resourceType: "Consent";
|
|
485
|
+
readonly routeContext: {
|
|
486
|
+
readonly tenantId: "acme-id";
|
|
487
|
+
readonly jurisdiction: "ES";
|
|
488
|
+
readonly sector: "health-care";
|
|
489
|
+
};
|
|
490
|
+
readonly claims: {
|
|
491
|
+
readonly '@context': "org.hl7.fhir.api";
|
|
492
|
+
readonly "Consent.identifier": "{{consentIdentifier}}";
|
|
493
|
+
readonly "Consent.subject": "{{individualSubjectDid}}";
|
|
494
|
+
readonly "Consent.actor-identifier": "{{consentActorIdentifier}}";
|
|
495
|
+
};
|
|
496
|
+
readonly deleteReason: "{{deleteReason}}";
|
|
497
|
+
};
|
|
498
|
+
};
|
|
499
|
+
readonly exampleActors: {
|
|
500
|
+
readonly organizationControllerEmail: "controller@acme.org";
|
|
501
|
+
readonly individualControllerEmail: "ana.parent@example.org";
|
|
502
|
+
};
|
|
503
|
+
};
|