gdc-common-utils-ts 1.0.7 → 1.1.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.
@@ -41,4 +41,4 @@ export interface CommMsgExtended extends DidCommPayload {
41
41
  /**
42
42
  * A type placeholder for a FHIR Communication resource.
43
43
  */
44
- export type FhirCommunication = any;
44
+ export type { FhirCommunicationResource as FhirCommunication } from './fhir-documents';
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Minimal strict-FHIR typing for Composition, DocumentReference, and Communication.
3
+ * These interfaces intentionally cover the subset used by frontend/backend flows today.
4
+ */
5
+ export type FhirReference = {
6
+ reference?: string;
7
+ type?: string;
8
+ display?: string;
9
+ };
10
+ export type FhirCoding = {
11
+ system?: string;
12
+ code?: string;
13
+ display?: string;
14
+ };
15
+ export type FhirCodeableConcept = {
16
+ coding?: FhirCoding[];
17
+ text?: string;
18
+ };
19
+ export type FhirAttachment = {
20
+ contentType?: string;
21
+ language?: string;
22
+ data?: string;
23
+ url?: string;
24
+ title?: string;
25
+ creation?: string;
26
+ };
27
+ export interface FhirCompositionResource {
28
+ resourceType: 'Composition';
29
+ id?: string;
30
+ status?: string;
31
+ type?: FhirCodeableConcept;
32
+ subject?: FhirReference;
33
+ date?: string;
34
+ author?: FhirReference[];
35
+ title?: string;
36
+ section?: Array<{
37
+ title?: string;
38
+ code?: FhirCodeableConcept;
39
+ text?: {
40
+ status?: string;
41
+ div?: string;
42
+ };
43
+ entry?: FhirReference[];
44
+ }>;
45
+ }
46
+ export interface FhirDocumentReferenceResource {
47
+ resourceType: 'DocumentReference';
48
+ id?: string;
49
+ status?: string;
50
+ identifier?: Array<{
51
+ system?: string;
52
+ value?: string;
53
+ }>;
54
+ type?: FhirCodeableConcept;
55
+ category?: FhirCodeableConcept[];
56
+ subject?: FhirReference;
57
+ date?: string;
58
+ author?: FhirReference[];
59
+ attester?: Array<{
60
+ mode?: string;
61
+ party?: FhirReference;
62
+ time?: string;
63
+ }>;
64
+ description?: string;
65
+ context?: {
66
+ encounter?: FhirReference[];
67
+ event?: FhirCodeableConcept[];
68
+ period?: {
69
+ start?: string;
70
+ end?: string;
71
+ };
72
+ related?: FhirReference[];
73
+ };
74
+ basedOn?: FhirReference[];
75
+ relatesTo?: Array<{
76
+ code?: string;
77
+ target?: FhirReference;
78
+ }>;
79
+ content?: Array<{
80
+ attachment?: FhirAttachment;
81
+ format?: FhirCoding;
82
+ }>;
83
+ }
84
+ export interface FhirCommunicationResource {
85
+ resourceType: 'Communication';
86
+ id?: string;
87
+ status?: string;
88
+ category?: FhirCodeableConcept[];
89
+ subject?: FhirReference;
90
+ recipient?: FhirReference[];
91
+ sender?: FhirReference;
92
+ sent?: string;
93
+ payload?: Array<{
94
+ contentAttachment?: FhirAttachment;
95
+ contentReference?: FhirReference;
96
+ }>;
97
+ partOf?: FhirReference[];
98
+ note?: Array<{
99
+ text?: string;
100
+ }>;
101
+ }
@@ -0,0 +1,3 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/fhir-documents.ts
3
+ export {};
@@ -11,6 +11,8 @@ export * from './consent-rule';
11
11
  export * from './crypto';
12
12
  export * from './device-license';
13
13
  export * from './did';
14
+ export * from './fhir-documents';
15
+ export * from './interoperable-claims';
14
16
  export * from './indexing';
15
17
  export * from './issue';
16
18
  export * from './jsonapi';
@@ -11,6 +11,8 @@ export * from './consent-rule.js';
11
11
  export * from './crypto.js';
12
12
  export * from './device-license.js';
13
13
  export * from './did.js';
14
+ export * from './fhir-documents.js';
15
+ export * from './interoperable-claims.js';
14
16
  export * from './indexing.js';
15
17
  export * from './issue.js';
16
18
  export * from './jsonapi.js';
@@ -0,0 +1,14 @@
1
+ export declare const CommunicationClaim: {
2
+ readonly Identifier: "Communication.identifier";
3
+ readonly Subject: "Communication.subject";
4
+ readonly Recipient: "Communication.recipient";
5
+ readonly Sender: "Communication.sender";
6
+ readonly Sent: "Communication.sent";
7
+ readonly Text: "Communication.text";
8
+ readonly ContentReference: "Communication.content-reference";
9
+ readonly ContentAttachmentData: "Communication.content-attachment-data";
10
+ readonly ContentAttachmentType: "Communication.content-attachment-type";
11
+ readonly ContentAttachmentTitle: "Communication.content-attachment-title";
12
+ readonly PartOf: "Communication.partOf";
13
+ };
14
+ export type CommunicationClaimKey = typeof CommunicationClaim[keyof typeof CommunicationClaim];
@@ -0,0 +1,15 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/communication-claims.ts
3
+ export const CommunicationClaim = {
4
+ Identifier: 'Communication.identifier',
5
+ Subject: 'Communication.subject',
6
+ Recipient: 'Communication.recipient',
7
+ Sender: 'Communication.sender',
8
+ Sent: 'Communication.sent',
9
+ Text: 'Communication.text',
10
+ ContentReference: 'Communication.content-reference',
11
+ ContentAttachmentData: 'Communication.content-attachment-data',
12
+ ContentAttachmentType: 'Communication.content-attachment-type',
13
+ ContentAttachmentTitle: 'Communication.content-attachment-title',
14
+ PartOf: 'Communication.partOf',
15
+ };
@@ -0,0 +1,11 @@
1
+ export declare const CompositionClaim: {
2
+ readonly Subject: "Composition.subject";
3
+ readonly Section: "Composition.section";
4
+ readonly Author: "Composition.author";
5
+ readonly Date: "Composition.date";
6
+ readonly Entry: "Composition.entry";
7
+ readonly Type: "Composition.type";
8
+ readonly Identifier: "Composition.identifier";
9
+ readonly Title: "Composition.title";
10
+ };
11
+ export type CompositionClaimKey = typeof CompositionClaim[keyof typeof CompositionClaim];
@@ -0,0 +1,12 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/composition-claims.ts
3
+ export const CompositionClaim = {
4
+ Subject: 'Composition.subject',
5
+ Section: 'Composition.section',
6
+ Author: 'Composition.author',
7
+ Date: 'Composition.date',
8
+ Entry: 'Composition.entry',
9
+ Type: 'Composition.type',
10
+ Identifier: 'Composition.identifier',
11
+ Title: 'Composition.title',
12
+ };
@@ -0,0 +1,35 @@
1
+ import type { ClaimSpec } from './types';
2
+ export declare const DocumentReferenceClaim: {
3
+ readonly Attester: "DocumentReference.attester";
4
+ readonly Author: "DocumentReference.author";
5
+ readonly BasedOn: "DocumentReference.basedOn";
6
+ readonly Category: "DocumentReference.category";
7
+ readonly ContentData: "DocumentReference.contentdata";
8
+ readonly ContentType: "DocumentReference.contenttype";
9
+ readonly Context: "DocumentReference.context";
10
+ readonly Creation: "DocumentReference.creation";
11
+ readonly Date: "DocumentReference.date";
12
+ readonly Description: "DocumentReference.description";
13
+ readonly EventCode: "DocumentReference.event-code";
14
+ readonly EventReference: "DocumentReference.event-reference";
15
+ readonly FormatUri: "DocumentReference.format-uri";
16
+ readonly Identifier: "DocumentReference.identifier";
17
+ readonly Language: "DocumentReference.language";
18
+ readonly Location: "DocumentReference.location";
19
+ readonly Modality: "DocumentReference.modality";
20
+ readonly RelatesTo: "DocumentReference.relatesto";
21
+ readonly Relation: "DocumentReference.relation";
22
+ readonly Subject: "DocumentReference.subject";
23
+ readonly Type: "DocumentReference.type";
24
+ };
25
+ export type DocumentReferenceClaimKey = typeof DocumentReferenceClaim[keyof typeof DocumentReferenceClaim];
26
+ /**
27
+ * Human-readable reference for UI/docs generators.
28
+ * This is intentionally claims-first metadata and not a FHIR structure.
29
+ */
30
+ export declare const DocumentReferenceClaimSpecs: ClaimSpec[];
31
+ /**
32
+ * Optional mapping helper when converting claims-first payloads to strict FHIR JSON.
33
+ * Not used as canonical claim naming.
34
+ */
35
+ export declare const DocumentReferenceClaimToFhirPath: Record<string, string | string[]>;
@@ -0,0 +1,82 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/document-reference-claims.ts
3
+ export const DocumentReferenceClaim = {
4
+ Attester: 'DocumentReference.attester',
5
+ Author: 'DocumentReference.author',
6
+ BasedOn: 'DocumentReference.basedOn',
7
+ Category: 'DocumentReference.category',
8
+ ContentData: 'DocumentReference.contentdata',
9
+ ContentType: 'DocumentReference.contenttype',
10
+ Context: 'DocumentReference.context',
11
+ Creation: 'DocumentReference.creation',
12
+ Date: 'DocumentReference.date',
13
+ Description: 'DocumentReference.description',
14
+ EventCode: 'DocumentReference.event-code',
15
+ EventReference: 'DocumentReference.event-reference',
16
+ FormatUri: 'DocumentReference.format-uri',
17
+ Identifier: 'DocumentReference.identifier',
18
+ Language: 'DocumentReference.language',
19
+ Location: 'DocumentReference.location',
20
+ Modality: 'DocumentReference.modality',
21
+ RelatesTo: 'DocumentReference.relatesto',
22
+ Relation: 'DocumentReference.relation',
23
+ Subject: 'DocumentReference.subject',
24
+ Type: 'DocumentReference.type',
25
+ };
26
+ /**
27
+ * Human-readable reference for UI/docs generators.
28
+ * This is intentionally claims-first metadata and not a FHIR structure.
29
+ */
30
+ export const DocumentReferenceClaimSpecs = [
31
+ { key: DocumentReferenceClaim.Attester, meaning: 'Attester value (DID or role: personal | professional | legal | official).', example: 'did:web:hospital.example.com:employee:adm-332' },
32
+ { key: DocumentReferenceClaim.Author, meaning: 'DID of the source author.', example: 'did:web:lab.example.com:system:lisin' },
33
+ { key: DocumentReferenceClaim.BasedOn, meaning: 'URL of the source FHIR resource.', example: 'https://ehr.example.com/fhir/ServiceRequest/sr-991' },
34
+ { key: DocumentReferenceClaim.Category, meaning: 'Higher-level document grouping.', example: 'http://hl7.org/fhir/ValueSet/document-classcodes|LP173418-7' },
35
+ { key: DocumentReferenceClaim.ContentData, meaning: 'Embedded attachment as base64.', example: 'JVBERi0xLjc...' },
36
+ { key: DocumentReferenceClaim.ContentType, meaning: 'Attachment MIME type.', example: 'application/pdf' },
37
+ { key: DocumentReferenceClaim.Context, meaning: 'Context such as Appointment | Encounter | EpisodeOfCare.', example: 'Encounter/enc-123' },
38
+ { key: DocumentReferenceClaim.Creation, meaning: 'When source information was created.', example: '2026-02-10T08:20:00Z' },
39
+ { key: DocumentReferenceClaim.Date, meaning: 'When this registration was attested.', example: '2026-02-10T10:05:33Z' },
40
+ { key: DocumentReferenceClaim.Description, meaning: 'Human-readable summary.', example: 'Vital signs report from home device' },
41
+ { key: DocumentReferenceClaim.EventCode, meaning: 'Main code for the source FHIR resource.', example: 'http://loinc.org|85354-9' },
42
+ { key: DocumentReferenceClaim.EventReference, meaning: 'URL of the source FHIR resource.', example: 'https://ehr.example.com/fhir/Observation/obs-778' },
43
+ { key: DocumentReferenceClaim.FormatUri, meaning: 'Attachment format URI.', example: 'urn:ihe:dent:PDF' },
44
+ { key: DocumentReferenceClaim.Identifier, meaning: 'Document identifier used for correlation.', example: 'docref-2026-00042' },
45
+ { key: DocumentReferenceClaim.Language, meaning: 'Language of attachment content.', example: 'en' },
46
+ { key: DocumentReferenceClaim.Location, meaning: 'Remote URL of attachment.', example: 'https://ehr.example.com/fhir/Binary/bin-123' },
47
+ { key: DocumentReferenceClaim.Modality, meaning: 'Imaging modality/equipment function.', example: 'http://dicom.nema.org/resources/ontology/DCM|CT' },
48
+ { key: DocumentReferenceClaim.RelatesTo, meaning: 'Reference to related/prior document.', example: 'DocumentReference/docref-00041' },
49
+ { key: DocumentReferenceClaim.Relation, meaning: 'Relation type to related document.', example: 'appends' },
50
+ { key: DocumentReferenceClaim.Subject, meaning: 'URN for the section in the individual index.', example: 'urn:uhix:section:vitals' },
51
+ { key: DocumentReferenceClaim.Type, meaning: 'Lower-level, sector-specific type.', example: 'http://hl7.org/fhir/ValueSet/c80-doc-typecodes|34133-9' },
52
+ ];
53
+ /**
54
+ * Optional mapping helper when converting claims-first payloads to strict FHIR JSON.
55
+ * Not used as canonical claim naming.
56
+ */
57
+ export const DocumentReferenceClaimToFhirPath = {
58
+ [DocumentReferenceClaim.Attester]: [
59
+ 'DocumentReference.attester.party.reference',
60
+ 'DocumentReference.attester.mode',
61
+ ],
62
+ [DocumentReferenceClaim.Author]: 'DocumentReference.author.reference',
63
+ [DocumentReferenceClaim.BasedOn]: 'DocumentReference.basedOn.reference',
64
+ [DocumentReferenceClaim.Category]: 'DocumentReference.category.coding',
65
+ [DocumentReferenceClaim.ContentData]: 'DocumentReference.content.attachment.data',
66
+ [DocumentReferenceClaim.ContentType]: 'DocumentReference.content.attachment.contentType',
67
+ [DocumentReferenceClaim.Context]: 'DocumentReference.context',
68
+ [DocumentReferenceClaim.Creation]: 'DocumentReference.content.attachment.creation',
69
+ [DocumentReferenceClaim.Date]: 'DocumentReference.date',
70
+ [DocumentReferenceClaim.Description]: 'DocumentReference.description',
71
+ [DocumentReferenceClaim.EventCode]: 'DocumentReference.context.event.coding',
72
+ [DocumentReferenceClaim.EventReference]: 'DocumentReference.context.related.reference',
73
+ [DocumentReferenceClaim.FormatUri]: 'DocumentReference.content.format.code',
74
+ [DocumentReferenceClaim.Identifier]: 'DocumentReference.identifier.value',
75
+ [DocumentReferenceClaim.Language]: 'DocumentReference.content.attachment.language',
76
+ [DocumentReferenceClaim.Location]: 'DocumentReference.content.attachment.url',
77
+ [DocumentReferenceClaim.Modality]: 'DocumentReference.modality',
78
+ [DocumentReferenceClaim.RelatesTo]: 'DocumentReference.relatesTo.target.reference',
79
+ [DocumentReferenceClaim.Relation]: 'DocumentReference.relatesTo.code',
80
+ [DocumentReferenceClaim.Subject]: 'DocumentReference.subject.reference',
81
+ [DocumentReferenceClaim.Type]: 'DocumentReference.type.coding',
82
+ };
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export * from './composition-claims';
3
+ export * from './communication-claims';
4
+ export * from './document-reference-claims';
@@ -0,0 +1,6 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/index.ts
3
+ export * from './types.js';
4
+ export * from './composition-claims.js';
5
+ export * from './communication-claims.js';
6
+ export * from './document-reference-claims.js';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Canonical interoperable-claims keys used by claims-first payloads.
3
+ * Keep this separated from strict FHIR resource typings.
4
+ */
5
+ export type ClaimSpec = {
6
+ key: string;
7
+ meaning: string;
8
+ example: string;
9
+ };
@@ -0,0 +1,3 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/types.ts
3
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Canonical interoperable-claims keys used by claims-first payloads.
3
+ * Keep this separated from strict FHIR resource typings.
4
+ */
5
+ export * from './interoperable-claims';
@@ -0,0 +1,7 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims.ts
3
+ /**
4
+ * Canonical interoperable-claims keys used by claims-first payloads.
5
+ * Keep this separated from strict FHIR resource typings.
6
+ */
7
+ export * from './interoperable-claims.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gdc-common-utils-ts",
3
- "version": "1.0.7",
3
+ "version": "1.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },