@metriport/fhir-sdk 1.2.7 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +207 -0
- package/dist/__tests__/date-range-performance.test.d.ts +2 -0
- package/dist/__tests__/date-range-performance.test.d.ts.map +1 -0
- package/dist/__tests__/date-range-performance.test.js +218 -0
- package/dist/__tests__/date-range-performance.test.js.map +1 -0
- package/dist/__tests__/date-range-search.test.d.ts +2 -0
- package/dist/__tests__/date-range-search.test.d.ts.map +1 -0
- package/dist/__tests__/date-range-search.test.js +215 -0
- package/dist/__tests__/date-range-search.test.js.map +1 -0
- package/dist/__tests__/fhir-bundle-sdk.test.js +467 -0
- package/dist/__tests__/fhir-bundle-sdk.test.js.map +1 -1
- package/dist/__tests__/reverse-references.test.d.ts +2 -0
- package/dist/__tests__/reverse-references.test.d.ts.map +1 -0
- package/dist/__tests__/reverse-references.test.js +241 -0
- package/dist/__tests__/reverse-references.test.js.map +1 -0
- package/dist/demo-reverse-references.d.ts +7 -0
- package/dist/demo-reverse-references.d.ts.map +1 -0
- package/dist/demo-reverse-references.js +207 -0
- package/dist/demo-reverse-references.js.map +1 -0
- package/dist/fhir-bundle-sdk.d.ts +222 -0
- package/dist/fhir-bundle-sdk.d.ts.map +1 -0
- package/dist/fhir-bundle-sdk.js +527 -0
- package/dist/fhir-bundle-sdk.js.map +1 -0
- package/dist/index.d.ts +2 -242
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -677
- package/dist/index.js.map +1 -1
- package/dist/internal/bundle-operations.d.ts +14 -0
- package/dist/internal/bundle-operations.d.ts.map +1 -0
- package/dist/internal/bundle-operations.js +55 -0
- package/dist/internal/bundle-operations.js.map +1 -0
- package/dist/internal/date-extraction.d.ts +12 -0
- package/dist/internal/date-extraction.d.ts.map +1 -0
- package/dist/internal/date-extraction.js +206 -0
- package/dist/internal/date-extraction.js.map +1 -0
- package/dist/internal/graph-traversal.d.ts +13 -0
- package/dist/internal/graph-traversal.d.ts.map +1 -0
- package/dist/internal/graph-traversal.js +89 -0
- package/dist/internal/graph-traversal.js.map +1 -0
- package/dist/internal/indexing.d.ts +17 -0
- package/dist/internal/indexing.d.ts.map +1 -0
- package/dist/internal/indexing.js +118 -0
- package/dist/internal/indexing.js.map +1 -0
- package/dist/internal/llm-context.d.ts +39 -0
- package/dist/internal/llm-context.d.ts.map +1 -0
- package/dist/internal/llm-context.js +188 -0
- package/dist/internal/llm-context.js.map +1 -0
- package/dist/internal/reference-resolution.d.ts +25 -0
- package/dist/internal/reference-resolution.d.ts.map +1 -0
- package/dist/internal/reference-resolution.js +133 -0
- package/dist/internal/reference-resolution.js.map +1 -0
- package/dist/internal/reference-utils.d.ts +26 -0
- package/dist/internal/reference-utils.d.ts.map +1 -0
- package/dist/internal/reference-utils.js +89 -0
- package/dist/internal/reference-utils.js.map +1 -0
- package/dist/internal/validation.d.ts +16 -0
- package/dist/internal/validation.d.ts.map +1 -0
- package/dist/internal/validation.js +45 -0
- package/dist/internal/validation.js.map +1 -0
- package/dist/types/sdk-types.d.ts +107 -0
- package/dist/types/sdk-types.d.ts.map +1 -0
- package/dist/types/sdk-types.js +17 -0
- package/dist/types/sdk-types.js.map +1 -0
- package/dist/types/smart-resources.d.ts +97 -4
- package/dist/types/smart-resources.d.ts.map +1 -1
- package/dist/types/smart-resources.js +82 -5
- package/dist/types/smart-resources.js.map +1 -1
- package/dist/utils/interval-tree/index.d.ts +87 -0
- package/dist/utils/interval-tree/index.d.ts.map +1 -0
- package/dist/utils/interval-tree/index.js +774 -0
- package/dist/utils/interval-tree/index.js.map +1 -0
- package/dist/utils/interval-tree/shallowequal/arrays.d.ts +3 -0
- package/dist/utils/interval-tree/shallowequal/arrays.d.ts.map +1 -0
- package/dist/utils/interval-tree/shallowequal/arrays.js +25 -0
- package/dist/utils/interval-tree/shallowequal/arrays.js.map +1 -0
- package/dist/utils/interval-tree/shallowequal/index.d.ts +6 -0
- package/dist/utils/interval-tree/shallowequal/index.d.ts.map +1 -0
- package/dist/utils/interval-tree/shallowequal/index.js +28 -0
- package/dist/utils/interval-tree/shallowequal/index.js.map +1 -0
- package/dist/utils/interval-tree/shallowequal/objects.d.ts +3 -0
- package/dist/utils/interval-tree/shallowequal/objects.d.ts.map +1 -0
- package/dist/utils/interval-tree/shallowequal/objects.js +28 -0
- package/dist/utils/interval-tree/shallowequal/objects.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { AllergyIntolerance, Bundle, BundleEntry, Composition, Condition, Coverage, DiagnosticReport, DocumentReference, Encounter, FamilyMemberHistory, Immunization, Location, Medication, MedicationAdministration, MedicationDispense, MedicationRequest, MedicationStatement, Observation, Organization, Patient, Practitioner, Procedure, RelatedPerson, Resource, RiskAssessment, ServiceRequest } from "@medplum/fhirtypes";
|
|
2
|
+
import { Smart } from "./types/smart-resources";
|
|
3
|
+
import { ValidationResult, BundleDiffResult, WalkOptions, LLMContextOptions, WalkResult, ReverseReferenceOptions, DateRangeSearchOptions } from "./types/sdk-types";
|
|
4
|
+
/**
|
|
5
|
+
* FHIR Bundle SDK for parsing, querying, and manipulating FHIR bundles with reference resolution
|
|
6
|
+
*/
|
|
7
|
+
export declare class FhirBundleSdk {
|
|
8
|
+
private bundle;
|
|
9
|
+
private resourcesById;
|
|
10
|
+
private resourcesByFullUrl;
|
|
11
|
+
private resourcesByType;
|
|
12
|
+
private reverseReferencesById;
|
|
13
|
+
private dateRangeIndex;
|
|
14
|
+
private smartResourceCache;
|
|
15
|
+
private smartResourceArrayCache;
|
|
16
|
+
private resolutionStack;
|
|
17
|
+
/**
|
|
18
|
+
* Configuration for dynamically generated resource getter methods.
|
|
19
|
+
*
|
|
20
|
+
* Each entry in this array automatically generates both single and collection getter methods.
|
|
21
|
+
*
|
|
22
|
+
* **Example:**
|
|
23
|
+
* ```typescript
|
|
24
|
+
* {
|
|
25
|
+
* resourceType: 'Patient',
|
|
26
|
+
* singleGetterMethodName: 'getPatientById',
|
|
27
|
+
* collectionGetterMethodName: 'getPatients'
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* **Generates the equivalent of:**
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Single resource getter
|
|
34
|
+
* getPatientById(id: string): Smart<Patient> | undefined {
|
|
35
|
+
* return this.getResourceByIdAndType<Patient>(id, 'Patient');
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* // Collection getter
|
|
39
|
+
* getPatients(): Smart<Patient>[] {
|
|
40
|
+
* return this.getResourcesByType<Patient>('Patient');
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* **Usage:**
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const sdk = await FhirBundleSdk.create(bundle);
|
|
47
|
+
* const patient = sdk.getPatientById('patient-123'); // Smart<Patient> | undefined
|
|
48
|
+
* const allPatients = sdk.getPatients(); // Smart<Patient>[]
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* To add a new resource type, simply add a new entry to this array and declare
|
|
52
|
+
* the corresponding method signatures in the class body.
|
|
53
|
+
*/
|
|
54
|
+
private static readonly RESOURCE_METHODS;
|
|
55
|
+
private constructor();
|
|
56
|
+
get total(): number;
|
|
57
|
+
get entry(): BundleEntry[];
|
|
58
|
+
toObject(): Bundle;
|
|
59
|
+
/**
|
|
60
|
+
* Strip non-clinical metadata from a FHIR resource to reduce noise for LLM consumption.
|
|
61
|
+
* Removes: meta, extension, modifierExtension, text
|
|
62
|
+
* Returns an immutable copy without mutating the original.
|
|
63
|
+
*/
|
|
64
|
+
static stripNonClinicalData<T extends Resource>(resource: T): T;
|
|
65
|
+
/**
|
|
66
|
+
* Create a new FhirBundleSdk instance (async for backwards compatibility)
|
|
67
|
+
* FR-1.2: Validate bundle resourceType
|
|
68
|
+
*/
|
|
69
|
+
static create(bundle: Bundle): Promise<FhirBundleSdk>;
|
|
70
|
+
/**
|
|
71
|
+
* Create a new FhirBundleSdk instance synchronously
|
|
72
|
+
* FR-1.2: Validate bundle resourceType
|
|
73
|
+
*/
|
|
74
|
+
static createSync(bundle: Bundle): FhirBundleSdk;
|
|
75
|
+
/**
|
|
76
|
+
* Create a smart resource with reference resolution methods
|
|
77
|
+
* FR-5.1: Resources returned by SDK have additional getter methods for each Reference field
|
|
78
|
+
* FR-5.7: Reference resolution operates in O(1) time complexity per reference
|
|
79
|
+
* FR-5.8: Original reference fields remain unchanged
|
|
80
|
+
*/
|
|
81
|
+
private createSmartResource;
|
|
82
|
+
/**
|
|
83
|
+
* FR-2.1: Validate all references in the bundle
|
|
84
|
+
* FR-2.2: Identifies references by Resource/id pattern and fullUrl references
|
|
85
|
+
* FR-2.3: Handles both relative and absolute references
|
|
86
|
+
* FR-2.4: Returns validation result with broken reference details
|
|
87
|
+
*/
|
|
88
|
+
lookForBrokenReferences(): ValidationResult;
|
|
89
|
+
/**
|
|
90
|
+
* FR-3.1: Get resource by ID with type parameter support
|
|
91
|
+
* FR-3.2: Method searches both resource.id and entry.fullUrl for matches
|
|
92
|
+
* FR-3.4: Method returns undefined if resource not found
|
|
93
|
+
* FR-3.5: Lookup operates in O(1) time complexity
|
|
94
|
+
* FR-5.1: Returns smart resource with reference resolution methods
|
|
95
|
+
*/
|
|
96
|
+
getResourceById<T extends Resource>(id: string): Smart<T> | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Generic helper method to get a resource by ID with type validation
|
|
99
|
+
*/
|
|
100
|
+
private getResourceByIdAndType;
|
|
101
|
+
getPatientById: (id: string) => Smart<Patient> | undefined;
|
|
102
|
+
getObservationById: (id: string) => Smart<Observation> | undefined;
|
|
103
|
+
getEncounterById: (id: string) => Smart<Encounter> | undefined;
|
|
104
|
+
getAllergyIntoleranceById: (id: string) => Smart<AllergyIntolerance> | undefined;
|
|
105
|
+
getConditionById: (id: string) => Smart<Condition> | undefined;
|
|
106
|
+
getOrganizationById: (id: string) => Smart<Organization> | undefined;
|
|
107
|
+
getLocationById: (id: string) => Smart<Location> | undefined;
|
|
108
|
+
getPractitionerById: (id: string) => Smart<Practitioner> | undefined;
|
|
109
|
+
getDiagnosticReportById: (id: string) => Smart<DiagnosticReport> | undefined;
|
|
110
|
+
getCompositionById: (id: string) => Smart<Composition> | undefined;
|
|
111
|
+
getCoverageById: (id: string) => Smart<Coverage> | undefined;
|
|
112
|
+
getDocumentReferenceById: (id: string) => Smart<DocumentReference> | undefined;
|
|
113
|
+
getImmunizationById: (id: string) => Smart<Immunization> | undefined;
|
|
114
|
+
getMedicationById: (id: string) => Smart<Medication> | undefined;
|
|
115
|
+
getMedicationRequestById: (id: string) => Smart<MedicationRequest> | undefined;
|
|
116
|
+
getProcedureById: (id: string) => Smart<Procedure> | undefined;
|
|
117
|
+
getFamilyMemberHistoryById: (id: string) => Smart<FamilyMemberHistory> | undefined;
|
|
118
|
+
getMedicationAdministrationById: (id: string) => Smart<MedicationAdministration> | undefined;
|
|
119
|
+
getMedicationDispenseById: (id: string) => Smart<MedicationDispense> | undefined;
|
|
120
|
+
getMedicationStatementById: (id: string) => Smart<MedicationStatement> | undefined;
|
|
121
|
+
getRelatedPersonById: (id: string) => Smart<RelatedPerson> | undefined;
|
|
122
|
+
getRiskAssessmentById: (id: string) => Smart<RiskAssessment> | undefined;
|
|
123
|
+
getServiceRequestById: (id: string) => Smart<ServiceRequest> | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Generic helper method to get all resources of a specific type
|
|
126
|
+
* FR-10.1: Returns references to cached objects, not copies
|
|
127
|
+
*/
|
|
128
|
+
private getResourcesByType;
|
|
129
|
+
getPatients: () => Smart<Patient>[];
|
|
130
|
+
getObservations: () => Smart<Observation>[];
|
|
131
|
+
getEncounters: () => Smart<Encounter>[];
|
|
132
|
+
getPractitioners: () => Smart<Practitioner>[];
|
|
133
|
+
getDiagnosticReports: () => Smart<DiagnosticReport>[];
|
|
134
|
+
getAllergyIntolerances: () => Smart<AllergyIntolerance>[];
|
|
135
|
+
getConditions: () => Smart<Condition>[];
|
|
136
|
+
getOrganizations: () => Smart<Organization>[];
|
|
137
|
+
getLocations: () => Smart<Location>[];
|
|
138
|
+
getCompositions: () => Smart<Composition>[];
|
|
139
|
+
getCoverages: () => Smart<Coverage>[];
|
|
140
|
+
getDocumentReferences: () => Smart<DocumentReference>[];
|
|
141
|
+
getImmunizations: () => Smart<Immunization>[];
|
|
142
|
+
getMedications: () => Smart<Medication>[];
|
|
143
|
+
getMedicationRequests: () => Smart<MedicationRequest>[];
|
|
144
|
+
getProcedures: () => Smart<Procedure>[];
|
|
145
|
+
getFamilyMemberHistories: () => Smart<FamilyMemberHistory>[];
|
|
146
|
+
getMedicationAdministrations: () => Smart<MedicationAdministration>[];
|
|
147
|
+
getMedicationDispenses: () => Smart<MedicationDispense>[];
|
|
148
|
+
getMedicationStatements: () => Smart<MedicationStatement>[];
|
|
149
|
+
getRelatedPersons: () => Smart<RelatedPerson>[];
|
|
150
|
+
getRiskAssessments: () => Smart<RiskAssessment>[];
|
|
151
|
+
getServiceRequests: () => Smart<ServiceRequest>[];
|
|
152
|
+
/**
|
|
153
|
+
* FR-6.1: Export subset of resources by their IDs
|
|
154
|
+
* FR-6.4: Exported bundles maintain original bundle metadata but update total count
|
|
155
|
+
* FR-6.5: Exported bundles include only resources that exist in the original bundle
|
|
156
|
+
* FR-6.6: Exported bundles preserve original entry.fullUrl values
|
|
157
|
+
*/
|
|
158
|
+
exportSubset(resourceIds: string[]): Bundle;
|
|
159
|
+
/**
|
|
160
|
+
* FR-6.2: Export all resources of a specific type
|
|
161
|
+
* FR-6.4: Exported bundles maintain original bundle metadata but update total count
|
|
162
|
+
* FR-6.6: Exported bundles preserve original entry.fullUrl values
|
|
163
|
+
*/
|
|
164
|
+
exportByType(resourceType: string): Bundle;
|
|
165
|
+
/**
|
|
166
|
+
* FR-6.3: Export all resources of specified types
|
|
167
|
+
* FR-6.4: Exported bundles maintain original bundle metadata but update total count
|
|
168
|
+
* FR-6.6: Exported bundles preserve original entry.fullUrl values
|
|
169
|
+
*/
|
|
170
|
+
exportByTypes(resourceTypes: string[]): Bundle;
|
|
171
|
+
/**
|
|
172
|
+
* Concatenate entries from another FhirBundleSdk with this bundle
|
|
173
|
+
* Returns a new bundle with combined entries while preserving original metadata
|
|
174
|
+
*/
|
|
175
|
+
concatEntries(otherSdk: FhirBundleSdk): Promise<FhirBundleSdk>;
|
|
176
|
+
/**
|
|
177
|
+
* Diff this bundle with another FHIR Bundle by comparing resource ids.
|
|
178
|
+
* Returns three FhirBundleSdk instances: common, baseOnly, parameterOnly.
|
|
179
|
+
*/
|
|
180
|
+
diff(other: Bundle): Promise<BundleDiffResult>;
|
|
181
|
+
/**
|
|
182
|
+
* Diff this bundle with another FhirBundleSdk by comparing resource ids.
|
|
183
|
+
* Returns three FhirBundleSdk instances: common, baseOnly, parameterOnly.
|
|
184
|
+
*/
|
|
185
|
+
diff(other: FhirBundleSdk): Promise<BundleDiffResult>;
|
|
186
|
+
/**
|
|
187
|
+
* Walk references from a starting resource using BFS traversal.
|
|
188
|
+
* Discovers all reachable resources up to maxDepth levels.
|
|
189
|
+
*
|
|
190
|
+
* @param startResource - The smart resource to start traversal from
|
|
191
|
+
* @param options - Walk options including maxDepth and includeStartResource
|
|
192
|
+
* @returns WalkResult containing all discovered resources organized by depth
|
|
193
|
+
*/
|
|
194
|
+
walkReferences<T extends Resource>(startResource: Smart<T>, options?: WalkOptions): WalkResult<T>;
|
|
195
|
+
/**
|
|
196
|
+
* Generate LLM-friendly context from a starting resource and its related resources.
|
|
197
|
+
* Uses BFS to discover related resources, strips non-clinical data, and formats output.
|
|
198
|
+
*
|
|
199
|
+
* @param startResource - The smart resource to start traversal from
|
|
200
|
+
* @param options - Options for depth, inclusion, and format
|
|
201
|
+
* @returns Formatted string suitable for LLM context
|
|
202
|
+
*/
|
|
203
|
+
generateLLMContext<T extends Resource>(startResource: Smart<T>, options?: LLMContextOptions): string;
|
|
204
|
+
/**
|
|
205
|
+
* Get all resources that reference a given resource ID (reverse reference lookup).
|
|
206
|
+
* Operates in O(1) time complexity.
|
|
207
|
+
*
|
|
208
|
+
* @param targetId - The ID of the resource to find references to
|
|
209
|
+
* @param options - Optional filters for resourceType and referenceField
|
|
210
|
+
* @returns Array of smart resources that reference the target resource
|
|
211
|
+
*/
|
|
212
|
+
getResourcesReferencingId<T extends Resource = Resource>(targetId: string, options?: ReverseReferenceOptions): Smart<T>[];
|
|
213
|
+
/**
|
|
214
|
+
* Search for resources by date range using interval tree.
|
|
215
|
+
* Operates in O(log n + k) time complexity, where k is the number of matching intervals.
|
|
216
|
+
*
|
|
217
|
+
* @param options - Search options including date range and optional filters
|
|
218
|
+
* @returns Array of smart resources that match the date range criteria
|
|
219
|
+
*/
|
|
220
|
+
searchByDateRange<T extends Resource = Resource>(options: DateRangeSearchOptions): Smart<T>[];
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=fhir-bundle-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fhir-bundle-sdk.d.ts","sourceRoot":"","sources":["../src/fhir-bundle-sdk.ts"],"names":[],"mappings":"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"}
|