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,44 @@
|
|
|
1
|
+
// Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
|
|
2
|
+
// File: src/models/interoperable-claims/procedure-claims.ts
|
|
3
|
+
export const ProcedureClaim = {
|
|
4
|
+
BasedOn: 'Procedure.based-on',
|
|
5
|
+
BodySite: 'Procedure.body-site',
|
|
6
|
+
Code: 'Procedure.code',
|
|
7
|
+
CodeText: 'Procedure.code-text',
|
|
8
|
+
CodeDisplay: 'Procedure.code-display',
|
|
9
|
+
Date: 'Procedure.date',
|
|
10
|
+
Encounter: 'Procedure.encounter',
|
|
11
|
+
Identifier: 'Procedure.identifier',
|
|
12
|
+
InstantiatesCanonical: 'Procedure.instantiates-canonical',
|
|
13
|
+
InstantiatesUri: 'Procedure.instantiates-uri',
|
|
14
|
+
Location: 'Procedure.location',
|
|
15
|
+
PartOf: 'Procedure.part-of',
|
|
16
|
+
Patient: 'Procedure.patient',
|
|
17
|
+
Performer: 'Procedure.performer',
|
|
18
|
+
ReasonCode: 'Procedure.reason-code',
|
|
19
|
+
ReasonReference: 'Procedure.reason-reference',
|
|
20
|
+
Status: 'Procedure.status',
|
|
21
|
+
Subject: 'Procedure.subject',
|
|
22
|
+
Note: 'Procedure.note',
|
|
23
|
+
};
|
|
24
|
+
export const ProcedureClaimSpecs = [
|
|
25
|
+
{ key: ProcedureClaim.BasedOn, meaning: 'Request or order reference.', example: 'ServiceRequest/sr-1' },
|
|
26
|
+
{ key: ProcedureClaim.BodySite, meaning: 'Body site token.', example: 'http://snomed.info/sct|66754008' },
|
|
27
|
+
{ key: ProcedureClaim.Code, meaning: 'Procedure code token.', example: 'http://snomed.info/sct|80146002' },
|
|
28
|
+
{ key: ProcedureClaim.CodeText, meaning: 'Local-language procedure label used by forms/UI.', example: 'Apendicectomia' },
|
|
29
|
+
{ key: ProcedureClaim.CodeDisplay, meaning: 'Canonical/international procedure display label.', example: 'Appendectomy' },
|
|
30
|
+
{ key: ProcedureClaim.Date, meaning: 'Performed date/time.', example: '2026-06-01T10:00:00Z' },
|
|
31
|
+
{ key: ProcedureClaim.Encounter, meaning: 'Encounter reference.', example: 'Encounter/enc-1' },
|
|
32
|
+
{ key: ProcedureClaim.Identifier, meaning: 'Business identifier.', example: 'procedure-001' },
|
|
33
|
+
{ key: ProcedureClaim.InstantiatesCanonical, meaning: 'Instantiated canonical plan/protocol.', example: 'http://example.org/PlanDefinition/appendectomy' },
|
|
34
|
+
{ key: ProcedureClaim.InstantiatesUri, meaning: 'Instantiated URI.', example: 'urn:procedure-protocol:appendectomy' },
|
|
35
|
+
{ key: ProcedureClaim.Location, meaning: 'Location reference.', example: 'Location/loc-1' },
|
|
36
|
+
{ key: ProcedureClaim.PartOf, meaning: 'Parent procedure reference.', example: 'Procedure/proc-parent' },
|
|
37
|
+
{ key: ProcedureClaim.Patient, meaning: 'Patient reference.', example: 'did:web:patient.example.org' },
|
|
38
|
+
{ key: ProcedureClaim.Performer, meaning: 'Performer references (CSV).', example: 'Practitioner/prac-1' },
|
|
39
|
+
{ key: ProcedureClaim.ReasonCode, meaning: 'Reason code token.', example: 'http://snomed.info/sct|233604007' },
|
|
40
|
+
{ key: ProcedureClaim.ReasonReference, meaning: 'Reason reference.', example: 'Condition/cond-1' },
|
|
41
|
+
{ key: ProcedureClaim.Status, meaning: 'Procedure status.', example: 'completed' },
|
|
42
|
+
{ key: ProcedureClaim.Subject, meaning: 'Canonical subject reference.', example: 'did:web:patient.example.org' },
|
|
43
|
+
{ key: ProcedureClaim.Note, meaning: 'Clinical note text.', example: 'Procedure tolerated well.' },
|
|
44
|
+
];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ClaimSpec } from './claim-types.js';
|
|
2
|
+
export declare const RelatedPersonClaim: {
|
|
3
|
+
/** Canonical FHIR API identifier search parameter. */
|
|
4
|
+
readonly Identifier: "RelatedPerson.identifier";
|
|
5
|
+
/** @deprecated Use `Identifier`; retained as a source-compatible property alias. */
|
|
6
|
+
readonly IdentifierValue: "RelatedPerson.identifier";
|
|
7
|
+
readonly Active: "RelatedPerson.active";
|
|
8
|
+
readonly Patient: "RelatedPerson.patient";
|
|
9
|
+
readonly Relationship: "RelatedPerson.relationship";
|
|
10
|
+
/**
|
|
11
|
+
* GDC flat-claim extension for comma-separated functional HL7 role codes.
|
|
12
|
+
* FHIR R4 RelatedPerson has no native `role` property; relationship/kinship
|
|
13
|
+
* remains in `RelatedPerson.relationship`.
|
|
14
|
+
*/
|
|
15
|
+
readonly Role: "RelatedPerson.role";
|
|
16
|
+
readonly Name: "RelatedPerson.name";
|
|
17
|
+
readonly Telecom: "RelatedPerson.telecom";
|
|
18
|
+
readonly Gender: "RelatedPerson.gender";
|
|
19
|
+
readonly BirthDate: "RelatedPerson.birthdate";
|
|
20
|
+
readonly Address: "RelatedPerson.address";
|
|
21
|
+
/** Logical kind used when a RelatedPerson record acts as a related entity. */
|
|
22
|
+
readonly RelatedEntityType: "RelatedPerson.related-entity-type";
|
|
23
|
+
/**
|
|
24
|
+
* Original public values used to calculate the Consent rule/asset id.
|
|
25
|
+
* These values must not be replaced by the opaque RelatedPerson resource id.
|
|
26
|
+
*/
|
|
27
|
+
readonly ActorIdentifier: "RelatedPerson.actor-identifier";
|
|
28
|
+
};
|
|
29
|
+
export type RelatedPersonClaimKey = typeof RelatedPersonClaim[keyof typeof RelatedPersonClaim];
|
|
30
|
+
export declare const RelatedPersonClaimSpecs: ClaimSpec[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
|
|
2
|
+
// File: src/models/interoperable-claims/related-person-claims.ts
|
|
3
|
+
export const RelatedPersonClaim = {
|
|
4
|
+
/** Canonical FHIR API identifier search parameter. */
|
|
5
|
+
Identifier: 'RelatedPerson.identifier',
|
|
6
|
+
/** @deprecated Use `Identifier`; retained as a source-compatible property alias. */
|
|
7
|
+
IdentifierValue: 'RelatedPerson.identifier',
|
|
8
|
+
Active: 'RelatedPerson.active',
|
|
9
|
+
Patient: 'RelatedPerson.patient',
|
|
10
|
+
Relationship: 'RelatedPerson.relationship',
|
|
11
|
+
/**
|
|
12
|
+
* GDC flat-claim extension for comma-separated functional HL7 role codes.
|
|
13
|
+
* FHIR R4 RelatedPerson has no native `role` property; relationship/kinship
|
|
14
|
+
* remains in `RelatedPerson.relationship`.
|
|
15
|
+
*/
|
|
16
|
+
Role: 'RelatedPerson.role',
|
|
17
|
+
Name: 'RelatedPerson.name',
|
|
18
|
+
Telecom: 'RelatedPerson.telecom',
|
|
19
|
+
Gender: 'RelatedPerson.gender',
|
|
20
|
+
BirthDate: 'RelatedPerson.birthdate',
|
|
21
|
+
Address: 'RelatedPerson.address',
|
|
22
|
+
/** Logical kind used when a RelatedPerson record acts as a related entity. */
|
|
23
|
+
RelatedEntityType: 'RelatedPerson.related-entity-type',
|
|
24
|
+
/**
|
|
25
|
+
* Original public values used to calculate the Consent rule/asset id.
|
|
26
|
+
* These values must not be replaced by the opaque RelatedPerson resource id.
|
|
27
|
+
*/
|
|
28
|
+
ActorIdentifier: 'RelatedPerson.actor-identifier',
|
|
29
|
+
};
|
|
30
|
+
export const RelatedPersonClaimSpecs = [
|
|
31
|
+
{ key: RelatedPersonClaim.IdentifierValue, meaning: 'Business identifier value.', example: 'rel-001' },
|
|
32
|
+
{ key: RelatedPersonClaim.Identifier, meaning: 'Legacy business identifier alias.', example: 'rel-001' },
|
|
33
|
+
{ key: RelatedPersonClaim.Active, meaning: 'Active flag.', example: 'true' },
|
|
34
|
+
{ key: RelatedPersonClaim.Patient, meaning: 'Linked patient reference.', example: 'did:web:patient.example.org' },
|
|
35
|
+
{ key: RelatedPersonClaim.Relationship, meaning: 'Relationship token.', example: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode|MTH' },
|
|
36
|
+
{ key: RelatedPersonClaim.Role, meaning: 'Comma-separated functional HL7 role values; this is a GDC flat-claim extension, not a native FHIR R4 RelatedPerson property. Known codes resolve to their canonical RoleClass or RoleCode system.', example: 'CAREGIVER,ECON,BILL' },
|
|
37
|
+
{ key: RelatedPersonClaim.Name, meaning: 'Display name.', example: 'Jane Doe' },
|
|
38
|
+
{ key: RelatedPersonClaim.Telecom, meaning: 'Contact value.', example: 'mailto:jane@example.org' },
|
|
39
|
+
{ key: RelatedPersonClaim.Gender, meaning: 'Administrative gender.', example: 'female' },
|
|
40
|
+
{ key: RelatedPersonClaim.BirthDate, meaning: 'Birth date.', example: '1980-02-01' },
|
|
41
|
+
{ key: RelatedPersonClaim.Address, meaning: 'Display address.', example: '123 Main St, Vancouver' },
|
|
42
|
+
{ key: RelatedPersonClaim.RelatedEntityType, meaning: 'Logical related-entity kind.', example: 'country-set' },
|
|
43
|
+
{ key: RelatedPersonClaim.ActorIdentifier, meaning: 'Original public Consent actor identifiers as CSV.', example: 'ES,PT' },
|
|
44
|
+
];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical claims keys for Task (FHIR-oriented claims-first payloads).
|
|
3
|
+
* These keys are the source of truth for GW/SDK Task claim mapping.
|
|
4
|
+
*/
|
|
5
|
+
export declare enum TaskClaimsFhirApi {
|
|
6
|
+
Id = "Task.id",
|
|
7
|
+
Identifier = "Task.identifier",
|
|
8
|
+
GroupIdentifier = "Task.group-identifier",
|
|
9
|
+
Status = "Task.status",
|
|
10
|
+
StatusReason = "Task.status-reason",
|
|
11
|
+
BusinessStatus = "Task.business-status",
|
|
12
|
+
Intent = "Task.intent",
|
|
13
|
+
Code = "Task.code",
|
|
14
|
+
Description = "Task.description",
|
|
15
|
+
Subject = "Task.subject",
|
|
16
|
+
For = "Task.for",
|
|
17
|
+
Requester = "Task.requester",
|
|
18
|
+
Owner = "Task.owner",
|
|
19
|
+
Focus = "Task.focus",
|
|
20
|
+
PartOf = "Task.part-of",
|
|
21
|
+
BasedOn = "Task.based-on",
|
|
22
|
+
BasedOnDisplay = "Task.based-on-display",
|
|
23
|
+
Language = "Task.language",
|
|
24
|
+
Channel = "Task.channel",
|
|
25
|
+
AuthoredOn = "Task.authored-on",
|
|
26
|
+
LastModified = "Task.last-modified",
|
|
27
|
+
ScheduledAt = "Task.scheduled-at",
|
|
28
|
+
RetryIntervalMinutes = "Task.retry-interval-minutes",
|
|
29
|
+
MaxAttempts = "Task.max-attempts",
|
|
30
|
+
TriggerType = "Task.trigger-type",
|
|
31
|
+
Attempt = "Task.attempt",
|
|
32
|
+
WindowStart = "Task.window-start",
|
|
33
|
+
WindowEnd = "Task.window-end",
|
|
34
|
+
AutoCloseAt = "Task.auto-close-at",
|
|
35
|
+
EscalationRecipient = "Task.escalation-recipient",
|
|
36
|
+
Confirmed = "Task.confirmed",
|
|
37
|
+
ConfirmedAt = "Task.confirmed-at",
|
|
38
|
+
Repetitions = "Task.repetitions",
|
|
39
|
+
DaysOfWeek = "Task.days-of-week",
|
|
40
|
+
RepeatCount = "Task.repeat-count",
|
|
41
|
+
RepeatDurationValue = "Task.repeat-duration-value",
|
|
42
|
+
RepeatDurationUnit = "Task.repeat-duration-unit",
|
|
43
|
+
Modified = "Task.modified",
|
|
44
|
+
Priority = "Task.priority",
|
|
45
|
+
RestrictionPeriodStart = "Task.restriction-period-start",
|
|
46
|
+
RestrictionPeriodEnd = "Task.restriction-period-end",
|
|
47
|
+
ExecutionPeriodStart = "Task.execution-period-start",
|
|
48
|
+
ExecutionPeriodEnd = "Task.execution-period-end",
|
|
49
|
+
OutputType = "Task.output-type",
|
|
50
|
+
OutputValueReference = "Task.output-value-reference",
|
|
51
|
+
OutputValueString = "Task.output-value-string",
|
|
52
|
+
UserSelected = "Task.user-selected"
|
|
53
|
+
}
|
|
54
|
+
/** Complete product-neutral Task authoring contract shared by all sectors. */
|
|
55
|
+
export declare const TaskArtifactSchema: Readonly<{
|
|
56
|
+
resourceType: "Task";
|
|
57
|
+
requiredClaims: readonly TaskClaimsFhirApi[];
|
|
58
|
+
optionalClaims: readonly (TaskClaimsFhirApi.Id | TaskClaimsFhirApi.Identifier | TaskClaimsFhirApi.GroupIdentifier | TaskClaimsFhirApi.StatusReason | TaskClaimsFhirApi.BusinessStatus | TaskClaimsFhirApi.Code | TaskClaimsFhirApi.Description | TaskClaimsFhirApi.Subject | TaskClaimsFhirApi.For | TaskClaimsFhirApi.Requester | TaskClaimsFhirApi.Owner | TaskClaimsFhirApi.Focus | TaskClaimsFhirApi.PartOf | TaskClaimsFhirApi.BasedOn | TaskClaimsFhirApi.BasedOnDisplay | TaskClaimsFhirApi.Language | TaskClaimsFhirApi.Channel | TaskClaimsFhirApi.AuthoredOn | TaskClaimsFhirApi.LastModified | TaskClaimsFhirApi.ScheduledAt | TaskClaimsFhirApi.RetryIntervalMinutes | TaskClaimsFhirApi.MaxAttempts | TaskClaimsFhirApi.TriggerType | TaskClaimsFhirApi.Attempt | TaskClaimsFhirApi.WindowStart | TaskClaimsFhirApi.WindowEnd | TaskClaimsFhirApi.AutoCloseAt | TaskClaimsFhirApi.EscalationRecipient | TaskClaimsFhirApi.Confirmed | TaskClaimsFhirApi.ConfirmedAt | TaskClaimsFhirApi.Repetitions | TaskClaimsFhirApi.DaysOfWeek | TaskClaimsFhirApi.RepeatCount | TaskClaimsFhirApi.RepeatDurationValue | TaskClaimsFhirApi.RepeatDurationUnit | TaskClaimsFhirApi.Modified | TaskClaimsFhirApi.Priority | TaskClaimsFhirApi.RestrictionPeriodStart | TaskClaimsFhirApi.RestrictionPeriodEnd | TaskClaimsFhirApi.ExecutionPeriodStart | TaskClaimsFhirApi.ExecutionPeriodEnd | TaskClaimsFhirApi.OutputType | TaskClaimsFhirApi.OutputValueReference | TaskClaimsFhirApi.OutputValueString | TaskClaimsFhirApi.UserSelected)[];
|
|
59
|
+
}>;
|
|
60
|
+
/** Common singular catalog name used consistently with the other resources. */
|
|
61
|
+
export declare const TaskClaim: typeof TaskClaimsFhirApi;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
|
|
2
|
+
// File: src/models/interoperable-claims/task-claims.ts
|
|
3
|
+
/**
|
|
4
|
+
* Canonical claims keys for Task (FHIR-oriented claims-first payloads).
|
|
5
|
+
* These keys are the source of truth for GW/SDK Task claim mapping.
|
|
6
|
+
*/
|
|
7
|
+
export var TaskClaimsFhirApi;
|
|
8
|
+
(function (TaskClaimsFhirApi) {
|
|
9
|
+
TaskClaimsFhirApi["Id"] = "Task.id";
|
|
10
|
+
TaskClaimsFhirApi["Identifier"] = "Task.identifier";
|
|
11
|
+
TaskClaimsFhirApi["GroupIdentifier"] = "Task.group-identifier";
|
|
12
|
+
TaskClaimsFhirApi["Status"] = "Task.status";
|
|
13
|
+
TaskClaimsFhirApi["StatusReason"] = "Task.status-reason";
|
|
14
|
+
TaskClaimsFhirApi["BusinessStatus"] = "Task.business-status";
|
|
15
|
+
TaskClaimsFhirApi["Intent"] = "Task.intent";
|
|
16
|
+
TaskClaimsFhirApi["Code"] = "Task.code";
|
|
17
|
+
TaskClaimsFhirApi["Description"] = "Task.description";
|
|
18
|
+
TaskClaimsFhirApi["Subject"] = "Task.subject";
|
|
19
|
+
TaskClaimsFhirApi["For"] = "Task.for";
|
|
20
|
+
TaskClaimsFhirApi["Requester"] = "Task.requester";
|
|
21
|
+
TaskClaimsFhirApi["Owner"] = "Task.owner";
|
|
22
|
+
TaskClaimsFhirApi["Focus"] = "Task.focus";
|
|
23
|
+
TaskClaimsFhirApi["PartOf"] = "Task.part-of";
|
|
24
|
+
TaskClaimsFhirApi["BasedOn"] = "Task.based-on";
|
|
25
|
+
TaskClaimsFhirApi["BasedOnDisplay"] = "Task.based-on-display";
|
|
26
|
+
TaskClaimsFhirApi["Language"] = "Task.language";
|
|
27
|
+
TaskClaimsFhirApi["Channel"] = "Task.channel";
|
|
28
|
+
TaskClaimsFhirApi["AuthoredOn"] = "Task.authored-on";
|
|
29
|
+
TaskClaimsFhirApi["LastModified"] = "Task.last-modified";
|
|
30
|
+
TaskClaimsFhirApi["ScheduledAt"] = "Task.scheduled-at";
|
|
31
|
+
TaskClaimsFhirApi["RetryIntervalMinutes"] = "Task.retry-interval-minutes";
|
|
32
|
+
TaskClaimsFhirApi["MaxAttempts"] = "Task.max-attempts";
|
|
33
|
+
TaskClaimsFhirApi["TriggerType"] = "Task.trigger-type";
|
|
34
|
+
TaskClaimsFhirApi["Attempt"] = "Task.attempt";
|
|
35
|
+
TaskClaimsFhirApi["WindowStart"] = "Task.window-start";
|
|
36
|
+
TaskClaimsFhirApi["WindowEnd"] = "Task.window-end";
|
|
37
|
+
TaskClaimsFhirApi["AutoCloseAt"] = "Task.auto-close-at";
|
|
38
|
+
TaskClaimsFhirApi["EscalationRecipient"] = "Task.escalation-recipient";
|
|
39
|
+
TaskClaimsFhirApi["Confirmed"] = "Task.confirmed";
|
|
40
|
+
TaskClaimsFhirApi["ConfirmedAt"] = "Task.confirmed-at";
|
|
41
|
+
TaskClaimsFhirApi["Repetitions"] = "Task.repetitions";
|
|
42
|
+
TaskClaimsFhirApi["DaysOfWeek"] = "Task.days-of-week";
|
|
43
|
+
TaskClaimsFhirApi["RepeatCount"] = "Task.repeat-count";
|
|
44
|
+
TaskClaimsFhirApi["RepeatDurationValue"] = "Task.repeat-duration-value";
|
|
45
|
+
TaskClaimsFhirApi["RepeatDurationUnit"] = "Task.repeat-duration-unit";
|
|
46
|
+
TaskClaimsFhirApi["Modified"] = "Task.modified";
|
|
47
|
+
TaskClaimsFhirApi["Priority"] = "Task.priority";
|
|
48
|
+
TaskClaimsFhirApi["RestrictionPeriodStart"] = "Task.restriction-period-start";
|
|
49
|
+
TaskClaimsFhirApi["RestrictionPeriodEnd"] = "Task.restriction-period-end";
|
|
50
|
+
TaskClaimsFhirApi["ExecutionPeriodStart"] = "Task.execution-period-start";
|
|
51
|
+
TaskClaimsFhirApi["ExecutionPeriodEnd"] = "Task.execution-period-end";
|
|
52
|
+
TaskClaimsFhirApi["OutputType"] = "Task.output-type";
|
|
53
|
+
TaskClaimsFhirApi["OutputValueReference"] = "Task.output-value-reference";
|
|
54
|
+
TaskClaimsFhirApi["OutputValueString"] = "Task.output-value-string";
|
|
55
|
+
TaskClaimsFhirApi["UserSelected"] = "Task.user-selected";
|
|
56
|
+
})(TaskClaimsFhirApi || (TaskClaimsFhirApi = {}));
|
|
57
|
+
/** Complete product-neutral Task authoring contract shared by all sectors. */
|
|
58
|
+
export const TaskArtifactSchema = Object.freeze({
|
|
59
|
+
resourceType: 'Task',
|
|
60
|
+
requiredClaims: Object.freeze([TaskClaimsFhirApi.Status, TaskClaimsFhirApi.Intent]),
|
|
61
|
+
optionalClaims: Object.freeze(Object.values(TaskClaimsFhirApi).filter(claim => claim !== TaskClaimsFhirApi.Status && claim !== TaskClaimsFhirApi.Intent)),
|
|
62
|
+
});
|
|
63
|
+
/** Common singular catalog name used consistently with the other resources. */
|
|
64
|
+
export const TaskClaim = TaskClaimsFhirApi;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Canonical code-system URIs shared by human and animal clinical channels. */
|
|
2
|
+
export declare const ClinicalTerminologySystems: Readonly<{
|
|
3
|
+
readonly Loinc: "http://loinc.org";
|
|
4
|
+
readonly SnomedCt: "http://snomed.info/sct";
|
|
5
|
+
readonly Icd10: "http://hl7.org/fhir/sid/icd-10";
|
|
6
|
+
readonly Atc: "http://www.whocc.no/atc";
|
|
7
|
+
readonly AtcVet: "http://www.whocc.no/atcvet";
|
|
8
|
+
}>;
|
|
9
|
+
/** Authorization/content scopes; several scopes may share one Coding.system. */
|
|
10
|
+
export declare const ClinicalTerminologySourceScopes: Readonly<{
|
|
11
|
+
readonly Loinc: "LNC";
|
|
12
|
+
readonly SnomedGps: "SNOMED_GPS";
|
|
13
|
+
readonly SnomedIps: "SNOMED_IPS";
|
|
14
|
+
readonly SnomedCt: "SNOMED_CT";
|
|
15
|
+
readonly SnomedVeterinary: "SNOMEDCT_VET";
|
|
16
|
+
readonly Icd10: "ICD10";
|
|
17
|
+
readonly Atc: "ATC";
|
|
18
|
+
readonly AtcVet: "ATCVET";
|
|
19
|
+
}>;
|
|
20
|
+
export type ClinicalTerminologySourceScope = typeof ClinicalTerminologySourceScopes[keyof typeof ClinicalTerminologySourceScopes];
|
|
21
|
+
/** Product-neutral terminology candidate returned to SOS, Vet or UHC channels. */
|
|
22
|
+
export type ClinicalTerminologyCandidate = Readonly<{
|
|
23
|
+
/** Governed source-scope identifier returned by the deployment capability. */
|
|
24
|
+
source: string;
|
|
25
|
+
system: string;
|
|
26
|
+
code: string;
|
|
27
|
+
display: string;
|
|
28
|
+
text?: string;
|
|
29
|
+
language?: string;
|
|
30
|
+
terminologyVersion?: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** Preserves canonical English display separately from an asserted local label. */
|
|
33
|
+
export declare function buildClinicalTerminologyCandidate(input: ClinicalTerminologyCandidate): ClinicalTerminologyCandidate;
|
|
34
|
+
/** Deterministic cross-sector fixtures for isolated terminology and channel tests. */
|
|
35
|
+
export declare const CLINICAL_TERMINOLOGY_TEST_DATA: Readonly<{
|
|
36
|
+
readonly localApiKey: "local-playwright-umls-key";
|
|
37
|
+
readonly bodyTemperature: Readonly<{
|
|
38
|
+
source: "LNC";
|
|
39
|
+
system: "http://loinc.org";
|
|
40
|
+
code: "8310-5";
|
|
41
|
+
display: "Body temperature:Temp:Pt:^Patient:Qn";
|
|
42
|
+
}>;
|
|
43
|
+
readonly otitisExternaSpanish: Readonly<{
|
|
44
|
+
scope: "SNOMED_CT";
|
|
45
|
+
umlsSource: "SCTSPA";
|
|
46
|
+
system: "http://snomed.info/sct";
|
|
47
|
+
code: "3135009";
|
|
48
|
+
display: "otitis externa";
|
|
49
|
+
}>;
|
|
50
|
+
readonly canineRabiesVaccine: Readonly<{
|
|
51
|
+
scope: "ATCVET";
|
|
52
|
+
system: "http://www.whocc.no/atcvet";
|
|
53
|
+
code: "QI07AA02";
|
|
54
|
+
text: "virus de la rabia";
|
|
55
|
+
display: "rabies virus";
|
|
56
|
+
ncbiTaxonomyId: "9615";
|
|
57
|
+
}>;
|
|
58
|
+
readonly humanInactivatedInfluenzaVaccine: Readonly<{
|
|
59
|
+
scope: "ATC";
|
|
60
|
+
system: "http://www.whocc.no/atc";
|
|
61
|
+
code: "J07BB02";
|
|
62
|
+
text: "vacuna contra la gripe inactivada de virus fraccionados o antígeno de superficie";
|
|
63
|
+
display: "influenza, inactivated, split virus or surface antigen";
|
|
64
|
+
ncbiTaxonomyId: "9606";
|
|
65
|
+
}>;
|
|
66
|
+
readonly rabiesDisease: Readonly<{
|
|
67
|
+
scope: "SNOMED_GPS";
|
|
68
|
+
umlsSource: "SNOMEDCT_US";
|
|
69
|
+
system: "http://snomed.info/sct";
|
|
70
|
+
code: "14168008";
|
|
71
|
+
display: "Rabies";
|
|
72
|
+
}>;
|
|
73
|
+
}>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/** Canonical code-system URIs shared by human and animal clinical channels. */
|
|
2
|
+
export const ClinicalTerminologySystems = Object.freeze({
|
|
3
|
+
Loinc: 'http://loinc.org',
|
|
4
|
+
SnomedCt: 'http://snomed.info/sct',
|
|
5
|
+
Icd10: 'http://hl7.org/fhir/sid/icd-10',
|
|
6
|
+
Atc: 'http://www.whocc.no/atc',
|
|
7
|
+
AtcVet: 'http://www.whocc.no/atcvet',
|
|
8
|
+
});
|
|
9
|
+
/** Authorization/content scopes; several scopes may share one Coding.system. */
|
|
10
|
+
export const ClinicalTerminologySourceScopes = Object.freeze({
|
|
11
|
+
Loinc: 'LNC',
|
|
12
|
+
SnomedGps: 'SNOMED_GPS',
|
|
13
|
+
SnomedIps: 'SNOMED_IPS',
|
|
14
|
+
SnomedCt: 'SNOMED_CT',
|
|
15
|
+
SnomedVeterinary: 'SNOMEDCT_VET',
|
|
16
|
+
Icd10: 'ICD10',
|
|
17
|
+
Atc: 'ATC',
|
|
18
|
+
AtcVet: 'ATCVET',
|
|
19
|
+
});
|
|
20
|
+
/** Preserves canonical English display separately from an asserted local label. */
|
|
21
|
+
export function buildClinicalTerminologyCandidate(input) {
|
|
22
|
+
const required = (value, error) => {
|
|
23
|
+
const normalized = value.trim();
|
|
24
|
+
if (!normalized)
|
|
25
|
+
throw new TypeError(error);
|
|
26
|
+
return normalized;
|
|
27
|
+
};
|
|
28
|
+
return Object.freeze({
|
|
29
|
+
source: input.source,
|
|
30
|
+
system: required(input.system, 'clinical_terminology_system_required'),
|
|
31
|
+
code: required(input.code, 'clinical_terminology_code_required'),
|
|
32
|
+
display: required(input.display, 'clinical_terminology_display_required'),
|
|
33
|
+
...(input.text?.trim() ? { text: input.text.trim() } : {}),
|
|
34
|
+
...(input.language?.trim() ? { language: input.language.trim() } : {}),
|
|
35
|
+
...(input.terminologyVersion?.trim() ? { terminologyVersion: input.terminologyVersion.trim() } : {}),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/** Deterministic cross-sector fixtures for isolated terminology and channel tests. */
|
|
39
|
+
export const CLINICAL_TERMINOLOGY_TEST_DATA = Object.freeze({
|
|
40
|
+
localApiKey: 'local-playwright-umls-key',
|
|
41
|
+
bodyTemperature: Object.freeze({
|
|
42
|
+
source: ClinicalTerminologySourceScopes.Loinc,
|
|
43
|
+
system: ClinicalTerminologySystems.Loinc,
|
|
44
|
+
code: '8310-5',
|
|
45
|
+
display: 'Body temperature:Temp:Pt:^Patient:Qn',
|
|
46
|
+
}),
|
|
47
|
+
otitisExternaSpanish: Object.freeze({
|
|
48
|
+
scope: ClinicalTerminologySourceScopes.SnomedCt,
|
|
49
|
+
umlsSource: 'SCTSPA',
|
|
50
|
+
system: ClinicalTerminologySystems.SnomedCt,
|
|
51
|
+
code: '3135009',
|
|
52
|
+
display: 'otitis externa',
|
|
53
|
+
}),
|
|
54
|
+
canineRabiesVaccine: Object.freeze({
|
|
55
|
+
scope: ClinicalTerminologySourceScopes.AtcVet,
|
|
56
|
+
system: ClinicalTerminologySystems.AtcVet,
|
|
57
|
+
code: 'QI07AA02',
|
|
58
|
+
text: 'virus de la rabia',
|
|
59
|
+
display: 'rabies virus',
|
|
60
|
+
ncbiTaxonomyId: '9615',
|
|
61
|
+
}),
|
|
62
|
+
humanInactivatedInfluenzaVaccine: Object.freeze({
|
|
63
|
+
scope: ClinicalTerminologySourceScopes.Atc,
|
|
64
|
+
system: ClinicalTerminologySystems.Atc,
|
|
65
|
+
code: 'J07BB02',
|
|
66
|
+
text: 'vacuna contra la gripe inactivada de virus fraccionados o antígeno de superficie',
|
|
67
|
+
display: 'influenza, inactivated, split virus or surface antigen',
|
|
68
|
+
ncbiTaxonomyId: '9606',
|
|
69
|
+
}),
|
|
70
|
+
rabiesDisease: Object.freeze({
|
|
71
|
+
scope: ClinicalTerminologySourceScopes.SnomedGps,
|
|
72
|
+
umlsSource: 'SNOMEDCT_US',
|
|
73
|
+
system: ClinicalTerminologySystems.SnomedCt,
|
|
74
|
+
code: '14168008',
|
|
75
|
+
display: 'Rabies',
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical shared FHIR R4 status vocabularies for IPS-facing clinical
|
|
3
|
+
* resource families.
|
|
4
|
+
*
|
|
5
|
+
* Use these constants in docs, examples, fixtures, and tests instead of
|
|
6
|
+
* retyping raw clinical literals when a shared catalog already exists.
|
|
7
|
+
*
|
|
8
|
+
* When a needed status is missing, add it here first following the canonical
|
|
9
|
+
* FHIR/HL7 code value for that resource family.
|
|
10
|
+
*/
|
|
11
|
+
/** Canonical `AllergyIntolerance.clinicalStatus` codes. */
|
|
12
|
+
export declare const AllergyIntoleranceClinicalStatuses: Readonly<{
|
|
13
|
+
readonly Active: "active";
|
|
14
|
+
readonly Inactive: "inactive";
|
|
15
|
+
readonly Resolved: "resolved";
|
|
16
|
+
}>;
|
|
17
|
+
export type AllergyIntoleranceClinicalStatus = typeof AllergyIntoleranceClinicalStatuses[keyof typeof AllergyIntoleranceClinicalStatuses];
|
|
18
|
+
/** Canonical `AllergyIntolerance.verificationStatus` codes. */
|
|
19
|
+
export declare const AllergyIntoleranceVerificationStatuses: Readonly<{
|
|
20
|
+
readonly Unconfirmed: "unconfirmed";
|
|
21
|
+
readonly Confirmed: "confirmed";
|
|
22
|
+
readonly Refuted: "refuted";
|
|
23
|
+
readonly EnteredInError: "entered-in-error";
|
|
24
|
+
}>;
|
|
25
|
+
export type AllergyIntoleranceVerificationStatus = typeof AllergyIntoleranceVerificationStatuses[keyof typeof AllergyIntoleranceVerificationStatuses];
|
|
26
|
+
/** Canonical `Condition.clinicalStatus` codes. */
|
|
27
|
+
export declare const ConditionClinicalStatuses: Readonly<{
|
|
28
|
+
readonly Active: "active";
|
|
29
|
+
readonly Recurrence: "recurrence";
|
|
30
|
+
readonly Relapse: "relapse";
|
|
31
|
+
readonly Inactive: "inactive";
|
|
32
|
+
readonly Remission: "remission";
|
|
33
|
+
readonly Resolved: "resolved";
|
|
34
|
+
}>;
|
|
35
|
+
export type ConditionClinicalStatus = typeof ConditionClinicalStatuses[keyof typeof ConditionClinicalStatuses];
|
|
36
|
+
/** Canonical `Condition.verificationStatus` codes. */
|
|
37
|
+
export declare const ConditionVerificationStatuses: Readonly<{
|
|
38
|
+
readonly Unconfirmed: "unconfirmed";
|
|
39
|
+
readonly Provisional: "provisional";
|
|
40
|
+
readonly Differential: "differential";
|
|
41
|
+
readonly Confirmed: "confirmed";
|
|
42
|
+
readonly Refuted: "refuted";
|
|
43
|
+
readonly EnteredInError: "entered-in-error";
|
|
44
|
+
}>;
|
|
45
|
+
export type ConditionVerificationStatus = typeof ConditionVerificationStatuses[keyof typeof ConditionVerificationStatuses];
|
|
46
|
+
/** Canonical `MedicationStatement.status` codes. */
|
|
47
|
+
export declare const MedicationStatementStatuses: Readonly<{
|
|
48
|
+
readonly Active: "active";
|
|
49
|
+
readonly Completed: "completed";
|
|
50
|
+
readonly EnteredInError: "entered-in-error";
|
|
51
|
+
readonly Intended: "intended";
|
|
52
|
+
readonly Stopped: "stopped";
|
|
53
|
+
readonly OnHold: "on-hold";
|
|
54
|
+
readonly Unknown: "unknown";
|
|
55
|
+
readonly NotTaken: "not-taken";
|
|
56
|
+
}>;
|
|
57
|
+
export type MedicationStatementStatus = typeof MedicationStatementStatuses[keyof typeof MedicationStatementStatuses];
|
|
58
|
+
/** Canonical `Immunization.status` codes. */
|
|
59
|
+
export declare const ImmunizationStatuses: Readonly<{
|
|
60
|
+
readonly Completed: "completed";
|
|
61
|
+
readonly EnteredInError: "entered-in-error";
|
|
62
|
+
readonly NotDone: "not-done";
|
|
63
|
+
}>;
|
|
64
|
+
export type ImmunizationStatus = typeof ImmunizationStatuses[keyof typeof ImmunizationStatuses];
|
|
65
|
+
/** Canonical `Procedure.status` codes. */
|
|
66
|
+
export declare const ProcedureStatuses: Readonly<{
|
|
67
|
+
readonly Preparation: "preparation";
|
|
68
|
+
readonly InProgress: "in-progress";
|
|
69
|
+
readonly NotDone: "not-done";
|
|
70
|
+
readonly OnHold: "on-hold";
|
|
71
|
+
readonly Stopped: "stopped";
|
|
72
|
+
readonly Completed: "completed";
|
|
73
|
+
readonly EnteredInError: "entered-in-error";
|
|
74
|
+
readonly Unknown: "unknown";
|
|
75
|
+
}>;
|
|
76
|
+
export type ProcedureStatus = typeof ProcedureStatuses[keyof typeof ProcedureStatuses];
|
|
77
|
+
/** Canonical `DiagnosticReport.status` codes. */
|
|
78
|
+
export declare const DiagnosticReportStatuses: Readonly<{
|
|
79
|
+
readonly Registered: "registered";
|
|
80
|
+
readonly Partial: "partial";
|
|
81
|
+
readonly Preliminary: "preliminary";
|
|
82
|
+
readonly Final: "final";
|
|
83
|
+
readonly Amended: "amended";
|
|
84
|
+
readonly Corrected: "corrected";
|
|
85
|
+
readonly Appended: "appended";
|
|
86
|
+
readonly Cancelled: "cancelled";
|
|
87
|
+
readonly EnteredInError: "entered-in-error";
|
|
88
|
+
readonly Unknown: "unknown";
|
|
89
|
+
}>;
|
|
90
|
+
export type DiagnosticReportStatus = typeof DiagnosticReportStatuses[keyof typeof DiagnosticReportStatuses];
|
|
91
|
+
/** Canonical `Observation.status` codes. */
|
|
92
|
+
export declare const ObservationStatuses: Readonly<{
|
|
93
|
+
readonly Registered: "registered";
|
|
94
|
+
readonly Preliminary: "preliminary";
|
|
95
|
+
readonly Final: "final";
|
|
96
|
+
readonly Amended: "amended";
|
|
97
|
+
readonly Corrected: "corrected";
|
|
98
|
+
readonly Cancelled: "cancelled";
|
|
99
|
+
readonly EnteredInError: "entered-in-error";
|
|
100
|
+
readonly Unknown: "unknown";
|
|
101
|
+
}>;
|
|
102
|
+
export type ObservationStatus = typeof ObservationStatuses[keyof typeof ObservationStatuses];
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical shared FHIR R4 status vocabularies for IPS-facing clinical
|
|
3
|
+
* resource families.
|
|
4
|
+
*
|
|
5
|
+
* Use these constants in docs, examples, fixtures, and tests instead of
|
|
6
|
+
* retyping raw clinical literals when a shared catalog already exists.
|
|
7
|
+
*
|
|
8
|
+
* When a needed status is missing, add it here first following the canonical
|
|
9
|
+
* FHIR/HL7 code value for that resource family.
|
|
10
|
+
*/
|
|
11
|
+
/** Canonical `AllergyIntolerance.clinicalStatus` codes. */
|
|
12
|
+
export const AllergyIntoleranceClinicalStatuses = Object.freeze({
|
|
13
|
+
Active: 'active',
|
|
14
|
+
Inactive: 'inactive',
|
|
15
|
+
Resolved: 'resolved',
|
|
16
|
+
});
|
|
17
|
+
/** Canonical `AllergyIntolerance.verificationStatus` codes. */
|
|
18
|
+
export const AllergyIntoleranceVerificationStatuses = Object.freeze({
|
|
19
|
+
Unconfirmed: 'unconfirmed',
|
|
20
|
+
Confirmed: 'confirmed',
|
|
21
|
+
Refuted: 'refuted',
|
|
22
|
+
EnteredInError: 'entered-in-error',
|
|
23
|
+
});
|
|
24
|
+
/** Canonical `Condition.clinicalStatus` codes. */
|
|
25
|
+
export const ConditionClinicalStatuses = Object.freeze({
|
|
26
|
+
Active: 'active',
|
|
27
|
+
Recurrence: 'recurrence',
|
|
28
|
+
Relapse: 'relapse',
|
|
29
|
+
Inactive: 'inactive',
|
|
30
|
+
Remission: 'remission',
|
|
31
|
+
Resolved: 'resolved',
|
|
32
|
+
});
|
|
33
|
+
/** Canonical `Condition.verificationStatus` codes. */
|
|
34
|
+
export const ConditionVerificationStatuses = Object.freeze({
|
|
35
|
+
Unconfirmed: 'unconfirmed',
|
|
36
|
+
Provisional: 'provisional',
|
|
37
|
+
Differential: 'differential',
|
|
38
|
+
Confirmed: 'confirmed',
|
|
39
|
+
Refuted: 'refuted',
|
|
40
|
+
EnteredInError: 'entered-in-error',
|
|
41
|
+
});
|
|
42
|
+
/** Canonical `MedicationStatement.status` codes. */
|
|
43
|
+
export const MedicationStatementStatuses = Object.freeze({
|
|
44
|
+
Active: 'active',
|
|
45
|
+
Completed: 'completed',
|
|
46
|
+
EnteredInError: 'entered-in-error',
|
|
47
|
+
Intended: 'intended',
|
|
48
|
+
Stopped: 'stopped',
|
|
49
|
+
OnHold: 'on-hold',
|
|
50
|
+
Unknown: 'unknown',
|
|
51
|
+
NotTaken: 'not-taken',
|
|
52
|
+
});
|
|
53
|
+
/** Canonical `Immunization.status` codes. */
|
|
54
|
+
export const ImmunizationStatuses = Object.freeze({
|
|
55
|
+
Completed: 'completed',
|
|
56
|
+
EnteredInError: 'entered-in-error',
|
|
57
|
+
NotDone: 'not-done',
|
|
58
|
+
});
|
|
59
|
+
/** Canonical `Procedure.status` codes. */
|
|
60
|
+
export const ProcedureStatuses = Object.freeze({
|
|
61
|
+
Preparation: 'preparation',
|
|
62
|
+
InProgress: 'in-progress',
|
|
63
|
+
NotDone: 'not-done',
|
|
64
|
+
OnHold: 'on-hold',
|
|
65
|
+
Stopped: 'stopped',
|
|
66
|
+
Completed: 'completed',
|
|
67
|
+
EnteredInError: 'entered-in-error',
|
|
68
|
+
Unknown: 'unknown',
|
|
69
|
+
});
|
|
70
|
+
/** Canonical `DiagnosticReport.status` codes. */
|
|
71
|
+
export const DiagnosticReportStatuses = Object.freeze({
|
|
72
|
+
Registered: 'registered',
|
|
73
|
+
Partial: 'partial',
|
|
74
|
+
Preliminary: 'preliminary',
|
|
75
|
+
Final: 'final',
|
|
76
|
+
Amended: 'amended',
|
|
77
|
+
Corrected: 'corrected',
|
|
78
|
+
Appended: 'appended',
|
|
79
|
+
Cancelled: 'cancelled',
|
|
80
|
+
EnteredInError: 'entered-in-error',
|
|
81
|
+
Unknown: 'unknown',
|
|
82
|
+
});
|
|
83
|
+
/** Canonical `Observation.status` codes. */
|
|
84
|
+
export const ObservationStatuses = Object.freeze({
|
|
85
|
+
Registered: 'registered',
|
|
86
|
+
Preliminary: 'preliminary',
|
|
87
|
+
Final: 'final',
|
|
88
|
+
Amended: 'amended',
|
|
89
|
+
Corrected: 'corrected',
|
|
90
|
+
Cancelled: 'cancelled',
|
|
91
|
+
EnteredInError: 'entered-in-error',
|
|
92
|
+
Unknown: 'unknown',
|
|
93
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical FHIR/HL7 code system URLs shared across GW and SDK packages.
|
|
3
|
+
*
|
|
4
|
+
* Use these constants instead of inline system strings when building
|
|
5
|
+
* FHIR codings, filters, or test fixtures.
|
|
6
|
+
*/
|
|
7
|
+
export declare const FhirCodeSystems: Readonly<{
|
|
8
|
+
readonly Loinc: "http://loinc.org";
|
|
9
|
+
readonly SnomedCt: "http://snomed.info/sct";
|
|
10
|
+
readonly Ucum: "http://unitsofmeasure.org";
|
|
11
|
+
readonly CommunicationCategory: "http://terminology.hl7.org/CodeSystem/communication-category";
|
|
12
|
+
readonly ActReason: "http://terminology.hl7.org/CodeSystem/v3-ActReason";
|
|
13
|
+
readonly ObservationCategory: "http://terminology.hl7.org/CodeSystem/observation-category";
|
|
14
|
+
readonly EventTiming: "http://hl7.org/fhir/event-timing";
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical FHIR/HL7 code system URLs shared across GW and SDK packages.
|
|
3
|
+
*
|
|
4
|
+
* Use these constants instead of inline system strings when building
|
|
5
|
+
* FHIR codings, filters, or test fixtures.
|
|
6
|
+
*/
|
|
7
|
+
export const FhirCodeSystems = Object.freeze({
|
|
8
|
+
Loinc: 'http://loinc.org',
|
|
9
|
+
SnomedCt: 'http://snomed.info/sct',
|
|
10
|
+
Ucum: 'http://unitsofmeasure.org',
|
|
11
|
+
CommunicationCategory: 'http://terminology.hl7.org/CodeSystem/communication-category',
|
|
12
|
+
ActReason: 'http://terminology.hl7.org/CodeSystem/v3-ActReason',
|
|
13
|
+
ObservationCategory: 'http://terminology.hl7.org/CodeSystem/observation-category',
|
|
14
|
+
EventTiming: 'http://hl7.org/fhir/event-timing',
|
|
15
|
+
});
|