gdc-common-utils-ts 1.14.10 → 1.14.14

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 (265) hide show
  1. package/README.md +60 -1
  2. package/dist/claims/claim-list-helpers.d.ts +21 -0
  3. package/dist/claims/claim-list-helpers.js +50 -0
  4. package/dist/claims/claims-helpers-allergy-intolerance.d.ts +10 -0
  5. package/dist/claims/claims-helpers-allergy-intolerance.js +47 -0
  6. package/dist/claims/claims-helpers-appointment-response.d.ts +8 -0
  7. package/dist/claims/claims-helpers-appointment-response.js +20 -0
  8. package/dist/claims/claims-helpers-appointment.d.ts +10 -0
  9. package/dist/claims/claims-helpers-appointment.js +26 -0
  10. package/dist/claims/claims-helpers-care-plan.d.ts +8 -0
  11. package/dist/claims/claims-helpers-care-plan.js +20 -0
  12. package/dist/claims/claims-helpers-clinical-impression.d.ts +10 -0
  13. package/dist/claims/claims-helpers-clinical-impression.js +26 -0
  14. package/dist/claims/claims-helpers-communication.d.ts +17 -0
  15. package/dist/claims/claims-helpers-communication.js +57 -0
  16. package/dist/claims/claims-helpers-composition.d.ts +12 -0
  17. package/dist/claims/claims-helpers-composition.js +32 -0
  18. package/dist/claims/claims-helpers-condition.d.ts +10 -0
  19. package/dist/claims/claims-helpers-condition.js +47 -0
  20. package/dist/claims/claims-helpers-consent.d.ts +112 -0
  21. package/dist/claims/claims-helpers-consent.js +271 -0
  22. package/dist/claims/claims-helpers-coverage.d.ts +10 -0
  23. package/dist/claims/claims-helpers-coverage.js +26 -0
  24. package/dist/claims/claims-helpers-device-use-statement.d.ts +8 -0
  25. package/dist/claims/claims-helpers-device-use-statement.js +20 -0
  26. package/dist/claims/claims-helpers-device.d.ts +8 -0
  27. package/dist/claims/claims-helpers-device.js +20 -0
  28. package/dist/claims/claims-helpers-diagnostic-report.d.ts +12 -0
  29. package/dist/claims/claims-helpers-diagnostic-report.js +32 -0
  30. package/dist/claims/claims-helpers-document-reference.d.ts +8 -0
  31. package/dist/claims/claims-helpers-document-reference.js +20 -0
  32. package/dist/claims/claims-helpers-encounter.d.ts +10 -0
  33. package/dist/claims/claims-helpers-encounter.js +26 -0
  34. package/dist/claims/claims-helpers-flag.d.ts +8 -0
  35. package/dist/claims/claims-helpers-flag.js +20 -0
  36. package/dist/claims/claims-helpers-immunization.d.ts +8 -0
  37. package/dist/claims/claims-helpers-immunization.js +20 -0
  38. package/dist/claims/claims-helpers-location.d.ts +10 -0
  39. package/dist/claims/claims-helpers-location.js +26 -0
  40. package/dist/claims/claims-helpers-medication-statement.d.ts +88 -0
  41. package/dist/claims/claims-helpers-medication-statement.js +259 -0
  42. package/dist/claims/claims-helpers-observation.d.ts +8 -0
  43. package/dist/claims/claims-helpers-observation.js +20 -0
  44. package/dist/claims/claims-helpers-organization.d.ts +12 -0
  45. package/dist/claims/claims-helpers-organization.js +32 -0
  46. package/dist/claims/claims-helpers-procedure.d.ts +8 -0
  47. package/dist/claims/claims-helpers-procedure.js +20 -0
  48. package/dist/claims/claims-helpers-related-person.d.ts +8 -0
  49. package/dist/claims/claims-helpers-related-person.js +20 -0
  50. package/dist/claims/index.d.ts +24 -0
  51. package/dist/claims/index.js +24 -0
  52. package/dist/constants/fhir-resource-types.d.ts +16 -0
  53. package/dist/constants/fhir-resource-types.js +8 -0
  54. package/dist/convert/convert-allergy-intolerance.d.ts +3 -0
  55. package/dist/convert/convert-allergy-intolerance.js +34 -0
  56. package/dist/convert/convert-appointment-response.d.ts +3 -0
  57. package/dist/convert/convert-appointment-response.js +32 -0
  58. package/dist/convert/convert-appointment.d.ts +3 -0
  59. package/dist/convert/convert-appointment.js +61 -0
  60. package/dist/convert/convert-care-plan.d.ts +3 -0
  61. package/dist/convert/convert-care-plan.js +58 -0
  62. package/dist/convert/convert-clinical-impression.d.ts +3 -0
  63. package/dist/convert/convert-clinical-impression.js +42 -0
  64. package/dist/convert/convert-composition.d.ts +3 -0
  65. package/dist/convert/convert-composition.js +35 -0
  66. package/dist/convert/convert-condition.d.ts +3 -0
  67. package/dist/convert/convert-condition.js +24 -0
  68. package/dist/convert/convert-coverage.d.ts +3 -0
  69. package/dist/convert/convert-coverage.js +51 -0
  70. package/dist/convert/convert-device-use-statement.d.ts +3 -0
  71. package/dist/convert/convert-device-use-statement.js +28 -0
  72. package/dist/convert/convert-device.d.ts +3 -0
  73. package/dist/convert/convert-device.js +37 -0
  74. package/dist/convert/convert-diagnostic-report.d.ts +3 -0
  75. package/dist/convert/convert-diagnostic-report.js +55 -0
  76. package/dist/convert/convert-document-reference.d.ts +3 -0
  77. package/dist/convert/convert-document-reference.js +35 -0
  78. package/dist/convert/convert-encounter.d.ts +3 -0
  79. package/dist/convert/convert-encounter.js +68 -0
  80. package/dist/convert/convert-flag.d.ts +3 -0
  81. package/dist/convert/convert-flag.js +34 -0
  82. package/dist/convert/convert-immunization.d.ts +3 -0
  83. package/dist/convert/convert-immunization.js +56 -0
  84. package/dist/convert/convert-location.d.ts +3 -0
  85. package/dist/convert/convert-location.js +44 -0
  86. package/dist/convert/convert-medication-statement.d.ts +3 -0
  87. package/dist/convert/convert-medication-statement.js +64 -0
  88. package/dist/convert/convert-observation.d.ts +3 -0
  89. package/dist/convert/convert-observation.js +57 -0
  90. package/dist/convert/convert-organization.d.ts +3 -0
  91. package/dist/convert/convert-organization.js +39 -0
  92. package/dist/convert/convert-procedure.d.ts +3 -0
  93. package/dist/convert/convert-procedure.js +50 -0
  94. package/dist/convert/convert-related-person.d.ts +3 -0
  95. package/dist/convert/convert-related-person.js +31 -0
  96. package/dist/convert/convert-shared.d.ts +34 -0
  97. package/dist/convert/convert-shared.js +179 -0
  98. package/dist/convert/index.d.ts +22 -0
  99. package/dist/convert/index.js +22 -0
  100. package/dist/examples/communication-bundle-session.js +2 -2
  101. package/dist/examples/employee.d.ts +41 -0
  102. package/dist/examples/employee.js +39 -0
  103. package/dist/examples/index.d.ts +1 -0
  104. package/dist/examples/index.js +1 -0
  105. package/dist/examples/shared.d.ts +19 -0
  106. package/dist/examples/shared.js +73 -0
  107. package/dist/index.d.ts +2 -0
  108. package/dist/index.js +2 -0
  109. package/dist/models/bundle.d.ts +13 -1
  110. package/dist/models/interoperable-claims/appointment-claims.d.ts +23 -1
  111. package/dist/models/interoperable-claims/appointment-claims.js +22 -1
  112. package/dist/models/interoperable-claims/appointment-response-claims.d.ts +14 -0
  113. package/dist/models/interoperable-claims/appointment-response-claims.js +13 -0
  114. package/dist/models/interoperable-claims/care-plan-claims.d.ts +24 -0
  115. package/dist/models/interoperable-claims/care-plan-claims.js +44 -0
  116. package/dist/models/interoperable-claims/clinical-impression-claims.d.ts +17 -0
  117. package/dist/models/interoperable-claims/clinical-impression-claims.js +30 -0
  118. package/dist/models/interoperable-claims/coverage-claims.d.ts +16 -0
  119. package/dist/models/interoperable-claims/coverage-claims.js +28 -0
  120. package/dist/models/interoperable-claims/device-claims.d.ts +18 -0
  121. package/dist/models/interoperable-claims/device-claims.js +32 -0
  122. package/dist/models/interoperable-claims/diagnostic-report-claims.d.ts +2 -2
  123. package/dist/models/interoperable-claims/diagnostic-report-claims.js +1 -1
  124. package/dist/models/interoperable-claims/encounter-claims.d.ts +18 -0
  125. package/dist/models/interoperable-claims/encounter-claims.js +32 -0
  126. package/dist/models/interoperable-claims/flag-claims.d.ts +16 -0
  127. package/dist/models/interoperable-claims/flag-claims.js +28 -0
  128. package/dist/models/interoperable-claims/immunization-claims.d.ts +23 -0
  129. package/dist/models/interoperable-claims/immunization-claims.js +42 -0
  130. package/dist/models/interoperable-claims/index.d.ts +12 -0
  131. package/dist/models/interoperable-claims/index.js +12 -0
  132. package/dist/models/interoperable-claims/location-claims.d.ts +22 -0
  133. package/dist/models/interoperable-claims/location-claims.js +34 -0
  134. package/dist/models/interoperable-claims/observation-claims.d.ts +26 -0
  135. package/dist/models/interoperable-claims/observation-claims.js +48 -0
  136. package/dist/models/interoperable-claims/organization-claims.d.ts +18 -0
  137. package/dist/models/interoperable-claims/organization-claims.js +27 -0
  138. package/dist/models/interoperable-claims/procedure-claims.d.ts +22 -0
  139. package/dist/models/interoperable-claims/procedure-claims.js +40 -0
  140. package/dist/models/interoperable-claims/related-person-claims.d.ts +14 -0
  141. package/dist/models/interoperable-claims/related-person-claims.js +24 -0
  142. package/dist/utils/appointment-claim-helpers.d.ts +10 -0
  143. package/dist/utils/appointment-claim-helpers.js +26 -0
  144. package/dist/utils/appointment-response-claim-helpers.d.ts +8 -0
  145. package/dist/utils/appointment-response-claim-helpers.js +20 -0
  146. package/dist/utils/bundle-document-builder.d.ts +36 -0
  147. package/dist/utils/bundle-document-builder.js +311 -0
  148. package/dist/utils/claims-helpers-allergy-intolerance.d.ts +1 -0
  149. package/dist/utils/claims-helpers-allergy-intolerance.js +1 -0
  150. package/dist/utils/claims-helpers-appointment-response.d.ts +1 -0
  151. package/dist/utils/claims-helpers-appointment-response.js +1 -0
  152. package/dist/utils/claims-helpers-appointment.d.ts +1 -0
  153. package/dist/utils/claims-helpers-appointment.js +1 -0
  154. package/dist/utils/claims-helpers-care-plan.d.ts +1 -0
  155. package/dist/utils/claims-helpers-care-plan.js +1 -0
  156. package/dist/utils/claims-helpers-clinical-impression.d.ts +1 -0
  157. package/dist/utils/claims-helpers-clinical-impression.js +1 -0
  158. package/dist/utils/claims-helpers-communication.d.ts +1 -0
  159. package/dist/utils/claims-helpers-communication.js +1 -0
  160. package/dist/utils/claims-helpers-composition.d.ts +1 -0
  161. package/dist/utils/claims-helpers-composition.js +1 -0
  162. package/dist/utils/claims-helpers-condition.d.ts +1 -0
  163. package/dist/utils/claims-helpers-condition.js +1 -0
  164. package/dist/utils/claims-helpers-consent.d.ts +1 -0
  165. package/dist/utils/claims-helpers-consent.js +1 -0
  166. package/dist/utils/claims-helpers-coverage.d.ts +1 -0
  167. package/dist/utils/claims-helpers-coverage.js +1 -0
  168. package/dist/utils/claims-helpers-device-use-statement.d.ts +1 -0
  169. package/dist/utils/claims-helpers-device-use-statement.js +1 -0
  170. package/dist/utils/claims-helpers-device.d.ts +1 -0
  171. package/dist/utils/claims-helpers-device.js +1 -0
  172. package/dist/utils/claims-helpers-diagnostic-report.d.ts +1 -0
  173. package/dist/utils/claims-helpers-diagnostic-report.js +1 -0
  174. package/dist/utils/claims-helpers-document-reference.d.ts +1 -0
  175. package/dist/utils/claims-helpers-document-reference.js +1 -0
  176. package/dist/utils/claims-helpers-encounter.d.ts +1 -0
  177. package/dist/utils/claims-helpers-encounter.js +1 -0
  178. package/dist/utils/claims-helpers-flag.d.ts +1 -0
  179. package/dist/utils/claims-helpers-flag.js +1 -0
  180. package/dist/utils/claims-helpers-immunization.d.ts +1 -0
  181. package/dist/utils/claims-helpers-immunization.js +1 -0
  182. package/dist/utils/claims-helpers-location.d.ts +1 -0
  183. package/dist/utils/claims-helpers-location.js +1 -0
  184. package/dist/utils/claims-helpers-medication-statement.d.ts +1 -0
  185. package/dist/utils/claims-helpers-medication-statement.js +1 -0
  186. package/dist/utils/claims-helpers-observation.d.ts +1 -0
  187. package/dist/utils/claims-helpers-observation.js +1 -0
  188. package/dist/utils/claims-helpers-organization.d.ts +1 -0
  189. package/dist/utils/claims-helpers-organization.js +1 -0
  190. package/dist/utils/claims-helpers-procedure.d.ts +1 -0
  191. package/dist/utils/claims-helpers-procedure.js +1 -0
  192. package/dist/utils/claims-helpers-related-person.d.ts +1 -0
  193. package/dist/utils/claims-helpers-related-person.js +1 -0
  194. package/dist/utils/clinical-impression-claim-helpers.d.ts +10 -0
  195. package/dist/utils/clinical-impression-claim-helpers.js +26 -0
  196. package/dist/utils/clinical-resource-converters.d.ts +91 -62
  197. package/dist/utils/clinical-resource-converters.js +135 -273
  198. package/dist/utils/communication-bundle-document-request.d.ts +6 -0
  199. package/dist/utils/communication-bundle-document-request.js +8 -0
  200. package/dist/utils/communication-bundle-session.js +1 -1
  201. package/dist/utils/composition-claim-helpers.d.ts +12 -0
  202. package/dist/utils/composition-claim-helpers.js +32 -0
  203. package/dist/utils/consent-claim-helpers.d.ts +2 -2
  204. package/dist/utils/consent-claim-helpers.js +2 -2
  205. package/dist/utils/convert-allergy-intolerance.d.ts +3 -0
  206. package/dist/utils/convert-allergy-intolerance.js +34 -0
  207. package/dist/utils/convert-appointment-response.d.ts +3 -0
  208. package/dist/utils/convert-appointment-response.js +32 -0
  209. package/dist/utils/convert-appointment.d.ts +3 -0
  210. package/dist/utils/convert-appointment.js +61 -0
  211. package/dist/utils/convert-care-plan.d.ts +3 -0
  212. package/dist/utils/convert-care-plan.js +58 -0
  213. package/dist/utils/convert-clinical-impression.d.ts +3 -0
  214. package/dist/utils/convert-clinical-impression.js +42 -0
  215. package/dist/utils/convert-composition.d.ts +3 -0
  216. package/dist/utils/convert-composition.js +35 -0
  217. package/dist/utils/convert-condition.d.ts +3 -0
  218. package/dist/utils/convert-condition.js +24 -0
  219. package/dist/utils/convert-coverage.d.ts +3 -0
  220. package/dist/utils/convert-coverage.js +51 -0
  221. package/dist/utils/convert-device-use-statement.d.ts +3 -0
  222. package/dist/utils/convert-device-use-statement.js +28 -0
  223. package/dist/utils/convert-device.d.ts +3 -0
  224. package/dist/utils/convert-device.js +37 -0
  225. package/dist/utils/convert-diagnostic-report.d.ts +3 -0
  226. package/dist/utils/convert-diagnostic-report.js +55 -0
  227. package/dist/utils/convert-document-reference.d.ts +3 -0
  228. package/dist/utils/convert-document-reference.js +35 -0
  229. package/dist/utils/convert-encounter.d.ts +3 -0
  230. package/dist/utils/convert-encounter.js +68 -0
  231. package/dist/utils/convert-flag.d.ts +3 -0
  232. package/dist/utils/convert-flag.js +34 -0
  233. package/dist/utils/convert-immunization.d.ts +3 -0
  234. package/dist/utils/convert-immunization.js +56 -0
  235. package/dist/utils/convert-medication-statement.d.ts +3 -0
  236. package/dist/utils/convert-medication-statement.js +64 -0
  237. package/dist/utils/convert-observation.d.ts +3 -0
  238. package/dist/utils/convert-observation.js +57 -0
  239. package/dist/utils/convert-procedure.d.ts +3 -0
  240. package/dist/utils/convert-procedure.js +50 -0
  241. package/dist/utils/convert-related-person.d.ts +3 -0
  242. package/dist/utils/convert-related-person.js +31 -0
  243. package/dist/utils/convert-shared.d.ts +34 -0
  244. package/dist/utils/convert-shared.js +179 -0
  245. package/dist/utils/coverage-claim-helpers.d.ts +10 -0
  246. package/dist/utils/coverage-claim-helpers.js +26 -0
  247. package/dist/utils/diagnostic-report-claim-helpers.d.ts +12 -0
  248. package/dist/utils/diagnostic-report-claim-helpers.js +32 -0
  249. package/dist/utils/employee.d.ts +75 -0
  250. package/dist/utils/employee.js +114 -0
  251. package/dist/utils/encounter-claim-helpers.d.ts +10 -0
  252. package/dist/utils/encounter-claim-helpers.js +26 -0
  253. package/dist/utils/fhir-cid.d.ts +49 -0
  254. package/dist/utils/fhir-cid.js +75 -0
  255. package/dist/utils/fhir-search.d.ts +26 -0
  256. package/dist/utils/fhir-search.js +84 -0
  257. package/dist/utils/index.d.ts +6 -6
  258. package/dist/utils/index.js +6 -6
  259. package/dist/utils/ips-bundle-claims.d.ts +52 -0
  260. package/dist/utils/ips-bundle-claims.js +104 -0
  261. package/dist/utils/jwt.d.ts +16 -0
  262. package/dist/utils/jwt.js +21 -0
  263. package/dist/utils/related-person-claim-helpers.d.ts +8 -0
  264. package/dist/utils/related-person-claim-helpers.js +20 -0
  265. package/package.json +17 -1
package/README.md CHANGED
@@ -1,9 +1,27 @@
1
1
  # gdc-common-utils-ts
2
2
 
3
+ Employee shared examples live in `src/examples/employee.ts`.
4
+ Employee pure helper functions live in `src/utils/employee.ts`.
5
+
6
+ The canonical employee contract note lives in
7
+ `gdc-sdk-core-ts/docs/EMPLOYEES_101.md`.
8
+
3
9
  Shared TypeScript utilities for GDC client and connector code. This package provides low-level primitives for cryptography, DID/DIDComm-related helpers, and the shared models and interfaces used across SDKs.
4
10
 
5
11
  It is intentionally not a full backend orchestration layer.
6
12
 
13
+ ## Prior Work
14
+
15
+ Part of the FHIR conversion layer in this repository builds on earlier work
16
+ from the Universal Health Chain repository:
17
+
18
+ - `uhc-fhir-utils-ts`
19
+ - https://github.com/Universal-Health-Chain/uhc-fhir-utils-ts
20
+
21
+ The current `src/convert` and `src/claims` layers adapt and extend that prior
22
+ work to the claims-first contracts, IPS bundle workflows, and package
23
+ boundaries used in `gdc-common-utils-ts`.
24
+
7
25
  ## Non-Negotiable Conventions
8
26
 
9
27
  - FHIR SearchParameter names must use canonical FHIR naming (lowercase, with `-` when defined by FHIR).
@@ -27,11 +45,14 @@ The published package exposes these entry points through `package.json`:
27
45
  - `gdc-common-utils-ts/hmac`
28
46
  - `gdc-common-utils-ts/examples`
29
47
  - `gdc-common-utils-ts/examples/*`
48
+ - `gdc-common-utils-ts/claims`
30
49
  - `gdc-common-utils-ts/constants`
50
+ - `gdc-common-utils-ts/convert`
31
51
  - `gdc-common-utils-ts/models`
32
52
  - `gdc-common-utils-ts/utils`
33
53
  - `gdc-common-utils-ts/interfaces`
34
- - File-level subpaths under `constants/*`, `models/*`, `utils/*`, and `interfaces/*`
54
+ - File-level subpaths under `claims/*`, `constants/*`, `models/*`, `utils/*`,
55
+ and `interfaces/*` plus `convert/*`
35
56
 
36
57
  ### Root crypto exports
37
58
 
@@ -69,6 +90,44 @@ import { normalizeDidWeb, generateServiceId } from 'gdc-common-utils-ts/utils/di
69
90
  import { fhirResourceToCid, assignCidToFhirResourceVersionId } from 'gdc-common-utils-ts/utils/fhir-cid';
70
91
  ```
71
92
 
93
+ ### Convert
94
+
95
+ The `convert` export exposes resource-specific FHIR R4 conversion helpers such as:
96
+
97
+ - `medicationStatementFlatToFhirR4`
98
+ - `medicationStatementFhirR4ToFlat`
99
+ - `observationFlatToFhirR4`
100
+ - `documentReferenceFlatToFhirR4`
101
+ - `compositionFlatToFhirR4`
102
+
103
+ Example:
104
+
105
+ ```ts
106
+ import {
107
+ medicationStatementFlatToFhirR4,
108
+ observationFhirR4ToFlat,
109
+ } from 'gdc-common-utils-ts/convert';
110
+ ```
111
+
112
+ ### Claims
113
+
114
+ The `claims` export exposes resource-specific flat claim helpers such as:
115
+
116
+ - `setMedicationIdentifier`
117
+ - `getMedicationCategoryList`
118
+ - `setCommunicationCategory`
119
+ - `setActorRoleList`
120
+ - `addSectionList`
121
+
122
+ Example:
123
+
124
+ ```ts
125
+ import {
126
+ setMedicationIdentifier,
127
+ setMedicationCategoryList,
128
+ } from 'gdc-common-utils-ts/claims/claims-helpers-medication-statement';
129
+ ```
130
+
72
131
  ### Models
73
132
 
74
133
  The `models` export contains the shared data shapes used by the SDKs, including:
@@ -0,0 +1,21 @@
1
+ export type GenericInteroperableClaims = Record<string, unknown>;
2
+ export declare function splitClaimCsv(value: unknown): string[];
3
+ export declare function normalizeClaimTokens(values: readonly string[]): string[];
4
+ export declare function normalizeClaimInput(values: string | readonly string[]): string[];
5
+ export declare function normalizeClaimScalar(value: unknown): string;
6
+ /**
7
+ * Returns the tokenized values for a claims field stored as CSV.
8
+ */
9
+ export declare function getClaimValues(claims: GenericInteroperableClaims, claimKey: string): string[];
10
+ /**
11
+ * Replaces a claims CSV field with the provided values.
12
+ */
13
+ export declare function setClaimValues(claims: GenericInteroperableClaims, claimKey: string, values: string | readonly string[]): GenericInteroperableClaims;
14
+ /**
15
+ * Adds one or many values into a claims CSV field while preserving uniqueness.
16
+ */
17
+ export declare function addClaimValues(claims: GenericInteroperableClaims, claimKey: string, values: string | readonly string[]): GenericInteroperableClaims;
18
+ /**
19
+ * Removes one or many values from a claims CSV field while preserving uniqueness.
20
+ */
21
+ export declare function removeClaimValues(claims: GenericInteroperableClaims, claimKey: string, values: string | readonly string[]): GenericInteroperableClaims;
@@ -0,0 +1,50 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ export function splitClaimCsv(value) {
3
+ return String(value || '')
4
+ .split(',')
5
+ .map((item) => item.trim())
6
+ .filter(Boolean);
7
+ }
8
+ export function normalizeClaimTokens(values) {
9
+ return [...new Set(values.map((value) => String(value || '').trim()).filter(Boolean))];
10
+ }
11
+ export function normalizeClaimInput(values) {
12
+ return Array.isArray(values)
13
+ ? normalizeClaimTokens(values)
14
+ : normalizeClaimTokens(splitClaimCsv(values));
15
+ }
16
+ export function normalizeClaimScalar(value) {
17
+ return String(value || '').trim();
18
+ }
19
+ /**
20
+ * Returns the tokenized values for a claims field stored as CSV.
21
+ */
22
+ export function getClaimValues(claims, claimKey) {
23
+ return normalizeClaimTokens(splitClaimCsv(claims[claimKey]));
24
+ }
25
+ /**
26
+ * Replaces a claims CSV field with the provided values.
27
+ */
28
+ export function setClaimValues(claims, claimKey, values) {
29
+ const nextValues = normalizeClaimInput(values);
30
+ return {
31
+ ...claims,
32
+ [claimKey]: nextValues.join(','),
33
+ };
34
+ }
35
+ /**
36
+ * Adds one or many values into a claims CSV field while preserving uniqueness.
37
+ */
38
+ export function addClaimValues(claims, claimKey, values) {
39
+ const current = getClaimValues(claims, claimKey);
40
+ const additions = normalizeClaimInput(values);
41
+ return setClaimValues(claims, claimKey, [...current, ...additions]);
42
+ }
43
+ /**
44
+ * Removes one or many values from a claims CSV field while preserving uniqueness.
45
+ */
46
+ export function removeClaimValues(claims, claimKey, values) {
47
+ const removals = new Set(normalizeClaimInput(values));
48
+ const nextValues = getClaimValues(claims, claimKey).filter((value) => !removals.has(value));
49
+ return setClaimValues(claims, claimKey, nextValues);
50
+ }
@@ -0,0 +1,10 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type AllergyIntoleranceInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getAllergyIntoleranceClaimList(claims: AllergyIntoleranceInteroperableClaims, claimKey: string): string[];
4
+ export declare function setAllergyIntoleranceClaimList(claims: AllergyIntoleranceInteroperableClaims, claimKey: string, values: string | readonly string[]): AllergyIntoleranceInteroperableClaims;
5
+ export declare function addAllergyIntoleranceClaimList(claims: AllergyIntoleranceInteroperableClaims, claimKey: string, values: string | readonly string[]): AllergyIntoleranceInteroperableClaims;
6
+ export declare function removeAllergyIntoleranceClaimList(claims: AllergyIntoleranceInteroperableClaims, claimKey: string, values: string | readonly string[]): AllergyIntoleranceInteroperableClaims;
7
+ export declare function getAllergyIntoleranceContainedDocumentIdentifierList(claims: AllergyIntoleranceInteroperableClaims): string[];
8
+ export declare function setAllergyIntoleranceContainedDocumentIdentifierList(claims: AllergyIntoleranceInteroperableClaims, values: string | readonly string[]): AllergyIntoleranceInteroperableClaims;
9
+ export declare function addAllergyIntoleranceContainedDocumentIdentifierList(claims: AllergyIntoleranceInteroperableClaims, values: string | readonly string[]): AllergyIntoleranceInteroperableClaims;
10
+ export declare function removeAllergyIntoleranceContainedDocumentIdentifierList(claims: AllergyIntoleranceInteroperableClaims, values: string | readonly string[]): AllergyIntoleranceInteroperableClaims;
@@ -0,0 +1,47 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { AllergyIntoleranceClaim } from '../models/interoperable-claims/allergy-intolerance-claims.js';
3
+ import { addClaimValues, getClaimValues, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
4
+ export function getAllergyIntoleranceClaimList(claims, claimKey) {
5
+ return getClaimValues(claims, claimKey);
6
+ }
7
+ export function setAllergyIntoleranceClaimList(claims, claimKey, values) {
8
+ return setClaimValues(claims, claimKey, values);
9
+ }
10
+ export function addAllergyIntoleranceClaimList(claims, claimKey, values) {
11
+ return addClaimValues(claims, claimKey, values);
12
+ }
13
+ export function removeAllergyIntoleranceClaimList(claims, claimKey, values) {
14
+ return removeClaimValues(claims, claimKey, values);
15
+ }
16
+ export function getAllergyIntoleranceContainedDocumentIdentifierList(claims) {
17
+ return uniqueCsvLists([
18
+ getAllergyIntoleranceClaimList(claims, AllergyIntoleranceClaim.ContainedDocuments),
19
+ getAllergyIntoleranceClaimList(claims, AllergyIntoleranceClaim.AttachmentContentIds),
20
+ ]);
21
+ }
22
+ export function setAllergyIntoleranceContainedDocumentIdentifierList(claims, values) {
23
+ return setContainedDocuments(claims, values);
24
+ }
25
+ export function addAllergyIntoleranceContainedDocumentIdentifierList(claims, values) {
26
+ return setContainedDocuments(claims, uniqueCsvLists([
27
+ getAllergyIntoleranceContainedDocumentIdentifierList(claims),
28
+ Array.isArray(values) ? [...values] : getAllergyIntoleranceClaimList({ [AllergyIntoleranceClaim.ContainedDocuments]: values }, AllergyIntoleranceClaim.ContainedDocuments),
29
+ ]));
30
+ }
31
+ export function removeAllergyIntoleranceContainedDocumentIdentifierList(claims, values) {
32
+ const toRemove = new Set((Array.isArray(values) ? values : getAllergyIntoleranceClaimList({ [AllergyIntoleranceClaim.ContainedDocuments]: values }, AllergyIntoleranceClaim.ContainedDocuments))
33
+ .map((item) => String(item || '').trim())
34
+ .filter(Boolean));
35
+ return setContainedDocuments(claims, getAllergyIntoleranceContainedDocumentIdentifierList(claims).filter((item) => !toRemove.has(item)));
36
+ }
37
+ function setContainedDocuments(claims, values) {
38
+ const next = setAllergyIntoleranceClaimList(claims, AllergyIntoleranceClaim.ContainedDocuments, values);
39
+ const cleaned = {
40
+ ...next,
41
+ };
42
+ delete cleaned[AllergyIntoleranceClaim.AttachmentContentIds];
43
+ return cleaned;
44
+ }
45
+ function uniqueCsvLists(lists) {
46
+ return [...new Set(lists.flatMap((list) => list.map((item) => String(item || '').trim()).filter(Boolean)))];
47
+ }
@@ -0,0 +1,8 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type AppointmentResponseInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getAppointmentResponseClaimList(claims: AppointmentResponseInteroperableClaims, claimKey: string): string[];
4
+ export declare function setAppointmentResponseClaimList(claims: AppointmentResponseInteroperableClaims, claimKey: string, values: string | readonly string[]): AppointmentResponseInteroperableClaims;
5
+ export declare function addAppointmentResponseClaimList(claims: AppointmentResponseInteroperableClaims, claimKey: string, values: string | readonly string[]): AppointmentResponseInteroperableClaims;
6
+ export declare function removeAppointmentResponseClaimList(claims: AppointmentResponseInteroperableClaims, claimKey: string, values: string | readonly string[]): AppointmentResponseInteroperableClaims;
7
+ export declare function getAppointmentResponseIdentifier(claims: AppointmentResponseInteroperableClaims): string;
8
+ export declare function setAppointmentResponseIdentifier(claims: AppointmentResponseInteroperableClaims, value: string): AppointmentResponseInteroperableClaims;
@@ -0,0 +1,20 @@
1
+ import { AppointmentResponseClaim } from '../models/interoperable-claims/appointment-response-claims.js';
2
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
+ export function getAppointmentResponseClaimList(claims, claimKey) {
4
+ return getClaimValues(claims, claimKey);
5
+ }
6
+ export function setAppointmentResponseClaimList(claims, claimKey, values) {
7
+ return setClaimValues(claims, claimKey, values);
8
+ }
9
+ export function addAppointmentResponseClaimList(claims, claimKey, values) {
10
+ return addClaimValues(claims, claimKey, values);
11
+ }
12
+ export function removeAppointmentResponseClaimList(claims, claimKey, values) {
13
+ return removeClaimValues(claims, claimKey, values);
14
+ }
15
+ export function getAppointmentResponseIdentifier(claims) {
16
+ return normalizeClaimScalar(claims[AppointmentResponseClaim.Identifier]);
17
+ }
18
+ export function setAppointmentResponseIdentifier(claims, value) {
19
+ return { ...claims, [AppointmentResponseClaim.Identifier]: normalizeClaimScalar(value) };
20
+ }
@@ -0,0 +1,10 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type AppointmentInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getAppointmentClaimList(claims: AppointmentInteroperableClaims, claimKey: string): string[];
4
+ export declare function setAppointmentClaimList(claims: AppointmentInteroperableClaims, claimKey: string, values: string | readonly string[]): AppointmentInteroperableClaims;
5
+ export declare function addAppointmentClaimList(claims: AppointmentInteroperableClaims, claimKey: string, values: string | readonly string[]): AppointmentInteroperableClaims;
6
+ export declare function removeAppointmentClaimList(claims: AppointmentInteroperableClaims, claimKey: string, values: string | readonly string[]): AppointmentInteroperableClaims;
7
+ export declare function getAppointmentIdentifier(claims: AppointmentInteroperableClaims): string;
8
+ export declare function setAppointmentIdentifier(claims: AppointmentInteroperableClaims, value: string): AppointmentInteroperableClaims;
9
+ export declare function getAppointmentParticipantActorList(claims: AppointmentInteroperableClaims): string[];
10
+ export declare function setAppointmentParticipantActorList(claims: AppointmentInteroperableClaims, values: string | readonly string[]): AppointmentInteroperableClaims;
@@ -0,0 +1,26 @@
1
+ import { AppointmentClaim } from '../models/interoperable-claims/appointment-claims.js';
2
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
+ export function getAppointmentClaimList(claims, claimKey) {
4
+ return getClaimValues(claims, claimKey);
5
+ }
6
+ export function setAppointmentClaimList(claims, claimKey, values) {
7
+ return setClaimValues(claims, claimKey, values);
8
+ }
9
+ export function addAppointmentClaimList(claims, claimKey, values) {
10
+ return addClaimValues(claims, claimKey, values);
11
+ }
12
+ export function removeAppointmentClaimList(claims, claimKey, values) {
13
+ return removeClaimValues(claims, claimKey, values);
14
+ }
15
+ export function getAppointmentIdentifier(claims) {
16
+ return normalizeClaimScalar(claims[AppointmentClaim.Identifier]);
17
+ }
18
+ export function setAppointmentIdentifier(claims, value) {
19
+ return { ...claims, [AppointmentClaim.Identifier]: normalizeClaimScalar(value) };
20
+ }
21
+ export function getAppointmentParticipantActorList(claims) {
22
+ return getAppointmentClaimList(claims, AppointmentClaim.ParticipantActor);
23
+ }
24
+ export function setAppointmentParticipantActorList(claims, values) {
25
+ return setAppointmentClaimList(claims, AppointmentClaim.ParticipantActor, values);
26
+ }
@@ -0,0 +1,8 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type CarePlanInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getCarePlanClaimList(claims: CarePlanInteroperableClaims, claimKey: string): string[];
4
+ export declare function setCarePlanClaimList(claims: CarePlanInteroperableClaims, claimKey: string, values: string | readonly string[]): CarePlanInteroperableClaims;
5
+ export declare function addCarePlanClaimList(claims: CarePlanInteroperableClaims, claimKey: string, values: string | readonly string[]): CarePlanInteroperableClaims;
6
+ export declare function removeCarePlanClaimList(claims: CarePlanInteroperableClaims, claimKey: string, values: string | readonly string[]): CarePlanInteroperableClaims;
7
+ export declare function getCarePlanIdentifier(claims: CarePlanInteroperableClaims): string;
8
+ export declare function setCarePlanIdentifier(claims: CarePlanInteroperableClaims, value: string): CarePlanInteroperableClaims;
@@ -0,0 +1,20 @@
1
+ import { CarePlanClaim } from '../models/interoperable-claims/care-plan-claims.js';
2
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
+ export function getCarePlanClaimList(claims, claimKey) {
4
+ return getClaimValues(claims, claimKey);
5
+ }
6
+ export function setCarePlanClaimList(claims, claimKey, values) {
7
+ return setClaimValues(claims, claimKey, values);
8
+ }
9
+ export function addCarePlanClaimList(claims, claimKey, values) {
10
+ return addClaimValues(claims, claimKey, values);
11
+ }
12
+ export function removeCarePlanClaimList(claims, claimKey, values) {
13
+ return removeClaimValues(claims, claimKey, values);
14
+ }
15
+ export function getCarePlanIdentifier(claims) {
16
+ return normalizeClaimScalar(claims[CarePlanClaim.Identifier]);
17
+ }
18
+ export function setCarePlanIdentifier(claims, value) {
19
+ return { ...claims, [CarePlanClaim.Identifier]: normalizeClaimScalar(value) };
20
+ }
@@ -0,0 +1,10 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type ClinicalImpressionInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getClinicalImpressionClaimList(claims: ClinicalImpressionInteroperableClaims, claimKey: string): string[];
4
+ export declare function setClinicalImpressionClaimList(claims: ClinicalImpressionInteroperableClaims, claimKey: string, values: string | readonly string[]): ClinicalImpressionInteroperableClaims;
5
+ export declare function addClinicalImpressionClaimList(claims: ClinicalImpressionInteroperableClaims, claimKey: string, values: string | readonly string[]): ClinicalImpressionInteroperableClaims;
6
+ export declare function removeClinicalImpressionClaimList(claims: ClinicalImpressionInteroperableClaims, claimKey: string, values: string | readonly string[]): ClinicalImpressionInteroperableClaims;
7
+ export declare function getClinicalImpressionIdentifier(claims: ClinicalImpressionInteroperableClaims): string;
8
+ export declare function setClinicalImpressionIdentifier(claims: ClinicalImpressionInteroperableClaims, value: string): ClinicalImpressionInteroperableClaims;
9
+ export declare function getClinicalImpressionProblemList(claims: ClinicalImpressionInteroperableClaims): string[];
10
+ export declare function setClinicalImpressionProblemList(claims: ClinicalImpressionInteroperableClaims, values: string | readonly string[]): ClinicalImpressionInteroperableClaims;
@@ -0,0 +1,26 @@
1
+ import { ClinicalImpressionClaim } from '../models/interoperable-claims/clinical-impression-claims.js';
2
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
+ export function getClinicalImpressionClaimList(claims, claimKey) {
4
+ return getClaimValues(claims, claimKey);
5
+ }
6
+ export function setClinicalImpressionClaimList(claims, claimKey, values) {
7
+ return setClaimValues(claims, claimKey, values);
8
+ }
9
+ export function addClinicalImpressionClaimList(claims, claimKey, values) {
10
+ return addClaimValues(claims, claimKey, values);
11
+ }
12
+ export function removeClinicalImpressionClaimList(claims, claimKey, values) {
13
+ return removeClaimValues(claims, claimKey, values);
14
+ }
15
+ export function getClinicalImpressionIdentifier(claims) {
16
+ return normalizeClaimScalar(claims[ClinicalImpressionClaim.Identifier]);
17
+ }
18
+ export function setClinicalImpressionIdentifier(claims, value) {
19
+ return { ...claims, [ClinicalImpressionClaim.Identifier]: normalizeClaimScalar(value) };
20
+ }
21
+ export function getClinicalImpressionProblemList(claims) {
22
+ return getClinicalImpressionClaimList(claims, ClinicalImpressionClaim.Problem);
23
+ }
24
+ export function setClinicalImpressionProblemList(claims, values) {
25
+ return setClinicalImpressionClaimList(claims, ClinicalImpressionClaim.Problem, values);
26
+ }
@@ -0,0 +1,17 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type CommunicationInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getCommunicationIdentifier(claims: CommunicationInteroperableClaims): string;
4
+ export declare function setCommunicationIdentifier(claims: CommunicationInteroperableClaims, value: unknown): CommunicationInteroperableClaims;
5
+ export declare function getCommunicationSubject(claims: CommunicationInteroperableClaims): string;
6
+ export declare function setCommunicationSubject(claims: CommunicationInteroperableClaims, value: unknown): CommunicationInteroperableClaims;
7
+ export declare function getCommunicationCategory(claims: CommunicationInteroperableClaims): string;
8
+ export declare function getCommunicationCategoryList(claims: CommunicationInteroperableClaims): string[];
9
+ export declare function setCommunicationCategory(claims: CommunicationInteroperableClaims, value: string | readonly string[]): CommunicationInteroperableClaims;
10
+ export declare function addCommunicationCategoryList(claims: CommunicationInteroperableClaims, value: string | readonly string[]): CommunicationInteroperableClaims;
11
+ export declare function removeCommunicationCategoryList(claims: CommunicationInteroperableClaims, value: string | readonly string[]): CommunicationInteroperableClaims;
12
+ export declare function getCommunicationText(claims: CommunicationInteroperableClaims): string;
13
+ export declare function setCommunicationText(claims: CommunicationInteroperableClaims, value: unknown): CommunicationInteroperableClaims;
14
+ export declare function getCommunicationContentAttachmentData(claims: CommunicationInteroperableClaims): string;
15
+ export declare function setCommunicationContentAttachmentData(claims: CommunicationInteroperableClaims, value: unknown): CommunicationInteroperableClaims;
16
+ export declare function getCommunicationContentAttachmentType(claims: CommunicationInteroperableClaims): string;
17
+ export declare function setCommunicationContentAttachmentType(claims: CommunicationInteroperableClaims, value: unknown): CommunicationInteroperableClaims;
@@ -0,0 +1,57 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { CommunicationClaim } from '../models/interoperable-claims/communication-claims.js';
3
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
4
+ function getCommunicationScalar(claims, claimKey) {
5
+ return normalizeClaimScalar(claims[claimKey]);
6
+ }
7
+ function setCommunicationScalar(claims, claimKey, value) {
8
+ return {
9
+ ...claims,
10
+ [claimKey]: normalizeClaimScalar(value),
11
+ };
12
+ }
13
+ export function getCommunicationIdentifier(claims) {
14
+ return getCommunicationScalar(claims, CommunicationClaim.Identifier);
15
+ }
16
+ export function setCommunicationIdentifier(claims, value) {
17
+ return setCommunicationScalar(claims, CommunicationClaim.Identifier, value);
18
+ }
19
+ export function getCommunicationSubject(claims) {
20
+ return getCommunicationScalar(claims, CommunicationClaim.Subject);
21
+ }
22
+ export function setCommunicationSubject(claims, value) {
23
+ return setCommunicationScalar(claims, CommunicationClaim.Subject, value);
24
+ }
25
+ export function getCommunicationCategory(claims) {
26
+ return getCommunicationScalar(claims, CommunicationClaim.Category);
27
+ }
28
+ export function getCommunicationCategoryList(claims) {
29
+ return getClaimValues(claims, CommunicationClaim.Category);
30
+ }
31
+ export function setCommunicationCategory(claims, value) {
32
+ return setClaimValues(claims, CommunicationClaim.Category, value);
33
+ }
34
+ export function addCommunicationCategoryList(claims, value) {
35
+ return addClaimValues(claims, CommunicationClaim.Category, value);
36
+ }
37
+ export function removeCommunicationCategoryList(claims, value) {
38
+ return removeClaimValues(claims, CommunicationClaim.Category, value);
39
+ }
40
+ export function getCommunicationText(claims) {
41
+ return getCommunicationScalar(claims, CommunicationClaim.Text);
42
+ }
43
+ export function setCommunicationText(claims, value) {
44
+ return setCommunicationScalar(claims, CommunicationClaim.Text, value);
45
+ }
46
+ export function getCommunicationContentAttachmentData(claims) {
47
+ return getCommunicationScalar(claims, CommunicationClaim.ContentAttachmentData);
48
+ }
49
+ export function setCommunicationContentAttachmentData(claims, value) {
50
+ return setCommunicationScalar(claims, CommunicationClaim.ContentAttachmentData, value);
51
+ }
52
+ export function getCommunicationContentAttachmentType(claims) {
53
+ return getCommunicationScalar(claims, CommunicationClaim.ContentAttachmentType);
54
+ }
55
+ export function setCommunicationContentAttachmentType(claims, value) {
56
+ return setCommunicationScalar(claims, CommunicationClaim.ContentAttachmentType, value);
57
+ }
@@ -0,0 +1,12 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type CompositionInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string): string[];
4
+ export declare function setCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string, values: string | readonly string[]): CompositionInteroperableClaims;
5
+ export declare function addCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string, values: string | readonly string[]): CompositionInteroperableClaims;
6
+ export declare function removeCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string, values: string | readonly string[]): CompositionInteroperableClaims;
7
+ export declare function getCompositionTypeList(claims: CompositionInteroperableClaims): string[];
8
+ export declare function setCompositionTypeList(claims: CompositionInteroperableClaims, values: string | readonly string[]): CompositionInteroperableClaims;
9
+ export declare function getCompositionSectionList(claims: CompositionInteroperableClaims): string[];
10
+ export declare function setCompositionSectionList(claims: CompositionInteroperableClaims, values: string | readonly string[]): CompositionInteroperableClaims;
11
+ export declare function getCompositionSubject(claims: CompositionInteroperableClaims): string;
12
+ export declare function setCompositionSubject(claims: CompositionInteroperableClaims, value: string): CompositionInteroperableClaims;
@@ -0,0 +1,32 @@
1
+ import { CompositionClaim } from '../models/interoperable-claims/composition-claims.js';
2
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
+ export function getCompositionClaimList(claims, claimKey) {
4
+ return getClaimValues(claims, claimKey);
5
+ }
6
+ export function setCompositionClaimList(claims, claimKey, values) {
7
+ return setClaimValues(claims, claimKey, values);
8
+ }
9
+ export function addCompositionClaimList(claims, claimKey, values) {
10
+ return addClaimValues(claims, claimKey, values);
11
+ }
12
+ export function removeCompositionClaimList(claims, claimKey, values) {
13
+ return removeClaimValues(claims, claimKey, values);
14
+ }
15
+ export function getCompositionTypeList(claims) {
16
+ return getCompositionClaimList(claims, CompositionClaim.Type);
17
+ }
18
+ export function setCompositionTypeList(claims, values) {
19
+ return setCompositionClaimList(claims, CompositionClaim.Type, values);
20
+ }
21
+ export function getCompositionSectionList(claims) {
22
+ return getCompositionClaimList(claims, CompositionClaim.Section);
23
+ }
24
+ export function setCompositionSectionList(claims, values) {
25
+ return setCompositionClaimList(claims, CompositionClaim.Section, values);
26
+ }
27
+ export function getCompositionSubject(claims) {
28
+ return normalizeClaimScalar(claims[CompositionClaim.Subject]);
29
+ }
30
+ export function setCompositionSubject(claims, value) {
31
+ return { ...claims, [CompositionClaim.Subject]: normalizeClaimScalar(value) };
32
+ }
@@ -0,0 +1,10 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type ConditionInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getConditionClaimList(claims: ConditionInteroperableClaims, claimKey: string): string[];
4
+ export declare function setConditionClaimList(claims: ConditionInteroperableClaims, claimKey: string, values: string | readonly string[]): ConditionInteroperableClaims;
5
+ export declare function addConditionClaimList(claims: ConditionInteroperableClaims, claimKey: string, values: string | readonly string[]): ConditionInteroperableClaims;
6
+ export declare function removeConditionClaimList(claims: ConditionInteroperableClaims, claimKey: string, values: string | readonly string[]): ConditionInteroperableClaims;
7
+ export declare function getConditionContainedDocumentIdentifierList(claims: ConditionInteroperableClaims): string[];
8
+ export declare function setConditionContainedDocumentIdentifierList(claims: ConditionInteroperableClaims, values: string | readonly string[]): ConditionInteroperableClaims;
9
+ export declare function addConditionContainedDocumentIdentifierList(claims: ConditionInteroperableClaims, values: string | readonly string[]): ConditionInteroperableClaims;
10
+ export declare function removeConditionContainedDocumentIdentifierList(claims: ConditionInteroperableClaims, values: string | readonly string[]): ConditionInteroperableClaims;
@@ -0,0 +1,47 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { ConditionClaim } from '../models/interoperable-claims/condition-claims.js';
3
+ import { addClaimValues, getClaimValues, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
4
+ export function getConditionClaimList(claims, claimKey) {
5
+ return getClaimValues(claims, claimKey);
6
+ }
7
+ export function setConditionClaimList(claims, claimKey, values) {
8
+ return setClaimValues(claims, claimKey, values);
9
+ }
10
+ export function addConditionClaimList(claims, claimKey, values) {
11
+ return addClaimValues(claims, claimKey, values);
12
+ }
13
+ export function removeConditionClaimList(claims, claimKey, values) {
14
+ return removeClaimValues(claims, claimKey, values);
15
+ }
16
+ export function getConditionContainedDocumentIdentifierList(claims) {
17
+ return uniqueCsvLists([
18
+ getConditionClaimList(claims, ConditionClaim.ContainedDocuments),
19
+ getConditionClaimList(claims, ConditionClaim.AttachmentContentIds),
20
+ ]);
21
+ }
22
+ export function setConditionContainedDocumentIdentifierList(claims, values) {
23
+ return setContainedDocuments(claims, values);
24
+ }
25
+ export function addConditionContainedDocumentIdentifierList(claims, values) {
26
+ return setContainedDocuments(claims, uniqueCsvLists([
27
+ getConditionContainedDocumentIdentifierList(claims),
28
+ Array.isArray(values) ? [...values] : getConditionClaimList({ [ConditionClaim.ContainedDocuments]: values }, ConditionClaim.ContainedDocuments),
29
+ ]));
30
+ }
31
+ export function removeConditionContainedDocumentIdentifierList(claims, values) {
32
+ const toRemove = new Set((Array.isArray(values) ? values : getConditionClaimList({ [ConditionClaim.ContainedDocuments]: values }, ConditionClaim.ContainedDocuments))
33
+ .map((item) => String(item || '').trim())
34
+ .filter(Boolean));
35
+ return setContainedDocuments(claims, getConditionContainedDocumentIdentifierList(claims).filter((item) => !toRemove.has(item)));
36
+ }
37
+ function setContainedDocuments(claims, values) {
38
+ const next = setConditionClaimList(claims, ConditionClaim.ContainedDocuments, values);
39
+ const cleaned = {
40
+ ...next,
41
+ };
42
+ delete cleaned[ConditionClaim.AttachmentContentIds];
43
+ return cleaned;
44
+ }
45
+ function uniqueCsvLists(lists) {
46
+ return [...new Set(lists.flatMap((list) => list.map((item) => String(item || '').trim()).filter(Boolean)))];
47
+ }