gdc-common-utils-ts 2.0.12 → 2.0.13

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 (89) hide show
  1. package/README.md +6 -2
  2. package/dist/examples/employee.d.ts +9 -1
  3. package/dist/examples/employee.js +7 -4
  4. package/dist/examples/shared.d.ts +1 -1
  5. package/dist/examples/shared.js +6 -2
  6. package/dist/utils/actor.d.ts +3 -1
  7. package/package.json +1 -5
  8. package/dist/examples/communication-bundle-session.d.ts +0 -22
  9. package/dist/examples/communication-bundle-session.js +0 -79
  10. package/dist/interfaces/IWallet.d.ts +0 -55
  11. package/dist/interfaces/IWallet.js +0 -3
  12. package/dist/models/fhir-related-person.d.ts +0 -61
  13. package/dist/models/fhir-related-person.js +0 -108
  14. package/dist/models/related-profile.d.ts +0 -42
  15. package/dist/models/related-profile.js +0 -16
  16. package/dist/utils/allergy-intolerance-claim-helpers.d.ts +0 -10
  17. package/dist/utils/allergy-intolerance-claim-helpers.js +0 -47
  18. package/dist/utils/appointment-claim-helpers.d.ts +0 -10
  19. package/dist/utils/appointment-claim-helpers.js +0 -26
  20. package/dist/utils/appointment-response-claim-helpers.d.ts +0 -8
  21. package/dist/utils/appointment-response-claim-helpers.js +0 -20
  22. package/dist/utils/claim-list-helpers.d.ts +0 -21
  23. package/dist/utils/claim-list-helpers.js +0 -50
  24. package/dist/utils/clinical-impression-claim-helpers.d.ts +0 -10
  25. package/dist/utils/clinical-impression-claim-helpers.js +0 -26
  26. package/dist/utils/communication-bundle-session.d.ts +0 -175
  27. package/dist/utils/communication-bundle-session.js +0 -524
  28. package/dist/utils/composition-claim-helpers.d.ts +0 -12
  29. package/dist/utils/composition-claim-helpers.js +0 -32
  30. package/dist/utils/condition-claim-helpers.d.ts +0 -10
  31. package/dist/utils/condition-claim-helpers.js +0 -47
  32. package/dist/utils/convert-allergy-intolerance.d.ts +0 -3
  33. package/dist/utils/convert-allergy-intolerance.js +0 -34
  34. package/dist/utils/convert-appointment-response.d.ts +0 -3
  35. package/dist/utils/convert-appointment-response.js +0 -32
  36. package/dist/utils/convert-appointment.d.ts +0 -3
  37. package/dist/utils/convert-appointment.js +0 -61
  38. package/dist/utils/convert-care-plan.d.ts +0 -3
  39. package/dist/utils/convert-care-plan.js +0 -58
  40. package/dist/utils/convert-clinical-impression.d.ts +0 -3
  41. package/dist/utils/convert-clinical-impression.js +0 -42
  42. package/dist/utils/convert-composition.d.ts +0 -3
  43. package/dist/utils/convert-composition.js +0 -35
  44. package/dist/utils/convert-condition.d.ts +0 -3
  45. package/dist/utils/convert-condition.js +0 -24
  46. package/dist/utils/convert-coverage.d.ts +0 -3
  47. package/dist/utils/convert-coverage.js +0 -51
  48. package/dist/utils/convert-device-use-statement.d.ts +0 -3
  49. package/dist/utils/convert-device-use-statement.js +0 -28
  50. package/dist/utils/convert-device.d.ts +0 -3
  51. package/dist/utils/convert-device.js +0 -37
  52. package/dist/utils/convert-diagnostic-report.d.ts +0 -3
  53. package/dist/utils/convert-diagnostic-report.js +0 -55
  54. package/dist/utils/convert-document-reference.d.ts +0 -3
  55. package/dist/utils/convert-document-reference.js +0 -35
  56. package/dist/utils/convert-encounter.d.ts +0 -3
  57. package/dist/utils/convert-encounter.js +0 -68
  58. package/dist/utils/convert-flag.d.ts +0 -3
  59. package/dist/utils/convert-flag.js +0 -34
  60. package/dist/utils/convert-immunization.d.ts +0 -3
  61. package/dist/utils/convert-immunization.js +0 -56
  62. package/dist/utils/convert-medication-statement.d.ts +0 -3
  63. package/dist/utils/convert-medication-statement.js +0 -64
  64. package/dist/utils/convert-observation.d.ts +0 -3
  65. package/dist/utils/convert-observation.js +0 -57
  66. package/dist/utils/convert-procedure.d.ts +0 -3
  67. package/dist/utils/convert-procedure.js +0 -50
  68. package/dist/utils/convert-related-person.d.ts +0 -3
  69. package/dist/utils/convert-related-person.js +0 -31
  70. package/dist/utils/convert-shared.d.ts +0 -34
  71. package/dist/utils/convert-shared.js +0 -179
  72. package/dist/utils/coverage-claim-helpers.d.ts +0 -10
  73. package/dist/utils/coverage-claim-helpers.js +0 -26
  74. package/dist/utils/diagnostic-report-claim-helpers.d.ts +0 -12
  75. package/dist/utils/diagnostic-report-claim-helpers.js +0 -32
  76. package/dist/utils/employee-editor.d.ts +0 -24
  77. package/dist/utils/employee-editor.js +0 -41
  78. package/dist/utils/encounter-claim-helpers.d.ts +0 -10
  79. package/dist/utils/encounter-claim-helpers.js +0 -26
  80. package/dist/utils/gateway-index-params.d.ts +0 -44
  81. package/dist/utils/gateway-index-params.js +0 -80
  82. package/dist/utils/medication-claim-helpers.d.ts +0 -88
  83. package/dist/utils/medication-claim-helpers.js +0 -259
  84. package/dist/utils/normalize-subject-uuid.d.ts +0 -1
  85. package/dist/utils/normalize-subject-uuid.js +0 -24
  86. package/dist/utils/related-person-claim-helpers.d.ts +0 -8
  87. package/dist/utils/related-person-claim-helpers.js +0 -20
  88. package/dist/utils/search-parameter-catalog.d.ts +0 -31
  89. package/dist/utils/search-parameter-catalog.js +0 -81
@@ -1,24 +0,0 @@
1
- import { BundleEditor } from './bundle-editor';
2
- /**
3
- * High-level employee adapter on top of the shared `BundleEditor`.
4
- *
5
- * Use this class when the active bundle entry is known to represent one
6
- * employee resource and callers should work with employee semantics instead of
7
- * raw claim keys.
8
- */
9
- export declare class EmployeeEditor extends BundleEditor {
10
- /** Writes the canonical employee email claim on the active entry. */
11
- setEmail(email: string): this;
12
- /** Reads the canonical employee email claim from the active entry. */
13
- getEmail(): string | undefined;
14
- /** Writes the canonical employee occupational role claim on the active entry. */
15
- setRole(role: string): this;
16
- /** Reads the canonical employee occupational role claim from the active entry. */
17
- getRole(): string | undefined;
18
- /** Writes the canonical employee `worksFor` claim on the active entry. */
19
- setWorksFor(worksFor: string): this;
20
- /** Writes the canonical employee `memberOf` claim on the active entry. */
21
- setMemberOf(memberOf: string): this;
22
- /** Writes the canonical employee organization tax id claim on the active entry. */
23
- setMemberOfOrgTaxId(taxId: string): this;
24
- }
@@ -1,41 +0,0 @@
1
- import { ClaimsPersonSchemaorg } from '../constants/schemaorg.js';
2
- import { BundleEditor } from './bundle-editor.js';
3
- /**
4
- * High-level employee adapter on top of the shared `BundleEditor`.
5
- *
6
- * Use this class when the active bundle entry is known to represent one
7
- * employee resource and callers should work with employee semantics instead of
8
- * raw claim keys.
9
- */
10
- export class EmployeeEditor extends BundleEditor {
11
- /** Writes the canonical employee email claim on the active entry. */
12
- setEmail(email) {
13
- return this.setClaim(ClaimsPersonSchemaorg.email, String(email).trim());
14
- }
15
- /** Reads the canonical employee email claim from the active entry. */
16
- getEmail() {
17
- const email = this.getClaim(ClaimsPersonSchemaorg.email);
18
- return typeof email === 'string' && email.trim() ? email.trim() : undefined;
19
- }
20
- /** Writes the canonical employee occupational role claim on the active entry. */
21
- setRole(role) {
22
- return this.setClaim(ClaimsPersonSchemaorg.hasOccupationalRoleValue, String(role).trim());
23
- }
24
- /** Reads the canonical employee occupational role claim from the active entry. */
25
- getRole() {
26
- const role = this.getClaim(ClaimsPersonSchemaorg.hasOccupationalRoleValue);
27
- return typeof role === 'string' && role.trim() ? role.trim() : undefined;
28
- }
29
- /** Writes the canonical employee `worksFor` claim on the active entry. */
30
- setWorksFor(worksFor) {
31
- return this.setClaim(ClaimsPersonSchemaorg.worksFor, String(worksFor).trim());
32
- }
33
- /** Writes the canonical employee `memberOf` claim on the active entry. */
34
- setMemberOf(memberOf) {
35
- return this.setClaim(ClaimsPersonSchemaorg.memberOf, String(memberOf).trim());
36
- }
37
- /** Writes the canonical employee organization tax id claim on the active entry. */
38
- setMemberOfOrgTaxId(taxId) {
39
- return this.setClaim(ClaimsPersonSchemaorg.memberOfOrgTaxId, String(taxId).trim());
40
- }
41
- }
@@ -1,10 +0,0 @@
1
- import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
- export type EncounterInteroperableClaims = GenericInteroperableClaims;
3
- export declare function getEncounterClaimList(claims: EncounterInteroperableClaims, claimKey: string): string[];
4
- export declare function setEncounterClaimList(claims: EncounterInteroperableClaims, claimKey: string, values: string | readonly string[]): EncounterInteroperableClaims;
5
- export declare function addEncounterClaimList(claims: EncounterInteroperableClaims, claimKey: string, values: string | readonly string[]): EncounterInteroperableClaims;
6
- export declare function removeEncounterClaimList(claims: EncounterInteroperableClaims, claimKey: string, values: string | readonly string[]): EncounterInteroperableClaims;
7
- export declare function getEncounterIdentifier(claims: EncounterInteroperableClaims): string;
8
- export declare function setEncounterIdentifier(claims: EncounterInteroperableClaims, value: string): EncounterInteroperableClaims;
9
- export declare function getEncounterParticipantList(claims: EncounterInteroperableClaims): string[];
10
- export declare function setEncounterParticipantList(claims: EncounterInteroperableClaims, values: string | readonly string[]): EncounterInteroperableClaims;
@@ -1,26 +0,0 @@
1
- import { EncounterClaim } from '../models/interoperable-claims/encounter-claims.js';
2
- import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
- export function getEncounterClaimList(claims, claimKey) {
4
- return getClaimValues(claims, claimKey);
5
- }
6
- export function setEncounterClaimList(claims, claimKey, values) {
7
- return setClaimValues(claims, claimKey, values);
8
- }
9
- export function addEncounterClaimList(claims, claimKey, values) {
10
- return addClaimValues(claims, claimKey, values);
11
- }
12
- export function removeEncounterClaimList(claims, claimKey, values) {
13
- return removeClaimValues(claims, claimKey, values);
14
- }
15
- export function getEncounterIdentifier(claims) {
16
- return normalizeClaimScalar(claims[EncounterClaim.Identifier]);
17
- }
18
- export function setEncounterIdentifier(claims, value) {
19
- return { ...claims, [EncounterClaim.Identifier]: normalizeClaimScalar(value) };
20
- }
21
- export function getEncounterParticipantList(claims) {
22
- return getEncounterClaimList(claims, EncounterClaim.Participant);
23
- }
24
- export function setEncounterParticipantList(claims, values) {
25
- return setEncounterClaimList(claims, EncounterClaim.Participant, values);
26
- }
@@ -1,44 +0,0 @@
1
- /**
2
- * @fileoverview Shared internal index-parameter builders used by GW managers.
3
- *
4
- * @architecture 101
5
- * These helpers are not public FHIR search catalogs. They encapsulate internal
6
- * blind-query index shapes already shared across multiple GW managers.
7
- */
8
- import type { ParameterData } from '../models/params';
9
- import type { ClaimsRecord } from '../models/resource-document';
10
- /**
11
- * Internal blind-query attribute names shared by employee/controller records.
12
- */
13
- export declare enum GatewayEmployeeIndexAttributeName {
14
- Email = "email",
15
- Role = "role",
16
- Kid = "kid"
17
- }
18
- type EmployeeIdentityIndexInput = Readonly<{
19
- email?: string;
20
- roleCode?: string;
21
- kidValues?: readonly string[];
22
- }>;
23
- /**
24
- * Builds the canonical blind-query index set for employee/controller records.
25
- *
26
- * `roleCode` is expected to be already normalized by the caller.
27
- *
28
- * @param input - Concrete employee/controller identity values.
29
- * @returns Concrete `ParameterData[]` entries ready for HMAC protection.
30
- */
31
- export declare function buildEmployeeIdentityIndexParameters(input: EmployeeIdentityIndexInput): ParameterData[];
32
- /**
33
- * Materializes concrete index parameters from a shared flat-claim definition list.
34
- *
35
- * The returned entries keep the original definition metadata (`type`, `unique`)
36
- * and only replace `value` with the concrete scalar from the claims object when
37
- * present.
38
- *
39
- * @param claims - Flat claims object to read from.
40
- * @param definitions - Shared parameter definitions.
41
- * @returns Concrete entries with populated values only.
42
- */
43
- export declare function buildClaimIndexParametersFromDefinitionList(claims: ClaimsRecord, definitions: readonly ParameterData[]): ParameterData[];
44
- export {};
@@ -1,80 +0,0 @@
1
- // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
- /**
3
- * @fileoverview Shared internal index-parameter builders used by GW managers.
4
- *
5
- * @architecture 101
6
- * These helpers are not public FHIR search catalogs. They encapsulate internal
7
- * blind-query index shapes already shared across multiple GW managers.
8
- */
9
- /**
10
- * Internal blind-query attribute names shared by employee/controller records.
11
- */
12
- export var GatewayEmployeeIndexAttributeName;
13
- (function (GatewayEmployeeIndexAttributeName) {
14
- GatewayEmployeeIndexAttributeName["Email"] = "email";
15
- GatewayEmployeeIndexAttributeName["Role"] = "role";
16
- GatewayEmployeeIndexAttributeName["Kid"] = "kid";
17
- })(GatewayEmployeeIndexAttributeName || (GatewayEmployeeIndexAttributeName = {}));
18
- /**
19
- * Builds the canonical blind-query index set for employee/controller records.
20
- *
21
- * `roleCode` is expected to be already normalized by the caller.
22
- *
23
- * @param input - Concrete employee/controller identity values.
24
- * @returns Concrete `ParameterData[]` entries ready for HMAC protection.
25
- */
26
- export function buildEmployeeIdentityIndexParameters(input) {
27
- const parameters = [];
28
- if (typeof input.email === 'string' && input.email.trim().length > 0) {
29
- parameters.push({
30
- name: GatewayEmployeeIndexAttributeName.Email,
31
- value: input.email.trim(),
32
- unique: true,
33
- type: 'string',
34
- });
35
- }
36
- if (typeof input.roleCode === 'string' && input.roleCode.trim().length > 0) {
37
- parameters.push({
38
- name: GatewayEmployeeIndexAttributeName.Role,
39
- value: input.roleCode.trim(),
40
- unique: false,
41
- type: 'token',
42
- });
43
- }
44
- for (const kid of input.kidValues || []) {
45
- if (typeof kid !== 'string' || kid.trim().length === 0)
46
- continue;
47
- parameters.push({
48
- name: GatewayEmployeeIndexAttributeName.Kid,
49
- value: kid.trim(),
50
- unique: false,
51
- type: 'string',
52
- });
53
- }
54
- return parameters;
55
- }
56
- /**
57
- * Materializes concrete index parameters from a shared flat-claim definition list.
58
- *
59
- * The returned entries keep the original definition metadata (`type`, `unique`)
60
- * and only replace `value` with the concrete scalar from the claims object when
61
- * present.
62
- *
63
- * @param claims - Flat claims object to read from.
64
- * @param definitions - Shared parameter definitions.
65
- * @returns Concrete entries with populated values only.
66
- */
67
- export function buildClaimIndexParametersFromDefinitionList(claims, definitions) {
68
- const parameters = [];
69
- for (const definition of definitions) {
70
- const rawValue = claims[definition.name];
71
- if (typeof rawValue !== 'string' && typeof rawValue !== 'number') {
72
- continue;
73
- }
74
- parameters.push({
75
- ...definition,
76
- value: rawValue,
77
- });
78
- }
79
- return parameters;
80
- }
@@ -1,88 +0,0 @@
1
- import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
- export type MedicationInteroperableClaims = GenericInteroperableClaims;
3
- export declare function getMedicationIdentifier(claims: MedicationInteroperableClaims): string;
4
- export declare function setMedicationIdentifier(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
5
- export declare function getMedicationSubject(claims: MedicationInteroperableClaims): string;
6
- export declare function setMedicationSubject(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
7
- export declare function getMedicationStatus(claims: MedicationInteroperableClaims): string;
8
- export declare function setMedicationStatus(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
9
- export declare function getMedicationEffective(claims: MedicationInteroperableClaims): string;
10
- export declare function setMedicationEffective(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
11
- export declare function getMedicationText(claims: MedicationInteroperableClaims): string;
12
- export declare function setMedicationText(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
13
- export declare function getMedicationDoseQuantityValue(claims: MedicationInteroperableClaims): number | undefined;
14
- export declare function setMedicationDoseQuantityValue(claims: MedicationInteroperableClaims, value: number): MedicationInteroperableClaims;
15
- export declare function getMedicationDoseQuantityUnit(claims: MedicationInteroperableClaims): string;
16
- export declare function setMedicationDoseQuantityUnit(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
17
- export declare function getMedicationTimingFrequency(claims: MedicationInteroperableClaims): number | undefined;
18
- export declare function setMedicationTimingFrequency(claims: MedicationInteroperableClaims, value: number): MedicationInteroperableClaims;
19
- export declare function getMedicationTimingPeriod(claims: MedicationInteroperableClaims): number | undefined;
20
- export declare function setMedicationTimingPeriod(claims: MedicationInteroperableClaims, value: number): MedicationInteroperableClaims;
21
- export declare function getMedicationTimingPeriodUnit(claims: MedicationInteroperableClaims): string;
22
- export declare function setMedicationTimingPeriodUnit(claims: MedicationInteroperableClaims, value: string): MedicationInteroperableClaims;
23
- export declare function getMedicationDosageAsNeeded(claims: MedicationInteroperableClaims): boolean | undefined;
24
- export declare function setMedicationDosageAsNeeded(claims: MedicationInteroperableClaims, value: boolean): MedicationInteroperableClaims;
25
- /**
26
- * Returns tokenized values from a medication claim key stored as CSV.
27
- */
28
- export declare function getMedicationClaimList(claims: MedicationInteroperableClaims, claimKey: string): string[];
29
- /**
30
- * Replaces a medication claim list from array/string input and stores canonical CSV.
31
- */
32
- export declare function setMedicationClaimList(claims: MedicationInteroperableClaims, claimKey: string, values: string | readonly string[]): MedicationInteroperableClaims;
33
- /**
34
- * Adds values to a medication claim list preserving uniqueness.
35
- */
36
- export declare function addMedicationClaimList(claims: MedicationInteroperableClaims, claimKey: string, values: string | readonly string[]): MedicationInteroperableClaims;
37
- /**
38
- * Removes values from a medication claim list while preserving uniqueness.
39
- */
40
- export declare function removeMedicationClaimList(claims: MedicationInteroperableClaims, claimKey: string, values: string | readonly string[]): MedicationInteroperableClaims;
41
- /**
42
- * Medication category list getter/setter/add.
43
- */
44
- export declare function getMedicationCategoryList(claims: MedicationInteroperableClaims): string[];
45
- export declare function setMedicationCategoryList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
46
- export declare function addMedicationCategoryList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
47
- export declare function removeMedicationCategoryList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
48
- /**
49
- * Medication part-of list getter/setter/add.
50
- */
51
- export declare function getMedicationPartOfList(claims: MedicationInteroperableClaims): string[];
52
- export declare function setMedicationPartOfList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
53
- export declare function addMedicationPartOfList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
54
- export declare function removeMedicationPartOfList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
55
- /**
56
- * Medication code list getter/setter/add.
57
- *
58
- * Note:
59
- * - many flows use a single code, but CSV list is supported for UI preview/edit
60
- * where multiple coded values can be staged before normalization.
61
- */
62
- export declare function getMedicationCodeList(claims: MedicationInteroperableClaims): string[];
63
- export declare function setMedicationCodeList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
64
- export declare function addMedicationCodeList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
65
- export declare function removeMedicationCodeList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
66
- /**
67
- * Medication source list getter/setter/add.
68
- */
69
- export declare function getMedicationSourceList(claims: MedicationInteroperableClaims): string[];
70
- export declare function setMedicationSourceList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
71
- export declare function addMedicationSourceList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
72
- export declare function removeMedicationSourceList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
73
- /**
74
- * Medication subject list getter/setter/add.
75
- */
76
- export declare function getMedicationSubjectList(claims: MedicationInteroperableClaims): string[];
77
- export declare function setMedicationSubjectList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
78
- export declare function addMedicationSubjectList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
79
- export declare function removeMedicationSubjectList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
80
- /**
81
- * Linked DocumentReference identifiers associated to the medication statement.
82
- * Canonical claim key: `MedicationStatement.contained-documents`.
83
- * Legacy alias accepted on read: `MedicationStatement.attachment-content-ids`.
84
- */
85
- export declare function getMedicationContainedDocumentIdentifierList(claims: MedicationInteroperableClaims): string[];
86
- export declare function setMedicationContainedDocumentIdentifierList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
87
- export declare function addMedicationContainedDocumentIdentifierList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
88
- export declare function removeMedicationContainedDocumentIdentifierList(claims: MedicationInteroperableClaims, values: string | readonly string[]): MedicationInteroperableClaims;
@@ -1,259 +0,0 @@
1
- // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
- import { MedicationStatementClaim, MedicationStatementClaimsFhirApiExtended, } from '../models/interoperable-claims/medication-statement-claims.js';
3
- import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
4
- export function getMedicationIdentifier(claims) {
5
- return getMedicationScalar(claims, MedicationStatementClaim.Identifier);
6
- }
7
- export function setMedicationIdentifier(claims, value) {
8
- return setMedicationScalar(claims, MedicationStatementClaim.Identifier, value);
9
- }
10
- export function getMedicationSubject(claims) {
11
- return getMedicationScalar(claims, MedicationStatementClaim.Subject);
12
- }
13
- export function setMedicationSubject(claims, value) {
14
- return setMedicationScalar(claims, MedicationStatementClaim.Subject, value);
15
- }
16
- export function getMedicationStatus(claims) {
17
- return getMedicationScalar(claims, MedicationStatementClaim.Status);
18
- }
19
- export function setMedicationStatus(claims, value) {
20
- return setMedicationScalar(claims, MedicationStatementClaim.Status, value);
21
- }
22
- export function getMedicationEffective(claims) {
23
- return getMedicationScalar(claims, MedicationStatementClaim.Effective);
24
- }
25
- export function setMedicationEffective(claims, value) {
26
- return setMedicationScalar(claims, MedicationStatementClaim.Effective, value);
27
- }
28
- export function getMedicationText(claims) {
29
- return getMedicationScalar(claims, MedicationStatementClaim.MedicationText);
30
- }
31
- export function setMedicationText(claims, value) {
32
- return setMedicationScalar(claims, MedicationStatementClaim.MedicationText, value);
33
- }
34
- export function getMedicationDoseQuantityValue(claims) {
35
- return getMedicationNumber(claims, MedicationStatementClaimsFhirApiExtended.DoseQuantityValue);
36
- }
37
- export function setMedicationDoseQuantityValue(claims, value) {
38
- return setMedicationNumber(claims, MedicationStatementClaimsFhirApiExtended.DoseQuantityValue, value);
39
- }
40
- export function getMedicationDoseQuantityUnit(claims) {
41
- return getMedicationScalar(claims, MedicationStatementClaimsFhirApiExtended.DoseQuantityUnit);
42
- }
43
- export function setMedicationDoseQuantityUnit(claims, value) {
44
- return setMedicationScalar(claims, MedicationStatementClaimsFhirApiExtended.DoseQuantityUnit, value);
45
- }
46
- export function getMedicationTimingFrequency(claims) {
47
- return getMedicationNumber(claims, MedicationStatementClaimsFhirApiExtended.TimingFrequency);
48
- }
49
- export function setMedicationTimingFrequency(claims, value) {
50
- return setMedicationNumber(claims, MedicationStatementClaimsFhirApiExtended.TimingFrequency, value);
51
- }
52
- export function getMedicationTimingPeriod(claims) {
53
- return getMedicationNumber(claims, MedicationStatementClaimsFhirApiExtended.TimingPeriod);
54
- }
55
- export function setMedicationTimingPeriod(claims, value) {
56
- return setMedicationNumber(claims, MedicationStatementClaimsFhirApiExtended.TimingPeriod, value);
57
- }
58
- export function getMedicationTimingPeriodUnit(claims) {
59
- return getMedicationScalar(claims, MedicationStatementClaimsFhirApiExtended.TimingPeriodUnit);
60
- }
61
- export function setMedicationTimingPeriodUnit(claims, value) {
62
- return setMedicationScalar(claims, MedicationStatementClaimsFhirApiExtended.TimingPeriodUnit, value);
63
- }
64
- export function getMedicationDosageAsNeeded(claims) {
65
- return getMedicationBoolean(claims, MedicationStatementClaimsFhirApiExtended.DosageAsNeeded);
66
- }
67
- export function setMedicationDosageAsNeeded(claims, value) {
68
- return setMedicationBoolean(claims, MedicationStatementClaimsFhirApiExtended.DosageAsNeeded, value);
69
- }
70
- /**
71
- * Returns tokenized values from a medication claim key stored as CSV.
72
- */
73
- export function getMedicationClaimList(claims, claimKey) {
74
- return getClaimValues(claims, claimKey);
75
- }
76
- /**
77
- * Replaces a medication claim list from array/string input and stores canonical CSV.
78
- */
79
- export function setMedicationClaimList(claims, claimKey, values) {
80
- return setClaimValues(claims, claimKey, values);
81
- }
82
- /**
83
- * Adds values to a medication claim list preserving uniqueness.
84
- */
85
- export function addMedicationClaimList(claims, claimKey, values) {
86
- return addClaimValues(claims, claimKey, values);
87
- }
88
- /**
89
- * Removes values from a medication claim list while preserving uniqueness.
90
- */
91
- export function removeMedicationClaimList(claims, claimKey, values) {
92
- return removeClaimValues(claims, claimKey, values);
93
- }
94
- /**
95
- * Medication category list getter/setter/add.
96
- */
97
- export function getMedicationCategoryList(claims) {
98
- return getMedicationClaimList(claims, MedicationStatementClaim.Category);
99
- }
100
- export function setMedicationCategoryList(claims, values) {
101
- return setMedicationClaimList(claims, MedicationStatementClaim.Category, values);
102
- }
103
- export function addMedicationCategoryList(claims, values) {
104
- return addMedicationClaimList(claims, MedicationStatementClaim.Category, values);
105
- }
106
- export function removeMedicationCategoryList(claims, values) {
107
- return removeMedicationClaimList(claims, MedicationStatementClaim.Category, values);
108
- }
109
- /**
110
- * Medication part-of list getter/setter/add.
111
- */
112
- export function getMedicationPartOfList(claims) {
113
- return getMedicationClaimList(claims, MedicationStatementClaim.PartOf);
114
- }
115
- export function setMedicationPartOfList(claims, values) {
116
- return setMedicationClaimList(claims, MedicationStatementClaim.PartOf, values);
117
- }
118
- export function addMedicationPartOfList(claims, values) {
119
- return addMedicationClaimList(claims, MedicationStatementClaim.PartOf, values);
120
- }
121
- export function removeMedicationPartOfList(claims, values) {
122
- return removeMedicationClaimList(claims, MedicationStatementClaim.PartOf, values);
123
- }
124
- /**
125
- * Medication code list getter/setter/add.
126
- *
127
- * Note:
128
- * - many flows use a single code, but CSV list is supported for UI preview/edit
129
- * where multiple coded values can be staged before normalization.
130
- */
131
- export function getMedicationCodeList(claims) {
132
- return getMedicationClaimList(claims, MedicationStatementClaim.Code);
133
- }
134
- export function setMedicationCodeList(claims, values) {
135
- return setMedicationClaimList(claims, MedicationStatementClaim.Code, values);
136
- }
137
- export function addMedicationCodeList(claims, values) {
138
- return addMedicationClaimList(claims, MedicationStatementClaim.Code, values);
139
- }
140
- export function removeMedicationCodeList(claims, values) {
141
- return removeMedicationClaimList(claims, MedicationStatementClaim.Code, values);
142
- }
143
- /**
144
- * Medication source list getter/setter/add.
145
- */
146
- export function getMedicationSourceList(claims) {
147
- return getMedicationClaimList(claims, MedicationStatementClaim.Source);
148
- }
149
- export function setMedicationSourceList(claims, values) {
150
- return setMedicationClaimList(claims, MedicationStatementClaim.Source, values);
151
- }
152
- export function addMedicationSourceList(claims, values) {
153
- return addMedicationClaimList(claims, MedicationStatementClaim.Source, values);
154
- }
155
- export function removeMedicationSourceList(claims, values) {
156
- return removeMedicationClaimList(claims, MedicationStatementClaim.Source, values);
157
- }
158
- /**
159
- * Medication subject list getter/setter/add.
160
- */
161
- export function getMedicationSubjectList(claims) {
162
- return getMedicationClaimList(claims, MedicationStatementClaim.Subject);
163
- }
164
- export function setMedicationSubjectList(claims, values) {
165
- return setMedicationClaimList(claims, MedicationStatementClaim.Subject, values);
166
- }
167
- export function addMedicationSubjectList(claims, values) {
168
- return addMedicationClaimList(claims, MedicationStatementClaim.Subject, values);
169
- }
170
- export function removeMedicationSubjectList(claims, values) {
171
- return removeMedicationClaimList(claims, MedicationStatementClaim.Subject, values);
172
- }
173
- /**
174
- * Linked DocumentReference identifiers associated to the medication statement.
175
- * Canonical claim key: `MedicationStatement.contained-documents`.
176
- * Legacy alias accepted on read: `MedicationStatement.attachment-content-ids`.
177
- */
178
- export function getMedicationContainedDocumentIdentifierList(claims) {
179
- return uniqueCsvLists([
180
- getMedicationClaimList(claims, MedicationStatementClaim.ContainedDocuments),
181
- getMedicationClaimList(claims, MedicationStatementClaim.AttachmentContentIds),
182
- ]);
183
- }
184
- export function setMedicationContainedDocumentIdentifierList(claims, values) {
185
- return setContainedDocuments(claims, values);
186
- }
187
- export function addMedicationContainedDocumentIdentifierList(claims, values) {
188
- return setContainedDocuments(claims, uniqueCsvLists([
189
- getMedicationContainedDocumentIdentifierList(claims),
190
- Array.isArray(values) ? [...values] : getMedicationClaimList({ [MedicationStatementClaim.ContainedDocuments]: values }, MedicationStatementClaim.ContainedDocuments),
191
- ]));
192
- }
193
- export function removeMedicationContainedDocumentIdentifierList(claims, values) {
194
- const toRemove = new Set((Array.isArray(values) ? values : getMedicationClaimList({ [MedicationStatementClaim.ContainedDocuments]: values }, MedicationStatementClaim.ContainedDocuments))
195
- .map((item) => String(item || '').trim())
196
- .filter(Boolean));
197
- return setContainedDocuments(claims, getMedicationContainedDocumentIdentifierList(claims).filter((item) => !toRemove.has(item)));
198
- }
199
- function setContainedDocuments(claims, values) {
200
- const next = setMedicationClaimList(claims, MedicationStatementClaim.ContainedDocuments, values);
201
- const cleaned = {
202
- ...next,
203
- };
204
- delete cleaned[MedicationStatementClaim.AttachmentContentIds];
205
- return cleaned;
206
- }
207
- function uniqueCsvLists(lists) {
208
- return [...new Set(lists.flatMap((list) => list.map((item) => String(item || '').trim()).filter(Boolean)))];
209
- }
210
- function getMedicationScalar(claims, claimKey) {
211
- return normalizeClaimScalar(claims[claimKey]);
212
- }
213
- function setMedicationScalar(claims, claimKey, value) {
214
- return {
215
- ...claims,
216
- [claimKey]: normalizeClaimScalar(value),
217
- };
218
- }
219
- function getMedicationNumber(claims, claimKey) {
220
- const raw = claims[claimKey];
221
- if (typeof raw === 'number' && Number.isFinite(raw)) {
222
- return raw;
223
- }
224
- const normalized = normalizeClaimScalar(raw);
225
- if (!normalized) {
226
- return undefined;
227
- }
228
- const parsed = Number(normalized);
229
- return Number.isFinite(parsed) ? parsed : undefined;
230
- }
231
- function setMedicationNumber(claims, claimKey, value) {
232
- return {
233
- ...claims,
234
- [claimKey]: value,
235
- };
236
- }
237
- function getMedicationBoolean(claims, claimKey) {
238
- const raw = claims[claimKey];
239
- if (typeof raw === 'boolean') {
240
- return raw;
241
- }
242
- const normalized = normalizeClaimScalar(raw).toLowerCase();
243
- if (!normalized) {
244
- return undefined;
245
- }
246
- if (normalized === 'true') {
247
- return true;
248
- }
249
- if (normalized === 'false') {
250
- return false;
251
- }
252
- return undefined;
253
- }
254
- function setMedicationBoolean(claims, claimKey, value) {
255
- return {
256
- ...claims,
257
- [claimKey]: value,
258
- };
259
- }
@@ -1 +0,0 @@
1
- export declare function normalizeSubjectUuid(input: string | undefined): string | undefined;
@@ -1,24 +0,0 @@
1
- // Normalizes a subject identifier to a canonical UUID (hexadecimal, lowercase, no dashes)
2
- // Accepts: urn:uuid:<uuid>, <ResourceType>/<uuid>, <uuid> (with or without dashes), base58 (optional)
3
- // Returns: canonical hex string (no dashes, lowercase) or undefined if not valid
4
- export function normalizeSubjectUuid(input) {
5
- if (!input)
6
- return undefined;
7
- let s = String(input).trim();
8
- // urn:uuid:<uuid>
9
- if (s.startsWith('urn:uuid:'))
10
- s = s.slice(9);
11
- // <ResourceType>/<uuid>
12
- const slashIdx = s.indexOf('/');
13
- if (slashIdx >= 0)
14
- s = s.slice(slashIdx + 1);
15
- // Remove dashes
16
- s = s.replace(/-/g, '');
17
- // Lowercase
18
- s = s.toLowerCase();
19
- // Validate: must be 32 hex chars
20
- if (/^[0-9a-f]{32}$/.test(s))
21
- return s;
22
- // Optionally: add base58 or other formats here
23
- return undefined;
24
- }
@@ -1,8 +0,0 @@
1
- import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
- export type RelatedPersonInteroperableClaims = GenericInteroperableClaims;
3
- export declare function getRelatedPersonClaimList(claims: RelatedPersonInteroperableClaims, claimKey: string): string[];
4
- export declare function setRelatedPersonClaimList(claims: RelatedPersonInteroperableClaims, claimKey: string, values: string | readonly string[]): RelatedPersonInteroperableClaims;
5
- export declare function addRelatedPersonClaimList(claims: RelatedPersonInteroperableClaims, claimKey: string, values: string | readonly string[]): RelatedPersonInteroperableClaims;
6
- export declare function removeRelatedPersonClaimList(claims: RelatedPersonInteroperableClaims, claimKey: string, values: string | readonly string[]): RelatedPersonInteroperableClaims;
7
- export declare function getRelatedPersonIdentifier(claims: RelatedPersonInteroperableClaims): string;
8
- export declare function setRelatedPersonIdentifier(claims: RelatedPersonInteroperableClaims, value: string): RelatedPersonInteroperableClaims;
@@ -1,20 +0,0 @@
1
- import { RelatedPersonClaim } from '../models/interoperable-claims/related-person-claims.js';
2
- import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
- export function getRelatedPersonClaimList(claims, claimKey) {
4
- return getClaimValues(claims, claimKey);
5
- }
6
- export function setRelatedPersonClaimList(claims, claimKey, values) {
7
- return setClaimValues(claims, claimKey, values);
8
- }
9
- export function addRelatedPersonClaimList(claims, claimKey, values) {
10
- return addClaimValues(claims, claimKey, values);
11
- }
12
- export function removeRelatedPersonClaimList(claims, claimKey, values) {
13
- return removeClaimValues(claims, claimKey, values);
14
- }
15
- export function getRelatedPersonIdentifier(claims) {
16
- return normalizeClaimScalar(claims[RelatedPersonClaim.Identifier]);
17
- }
18
- export function setRelatedPersonIdentifier(claims, value) {
19
- return { ...claims, [RelatedPersonClaim.Identifier]: normalizeClaimScalar(value) };
20
- }