fhir-data-utils-ts 0.2.4 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex/skills/govern-fhir-data-utilities/SKILL.md +58 -0
- package/.codex/skills/govern-fhir-data-utilities/agents/openai.yaml +4 -0
- package/.codex/skills/govern-fhir-observation-components/SKILL.md +18 -0
- package/CHANGELOG.md +30 -0
- package/README.md +39 -0
- package/dist/builders/immunization-graph.d.ts +36 -0
- package/dist/builders/immunization-graph.js +115 -0
- package/dist/builders/immunization-reminders.d.ts +35 -0
- package/dist/builders/immunization-reminders.js +104 -0
- package/dist/builders/index.d.ts +2 -0
- package/dist/builders/index.js +2 -0
- package/dist/claim-helpers/claim-list-helpers.d.ts +21 -0
- package/dist/claim-helpers/claim-list-helpers.js +54 -0
- package/dist/claim-helpers/claims-helpers-allergy-intolerance.d.ts +18 -0
- package/dist/claim-helpers/claims-helpers-allergy-intolerance.js +65 -0
- package/dist/claim-helpers/claims-helpers-appointment-response.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-appointment-response.js +20 -0
- package/dist/claim-helpers/claims-helpers-appointment.d.ts +10 -0
- package/dist/claim-helpers/claims-helpers-appointment.js +26 -0
- package/dist/claim-helpers/claims-helpers-care-plan.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-care-plan.js +20 -0
- package/dist/claim-helpers/claims-helpers-clinical-impression.d.ts +10 -0
- package/dist/claim-helpers/claims-helpers-clinical-impression.js +26 -0
- package/dist/claim-helpers/claims-helpers-communication.d.ts +19 -0
- package/dist/claim-helpers/claims-helpers-communication.js +63 -0
- package/dist/claim-helpers/claims-helpers-composition.d.ts +12 -0
- package/dist/claim-helpers/claims-helpers-composition.js +32 -0
- package/dist/claim-helpers/claims-helpers-condition.d.ts +18 -0
- package/dist/claim-helpers/claims-helpers-condition.js +65 -0
- package/dist/claim-helpers/claims-helpers-coverage.d.ts +10 -0
- package/dist/claim-helpers/claims-helpers-coverage.js +26 -0
- package/dist/claim-helpers/claims-helpers-device-use-statement.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-device-use-statement.js +20 -0
- package/dist/claim-helpers/claims-helpers-device.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-device.js +20 -0
- package/dist/claim-helpers/claims-helpers-diagnostic-report.d.ts +16 -0
- package/dist/claim-helpers/claims-helpers-diagnostic-report.js +47 -0
- package/dist/claim-helpers/claims-helpers-document-reference.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-document-reference.js +20 -0
- package/dist/claim-helpers/claims-helpers-encounter.d.ts +10 -0
- package/dist/claim-helpers/claims-helpers-encounter.js +26 -0
- package/dist/claim-helpers/claims-helpers-flag.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-flag.js +20 -0
- package/dist/claim-helpers/claims-helpers-immunization.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-immunization.js +20 -0
- package/dist/claim-helpers/claims-helpers-location.d.ts +10 -0
- package/dist/claim-helpers/claims-helpers-location.js +26 -0
- package/dist/claim-helpers/claims-helpers-medication-statement.d.ts +96 -0
- package/dist/claim-helpers/claims-helpers-medication-statement.js +278 -0
- package/dist/claim-helpers/claims-helpers-observation.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-observation.js +20 -0
- package/dist/claim-helpers/claims-helpers-organization.d.ts +12 -0
- package/dist/claim-helpers/claims-helpers-organization.js +32 -0
- package/dist/claim-helpers/claims-helpers-procedure.d.ts +8 -0
- package/dist/claim-helpers/claims-helpers-procedure.js +20 -0
- package/dist/claim-helpers/claims-helpers-related-person.d.ts +22 -0
- package/dist/claim-helpers/claims-helpers-related-person.js +53 -0
- package/dist/claim-helpers/index.d.ts +23 -0
- package/dist/claim-helpers/index.js +23 -0
- package/dist/claims/allergy-intolerance-claims.d.ts +153 -0
- package/dist/claims/allergy-intolerance-claims.js +194 -0
- package/dist/claims/appointment-claims.d.ts +226 -0
- package/dist/claims/appointment-claims.js +218 -0
- package/dist/claims/appointment-response-claims.d.ts +63 -0
- package/dist/claims/appointment-response-claims.js +58 -0
- package/dist/claims/care-plan-claims.d.ts +37 -0
- package/dist/claims/care-plan-claims.js +59 -0
- package/dist/claims/claim-types.d.ts +9 -0
- package/dist/claims/claim-types.js +3 -0
- package/dist/claims/clinical-impression-claims.d.ts +17 -0
- package/dist/claims/clinical-impression-claims.js +30 -0
- package/dist/claims/communication-claims.d.ts +55 -0
- package/dist/claims/communication-claims.js +57 -0
- package/dist/claims/composition-claims.d.ts +27 -0
- package/dist/claims/composition-claims.js +27 -0
- package/dist/claims/condition-claims.d.ts +79 -0
- package/dist/claims/condition-claims.js +104 -0
- package/dist/claims/consent-claims.d.ts +195 -0
- package/dist/claims/consent-claims.js +74 -0
- package/dist/claims/coverage-claims.d.ts +16 -0
- package/dist/claims/coverage-claims.js +28 -0
- package/dist/claims/device-claims.d.ts +20 -0
- package/dist/claims/device-claims.js +36 -0
- package/dist/claims/device-use-statement-claims.d.ts +17 -0
- package/dist/claims/device-use-statement-claims.js +28 -0
- package/dist/claims/diagnostic-report-claims.d.ts +109 -0
- package/dist/claims/diagnostic-report-claims.js +120 -0
- package/dist/claims/document-reference-claims.d.ts +39 -0
- package/dist/claims/document-reference-claims.js +96 -0
- package/dist/claims/encounter-claims.d.ts +18 -0
- package/dist/claims/encounter-claims.js +32 -0
- package/dist/claims/flag-claims.d.ts +19 -0
- package/dist/claims/flag-claims.js +33 -0
- package/dist/claims/immunization-claims.d.ts +31 -0
- package/dist/claims/immunization-claims.js +54 -0
- package/dist/claims/immunization-recommendation-claims.d.ts +19 -0
- package/dist/claims/immunization-recommendation-claims.js +26 -0
- package/dist/claims/index.d.ts +29 -0
- package/dist/claims/index.js +29 -0
- package/dist/claims/invoice-claims.d.ts +277 -0
- package/dist/claims/invoice-claims.js +357 -0
- package/dist/claims/location-claims.d.ts +22 -0
- package/dist/claims/location-claims.js +34 -0
- package/dist/claims/medication-claims.d.ts +15 -0
- package/dist/claims/medication-claims.js +23 -0
- package/dist/claims/medication-statement-claims.d.ts +539 -0
- package/dist/claims/medication-statement-claims.js +469 -0
- package/dist/claims/organization-claims.d.ts +18 -0
- package/dist/claims/organization-claims.js +27 -0
- package/dist/claims/practitioner-role-claims.d.ts +18 -0
- package/dist/claims/practitioner-role-claims.js +33 -0
- package/dist/claims/procedure-claims.d.ts +24 -0
- package/dist/claims/procedure-claims.js +44 -0
- package/dist/claims/related-person-claims.d.ts +30 -0
- package/dist/claims/related-person-claims.js +44 -0
- package/dist/claims/research-subject-claims.d.ts +4 -0
- package/dist/claims/research-subject-claims.js +4 -0
- package/dist/claims/task-claims.d.ts +61 -0
- package/dist/claims/task-claims.js +64 -0
- package/dist/clinical-terminology.d.ts +73 -0
- package/dist/clinical-terminology.js +77 -0
- package/dist/constants/clinical-statuses.d.ts +102 -0
- package/dist/constants/clinical-statuses.js +93 -0
- package/dist/constants/fhir-code-systems.d.ts +15 -0
- package/dist/constants/fhir-code-systems.js +15 -0
- package/dist/constants/fhir-resource-types.d.ts +162 -0
- package/dist/constants/fhir-resource-types.js +70 -0
- package/dist/constants/fhir-versions.d.ts +10 -0
- package/dist/constants/fhir-versions.js +10 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +4 -0
- package/dist/converters/convert-allergy-intolerance.d.ts +3 -0
- package/dist/converters/convert-allergy-intolerance.js +85 -0
- package/dist/converters/convert-appointment-response.d.ts +3 -0
- package/dist/converters/convert-appointment-response.js +32 -0
- package/dist/converters/convert-appointment.d.ts +3 -0
- package/dist/converters/convert-appointment.js +61 -0
- package/dist/converters/convert-care-plan.d.ts +3 -0
- package/dist/converters/convert-care-plan.js +93 -0
- package/dist/converters/convert-clinical-impression.d.ts +3 -0
- package/dist/converters/convert-clinical-impression.js +42 -0
- package/dist/converters/convert-composition.d.ts +3 -0
- package/dist/converters/convert-composition.js +70 -0
- package/dist/converters/convert-condition.d.ts +3 -0
- package/dist/converters/convert-condition.js +51 -0
- package/dist/converters/convert-consent.d.ts +9 -0
- package/dist/converters/convert-consent.js +174 -0
- package/dist/converters/convert-coverage.d.ts +3 -0
- package/dist/converters/convert-coverage.js +51 -0
- package/dist/converters/convert-device-use-statement.d.ts +3 -0
- package/dist/converters/convert-device-use-statement.js +36 -0
- package/dist/converters/convert-device.d.ts +3 -0
- package/dist/converters/convert-device.js +48 -0
- package/dist/converters/convert-diagnostic-report.d.ts +3 -0
- package/dist/converters/convert-diagnostic-report.js +63 -0
- package/dist/converters/convert-document-reference.d.ts +3 -0
- package/dist/converters/convert-document-reference.js +54 -0
- package/dist/converters/convert-encounter.d.ts +3 -0
- package/dist/converters/convert-encounter.js +68 -0
- package/dist/converters/convert-flag.d.ts +3 -0
- package/dist/converters/convert-flag.js +42 -0
- package/dist/converters/convert-immunization.d.ts +3 -0
- package/dist/converters/convert-immunization.js +80 -0
- package/dist/converters/convert-location.d.ts +3 -0
- package/dist/converters/convert-location.js +44 -0
- package/dist/converters/convert-medication-statement.d.ts +3 -0
- package/dist/converters/convert-medication-statement.js +130 -0
- package/dist/converters/convert-observation.d.ts +33 -0
- package/dist/converters/convert-observation.js +246 -0
- package/dist/converters/convert-organization.d.ts +3 -0
- package/dist/converters/convert-organization.js +39 -0
- package/dist/converters/convert-practitioner-role.d.ts +3 -0
- package/dist/converters/convert-practitioner-role.js +62 -0
- package/dist/converters/convert-procedure.d.ts +3 -0
- package/dist/converters/convert-procedure.js +64 -0
- package/dist/converters/convert-related-person.d.ts +3 -0
- package/dist/converters/convert-related-person.js +31 -0
- package/dist/converters/convert-shared.d.ts +33 -0
- package/dist/converters/convert-shared.js +181 -0
- package/dist/converters/index.d.ts +24 -0
- package/dist/converters/index.js +24 -0
- package/dist/fhir-bundle.d.ts +9 -0
- package/dist/fhir-bundle.js +43 -0
- package/dist/fhir-search-parameters.d.ts +18 -0
- package/dist/fhir-search-parameters.js +52 -0
- package/dist/fhir-tokens.d.ts +11 -0
- package/dist/fhir-tokens.js +26 -0
- package/dist/fhir-types.d.ts +77 -0
- package/dist/fhir-types.js +1 -0
- package/dist/fhir-values.d.ts +13 -0
- package/dist/fhir-values.js +53 -0
- package/dist/group-r5.d.ts +121 -0
- package/dist/group-r5.js +301 -0
- package/dist/imaging-types.d.ts +30 -0
- package/dist/imaging-types.js +1 -0
- package/dist/immunization-flat-claims.d.ts +2 -0
- package/dist/immunization-flat-claims.js +2 -0
- package/dist/immunization-reminder-plan.d.ts +2 -0
- package/dist/immunization-reminder-plan.js +2 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +19 -0
- package/dist/observation-claims.d.ts +170 -0
- package/dist/observation-claims.js +184 -0
- package/dist/related-person.d.ts +16 -0
- package/dist/related-person.js +14 -0
- package/dist/research-study-r5.d.ts +163 -0
- package/dist/research-study-r5.js +490 -0
- package/dist/search-models/index.d.ts +7 -0
- package/dist/search-models/index.js +7 -0
- package/dist/search-models/params/AdverseEvent.params.model.d.ts +14 -0
- package/dist/search-models/params/AdverseEvent.params.model.js +16 -0
- package/dist/search-models/params/AllergyIntolerance.params.model.d.ts +24 -0
- package/dist/search-models/params/AllergyIntolerance.params.model.js +27 -0
- package/dist/search-models/params/Appointment.params.model.d.ts +12 -0
- package/dist/search-models/params/Appointment.params.model.js +14 -0
- package/dist/search-models/params/ClinicalImpression.params.model.d.ts +14 -0
- package/dist/search-models/params/ClinicalImpression.params.model.js +15 -0
- package/dist/search-models/params/Condition.params.model.d.ts +16 -0
- package/dist/search-models/params/Condition.params.model.js +17 -0
- package/dist/search-models/params/DetectedIssue.params.model.d.ts +9 -0
- package/dist/search-models/params/DetectedIssue.params.model.js +11 -0
- package/dist/search-models/params/DiagnosticReport.params.model.d.ts +13 -0
- package/dist/search-models/params/DiagnosticReport.params.model.js +14 -0
- package/dist/search-models/params/Encounter.params.model.d.ts +15 -0
- package/dist/search-models/params/Encounter.params.model.js +17 -0
- package/dist/search-models/params/Immunization.params.model.d.ts +14 -0
- package/dist/search-models/params/Immunization.params.model.js +16 -0
- package/dist/search-models/params/Medication.params.model.d.ts +35 -0
- package/dist/search-models/params/Medication.params.model.js +45 -0
- package/dist/search-models/params/Observation.params.model.d.ts +326 -0
- package/dist/search-models/params/Observation.params.model.js +244 -0
- package/dist/search-models/params/Procedure.params.model.d.ts +15 -0
- package/dist/search-models/params/Procedure.params.model.js +17 -0
- package/dist/search-models/params/Search.params.model.d.ts +75 -0
- package/dist/search-models/params/Search.params.model.js +69 -0
- package/dist/search-models/params/ServiceRequest.params.model.d.ts +14 -0
- package/dist/search-models/params/ServiceRequest.params.model.js +16 -0
- package/dist/search-models/params/Specimen.params.model.d.ts +10 -0
- package/dist/search-models/params/Specimen.params.model.js +12 -0
- package/dist/search-models/params/index.d.ts +15 -0
- package/dist/search-models/params/index.js +15 -0
- package/dist/search-models/templates/AdverseEvent.template.model.d.ts +16 -0
- package/dist/search-models/templates/AdverseEvent.template.model.js +2 -0
- package/dist/search-models/templates/AllergyIntolerance.template.model.d.ts +24 -0
- package/dist/search-models/templates/AllergyIntolerance.template.model.js +1 -0
- package/dist/search-models/templates/Appointment.template.model.d.ts +13 -0
- package/dist/search-models/templates/Appointment.template.model.js +1 -0
- package/dist/search-models/templates/ClinicalImpression.template.model.d.ts +16 -0
- package/dist/search-models/templates/ClinicalImpression.template.model.js +1 -0
- package/dist/search-models/templates/Condition.template.model.d.ts +18 -0
- package/dist/search-models/templates/Condition.template.model.js +1 -0
- package/dist/search-models/templates/DetectedIssue.template.model.d.ts +11 -0
- package/dist/search-models/templates/DetectedIssue.template.model.js +1 -0
- package/dist/search-models/templates/DiagnosticReport.template.model.d.ts +15 -0
- package/dist/search-models/templates/DiagnosticReport.template.model.js +1 -0
- package/dist/search-models/templates/Encounter.template.model.d.ts +17 -0
- package/dist/search-models/templates/Encounter.template.model.js +1 -0
- package/dist/search-models/templates/Immunization.template.model.d.ts +18 -0
- package/dist/search-models/templates/Immunization.template.model.js +2 -0
- package/dist/search-models/templates/Medication.template.model.d.ts +37 -0
- package/dist/search-models/templates/Medication.template.model.js +1 -0
- package/dist/search-models/templates/Observation.template.model.d.ts +18 -0
- package/dist/search-models/templates/Observation.template.model.js +1 -0
- package/dist/search-models/templates/Procedure.template.model.d.ts +17 -0
- package/dist/search-models/templates/Procedure.template.model.js +1 -0
- package/dist/search-models/templates/ServiceRequest.template.model.d.ts +16 -0
- package/dist/search-models/templates/ServiceRequest.template.model.js +1 -0
- package/dist/search-models/templates/Specimen.template.model.d.ts +12 -0
- package/dist/search-models/templates/Specimen.template.model.js +1 -0
- package/dist/search-models/templates/index.d.ts +14 -0
- package/dist/search-models/templates/index.js +14 -0
- package/dist/terminology-models/AtcModel.d.ts +15 -0
- package/dist/terminology-models/AtcModel.js +2 -0
- package/dist/terminology-models/CommonModels.d.ts +70 -0
- package/dist/terminology-models/CommonModels.js +55 -0
- package/dist/terminology-models/FhirModels.d.ts +60 -0
- package/dist/terminology-models/FhirModels.js +34 -0
- package/dist/terminology-models/LoincModels.d.ts +24 -0
- package/dist/terminology-models/LoincModels.js +2 -0
- package/dist/terminology-models/SnomedModels.d.ts +13 -0
- package/dist/terminology-models/SnomedModels.js +2 -0
- package/dist/terminology-models/index.d.ts +6 -0
- package/dist/terminology-models/index.js +6 -0
- package/docs/UHC_FHIR_UTILS_MIGRATION.md +51 -8
- package/package.json +83 -2
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
// Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
|
|
2
|
+
// File: src/models/interoperable-claims/invoice-claims.ts
|
|
3
|
+
/**
|
|
4
|
+
* Canonical flat claim keys for invoice-level business data.
|
|
5
|
+
*
|
|
6
|
+
* These claims are the claims-first source of truth. FHIR `Invoice` is one
|
|
7
|
+
* downstream projection built from them.
|
|
8
|
+
*/
|
|
9
|
+
export const InvoiceClaim = {
|
|
10
|
+
/** Stable business invoice identifier. Example: `invoice-001`. */
|
|
11
|
+
Identifier: 'Invoice.identifier',
|
|
12
|
+
/** Invoice issue date/time. Example: `2026-06-11T10:00:00Z`. */
|
|
13
|
+
Date: 'Invoice.date',
|
|
14
|
+
/** Invoice lifecycle status. Example: `issued`. */
|
|
15
|
+
Status: 'Invoice.status',
|
|
16
|
+
/** Subject or tenant context reference. Example: `did:web:host.example.com:health-care:organization:taxid:VATES-B00112233:individual:multibase:zExampleIndividualId`. */
|
|
17
|
+
Subject: 'Invoice.subject',
|
|
18
|
+
/** Billed recipient reference. Example: `did:web:portal.example.org:billing`. */
|
|
19
|
+
Recipient: 'Invoice.recipient',
|
|
20
|
+
/** Invoice issuer reference. Example: `did:web:api.acme.org`. */
|
|
21
|
+
Issuer: 'Invoice.issuer',
|
|
22
|
+
/** Human-readable issuer label. Example: `Gateway Host Services`. */
|
|
23
|
+
IssuerDisplay: 'Invoice.issuer-display',
|
|
24
|
+
/** Commercial payment method/terms. Example: `invoice`. */
|
|
25
|
+
PaymentTerms: 'Invoice.payment-terms',
|
|
26
|
+
/** Payment or settlement URL when available. Example: `https://pay.example/invoice-001`. */
|
|
27
|
+
PaymentUrl: 'Invoice.payment-url',
|
|
28
|
+
/** Net amount numeric value serialized as string. Example: `9.99`. */
|
|
29
|
+
TotalNetValue: 'Invoice.totalnet-value',
|
|
30
|
+
/** Net amount ISO currency. Example: `EUR`. */
|
|
31
|
+
TotalNetCurrency: 'Invoice.totalnet-currency',
|
|
32
|
+
/** Gross amount numeric value serialized as string. Example: `9.99`. */
|
|
33
|
+
TotalGrossValue: 'Invoice.totalgross-value',
|
|
34
|
+
/** Gross amount ISO currency. Example: `EUR`. */
|
|
35
|
+
TotalGrossCurrency: 'Invoice.totalgross-currency',
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Contextualized FHIR-API-like invoice claims.
|
|
39
|
+
*
|
|
40
|
+
* Convention:
|
|
41
|
+
* - `org.hl7.fhir.api.Invoice.<concrete-parameter>`
|
|
42
|
+
* - scalar/string-friendly values only
|
|
43
|
+
* - invoice totals/payment URL remain extension-style operational claims
|
|
44
|
+
* because not every business field maps to one native FHIR search parameter
|
|
45
|
+
*/
|
|
46
|
+
export var InvoiceClaimsFhirApiExtended;
|
|
47
|
+
(function (InvoiceClaimsFhirApiExtended) {
|
|
48
|
+
InvoiceClaimsFhirApiExtended["Identifier"] = "org.hl7.fhir.api.Invoice.identifier";
|
|
49
|
+
InvoiceClaimsFhirApiExtended["Date"] = "org.hl7.fhir.api.Invoice.date";
|
|
50
|
+
InvoiceClaimsFhirApiExtended["Status"] = "org.hl7.fhir.api.Invoice.status";
|
|
51
|
+
InvoiceClaimsFhirApiExtended["Subject"] = "org.hl7.fhir.api.Invoice.subject";
|
|
52
|
+
InvoiceClaimsFhirApiExtended["Recipient"] = "org.hl7.fhir.api.Invoice.recipient";
|
|
53
|
+
InvoiceClaimsFhirApiExtended["Issuer"] = "org.hl7.fhir.api.Invoice.issuer";
|
|
54
|
+
InvoiceClaimsFhirApiExtended["IssuerDisplay"] = "org.hl7.fhir.api.Invoice.issuer-display";
|
|
55
|
+
InvoiceClaimsFhirApiExtended["PaymentTerms"] = "org.hl7.fhir.api.Invoice.payment-terms";
|
|
56
|
+
InvoiceClaimsFhirApiExtended["PaymentUrl"] = "org.hl7.fhir.api.Invoice.payment-url";
|
|
57
|
+
InvoiceClaimsFhirApiExtended["TotalNetValue"] = "org.hl7.fhir.api.Invoice.totalnet-value";
|
|
58
|
+
InvoiceClaimsFhirApiExtended["TotalNetCurrency"] = "org.hl7.fhir.api.Invoice.totalnet-currency";
|
|
59
|
+
InvoiceClaimsFhirApiExtended["TotalGrossValue"] = "org.hl7.fhir.api.Invoice.totalgross-value";
|
|
60
|
+
InvoiceClaimsFhirApiExtended["TotalGrossCurrency"] = "org.hl7.fhir.api.Invoice.totalgross-currency";
|
|
61
|
+
})(InvoiceClaimsFhirApiExtended || (InvoiceClaimsFhirApiExtended = {}));
|
|
62
|
+
/**
|
|
63
|
+
* Canonical non-contextualized parameter names for query builders and readers.
|
|
64
|
+
*/
|
|
65
|
+
export const InvoiceSearchParamNames = {
|
|
66
|
+
Identifier: 'identifier',
|
|
67
|
+
Date: 'date',
|
|
68
|
+
Status: 'status',
|
|
69
|
+
Subject: 'subject',
|
|
70
|
+
Recipient: 'recipient',
|
|
71
|
+
Issuer: 'issuer',
|
|
72
|
+
IssuerDisplay: 'issuer-display',
|
|
73
|
+
PaymentTerms: 'payment-terms',
|
|
74
|
+
PaymentUrl: 'payment-url',
|
|
75
|
+
TotalNetValue: 'totalnet-value',
|
|
76
|
+
TotalNetCurrency: 'totalnet-currency',
|
|
77
|
+
TotalGrossValue: 'totalgross-value',
|
|
78
|
+
TotalGrossCurrency: 'totalgross-currency',
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Charge-item-level claims used when one business invoice line is represented
|
|
82
|
+
* as one claims row. The future FHIR export can compact multiple rows sharing
|
|
83
|
+
* one invoice identifier into a single `Invoice` with multiple items.
|
|
84
|
+
*
|
|
85
|
+
* Note:
|
|
86
|
+
* - FHIR `Invoice` does not expose all these details as search parameters.
|
|
87
|
+
* - `ChargeItem` is therefore modeled here as claims-first operational data.
|
|
88
|
+
*/
|
|
89
|
+
export const ChargeItemClaim = {
|
|
90
|
+
/** Stable invoice line identifier. Example: `chargeitem-001`. */
|
|
91
|
+
Identifier: 'ChargeItem.identifier',
|
|
92
|
+
/** Charge item lifecycle status from FHIR ChargeItemStatus. Example: `billable`. */
|
|
93
|
+
Status: 'ChargeItem.status',
|
|
94
|
+
/** Parent business aggregate identifier. Example: `invoice-001`. */
|
|
95
|
+
PartOf: 'ChargeItem.part-of',
|
|
96
|
+
/** Public code such as GTIN/UDI/barcode. Example: `08412345678903`. */
|
|
97
|
+
Code: 'ChargeItem.code',
|
|
98
|
+
/** Local-language UI/help label for the coded product. Example: `Sterile saline bottle 500 mL`. */
|
|
99
|
+
CodeText: 'ChargeItem.code-text',
|
|
100
|
+
/** Normalized aggregate reporting category. Example: `medical-supplies`. */
|
|
101
|
+
Category: 'ChargeItem.category',
|
|
102
|
+
/** Supplier or import product code. Example: `IMP-SAL-500`. */
|
|
103
|
+
SupplierProductCode: 'ChargeItem.supplier-productcode',
|
|
104
|
+
/** Compact FHIR-style quantity token for search/readback. Example: `3|bottle`. */
|
|
105
|
+
Quantity: 'ChargeItem.quantity',
|
|
106
|
+
/** Main quantity numeric scalar serialized as string. Example: `3`. */
|
|
107
|
+
QuantityNumber: 'ChargeItem.quantity-number',
|
|
108
|
+
/** Main quantity unit code or label. Example: `bottle`. */
|
|
109
|
+
QuantityUnit: 'ChargeItem.quantity-unit',
|
|
110
|
+
/** Contained items per main unit. Example: `24`. */
|
|
111
|
+
ItemsPerUnit: 'ChargeItem.items-per-unit',
|
|
112
|
+
/** Compact contained-item quantity token for search/readback. Example: `500|mL`. */
|
|
113
|
+
ItemsQuantity: 'ChargeItem.items-quantity',
|
|
114
|
+
/** Contained item numeric quantity serialized as string. Example: `500`. */
|
|
115
|
+
ItemsQuantityNumber: 'ChargeItem.items-quantity-number',
|
|
116
|
+
/** Contained item UCUM-like unit. Example: `mL`. */
|
|
117
|
+
ItemsQuantityUnit: 'ChargeItem.items-quantity-unit',
|
|
118
|
+
};
|
|
119
|
+
export var ChargeItemClaimsFhirApiExtended;
|
|
120
|
+
(function (ChargeItemClaimsFhirApiExtended) {
|
|
121
|
+
ChargeItemClaimsFhirApiExtended["Identifier"] = "org.hl7.fhir.api.ChargeItem.identifier";
|
|
122
|
+
ChargeItemClaimsFhirApiExtended["Status"] = "org.hl7.fhir.api.ChargeItem.status";
|
|
123
|
+
ChargeItemClaimsFhirApiExtended["PartOf"] = "org.hl7.fhir.api.ChargeItem.part-of";
|
|
124
|
+
ChargeItemClaimsFhirApiExtended["Code"] = "org.hl7.fhir.api.ChargeItem.code";
|
|
125
|
+
ChargeItemClaimsFhirApiExtended["CodeText"] = "org.hl7.fhir.api.ChargeItem.code-text";
|
|
126
|
+
ChargeItemClaimsFhirApiExtended["Category"] = "org.hl7.fhir.api.ChargeItem.category";
|
|
127
|
+
ChargeItemClaimsFhirApiExtended["SupplierProductCode"] = "org.hl7.fhir.api.ChargeItem.supplier-productcode";
|
|
128
|
+
ChargeItemClaimsFhirApiExtended["Quantity"] = "org.hl7.fhir.api.ChargeItem.quantity";
|
|
129
|
+
ChargeItemClaimsFhirApiExtended["QuantityNumber"] = "org.hl7.fhir.api.ChargeItem.quantity-number";
|
|
130
|
+
ChargeItemClaimsFhirApiExtended["QuantityUnit"] = "org.hl7.fhir.api.ChargeItem.quantity-unit";
|
|
131
|
+
ChargeItemClaimsFhirApiExtended["ItemsPerUnit"] = "org.hl7.fhir.api.ChargeItem.items-per-unit";
|
|
132
|
+
ChargeItemClaimsFhirApiExtended["ItemsQuantity"] = "org.hl7.fhir.api.ChargeItem.items-quantity";
|
|
133
|
+
ChargeItemClaimsFhirApiExtended["ItemsQuantityNumber"] = "org.hl7.fhir.api.ChargeItem.items-quantity-number";
|
|
134
|
+
ChargeItemClaimsFhirApiExtended["ItemsQuantityUnit"] = "org.hl7.fhir.api.ChargeItem.items-quantity-unit";
|
|
135
|
+
})(ChargeItemClaimsFhirApiExtended || (ChargeItemClaimsFhirApiExtended = {}));
|
|
136
|
+
export const ChargeItemSearchParamNames = {
|
|
137
|
+
Identifier: 'identifier',
|
|
138
|
+
Status: 'status',
|
|
139
|
+
PartOf: 'part-of',
|
|
140
|
+
Code: 'code',
|
|
141
|
+
CodeText: 'code-text',
|
|
142
|
+
Category: 'category',
|
|
143
|
+
SupplierProductCode: 'supplier-productcode',
|
|
144
|
+
Quantity: 'quantity',
|
|
145
|
+
QuantityNumber: 'quantity-number',
|
|
146
|
+
QuantityUnit: 'quantity-unit',
|
|
147
|
+
ItemsPerUnit: 'items-per-unit',
|
|
148
|
+
ItemsQuantity: 'items-quantity',
|
|
149
|
+
ItemsQuantityNumber: 'items-quantity-number',
|
|
150
|
+
ItemsQuantityUnit: 'items-quantity-unit',
|
|
151
|
+
};
|
|
152
|
+
export const InvoiceClaimSpecs = [
|
|
153
|
+
{ key: InvoiceClaim.Identifier, meaning: 'Stable business invoice identifier.', example: 'invoice-001' },
|
|
154
|
+
{ key: InvoiceClaim.Date, meaning: 'Invoice issue date/time.', example: '2026-06-11T10:00:00Z' },
|
|
155
|
+
{ key: InvoiceClaim.Status, meaning: 'Invoice lifecycle status.', example: 'issued' },
|
|
156
|
+
{
|
|
157
|
+
key: InvoiceClaim.Subject,
|
|
158
|
+
meaning: 'Subject or tenant context reference.',
|
|
159
|
+
example: 'did:web:host.example.com:health-care:organization:taxid:VATES-B00112233:individual:multibase:zExampleIndividualId',
|
|
160
|
+
},
|
|
161
|
+
{ key: InvoiceClaim.Recipient, meaning: 'Billed recipient reference.', example: 'did:web:portal.example.org:billing' },
|
|
162
|
+
{ key: InvoiceClaim.Issuer, meaning: 'Invoice issuer reference.', example: 'did:web:api.acme.org' },
|
|
163
|
+
{ key: InvoiceClaim.IssuerDisplay, meaning: 'Human-readable issuer label.', example: 'Gateway Host Services' },
|
|
164
|
+
{ key: InvoiceClaim.PaymentTerms, meaning: 'Commercial payment method/terms.', example: 'invoice' },
|
|
165
|
+
{ key: InvoiceClaim.PaymentUrl, meaning: 'Payment or settlement URL when available.', example: 'https://pay.example/invoice-001' },
|
|
166
|
+
{ key: InvoiceClaim.TotalNetValue, meaning: 'Net amount numeric value serialized as string.', example: '9.99' },
|
|
167
|
+
{ key: InvoiceClaim.TotalNetCurrency, meaning: 'Net amount ISO currency.', example: 'EUR' },
|
|
168
|
+
{ key: InvoiceClaim.TotalGrossValue, meaning: 'Gross amount numeric value serialized as string.', example: '9.99' },
|
|
169
|
+
{ key: InvoiceClaim.TotalGrossCurrency, meaning: 'Gross amount ISO currency.', example: 'EUR' },
|
|
170
|
+
];
|
|
171
|
+
export const ChargeItemClaimSpecs = [
|
|
172
|
+
{ key: ChargeItemClaim.Identifier, meaning: 'Stable invoice line identifier.', example: 'chargeitem-001' },
|
|
173
|
+
{ key: ChargeItemClaim.Status, meaning: 'Charge item lifecycle status from FHIR ChargeItemStatus.', example: 'billable' },
|
|
174
|
+
{ key: ChargeItemClaim.PartOf, meaning: 'Parent business aggregate identifier.', example: 'invoice-001' },
|
|
175
|
+
{ key: ChargeItemClaim.Code, meaning: 'Public code such as GTIN/UDI/barcode.', example: '08412345678903' },
|
|
176
|
+
{ key: ChargeItemClaim.CodeText, meaning: 'Local-language UI/help label for the coded product.', example: 'Botella de suero salino estéril 500 mL' },
|
|
177
|
+
{ key: ChargeItemClaim.Category, meaning: 'Normalized aggregate reporting category.', example: 'medical-supplies' },
|
|
178
|
+
{ key: ChargeItemClaim.SupplierProductCode, meaning: 'Supplier or import product code.', example: 'IMP-SAL-500' },
|
|
179
|
+
{ key: ChargeItemClaim.Quantity, meaning: 'Compact FHIR-style quantity token for search/readback.', example: '3|bottle' },
|
|
180
|
+
{ key: ChargeItemClaim.QuantityNumber, meaning: 'Main quantity numeric scalar serialized as string.', example: '3' },
|
|
181
|
+
{ key: ChargeItemClaim.QuantityUnit, meaning: 'Main quantity unit code or label.', example: 'bottle' },
|
|
182
|
+
{ key: ChargeItemClaim.ItemsPerUnit, meaning: 'Contained items per main unit.', example: '24' },
|
|
183
|
+
{ key: ChargeItemClaim.ItemsQuantity, meaning: 'Compact contained-item quantity token for search/readback.', example: '500|mL' },
|
|
184
|
+
{ key: ChargeItemClaim.ItemsQuantityNumber, meaning: 'Contained item numeric quantity serialized as string.', example: '500' },
|
|
185
|
+
{ key: ChargeItemClaim.ItemsQuantityUnit, meaning: 'Contained item UCUM-like unit.', example: 'mL' },
|
|
186
|
+
];
|
|
187
|
+
export const InvoiceClaimToFhirPath = {
|
|
188
|
+
[InvoiceClaim.Identifier]: 'Invoice.identifier.value',
|
|
189
|
+
[InvoiceClaim.Date]: 'Invoice.date',
|
|
190
|
+
[InvoiceClaim.Status]: 'Invoice.status',
|
|
191
|
+
[InvoiceClaim.Subject]: 'Invoice.subject.reference',
|
|
192
|
+
[InvoiceClaim.Recipient]: 'Invoice.recipient.reference',
|
|
193
|
+
[InvoiceClaim.Issuer]: 'Invoice.issuer.reference',
|
|
194
|
+
[InvoiceClaim.IssuerDisplay]: 'Invoice.issuer.display',
|
|
195
|
+
[InvoiceClaim.PaymentTerms]: 'Invoice.paymentTerms',
|
|
196
|
+
[InvoiceClaim.PaymentUrl]: 'Invoice.note.text',
|
|
197
|
+
[InvoiceClaim.TotalNetValue]: 'Invoice.totalNet.value',
|
|
198
|
+
[InvoiceClaim.TotalNetCurrency]: 'Invoice.totalNet.currency',
|
|
199
|
+
[InvoiceClaim.TotalGrossValue]: 'Invoice.totalGross.value',
|
|
200
|
+
[InvoiceClaim.TotalGrossCurrency]: 'Invoice.totalGross.currency',
|
|
201
|
+
};
|
|
202
|
+
export function contextualizeInvoiceClaims(claims) {
|
|
203
|
+
return {
|
|
204
|
+
...(claims[InvoiceClaim.Identifier] ? { [InvoiceClaimsFhirApiExtended.Identifier]: claims[InvoiceClaim.Identifier] } : {}),
|
|
205
|
+
...(claims[InvoiceClaim.Date] ? { [InvoiceClaimsFhirApiExtended.Date]: claims[InvoiceClaim.Date] } : {}),
|
|
206
|
+
...(claims[InvoiceClaim.Status] ? { [InvoiceClaimsFhirApiExtended.Status]: claims[InvoiceClaim.Status] } : {}),
|
|
207
|
+
...(claims[InvoiceClaim.Subject] ? { [InvoiceClaimsFhirApiExtended.Subject]: claims[InvoiceClaim.Subject] } : {}),
|
|
208
|
+
...(claims[InvoiceClaim.Recipient] ? { [InvoiceClaimsFhirApiExtended.Recipient]: claims[InvoiceClaim.Recipient] } : {}),
|
|
209
|
+
...(claims[InvoiceClaim.Issuer] ? { [InvoiceClaimsFhirApiExtended.Issuer]: claims[InvoiceClaim.Issuer] } : {}),
|
|
210
|
+
...(claims[InvoiceClaim.IssuerDisplay] ? { [InvoiceClaimsFhirApiExtended.IssuerDisplay]: claims[InvoiceClaim.IssuerDisplay] } : {}),
|
|
211
|
+
...(claims[InvoiceClaim.PaymentTerms] ? { [InvoiceClaimsFhirApiExtended.PaymentTerms]: claims[InvoiceClaim.PaymentTerms] } : {}),
|
|
212
|
+
...(claims[InvoiceClaim.PaymentUrl] ? { [InvoiceClaimsFhirApiExtended.PaymentUrl]: claims[InvoiceClaim.PaymentUrl] } : {}),
|
|
213
|
+
...(claims[InvoiceClaim.TotalNetValue] ? { [InvoiceClaimsFhirApiExtended.TotalNetValue]: claims[InvoiceClaim.TotalNetValue] } : {}),
|
|
214
|
+
...(claims[InvoiceClaim.TotalNetCurrency] ? { [InvoiceClaimsFhirApiExtended.TotalNetCurrency]: claims[InvoiceClaim.TotalNetCurrency] } : {}),
|
|
215
|
+
...(claims[InvoiceClaim.TotalGrossValue] ? { [InvoiceClaimsFhirApiExtended.TotalGrossValue]: claims[InvoiceClaim.TotalGrossValue] } : {}),
|
|
216
|
+
...(claims[InvoiceClaim.TotalGrossCurrency] ? { [InvoiceClaimsFhirApiExtended.TotalGrossCurrency]: claims[InvoiceClaim.TotalGrossCurrency] } : {}),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
export function contextualizeChargeItemClaims(claims) {
|
|
220
|
+
return {
|
|
221
|
+
...(claims[ChargeItemClaim.Identifier] ? { [ChargeItemClaimsFhirApiExtended.Identifier]: claims[ChargeItemClaim.Identifier] } : {}),
|
|
222
|
+
...(claims[ChargeItemClaim.Status] ? { [ChargeItemClaimsFhirApiExtended.Status]: claims[ChargeItemClaim.Status] } : {}),
|
|
223
|
+
...(claims[ChargeItemClaim.PartOf] ? { [ChargeItemClaimsFhirApiExtended.PartOf]: claims[ChargeItemClaim.PartOf] } : {}),
|
|
224
|
+
...(claims[ChargeItemClaim.Code] ? { [ChargeItemClaimsFhirApiExtended.Code]: claims[ChargeItemClaim.Code] } : {}),
|
|
225
|
+
...(claims[ChargeItemClaim.CodeText] ? { [ChargeItemClaimsFhirApiExtended.CodeText]: claims[ChargeItemClaim.CodeText] } : {}),
|
|
226
|
+
...(claims[ChargeItemClaim.Category] ? { [ChargeItemClaimsFhirApiExtended.Category]: claims[ChargeItemClaim.Category] } : {}),
|
|
227
|
+
...(claims[ChargeItemClaim.SupplierProductCode] ? { [ChargeItemClaimsFhirApiExtended.SupplierProductCode]: claims[ChargeItemClaim.SupplierProductCode] } : {}),
|
|
228
|
+
...(claims[ChargeItemClaim.Quantity] ? { [ChargeItemClaimsFhirApiExtended.Quantity]: claims[ChargeItemClaim.Quantity] } : {}),
|
|
229
|
+
...(claims[ChargeItemClaim.QuantityNumber] ? { [ChargeItemClaimsFhirApiExtended.QuantityNumber]: claims[ChargeItemClaim.QuantityNumber] } : {}),
|
|
230
|
+
...(claims[ChargeItemClaim.QuantityUnit] ? { [ChargeItemClaimsFhirApiExtended.QuantityUnit]: claims[ChargeItemClaim.QuantityUnit] } : {}),
|
|
231
|
+
...(claims[ChargeItemClaim.ItemsPerUnit] ? { [ChargeItemClaimsFhirApiExtended.ItemsPerUnit]: claims[ChargeItemClaim.ItemsPerUnit] } : {}),
|
|
232
|
+
...(claims[ChargeItemClaim.ItemsQuantity] ? { [ChargeItemClaimsFhirApiExtended.ItemsQuantity]: claims[ChargeItemClaim.ItemsQuantity] } : {}),
|
|
233
|
+
...(claims[ChargeItemClaim.ItemsQuantityNumber] ? { [ChargeItemClaimsFhirApiExtended.ItemsQuantityNumber]: claims[ChargeItemClaim.ItemsQuantityNumber] } : {}),
|
|
234
|
+
...(claims[ChargeItemClaim.ItemsQuantityUnit] ? { [ChargeItemClaimsFhirApiExtended.ItemsQuantityUnit]: claims[ChargeItemClaim.ItemsQuantityUnit] } : {}),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Generic low-level invoice claim accessor.
|
|
239
|
+
*
|
|
240
|
+
* Prefer the explicit `getInvoice*` helpers below from application code when
|
|
241
|
+
* you want stronger autocomplete and clearer intent at the call site.
|
|
242
|
+
*/
|
|
243
|
+
export function getInvoiceClaim(claims, key) {
|
|
244
|
+
return claims?.[key];
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Generic low-level charge item claim accessor.
|
|
248
|
+
*
|
|
249
|
+
* Prefer the explicit `getCode()`, `getCodeText()`, `getQuantityNumber()`,
|
|
250
|
+
* etc. helpers below from application code when you want stronger
|
|
251
|
+
* autocomplete and clearer intent at the call site.
|
|
252
|
+
*/
|
|
253
|
+
export function getChargeItemClaim(claims, key) {
|
|
254
|
+
return claims?.[key];
|
|
255
|
+
}
|
|
256
|
+
export function getInvoiceIdentifier(claims) {
|
|
257
|
+
return getInvoiceClaim(claims, InvoiceClaim.Identifier);
|
|
258
|
+
}
|
|
259
|
+
export function getInvoiceDate(claims) {
|
|
260
|
+
return getInvoiceClaim(claims, InvoiceClaim.Date);
|
|
261
|
+
}
|
|
262
|
+
export function getInvoiceStatus(claims) {
|
|
263
|
+
return getInvoiceClaim(claims, InvoiceClaim.Status);
|
|
264
|
+
}
|
|
265
|
+
export function getInvoiceSubject(claims) {
|
|
266
|
+
return getInvoiceClaim(claims, InvoiceClaim.Subject);
|
|
267
|
+
}
|
|
268
|
+
export function getInvoiceRecipient(claims) {
|
|
269
|
+
return getInvoiceClaim(claims, InvoiceClaim.Recipient);
|
|
270
|
+
}
|
|
271
|
+
export function getInvoiceIssuer(claims) {
|
|
272
|
+
return getInvoiceClaim(claims, InvoiceClaim.Issuer);
|
|
273
|
+
}
|
|
274
|
+
export function getInvoiceIssuerDisplay(claims) {
|
|
275
|
+
return getInvoiceClaim(claims, InvoiceClaim.IssuerDisplay);
|
|
276
|
+
}
|
|
277
|
+
export function getInvoicePaymentTerms(claims) {
|
|
278
|
+
return getInvoiceClaim(claims, InvoiceClaim.PaymentTerms);
|
|
279
|
+
}
|
|
280
|
+
export function getInvoicePaymentUrl(claims) {
|
|
281
|
+
return getInvoiceClaim(claims, InvoiceClaim.PaymentUrl);
|
|
282
|
+
}
|
|
283
|
+
export function getInvoiceTotalNetValue(claims) {
|
|
284
|
+
return getInvoiceClaim(claims, InvoiceClaim.TotalNetValue);
|
|
285
|
+
}
|
|
286
|
+
export function getInvoiceTotalNetCurrency(claims) {
|
|
287
|
+
return getInvoiceClaim(claims, InvoiceClaim.TotalNetCurrency);
|
|
288
|
+
}
|
|
289
|
+
export function getInvoiceTotalGrossValue(claims) {
|
|
290
|
+
return getInvoiceClaim(claims, InvoiceClaim.TotalGrossValue);
|
|
291
|
+
}
|
|
292
|
+
export function getInvoiceTotalGrossCurrency(claims) {
|
|
293
|
+
return getInvoiceClaim(claims, InvoiceClaim.TotalGrossCurrency);
|
|
294
|
+
}
|
|
295
|
+
export function getChargeItemIdentifier(claims) {
|
|
296
|
+
return getChargeItemClaim(claims, ChargeItemClaim.Identifier);
|
|
297
|
+
}
|
|
298
|
+
export function getChargeItemStatus(claims) {
|
|
299
|
+
return getChargeItemClaim(claims, ChargeItemClaim.Status);
|
|
300
|
+
}
|
|
301
|
+
export function getChargeItemPartOf(claims) {
|
|
302
|
+
return getChargeItemClaim(claims, ChargeItemClaim.PartOf);
|
|
303
|
+
}
|
|
304
|
+
export function getCode(claims) {
|
|
305
|
+
return getChargeItemClaim(claims, ChargeItemClaim.Code);
|
|
306
|
+
}
|
|
307
|
+
export function getCodeText(claims) {
|
|
308
|
+
return getChargeItemClaim(claims, ChargeItemClaim.CodeText);
|
|
309
|
+
}
|
|
310
|
+
export function getCategory(claims) {
|
|
311
|
+
return getChargeItemClaim(claims, ChargeItemClaim.Category);
|
|
312
|
+
}
|
|
313
|
+
export function getSupplierProductCode(claims) {
|
|
314
|
+
return getChargeItemClaim(claims, ChargeItemClaim.SupplierProductCode);
|
|
315
|
+
}
|
|
316
|
+
export function getQuantity(claims) {
|
|
317
|
+
return getChargeItemClaim(claims, ChargeItemClaim.Quantity);
|
|
318
|
+
}
|
|
319
|
+
export function getQuantityNumber(claims) {
|
|
320
|
+
return getChargeItemClaim(claims, ChargeItemClaim.QuantityNumber);
|
|
321
|
+
}
|
|
322
|
+
export function getQuantityUnit(claims) {
|
|
323
|
+
return getChargeItemClaim(claims, ChargeItemClaim.QuantityUnit);
|
|
324
|
+
}
|
|
325
|
+
export function getItemsPerUnit(claims) {
|
|
326
|
+
return getChargeItemClaim(claims, ChargeItemClaim.ItemsPerUnit);
|
|
327
|
+
}
|
|
328
|
+
export function getItemsQuantity(claims) {
|
|
329
|
+
return getChargeItemClaim(claims, ChargeItemClaim.ItemsQuantity);
|
|
330
|
+
}
|
|
331
|
+
export function getItemsQuantityNumber(claims) {
|
|
332
|
+
return getChargeItemClaim(claims, ChargeItemClaim.ItemsQuantityNumber);
|
|
333
|
+
}
|
|
334
|
+
export function getItemsQuantityUnit(claims) {
|
|
335
|
+
return getChargeItemClaim(claims, ChargeItemClaim.ItemsQuantityUnit);
|
|
336
|
+
}
|
|
337
|
+
export function getChargeItemView(claims) {
|
|
338
|
+
return {
|
|
339
|
+
identifier: getChargeItemIdentifier(claims),
|
|
340
|
+
status: getChargeItemStatus(claims),
|
|
341
|
+
partOf: getChargeItemPartOf(claims),
|
|
342
|
+
code: getCode(claims),
|
|
343
|
+
codeText: getCodeText(claims),
|
|
344
|
+
category: getCategory(claims),
|
|
345
|
+
supplierProductCode: getSupplierProductCode(claims),
|
|
346
|
+
quantity: getQuantity(claims),
|
|
347
|
+
quantityNumber: getQuantityNumber(claims),
|
|
348
|
+
quantityUnit: getQuantityUnit(claims),
|
|
349
|
+
itemsPerUnit: getItemsPerUnit(claims),
|
|
350
|
+
itemsQuantity: getItemsQuantity(claims),
|
|
351
|
+
itemsQuantityNumber: getItemsQuantityNumber(claims),
|
|
352
|
+
itemsQuantityUnit: getItemsQuantityUnit(claims),
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
export function getChargeItemList(rows) {
|
|
356
|
+
return Array.isArray(rows) ? rows.map((row) => getChargeItemView(row)) : [];
|
|
357
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ClaimSpec } from './claim-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Flat claim keys for `Location`.
|
|
4
|
+
*
|
|
5
|
+
* Use this resource for offices, consultation rooms, clinics, labs, or other
|
|
6
|
+
* service/physical locations.
|
|
7
|
+
*/
|
|
8
|
+
export declare const LocationClaim: {
|
|
9
|
+
readonly Identifier: "Location.identifier";
|
|
10
|
+
readonly Status: "Location.status";
|
|
11
|
+
readonly Name: "Location.name";
|
|
12
|
+
readonly Description: "Location.description";
|
|
13
|
+
readonly Type: "Location.type";
|
|
14
|
+
readonly Mode: "Location.mode";
|
|
15
|
+
readonly Telecom: "Location.telecom";
|
|
16
|
+
readonly Address: "Location.address";
|
|
17
|
+
readonly PhysicalType: "Location.physical-type";
|
|
18
|
+
readonly ManagingOrganization: "Location.managing-organization";
|
|
19
|
+
readonly PartOf: "Location.part-of";
|
|
20
|
+
};
|
|
21
|
+
export type LocationClaimKey = typeof LocationClaim[keyof typeof LocationClaim];
|
|
22
|
+
export declare const LocationClaimSpecs: ClaimSpec[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
|
|
2
|
+
// File: src/models/interoperable-claims/location-claims.ts
|
|
3
|
+
/**
|
|
4
|
+
* Flat claim keys for `Location`.
|
|
5
|
+
*
|
|
6
|
+
* Use this resource for offices, consultation rooms, clinics, labs, or other
|
|
7
|
+
* service/physical locations.
|
|
8
|
+
*/
|
|
9
|
+
export const LocationClaim = {
|
|
10
|
+
Identifier: 'Location.identifier',
|
|
11
|
+
Status: 'Location.status',
|
|
12
|
+
Name: 'Location.name',
|
|
13
|
+
Description: 'Location.description',
|
|
14
|
+
Type: 'Location.type',
|
|
15
|
+
Mode: 'Location.mode',
|
|
16
|
+
Telecom: 'Location.telecom',
|
|
17
|
+
Address: 'Location.address',
|
|
18
|
+
PhysicalType: 'Location.physical-type',
|
|
19
|
+
ManagingOrganization: 'Location.managing-organization',
|
|
20
|
+
PartOf: 'Location.part-of',
|
|
21
|
+
};
|
|
22
|
+
export const LocationClaimSpecs = [
|
|
23
|
+
{ key: LocationClaim.Identifier, meaning: 'Business identifier.', example: 'room-201' },
|
|
24
|
+
{ key: LocationClaim.Status, meaning: 'Location status.', example: 'active' },
|
|
25
|
+
{ key: LocationClaim.Name, meaning: 'Display name.', example: 'Consultation Room 201' },
|
|
26
|
+
{ key: LocationClaim.Description, meaning: 'Narrative description.', example: 'Second floor consultation room' },
|
|
27
|
+
{ key: LocationClaim.Type, meaning: 'Location type token.', example: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode|OF' },
|
|
28
|
+
{ key: LocationClaim.Mode, meaning: 'Location mode.', example: 'instance' },
|
|
29
|
+
{ key: LocationClaim.Telecom, meaning: 'Contact values as CSV.', example: 'tel:+16045550102' },
|
|
30
|
+
{ key: LocationClaim.Address, meaning: 'Display address.', example: '123 Main St, Vancouver' },
|
|
31
|
+
{ key: LocationClaim.PhysicalType, meaning: 'Physical type token.', example: 'http://terminology.hl7.org/CodeSystem/location-physical-type|ro' },
|
|
32
|
+
{ key: LocationClaim.ManagingOrganization, meaning: 'Managing organization reference.', example: 'Organization/dept-cardiology-001' },
|
|
33
|
+
{ key: LocationClaim.PartOf, meaning: 'Parent location reference.', example: 'Location/building-a' },
|
|
34
|
+
];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ClaimSpec } from './claim-types.js';
|
|
2
|
+
/** Canonical flat claims used by a FHIR Medication graph entry. */
|
|
3
|
+
export declare const MedicationClaim: Readonly<{
|
|
4
|
+
readonly Identifier: "Medication.identifier";
|
|
5
|
+
readonly Code: "Medication.code";
|
|
6
|
+
readonly CodeText: "Medication.code-text";
|
|
7
|
+
readonly CodeDisplay: "Medication.code-display";
|
|
8
|
+
readonly Manufacturer: "Medication.manufacturer";
|
|
9
|
+
readonly Form: "Medication.form";
|
|
10
|
+
readonly LotNumber: "Medication.lot-number";
|
|
11
|
+
readonly ExpirationDate: "Medication.expiration-date";
|
|
12
|
+
readonly SerialNumber: "Medication.serial-number";
|
|
13
|
+
}>;
|
|
14
|
+
export type MedicationClaimKey = typeof MedicationClaim[keyof typeof MedicationClaim];
|
|
15
|
+
export declare const MedicationClaimSpecs: readonly ClaimSpec[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Canonical flat claims used by a FHIR Medication graph entry. */
|
|
2
|
+
export const MedicationClaim = Object.freeze({
|
|
3
|
+
Identifier: 'Medication.identifier',
|
|
4
|
+
Code: 'Medication.code',
|
|
5
|
+
CodeText: 'Medication.code-text',
|
|
6
|
+
CodeDisplay: 'Medication.code-display',
|
|
7
|
+
Manufacturer: 'Medication.manufacturer',
|
|
8
|
+
Form: 'Medication.form',
|
|
9
|
+
LotNumber: 'Medication.lot-number',
|
|
10
|
+
ExpirationDate: 'Medication.expiration-date',
|
|
11
|
+
SerialNumber: 'Medication.serial-number',
|
|
12
|
+
});
|
|
13
|
+
export const MedicationClaimSpecs = Object.freeze([
|
|
14
|
+
{ key: MedicationClaim.Identifier, meaning: 'Medication business identifier.', example: 'urn:uuid:medication-1' },
|
|
15
|
+
{ key: MedicationClaim.Code, meaning: 'Medication coding token.', example: 'http://www.whocc.no/atc|J07BB02' },
|
|
16
|
+
{ key: MedicationClaim.CodeText, meaning: 'Source-language medication label.', example: 'Vacuna antigripal' },
|
|
17
|
+
{ key: MedicationClaim.CodeDisplay, meaning: 'Canonical terminology display.', example: 'Influenza vaccine' },
|
|
18
|
+
{ key: MedicationClaim.Manufacturer, meaning: 'Manufacturer reference or governed identifier.', example: 'Organization/manufacturer-1' },
|
|
19
|
+
{ key: MedicationClaim.Form, meaning: 'Medication dose-form coding token.', example: 'http://snomed.info/sct|385219001' },
|
|
20
|
+
{ key: MedicationClaim.LotNumber, meaning: 'Manufacturer lot number.', example: 'LOT-1' },
|
|
21
|
+
{ key: MedicationClaim.ExpirationDate, meaning: 'Batch expiration date.', example: '2027-09-21' },
|
|
22
|
+
{ key: MedicationClaim.SerialNumber, meaning: 'Package serial or barcode.', example: '0123456789012' },
|
|
23
|
+
]);
|