@icure/cardinal-sdk 2.9.0 → 2.10.1

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.
@@ -235,6 +235,11 @@ initMetadataForClass(BufferedChannelIterator, 'BufferedChannelIterator', VOID, V
235
235
  initMetadataForCoroutine($sendCOROUTINE$, CoroutineImpl);
236
236
  initMetadataForCoroutine($receiveCOROUTINE$, CoroutineImpl);
237
237
  initMetadataForCoroutine($receiveCatchingCOROUTINE$, CoroutineImpl);
238
+ function close$default(cause, $super) {
239
+ cause = cause === VOID ? null : cause;
240
+ return $super === VOID ? this.s1d(cause) : $super.s1d.call(this, cause);
241
+ }
242
+ initMetadataForInterface(SendChannel, 'SendChannel', VOID, VOID, VOID, [1]);
238
243
  function cancel$default_0(cause, $super) {
239
244
  cause = cause === VOID ? null : cause;
240
245
  var tmp;
@@ -247,12 +252,7 @@ function cancel$default_0(cause, $super) {
247
252
  return tmp;
248
253
  }
249
254
  initMetadataForInterface(ReceiveChannel, 'ReceiveChannel', VOID, VOID, VOID, [0]);
250
- function close$default(cause, $super) {
251
- cause = cause === VOID ? null : cause;
252
- return $super === VOID ? this.s1d(cause) : $super.s1d.call(this, cause);
253
- }
254
- initMetadataForInterface(SendChannel, 'SendChannel', VOID, VOID, VOID, [1]);
255
- initMetadataForClass(BufferedChannel, 'BufferedChannel', VOID, VOID, [ReceiveChannel, SendChannel], [1, 4, 0, 3]);
255
+ initMetadataForClass(BufferedChannel, 'BufferedChannel', VOID, VOID, [SendChannel, ReceiveChannel], [1, 4, 0, 3]);
256
256
  initMetadataForClass(WaiterEB, 'WaiterEB');
257
257
  initMetadataForClass(ReceiveCatching, 'ReceiveCatching', VOID, VOID, [Waiter]);
258
258
  initMetadataForObject(Factory, 'Factory');
@@ -262,7 +262,7 @@ initMetadataForCompanion(Companion);
262
262
  initMetadataForClass(ChannelResult, 'ChannelResult');
263
263
  initMetadataForClass(ClosedReceiveChannelException, 'ClosedReceiveChannelException', VOID, NoSuchElementException);
264
264
  initMetadataForClass(ClosedSendChannelException, 'ClosedSendChannelException', VOID, IllegalStateException);
265
- initMetadataForClass(ChannelCoroutine, 'ChannelCoroutine', VOID, AbstractCoroutine, [ReceiveChannel, SendChannel], [1, 0]);
265
+ initMetadataForClass(ChannelCoroutine, 'ChannelCoroutine', VOID, AbstractCoroutine, [SendChannel, ReceiveChannel], [1, 0]);
266
266
  initMetadataForClass(ConflatedBufferedChannel, 'ConflatedBufferedChannel', VOID, BufferedChannel, VOID, [1, 0]);
267
267
  initMetadataForInterface(ProducerScope, 'ProducerScope', VOID, VOID, [CoroutineScope, SendChannel], [1]);
268
268
  initMetadataForClass(ProducerCoroutine, 'ProducerCoroutine', VOID, ChannelCoroutine, [ProducerScope], [1, 0]);
@@ -6,7 +6,7 @@ import { ICureDocument } from './base/ICureDocument.mjs';
6
6
  import { Identifier } from './base/Identifier.mjs';
7
7
  import { StoredDocument } from './base/StoredDocument.mjs';
8
8
  import { Address, DecryptedAddress, EncryptedAddress } from './embed/Address.mjs';
9
- import { Annotation } from './embed/Annotation.mjs';
9
+ import { Annotation, DecryptedAnnotation, EncryptedAnnotation } from './embed/Annotation.mjs';
10
10
  import { ContactParticipant } from './embed/ContactParticipant.mjs';
11
11
  import { Delegation } from './embed/Delegation.mjs';
12
12
  import { Encryptable } from './embed/Encryptable.mjs';
@@ -272,7 +272,7 @@ export declare class DecryptedContact {
272
272
  *
273
273
  * Comments and notes recorded by a healthcare party about this contact.
274
274
  */
275
- notes: Array<Annotation>;
275
+ notes: Array<DecryptedAnnotation>;
276
276
  readonly isEncrypted: false;
277
277
  constructor(partial: Partial<DecryptedContact>);
278
278
  toJSON(): object;
@@ -453,7 +453,7 @@ export declare class EncryptedContact {
453
453
  *
454
454
  * Comments and notes recorded by a healthcare party about this contact.
455
455
  */
456
- notes: Array<Annotation>;
456
+ notes: Array<EncryptedAnnotation>;
457
457
  readonly isEncrypted: true;
458
458
  constructor(partial: Partial<EncryptedContact>);
459
459
  toJSON(): object;
package/model/Contact.mjs CHANGED
@@ -4,7 +4,7 @@ import { randomUuid } from '../utils/Id.mjs';
4
4
  import { CodeStub } from './base/CodeStub.mjs';
5
5
  import { Identifier } from './base/Identifier.mjs';
6
6
  import { DecryptedAddress, EncryptedAddress } from './embed/Address.mjs';
7
- import { Annotation } from './embed/Annotation.mjs';
7
+ import { DecryptedAnnotation, EncryptedAnnotation } from './embed/Annotation.mjs';
8
8
  import { ContactParticipant } from './embed/ContactParticipant.mjs';
9
9
  import { Delegation } from './embed/Delegation.mjs';
10
10
  import { SecurityMetadata } from './embed/SecurityMetadata.mjs';
@@ -319,7 +319,7 @@ export class DecryptedContact {
319
319
  encryptionKeys: expectMap(extractEntry(jCpy, 'encryptionKeys', false, path), false, [...path, ".encryptionKeys"], (k0, p0) => expectString(k0, false, p0), (v0, p0) => expectArray(v0, false, p0, (x1, p1) => expectObject(x1, false, ignoreUnknownKeys, p1, Delegation.fromJSON))),
320
320
  encryptedSelf: expectString(extractEntry(jCpy, 'encryptedSelf', false, path), true, [...path, ".encryptedSelf"]),
321
321
  securityMetadata: expectObject(extractEntry(jCpy, 'securityMetadata', false, path), true, ignoreUnknownKeys, [...path, ".securityMetadata"], SecurityMetadata.fromJSON),
322
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
322
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, DecryptedAnnotation.fromJSON)),
323
323
  });
324
324
  if (!ignoreUnknownKeys) {
325
325
  const unused = Object.keys(jCpy);
@@ -638,7 +638,7 @@ export class EncryptedContact {
638
638
  encryptionKeys: expectMap(extractEntry(jCpy, 'encryptionKeys', false, path), false, [...path, ".encryptionKeys"], (k0, p0) => expectString(k0, false, p0), (v0, p0) => expectArray(v0, false, p0, (x1, p1) => expectObject(x1, false, ignoreUnknownKeys, p1, Delegation.fromJSON))),
639
639
  encryptedSelf: expectString(extractEntry(jCpy, 'encryptedSelf', false, path), true, [...path, ".encryptedSelf"]),
640
640
  securityMetadata: expectObject(extractEntry(jCpy, 'securityMetadata', false, path), true, ignoreUnknownKeys, [...path, ".securityMetadata"], SecurityMetadata.fromJSON),
641
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
641
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, EncryptedAnnotation.fromJSON)),
642
642
  });
643
643
  if (!ignoreUnknownKeys) {
644
644
  const unused = Object.keys(jCpy);
@@ -4,7 +4,7 @@ import { HasEndOfLife } from './base/HasEndOfLife.mjs';
4
4
  import { ICureDocument } from './base/ICureDocument.mjs';
5
5
  import { Identifier } from './base/Identifier.mjs';
6
6
  import { StoredDocument } from './base/StoredDocument.mjs';
7
- import { Annotation } from './embed/Annotation.mjs';
7
+ import { Annotation, DecryptedAnnotation, EncryptedAnnotation } from './embed/Annotation.mjs';
8
8
  import { CareTeamMember, DecryptedCareTeamMember, EncryptedCareTeamMember } from './embed/CareTeamMember.mjs';
9
9
  import { Delegation } from './embed/Delegation.mjs';
10
10
  import { Encryptable } from './embed/Encryptable.mjs';
@@ -210,7 +210,7 @@ export declare class DecryptedHealthElement {
210
210
  *
211
211
  * Localized text annotations for the healthcare element.
212
212
  */
213
- notes: Array<Annotation>;
213
+ notes: Array<DecryptedAnnotation>;
214
214
  /**
215
215
  *
216
216
  * Whether the healthcare element is relevant or not.
@@ -394,7 +394,7 @@ export declare class EncryptedHealthElement {
394
394
  *
395
395
  * Localized text annotations for the healthcare element.
396
396
  */
397
- notes: Array<Annotation>;
397
+ notes: Array<EncryptedAnnotation>;
398
398
  /**
399
399
  *
400
400
  * Whether the healthcare element is relevant or not.
@@ -3,7 +3,7 @@ import { expectArray, expectBoolean, expectMap, expectNumber, expectObject, expe
3
3
  import { randomUuid } from '../utils/Id.mjs';
4
4
  import { CodeStub } from './base/CodeStub.mjs';
5
5
  import { Identifier } from './base/Identifier.mjs';
6
- import { Annotation } from './embed/Annotation.mjs';
6
+ import { DecryptedAnnotation, EncryptedAnnotation } from './embed/Annotation.mjs';
7
7
  import { DecryptedCareTeamMember, EncryptedCareTeamMember } from './embed/CareTeamMember.mjs';
8
8
  import { Delegation } from './embed/Delegation.mjs';
9
9
  import { DecryptedEpisode, EncryptedEpisode } from './embed/Episode.mjs';
@@ -327,7 +327,7 @@ export class DecryptedHealthElement {
327
327
  closingDate: expectNumber(extractEntry(jCpy, 'closingDate', false, path), true, true, [...path, ".closingDate"]),
328
328
  descr: expectString(extractEntry(jCpy, 'descr', false, path), true, [...path, ".descr"]),
329
329
  note: expectString(extractEntry(jCpy, 'note', false, path), true, [...path, ".note"]),
330
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
330
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, DecryptedAnnotation.fromJSON)),
331
331
  relevant: expectBoolean(extractEntry(jCpy, 'relevant', false, path), false, [...path, ".relevant"]),
332
332
  idOpeningContact: expectString(extractEntry(jCpy, 'idOpeningContact', false, path), true, [...path, ".idOpeningContact"]),
333
333
  idClosingContact: expectString(extractEntry(jCpy, 'idClosingContact', false, path), true, [...path, ".idClosingContact"]),
@@ -668,7 +668,7 @@ export class EncryptedHealthElement {
668
668
  closingDate: expectNumber(extractEntry(jCpy, 'closingDate', false, path), true, true, [...path, ".closingDate"]),
669
669
  descr: expectString(extractEntry(jCpy, 'descr', false, path), true, [...path, ".descr"]),
670
670
  note: expectString(extractEntry(jCpy, 'note', false, path), true, [...path, ".note"]),
671
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
671
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, EncryptedAnnotation.fromJSON)),
672
672
  relevant: expectBoolean(extractEntry(jCpy, 'relevant', false, path), false, [...path, ".relevant"]),
673
673
  idOpeningContact: expectString(extractEntry(jCpy, 'idOpeningContact', false, path), true, [...path, ".idOpeningContact"]),
674
674
  idClosingContact: expectString(extractEntry(jCpy, 'idClosingContact', false, path), true, [...path, ".idClosingContact"]),
@@ -8,7 +8,7 @@ import { Identifier } from './base/Identifier.mjs';
8
8
  import { Person } from './base/Person.mjs';
9
9
  import { StoredDocument } from './base/StoredDocument.mjs';
10
10
  import { DecryptedAddress, EncryptedAddress } from './embed/Address.mjs';
11
- import { Annotation } from './embed/Annotation.mjs';
11
+ import { Annotation, DecryptedAnnotation, EncryptedAnnotation } from './embed/Annotation.mjs';
12
12
  import { Delegation } from './embed/Delegation.mjs';
13
13
  import { Encryptable } from './embed/Encryptable.mjs';
14
14
  import { DecryptedFinancialInstitutionInformation, EncryptedFinancialInstitutionInformation, FinancialInstitutionInformation } from './embed/FinancialInstitutionInformation.mjs';
@@ -422,7 +422,7 @@ export declare class DecryptedPatient {
422
422
  *
423
423
  * Localized text notes (can be confidential).
424
424
  */
425
- notes: Array<Annotation>;
425
+ notes: Array<DecryptedAnnotation>;
426
426
  /**
427
427
  *
428
428
  * A text note (can be confidential, encrypted by default).
@@ -790,7 +790,7 @@ export declare class EncryptedPatient {
790
790
  *
791
791
  * Localized text notes (can be confidential).
792
792
  */
793
- notes: Array<Annotation>;
793
+ notes: Array<EncryptedAnnotation>;
794
794
  /**
795
795
  *
796
796
  * A text note (can be confidential, encrypted by default).
package/model/Patient.mjs CHANGED
@@ -5,7 +5,7 @@ import { DecryptedPropertyStub, EncryptedPropertyStub } from './PropertyStub.mjs
5
5
  import { CodeStub } from './base/CodeStub.mjs';
6
6
  import { Identifier } from './base/Identifier.mjs';
7
7
  import { DecryptedAddress, EncryptedAddress } from './embed/Address.mjs';
8
- import { Annotation } from './embed/Annotation.mjs';
8
+ import { DecryptedAnnotation, EncryptedAnnotation } from './embed/Annotation.mjs';
9
9
  import { Delegation } from './embed/Delegation.mjs';
10
10
  import { DecryptedFinancialInstitutionInformation, EncryptedFinancialInstitutionInformation } from './embed/FinancialInstitutionInformation.mjs';
11
11
  import { Gender } from './embed/Gender.mjs';
@@ -645,7 +645,7 @@ export class DecryptedPatient {
645
645
  deceased: expectBoolean(extractEntry(jCpy, 'deceased', false, path), true, [...path, ".deceased"]),
646
646
  education: expectString(extractEntry(jCpy, 'education', false, path), true, [...path, ".education"]),
647
647
  profession: expectString(extractEntry(jCpy, 'profession', false, path), true, [...path, ".profession"]),
648
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
648
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, DecryptedAnnotation.fromJSON)),
649
649
  note: expectString(extractEntry(jCpy, 'note', false, path), true, [...path, ".note"]),
650
650
  administrativeNote: expectString(extractEntry(jCpy, 'administrativeNote', false, path), true, [...path, ".administrativeNote"]),
651
651
  nationality: expectString(extractEntry(jCpy, 'nationality', false, path), true, [...path, ".nationality"]),
@@ -1311,7 +1311,7 @@ export class EncryptedPatient {
1311
1311
  deceased: expectBoolean(extractEntry(jCpy, 'deceased', false, path), true, [...path, ".deceased"]),
1312
1312
  education: expectString(extractEntry(jCpy, 'education', false, path), true, [...path, ".education"]),
1313
1313
  profession: expectString(extractEntry(jCpy, 'profession', false, path), true, [...path, ".profession"]),
1314
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
1314
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, EncryptedAnnotation.fromJSON)),
1315
1315
  note: expectString(extractEntry(jCpy, 'note', false, path), true, [...path, ".note"]),
1316
1316
  administrativeNote: expectString(extractEntry(jCpy, 'administrativeNote', false, path), true, [...path, ".administrativeNote"]),
1317
1317
  nationality: expectString(extractEntry(jCpy, 'nationality', false, path), true, [...path, ".nationality"]),
@@ -5,7 +5,7 @@ import { HasTags } from '../base/HasTags.mjs';
5
5
  import { Identifier } from '../base/Identifier.mjs';
6
6
  import { Base64String } from '../specializations/Base64String.mjs';
7
7
  import { AddressType } from './AddressType.mjs';
8
- import { Annotation } from './Annotation.mjs';
8
+ import { Annotation, DecryptedAnnotation, EncryptedAnnotation } from './Annotation.mjs';
9
9
  import { Encryptable } from './Encryptable.mjs';
10
10
  import { DecryptedTelecom, EncryptedTelecom, Telecom } from './Telecom.mjs';
11
11
  export interface Address extends Encryptable, HasTags, HasCodes, HasIdentifier {
@@ -38,7 +38,7 @@ export declare class DecryptedAddress {
38
38
  state: string | undefined;
39
39
  country: string | undefined;
40
40
  note: string | undefined;
41
- notes: Array<Annotation>;
41
+ notes: Array<DecryptedAnnotation>;
42
42
  telecoms: Array<DecryptedTelecom>;
43
43
  encryptedSelf: Base64String | undefined;
44
44
  readonly isEncrypted: false;
@@ -60,7 +60,7 @@ export declare class EncryptedAddress {
60
60
  state: string | undefined;
61
61
  country: string | undefined;
62
62
  note: string | undefined;
63
- notes: Array<Annotation>;
63
+ notes: Array<EncryptedAnnotation>;
64
64
  telecoms: Array<EncryptedTelecom>;
65
65
  encryptedSelf: Base64String | undefined;
66
66
  readonly isEncrypted: true;
@@ -3,7 +3,7 @@ import { expectArray, expectObject, expectString, expectStringEnum, extractEntry
3
3
  import { CodeStub } from '../base/CodeStub.mjs';
4
4
  import { Identifier } from '../base/Identifier.mjs';
5
5
  import { AddressType } from './AddressType.mjs';
6
- import { Annotation } from './Annotation.mjs';
6
+ import { DecryptedAnnotation, EncryptedAnnotation } from './Annotation.mjs';
7
7
  import { DecryptedTelecom, EncryptedTelecom } from './Telecom.mjs';
8
8
  export class DecryptedAddress {
9
9
  constructor(partial) {
@@ -111,7 +111,7 @@ export class DecryptedAddress {
111
111
  state: expectString(extractEntry(jCpy, 'state', false, path), true, [...path, ".state"]),
112
112
  country: expectString(extractEntry(jCpy, 'country', false, path), true, [...path, ".country"]),
113
113
  note: expectString(extractEntry(jCpy, 'note', false, path), true, [...path, ".note"]),
114
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
114
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, DecryptedAnnotation.fromJSON)),
115
115
  telecoms: expectArray(extractEntry(jCpy, 'telecoms', false, path), false, [...path, ".telecoms"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, DecryptedTelecom.fromJSON)),
116
116
  encryptedSelf: expectString(extractEntry(jCpy, 'encryptedSelf', false, path), true, [...path, ".encryptedSelf"]),
117
117
  });
@@ -229,7 +229,7 @@ export class EncryptedAddress {
229
229
  state: expectString(extractEntry(jCpy, 'state', false, path), true, [...path, ".state"]),
230
230
  country: expectString(extractEntry(jCpy, 'country', false, path), true, [...path, ".country"]),
231
231
  note: expectString(extractEntry(jCpy, 'note', false, path), true, [...path, ".note"]),
232
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
232
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, EncryptedAnnotation.fromJSON)),
233
233
  telecoms: expectArray(extractEntry(jCpy, 'telecoms', false, path), false, [...path, ".telecoms"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, EncryptedTelecom.fromJSON)),
234
234
  encryptedSelf: expectString(extractEntry(jCpy, 'encryptedSelf', false, path), true, [...path, ".encryptedSelf"]),
235
235
  });
@@ -1,5 +1,7 @@
1
1
  import { CodeStub } from '../base/CodeStub.mjs';
2
2
  import { Identifiable } from '../base/Identifiable.mjs';
3
+ import { Base64String } from '../specializations/Base64String.mjs';
4
+ import { Encryptable } from './Encryptable.mjs';
3
5
  /**
4
6
  *
5
7
  * Text node with attribution that can be attached to a medical record. Used by healthcare parties
@@ -7,7 +9,127 @@ import { Identifiable } from '../base/Identifiable.mjs';
7
9
  * for example to flag a faulty thermometer after taking a temperature.
8
10
  * /
9
11
  */
10
- export declare class Annotation implements Identifiable<string> {
12
+ export interface Annotation extends Identifiable<string>, Encryptable {
13
+ /**
14
+ *
15
+ * The identifier of the author of this annotation.
16
+ */
17
+ author: string | undefined;
18
+ /**
19
+ *
20
+ * The timestamp (unix epoch in ms) of creation of this note, filled automatically if missing.
21
+ */
22
+ created: number | undefined;
23
+ /**
24
+ *
25
+ * The timestamp (unix epoch in ms) of the latest modification of this note, filled automatically
26
+ * if missing.
27
+ */
28
+ modified: number | undefined;
29
+ /**
30
+ *
31
+ * Text contained in the note, written as markdown. Deprecated in favor of [markdown].
32
+ */
33
+ text: string | undefined;
34
+ /**
35
+ *
36
+ * Localized text contained in the note, written as markdown. Keys should respect ISO 639-1.
37
+ */
38
+ markdown: {
39
+ [key: string]: string;
40
+ };
41
+ /**
42
+ *
43
+ * Defines to which part of the corresponding information the note is related to.
44
+ */
45
+ location: string | undefined;
46
+ /**
47
+ *
48
+ * Whether this annotation is confidential.
49
+ */
50
+ confidential: boolean | undefined;
51
+ /**
52
+ *
53
+ * Tags associated with this annotation.
54
+ */
55
+ tags: Array<CodeStub>;
56
+ readonly isEncrypted: boolean;
57
+ toJSON(): object;
58
+ }
59
+ /**
60
+ *
61
+ * Text node with attribution that can be attached to a medical record. Used by healthcare parties
62
+ * to add side notes,
63
+ * for example to flag a faulty thermometer after taking a temperature.
64
+ * /
65
+ */
66
+ export declare class DecryptedAnnotation {
67
+ /**
68
+ *
69
+ * The Id of the Annotation. We encourage using either a v4 UUID or a HL7 Id.
70
+ */
71
+ id: string;
72
+ /**
73
+ *
74
+ * The identifier of the author of this annotation.
75
+ */
76
+ author: string | undefined;
77
+ /**
78
+ *
79
+ * The timestamp (unix epoch in ms) of creation of this note, filled automatically if missing.
80
+ */
81
+ created: number | undefined;
82
+ /**
83
+ *
84
+ * The timestamp (unix epoch in ms) of the latest modification of this note, filled automatically
85
+ * if missing.
86
+ */
87
+ modified: number | undefined;
88
+ /**
89
+ *
90
+ * Text contained in the note, written as markdown. Deprecated in favor of [markdown].
91
+ */
92
+ text: string | undefined;
93
+ /**
94
+ *
95
+ * Localized text contained in the note, written as markdown. Keys should respect ISO 639-1.
96
+ */
97
+ markdown: {
98
+ [key: string]: string;
99
+ };
100
+ /**
101
+ *
102
+ * Defines to which part of the corresponding information the note is related to.
103
+ */
104
+ location: string | undefined;
105
+ /**
106
+ *
107
+ * Whether this annotation is confidential.
108
+ */
109
+ confidential: boolean | undefined;
110
+ /**
111
+ *
112
+ * Tags associated with this annotation.
113
+ */
114
+ tags: Array<CodeStub>;
115
+ /**
116
+ *
117
+ * The encrypted content of this annotation.
118
+ */
119
+ encryptedSelf: Base64String | undefined;
120
+ readonly isEncrypted: false;
121
+ constructor(partial: Partial<DecryptedAnnotation>);
122
+ toJSON(): object;
123
+ static fromJSON(json: any, ignoreUnknownKeys?: boolean, path?: Array<string>): DecryptedAnnotation;
124
+ }
125
+ /**
126
+ *
127
+ * Text node with attribution that can be attached to a medical record. Used by healthcare parties
128
+ * to add side notes,
129
+ * for example to flag a faulty thermometer after taking a temperature.
130
+ * /
131
+ */
132
+ export declare class EncryptedAnnotation {
11
133
  /**
12
134
  *
13
135
  * The Id of the Annotation. We encourage using either a v4 UUID or a HL7 Id.
@@ -60,8 +182,9 @@ export declare class Annotation implements Identifiable<string> {
60
182
  *
61
183
  * The encrypted content of this annotation.
62
184
  */
63
- encryptedSelf: string | undefined;
64
- constructor(partial: Partial<Annotation>);
185
+ encryptedSelf: Base64String | undefined;
186
+ readonly isEncrypted: true;
187
+ constructor(partial: Partial<EncryptedAnnotation>);
65
188
  toJSON(): object;
66
- static fromJSON(json: any, ignoreUnknownKeys?: boolean, path?: Array<string>): Annotation;
189
+ static fromJSON(json: any, ignoreUnknownKeys?: boolean, path?: Array<string>): EncryptedAnnotation;
67
190
  }
@@ -9,7 +9,7 @@ import { CodeStub } from '../base/CodeStub.mjs';
9
9
  * for example to flag a faulty thermometer after taking a temperature.
10
10
  * /
11
11
  */
12
- export class Annotation {
12
+ export class DecryptedAnnotation {
13
13
  constructor(partial) {
14
14
  var _a;
15
15
  /**
@@ -58,6 +58,9 @@ export class Annotation {
58
58
  * The encrypted content of this annotation.
59
59
  */
60
60
  this.encryptedSelf = undefined;
61
+ this.isEncrypted = false;
62
+ if (partial.isEncrypted !== undefined && partial.isEncrypted !== false)
63
+ throw new Error('partial.isEncrypted must be undefined or false');
61
64
  this.id = (_a = partial.id) !== null && _a !== void 0 ? _a : randomUuid();
62
65
  if ('author' in partial)
63
66
  this.author = partial.author;
@@ -97,13 +100,16 @@ export class Annotation {
97
100
  res['tags'] = this.tags.map((x0) => x0.toJSON());
98
101
  if (this.encryptedSelf != undefined)
99
102
  res['encryptedSelf'] = this.encryptedSelf;
103
+ res['isEncrypted'] = false;
100
104
  return res;
101
105
  }
102
- static fromJSON(json, ignoreUnknownKeys = false, path = ['Annotation']) {
106
+ static fromJSON(json, ignoreUnknownKeys = false, path = ['DecryptedAnnotation']) {
103
107
  if (typeof json != 'object')
104
108
  throw new Error(`Expected json object at path ${path.join("")}`);
105
109
  const jCpy = Object.assign({}, json);
106
- const res = new Annotation({
110
+ if (extractEntry(jCpy, "isEncrypted", true, path) !== false)
111
+ throw new Error(`Unexpected value for ${path.join("")} isEncrypted marker, should be false. The provided json doesn't represent a DecryptedAnnotation`);
112
+ const res = new DecryptedAnnotation({
107
113
  id: expectString(extractEntry(jCpy, 'id', true, path), false, [...path, ".id"]),
108
114
  author: expectString(extractEntry(jCpy, 'author', false, path), true, [...path, ".author"]),
109
115
  created: expectNumber(extractEntry(jCpy, 'created', false, path), true, true, [...path, ".created"]),
@@ -118,7 +124,134 @@ export class Annotation {
118
124
  if (!ignoreUnknownKeys) {
119
125
  const unused = Object.keys(jCpy);
120
126
  if (unused.length > 0)
121
- throw new Error(`Unexpected key(s) for json object Annotation at path ${path.join("")}: ${unused}`);
127
+ throw new Error(`Unexpected key(s) for json object DecryptedAnnotation at path ${path.join("")}: ${unused}`);
128
+ }
129
+ return res;
130
+ }
131
+ }
132
+ /**
133
+ *
134
+ * Text node with attribution that can be attached to a medical record. Used by healthcare parties
135
+ * to add side notes,
136
+ * for example to flag a faulty thermometer after taking a temperature.
137
+ * /
138
+ */
139
+ export class EncryptedAnnotation {
140
+ constructor(partial) {
141
+ var _a;
142
+ /**
143
+ *
144
+ * The identifier of the author of this annotation.
145
+ */
146
+ this.author = undefined;
147
+ /**
148
+ *
149
+ * The timestamp (unix epoch in ms) of creation of this note, filled automatically if missing.
150
+ */
151
+ this.created = undefined;
152
+ /**
153
+ *
154
+ * The timestamp (unix epoch in ms) of the latest modification of this note, filled automatically
155
+ * if missing.
156
+ */
157
+ this.modified = undefined;
158
+ /**
159
+ *
160
+ * Text contained in the note, written as markdown. Deprecated in favor of [markdown].
161
+ */
162
+ this.text = undefined;
163
+ /**
164
+ *
165
+ * Localized text contained in the note, written as markdown. Keys should respect ISO 639-1.
166
+ */
167
+ this.markdown = {};
168
+ /**
169
+ *
170
+ * Defines to which part of the corresponding information the note is related to.
171
+ */
172
+ this.location = undefined;
173
+ /**
174
+ *
175
+ * Whether this annotation is confidential.
176
+ */
177
+ this.confidential = undefined;
178
+ /**
179
+ *
180
+ * Tags associated with this annotation.
181
+ */
182
+ this.tags = [];
183
+ /**
184
+ *
185
+ * The encrypted content of this annotation.
186
+ */
187
+ this.encryptedSelf = undefined;
188
+ this.isEncrypted = true;
189
+ if (partial.isEncrypted !== undefined && partial.isEncrypted !== true)
190
+ throw new Error('partial.isEncrypted must be undefined or true');
191
+ this.id = (_a = partial.id) !== null && _a !== void 0 ? _a : randomUuid();
192
+ if ('author' in partial)
193
+ this.author = partial.author;
194
+ if ('created' in partial)
195
+ this.created = partial.created;
196
+ if ('modified' in partial)
197
+ this.modified = partial.modified;
198
+ if ('text' in partial)
199
+ this.text = partial.text;
200
+ if ('markdown' in partial && partial.markdown !== undefined)
201
+ this.markdown = partial.markdown;
202
+ if ('location' in partial)
203
+ this.location = partial.location;
204
+ if ('confidential' in partial)
205
+ this.confidential = partial.confidential;
206
+ if ('tags' in partial && partial.tags !== undefined)
207
+ this.tags = partial.tags;
208
+ if ('encryptedSelf' in partial)
209
+ this.encryptedSelf = partial.encryptedSelf;
210
+ }
211
+ toJSON() {
212
+ const res = {};
213
+ res['id'] = this.id;
214
+ if (this.author != undefined)
215
+ res['author'] = this.author;
216
+ if (this.created != undefined)
217
+ res['created'] = this.created;
218
+ if (this.modified != undefined)
219
+ res['modified'] = this.modified;
220
+ if (this.text != undefined)
221
+ res['text'] = this.text;
222
+ res['markdown'] = Object.fromEntries(Object.entries(this.markdown).map(([k0, v0]) => [k0, v0]));
223
+ if (this.location != undefined)
224
+ res['location'] = this.location;
225
+ if (this.confidential != undefined)
226
+ res['confidential'] = this.confidential;
227
+ res['tags'] = this.tags.map((x0) => x0.toJSON());
228
+ if (this.encryptedSelf != undefined)
229
+ res['encryptedSelf'] = this.encryptedSelf;
230
+ res['isEncrypted'] = true;
231
+ return res;
232
+ }
233
+ static fromJSON(json, ignoreUnknownKeys = false, path = ['EncryptedAnnotation']) {
234
+ if (typeof json != 'object')
235
+ throw new Error(`Expected json object at path ${path.join("")}`);
236
+ const jCpy = Object.assign({}, json);
237
+ if (extractEntry(jCpy, "isEncrypted", true, path) !== true)
238
+ throw new Error(`Unexpected value for ${path.join("")} isEncrypted marker, should be true. The provided json doesn't represent a EncryptedAnnotation`);
239
+ const res = new EncryptedAnnotation({
240
+ id: expectString(extractEntry(jCpy, 'id', true, path), false, [...path, ".id"]),
241
+ author: expectString(extractEntry(jCpy, 'author', false, path), true, [...path, ".author"]),
242
+ created: expectNumber(extractEntry(jCpy, 'created', false, path), true, true, [...path, ".created"]),
243
+ modified: expectNumber(extractEntry(jCpy, 'modified', false, path), true, true, [...path, ".modified"]),
244
+ text: expectString(extractEntry(jCpy, 'text', false, path), true, [...path, ".text"]),
245
+ markdown: expectMap(extractEntry(jCpy, 'markdown', false, path), false, [...path, ".markdown"], (k0, p0) => expectString(k0, false, p0), (v0, p0) => expectString(v0, false, p0)),
246
+ location: expectString(extractEntry(jCpy, 'location', false, path), true, [...path, ".location"]),
247
+ confidential: expectBoolean(extractEntry(jCpy, 'confidential', false, path), true, [...path, ".confidential"]),
248
+ tags: expectArray(extractEntry(jCpy, 'tags', false, path), false, [...path, ".tags"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, CodeStub.fromJSON)),
249
+ encryptedSelf: expectString(extractEntry(jCpy, 'encryptedSelf', false, path), true, [...path, ".encryptedSelf"]),
250
+ });
251
+ if (!ignoreUnknownKeys) {
252
+ const unused = Object.keys(jCpy);
253
+ if (unused.length > 0)
254
+ throw new Error(`Unexpected key(s) for json object EncryptedAnnotation at path ${path.join("")}: ${unused}`);
122
255
  }
123
256
  return res;
124
257
  }
@@ -1,5 +1,5 @@
1
1
  import { CodeStub } from '../base/CodeStub.mjs';
2
- import { Annotation } from './Annotation.mjs';
2
+ import { DecryptedAnnotation } from './Annotation.mjs';
3
3
  import { Range } from './Range.mjs';
4
4
  /**
5
5
  *
@@ -37,7 +37,7 @@ export declare class ReferenceRange {
37
37
  *
38
38
  * Annotations providing additional context.
39
39
  */
40
- notes: Array<Annotation>;
40
+ notes: Array<DecryptedAnnotation>;
41
41
  /**
42
42
  *
43
43
  * The age range to which this reference range applies.
@@ -1,7 +1,7 @@
1
1
  // auto-generated file
2
2
  import { expectArray, expectNumber, expectObject, expectString, extractEntry } from '../../internal/JsonDecodeUtils.mjs';
3
3
  import { CodeStub } from '../base/CodeStub.mjs';
4
- import { Annotation } from './Annotation.mjs';
4
+ import { DecryptedAnnotation } from './Annotation.mjs';
5
5
  import { Range } from './Range.mjs';
6
6
  /**
7
7
  *
@@ -86,7 +86,7 @@ export class ReferenceRange {
86
86
  stringValue: expectString(extractEntry(jCpy, 'stringValue', false, path), true, [...path, ".stringValue"]),
87
87
  tags: expectArray(extractEntry(jCpy, 'tags', false, path), false, [...path, ".tags"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, CodeStub.fromJSON)),
88
88
  codes: expectArray(extractEntry(jCpy, 'codes', false, path), false, [...path, ".codes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, CodeStub.fromJSON)),
89
- notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, Annotation.fromJSON)),
89
+ notes: expectArray(extractEntry(jCpy, 'notes', false, path), false, [...path, ".notes"], (x0, p0) => expectObject(x0, false, ignoreUnknownKeys, p0, DecryptedAnnotation.fromJSON)),
90
90
  age: expectObject(extractEntry(jCpy, 'age', false, path), true, ignoreUnknownKeys, [...path, ".age"], Range.fromJSON),
91
91
  });
92
92
  if (!ignoreUnknownKeys) {
@@ -5,7 +5,7 @@ import { ICureDocument } from '../base/ICureDocument.mjs';
5
5
  import { Identifier } from '../base/Identifier.mjs';
6
6
  import { LinkQualification } from '../base/LinkQualification.mjs';
7
7
  import { Base64String } from '../specializations/Base64String.mjs';
8
- import { Annotation } from './Annotation.mjs';
8
+ import { Annotation, DecryptedAnnotation, EncryptedAnnotation } from './Annotation.mjs';
9
9
  import { Content, DecryptedContent, EncryptedContent } from './Content.mjs';
10
10
  import { Delegation } from './Delegation.mjs';
11
11
  import { Encryptable } from './Encryptable.mjs';
@@ -289,7 +289,7 @@ export declare class DecryptedService {
289
289
  *
290
290
  * Comments - Notes recorded by a HCP about this service
291
291
  */
292
- notes: Array<Annotation>;
292
+ notes: Array<DecryptedAnnotation>;
293
293
  /**
294
294
  *
295
295
  * Links towards related services (possibly in other contacts)
@@ -462,7 +462,7 @@ export declare class EncryptedService {
462
462
  *
463
463
  * Comments - Notes recorded by a HCP about this service
464
464
  */
465
- notes: Array<Annotation>;
465
+ notes: Array<EncryptedAnnotation>;
466
466
  /**
467
467
  *
468
468
  * Links towards related services (possibly in other contacts)