fhir-persistence 0.6.0 → 0.7.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/dist/index.d.ts CHANGED
@@ -331,6 +331,14 @@ declare interface BundleLink {
331
331
  url: string;
332
332
  }
333
333
 
334
+ export declare interface CachedExpansion {
335
+ valuesetUrl: string;
336
+ version: string;
337
+ expandedAt: string;
338
+ codeCount: number;
339
+ expansionJson: string;
340
+ }
341
+
334
342
  /**
335
343
  * StructureDefinition Registry
336
344
  *
@@ -425,6 +433,34 @@ export declare interface ColumnSchema {
425
433
  */
426
434
  export declare function compareSchemas(oldSets: ResourceTableSet[], newSets: ResourceTableSet[]): SchemaDelta[];
427
435
 
436
+ export declare interface ConceptHierarchyEntry {
437
+ id: string;
438
+ codeSystemUrl: string;
439
+ codeSystemVersion?: string;
440
+ code: string;
441
+ display?: string;
442
+ parentCode?: string;
443
+ level: number;
444
+ }
445
+
446
+ export declare class ConceptHierarchyRepo {
447
+ private readonly adapter;
448
+ private readonly dialect;
449
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
450
+ ensureTable(): Promise<void>;
451
+ /** Batch insert hierarchical concept entries. */
452
+ batchInsert(entries: ConceptHierarchyEntry[]): Promise<number>;
453
+ /** Get all concepts for a CodeSystem (tree order by level). */
454
+ getTree(codeSystemUrl: string): Promise<ConceptHierarchyEntry[]>;
455
+ /** Get direct children of a concept. */
456
+ getChildren(codeSystemUrl: string, parentCode: string): Promise<ConceptHierarchyEntry[]>;
457
+ /** Lookup a single concept by code. */
458
+ lookup(codeSystemUrl: string, code: string): Promise<ConceptHierarchyEntry | undefined>;
459
+ /** Remove all concepts for a CodeSystem. */
460
+ removeByCodeSystem(codeSystemUrl: string): Promise<void>;
461
+ private mapRow;
462
+ }
463
+
428
464
  /**
429
465
  * Definition of a PostgreSQL table constraint.
430
466
  */
@@ -538,6 +574,36 @@ export declare const DELETED_SCHEMA_VERSION = -1;
538
574
 
539
575
  export declare type DeltaKind = 'ADD_TABLE' | 'DROP_TABLE' | 'ADD_COLUMN' | 'DROP_COLUMN' | 'ALTER_COLUMN' | 'ADD_INDEX' | 'DROP_INDEX' | 'REINDEX';
540
576
 
577
+ export declare interface ElementIndexEntry {
578
+ id: string;
579
+ structureId: string;
580
+ path: string;
581
+ min?: number;
582
+ max?: string;
583
+ typeCodes?: string[];
584
+ isSlice?: boolean;
585
+ sliceName?: string;
586
+ isExtension?: boolean;
587
+ bindingValueSet?: string;
588
+ mustSupport?: boolean;
589
+ }
590
+
591
+ export declare class ElementIndexRepo {
592
+ private readonly adapter;
593
+ private readonly dialect;
594
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
595
+ ensureTable(): Promise<void>;
596
+ /** Batch insert element index entries for a StructureDefinition. */
597
+ batchInsert(structureId: string, elements: Omit<ElementIndexEntry, 'structureId'>[]): Promise<number>;
598
+ /** Get all elements for a StructureDefinition. */
599
+ getByStructureId(structureId: string): Promise<ElementIndexEntry[]>;
600
+ /** Search elements by path pattern (LIKE). */
601
+ searchByPath(pathPattern: string): Promise<ElementIndexEntry[]>;
602
+ /** Remove all element indexes for a StructureDefinition. */
603
+ removeByStructureId(structureId: string): Promise<void>;
604
+ private mapRow;
605
+ }
606
+
541
607
  /**
542
608
  * Eviction policy for the cache.
543
609
  *
@@ -560,6 +626,21 @@ export declare function executeSearch(adapter: StorageAdapter, request: SearchRe
560
626
  dialect?: SqlDialect;
561
627
  }): Promise<SearchResult_2>;
562
628
 
629
+ export declare class ExpansionCacheRepo {
630
+ private readonly adapter;
631
+ private readonly dialect;
632
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
633
+ ensureTable(): Promise<void>;
634
+ /** Write or update an expansion cache entry. */
635
+ upsert(url: string, version: string, expansionJson: string, codeCount: number): Promise<void>;
636
+ /** Get a cached expansion by URL and version. */
637
+ get(url: string, version: string): Promise<CachedExpansion | undefined>;
638
+ /** Invalidate a specific expansion cache entry. */
639
+ invalidate(url: string, version: string): Promise<void>;
640
+ /** Clear all expansion caches. */
641
+ clear(): Promise<void>;
642
+ }
643
+
563
644
  /**
564
645
  * A reference extracted from a FHIR resource.
565
646
  */
@@ -607,6 +688,14 @@ export declare function extractPropertyPath(expression: string, resourceType: st
607
688
  */
608
689
  export declare function extractReferencesV2(resource: FhirResource, impls: SearchParameterImpl[]): ReferenceRowV2[];
609
690
 
691
+ /** A minimal FHIR Bundle shape for IG import. */
692
+ declare interface FhirBundle {
693
+ resourceType: 'Bundle';
694
+ entry?: Array<{
695
+ resource?: Record<string, unknown>;
696
+ }>;
697
+ }
698
+
610
699
  /**
611
700
  * Bridges a fhir-definition DefinitionRegistry into our DefinitionProvider.
612
701
  *
@@ -1055,6 +1144,57 @@ export declare interface HistoryTableSchema {
1055
1144
  indexes: IndexSchema[];
1056
1145
  }
1057
1146
 
1147
+ export declare interface IGImportOptions {
1148
+ /** Extract element index rows from a StructureDefinition (from fhir-runtime). */
1149
+ extractElementIndex?: (sd: Record<string, unknown>) => Omit<ElementIndexEntry, 'structureId'>[];
1150
+ /** Extract SD dependencies (from fhir-runtime). */
1151
+ extractDependencies?: (sd: Record<string, unknown>) => string[];
1152
+ /** Flatten concept hierarchy from a CodeSystem (from fhir-runtime). */
1153
+ flattenConcepts?: (cs: Record<string, unknown>) => ConceptHierarchyEntry[];
1154
+ }
1155
+
1156
+ export declare class IGImportOrchestrator {
1157
+ private readonly resourceMapRepo;
1158
+ private readonly sdIndexRepo;
1159
+ private readonly elementIndexRepo;
1160
+ private readonly expansionCacheRepo;
1161
+ private readonly conceptRepo;
1162
+ private readonly spIndexRepo;
1163
+ private readonly opts;
1164
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect, options?: IGImportOptions);
1165
+ /** Ensure all conformance tables exist. */
1166
+ ensureAllTables(): Promise<void>;
1167
+ /** Execute a complete IG import from a FHIR Bundle. */
1168
+ importIG(igId: string, bundle: FhirBundle): Promise<IGImportResult>;
1169
+ /** Get individual repos for direct access. */
1170
+ get repos(): {
1171
+ resourceMap: IGResourceMapRepo;
1172
+ sdIndex: SDIndexRepo;
1173
+ elementIndex: ElementIndexRepo;
1174
+ expansionCache: ExpansionCacheRepo;
1175
+ conceptHierarchy: ConceptHierarchyRepo;
1176
+ searchParamIndex: SearchParamIndexRepo;
1177
+ };
1178
+ }
1179
+
1180
+ export declare interface IGImportResult {
1181
+ igId: string;
1182
+ resourceCount: number;
1183
+ sdIndexCount: number;
1184
+ elementIndexCount: number;
1185
+ conceptCount: number;
1186
+ spIndexCount: number;
1187
+ errors: string[];
1188
+ }
1189
+
1190
+ export declare interface IGIndex {
1191
+ profiles: IGResourceMapEntry[];
1192
+ extensions: IGResourceMapEntry[];
1193
+ valueSets: IGResourceMapEntry[];
1194
+ codeSystems: IGResourceMapEntry[];
1195
+ searchParameters: IGResourceMapEntry[];
1196
+ }
1197
+
1058
1198
  declare type IGInitAction = 'new' | 'upgrade' | 'consistent';
1059
1199
 
1060
1200
  declare interface IGInitResult {
@@ -1100,6 +1240,30 @@ export declare class IGPersistenceManager {
1100
1240
  initialize(input: IGPackageInput): Promise<IGInitResult>;
1101
1241
  }
1102
1242
 
1243
+ export declare interface IGResourceMapEntry {
1244
+ igId: string;
1245
+ resourceType: string;
1246
+ resourceId: string;
1247
+ resourceUrl?: string;
1248
+ resourceName?: string;
1249
+ baseType?: string;
1250
+ }
1251
+
1252
+ export declare class IGResourceMapRepo {
1253
+ private readonly adapter;
1254
+ private readonly dialect;
1255
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
1256
+ ensureTable(): Promise<void>;
1257
+ /** Batch insert resource map entries for an IG. */
1258
+ batchInsert(igId: string, entries: Omit<IGResourceMapEntry, 'igId'>[]): Promise<number>;
1259
+ /** Get grouped IG index. */
1260
+ getIGIndex(igId: string): Promise<IGIndex>;
1261
+ /** Get resources of a specific type within an IG. */
1262
+ getByType(igId: string, resourceType: string): Promise<IGResourceMapEntry[]>;
1263
+ /** Remove all resource mappings for an IG. */
1264
+ removeIG(igId: string): Promise<void>;
1265
+ }
1266
+
1103
1267
  /**
1104
1268
  * A parsed `_include` or `_revinclude` target.
1105
1269
  *
@@ -2288,6 +2452,32 @@ declare interface SchemaVersionRecord {
2288
2452
  appliedAt: string;
2289
2453
  }
2290
2454
 
2455
+ export declare interface SDIndexEntry {
2456
+ id: string;
2457
+ url?: string;
2458
+ version?: string;
2459
+ type?: string;
2460
+ kind?: string;
2461
+ baseDefinition?: string;
2462
+ derivation?: string;
2463
+ snapshotHash?: string;
2464
+ }
2465
+
2466
+ export declare class SDIndexRepo {
2467
+ private readonly adapter;
2468
+ private readonly dialect;
2469
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
2470
+ ensureTable(): Promise<void>;
2471
+ upsert(entry: SDIndexEntry): Promise<void>;
2472
+ batchUpsert(entries: SDIndexEntry[]): Promise<number>;
2473
+ getById(id: string): Promise<SDIndexEntry | undefined>;
2474
+ getByUrl(url: string): Promise<SDIndexEntry[]>;
2475
+ getByType(type: string): Promise<SDIndexEntry[]>;
2476
+ getByBaseDefinition(baseUrl: string): Promise<SDIndexEntry[]>;
2477
+ remove(id: string): Promise<void>;
2478
+ private mapRow;
2479
+ }
2480
+
2291
2481
  /**
2292
2482
  * All valid search prefixes.
2293
2483
  */
@@ -2563,6 +2753,30 @@ export declare interface SearchParameterResource {
2563
2753
  target?: string[];
2564
2754
  }
2565
2755
 
2756
+ export declare interface SearchParamIndexEntry {
2757
+ id: string;
2758
+ igId: string;
2759
+ url?: string;
2760
+ code: string;
2761
+ type: string;
2762
+ base: string[];
2763
+ expression?: string;
2764
+ }
2765
+
2766
+ export declare class SearchParamIndexRepo {
2767
+ private readonly adapter;
2768
+ private readonly dialect;
2769
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
2770
+ ensureTable(): Promise<void>;
2771
+ upsert(entry: SearchParamIndexEntry): Promise<void>;
2772
+ batchUpsert(entries: SearchParamIndexEntry[]): Promise<number>;
2773
+ getByIG(igId: string): Promise<SearchParamIndexEntry[]>;
2774
+ getByCode(code: string): Promise<SearchParamIndexEntry[]>;
2775
+ remove(id: string): Promise<void>;
2776
+ removeByIG(igId: string): Promise<void>;
2777
+ private mapRow;
2778
+ }
2779
+
2566
2780
  /**
2567
2781
  * Metadata for a search parameter, preserved for SchemaDiff.
2568
2782
  */
@@ -0,0 +1,38 @@
1
+ /**
2
+ * CodeSystem Concept Hierarchy Repository (P5)
3
+ *
4
+ * Manages the `code_system_concept` table for hierarchical concept
5
+ * storage. Supports parent-child relationships, tree queries,
6
+ * and CodeSystem-level cleanup.
7
+ *
8
+ * @module fhir-persistence/conformance
9
+ */
10
+ import type { StorageAdapter } from '../db/adapter.js';
11
+ import type { DDLDialect } from '../schema/ddl-generator.js';
12
+ export interface ConceptHierarchyEntry {
13
+ id: string;
14
+ codeSystemUrl: string;
15
+ codeSystemVersion?: string;
16
+ code: string;
17
+ display?: string;
18
+ parentCode?: string;
19
+ level: number;
20
+ }
21
+ export declare class ConceptHierarchyRepo {
22
+ private readonly adapter;
23
+ private readonly dialect;
24
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
25
+ ensureTable(): Promise<void>;
26
+ /** Batch insert hierarchical concept entries. */
27
+ batchInsert(entries: ConceptHierarchyEntry[]): Promise<number>;
28
+ /** Get all concepts for a CodeSystem (tree order by level). */
29
+ getTree(codeSystemUrl: string): Promise<ConceptHierarchyEntry[]>;
30
+ /** Get direct children of a concept. */
31
+ getChildren(codeSystemUrl: string, parentCode: string): Promise<ConceptHierarchyEntry[]>;
32
+ /** Lookup a single concept by code. */
33
+ lookup(codeSystemUrl: string, code: string): Promise<ConceptHierarchyEntry | undefined>;
34
+ /** Remove all concepts for a CodeSystem. */
35
+ removeByCodeSystem(codeSystemUrl: string): Promise<void>;
36
+ private mapRow;
37
+ }
38
+ //# sourceMappingURL=concept-hierarchy-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concept-hierarchy-repo.d.ts","sourceRoot":"","sources":["../../../src/conformance/concept-hierarchy-repo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AA4BD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB;IAG3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,iDAAiD;IAC3C,WAAW,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBpE,+DAA+D;IACzD,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAStE,wCAAwC;IAClC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAS9F,uCAAuC;IACjC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAS7F,4CAA4C;IACtC,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,OAAO,CAAC,MAAM;CAWf"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Element Index Repository (P3)
3
+ *
4
+ * Manages the `structure_element_index` table for fast element-level
5
+ * queries across StructureDefinitions. Supports batch insertion,
6
+ * path-based search, and SD-level cleanup.
7
+ *
8
+ * @module fhir-persistence/conformance
9
+ */
10
+ import type { StorageAdapter } from '../db/adapter.js';
11
+ import type { DDLDialect } from '../schema/ddl-generator.js';
12
+ export interface ElementIndexEntry {
13
+ id: string;
14
+ structureId: string;
15
+ path: string;
16
+ min?: number;
17
+ max?: string;
18
+ typeCodes?: string[];
19
+ isSlice?: boolean;
20
+ sliceName?: string;
21
+ isExtension?: boolean;
22
+ bindingValueSet?: string;
23
+ mustSupport?: boolean;
24
+ }
25
+ export declare class ElementIndexRepo {
26
+ private readonly adapter;
27
+ private readonly dialect;
28
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
29
+ ensureTable(): Promise<void>;
30
+ /** Batch insert element index entries for a StructureDefinition. */
31
+ batchInsert(structureId: string, elements: Omit<ElementIndexEntry, 'structureId'>[]): Promise<number>;
32
+ /** Get all elements for a StructureDefinition. */
33
+ getByStructureId(structureId: string): Promise<ElementIndexEntry[]>;
34
+ /** Search elements by path pattern (LIKE). */
35
+ searchByPath(pathPattern: string): Promise<ElementIndexEntry[]>;
36
+ /** Remove all element indexes for a StructureDefinition. */
37
+ removeByStructureId(structureId: string): Promise<void>;
38
+ private mapRow;
39
+ }
40
+ //# sourceMappingURL=element-index-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-index-repo.d.ts","sourceRoot":"","sources":["../../../src/conformance/element-index-repo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmDD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB;IAG3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,oEAAoE;IAC9D,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB3G,kDAAkD;IAC5C,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IASzE,8CAA8C;IACxC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IASrE,4DAA4D;IACtD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,OAAO,CAAC,MAAM;CAkBf"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ValueSet Expansion Cache Repository (P4)
3
+ *
4
+ * Manages the `value_set_expansion` table for caching ValueSet expansion
5
+ * results. Supports upsert, lookup, invalidation, and bulk clear.
6
+ *
7
+ * @module fhir-persistence/conformance
8
+ */
9
+ import type { StorageAdapter } from '../db/adapter.js';
10
+ import type { DDLDialect } from '../schema/ddl-generator.js';
11
+ export interface CachedExpansion {
12
+ valuesetUrl: string;
13
+ version: string;
14
+ expandedAt: string;
15
+ codeCount: number;
16
+ expansionJson: string;
17
+ }
18
+ export declare class ExpansionCacheRepo {
19
+ private readonly adapter;
20
+ private readonly dialect;
21
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
22
+ ensureTable(): Promise<void>;
23
+ /** Write or update an expansion cache entry. */
24
+ upsert(url: string, version: string, expansionJson: string, codeCount: number): Promise<void>;
25
+ /** Get a cached expansion by URL and version. */
26
+ get(url: string, version: string): Promise<CachedExpansion | undefined>;
27
+ /** Invalidate a specific expansion cache entry. */
28
+ invalidate(url: string, version: string): Promise<void>;
29
+ /** Clear all expansion caches. */
30
+ clear(): Promise<void>;
31
+ }
32
+ //# sourceMappingURL=expansion-cache-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expansion-cache-repo.d.ts","sourceRoot":"","sources":["../../../src/conformance/expansion-cache-repo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AA6BD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB;IAG3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,gDAAgD;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnG,iDAAiD;IAC3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAmB7E,mDAAmD;IAC7C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D,kCAAkC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * IG Import Orchestrator (B2)
3
+ *
4
+ * Coordinates all conformance repositories to execute a complete
5
+ * IG import pipeline. Accepts optional fhir-runtime extraction
6
+ * functions for element indexing, SD dependency extraction, and
7
+ * concept hierarchy flattening.
8
+ *
9
+ * @module fhir-persistence/conformance
10
+ */
11
+ import type { StorageAdapter } from '../db/adapter.js';
12
+ import type { DDLDialect } from '../schema/ddl-generator.js';
13
+ import { IGResourceMapRepo } from './ig-resource-map-repo.js';
14
+ import { SDIndexRepo } from './sd-index-repo.js';
15
+ import { ElementIndexRepo } from './element-index-repo.js';
16
+ import type { ElementIndexEntry } from './element-index-repo.js';
17
+ import { ExpansionCacheRepo } from './expansion-cache-repo.js';
18
+ import { ConceptHierarchyRepo } from './concept-hierarchy-repo.js';
19
+ import type { ConceptHierarchyEntry } from './concept-hierarchy-repo.js';
20
+ import { SearchParamIndexRepo } from './search-param-index-repo.js';
21
+ /** A minimal FHIR Bundle shape for IG import. */
22
+ interface FhirBundle {
23
+ resourceType: 'Bundle';
24
+ entry?: Array<{
25
+ resource?: Record<string, unknown>;
26
+ }>;
27
+ }
28
+ export interface IGImportOptions {
29
+ /** Extract element index rows from a StructureDefinition (from fhir-runtime). */
30
+ extractElementIndex?: (sd: Record<string, unknown>) => Omit<ElementIndexEntry, 'structureId'>[];
31
+ /** Extract SD dependencies (from fhir-runtime). */
32
+ extractDependencies?: (sd: Record<string, unknown>) => string[];
33
+ /** Flatten concept hierarchy from a CodeSystem (from fhir-runtime). */
34
+ flattenConcepts?: (cs: Record<string, unknown>) => ConceptHierarchyEntry[];
35
+ }
36
+ export interface IGImportResult {
37
+ igId: string;
38
+ resourceCount: number;
39
+ sdIndexCount: number;
40
+ elementIndexCount: number;
41
+ conceptCount: number;
42
+ spIndexCount: number;
43
+ errors: string[];
44
+ }
45
+ export declare class IGImportOrchestrator {
46
+ private readonly resourceMapRepo;
47
+ private readonly sdIndexRepo;
48
+ private readonly elementIndexRepo;
49
+ private readonly expansionCacheRepo;
50
+ private readonly conceptRepo;
51
+ private readonly spIndexRepo;
52
+ private readonly opts;
53
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect, options?: IGImportOptions);
54
+ /** Ensure all conformance tables exist. */
55
+ ensureAllTables(): Promise<void>;
56
+ /** Execute a complete IG import from a FHIR Bundle. */
57
+ importIG(igId: string, bundle: FhirBundle): Promise<IGImportResult>;
58
+ /** Get individual repos for direct access. */
59
+ get repos(): {
60
+ resourceMap: IGResourceMapRepo;
61
+ sdIndex: SDIndexRepo;
62
+ elementIndex: ElementIndexRepo;
63
+ expansionCache: ExpansionCacheRepo;
64
+ conceptHierarchy: ConceptHierarchyRepo;
65
+ searchParamIndex: SearchParamIndexRepo;
66
+ };
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=ig-import-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ig-import-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/conformance/ig-import-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAOpE,iDAAiD;AACjD,UAAU,UAAU;IAClB,YAAY,EAAE,QAAQ,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,CAAC;IAChG,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAChE,uEAAuE;IACvE,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,qBAAqB,EAAE,CAAC;CAC5E;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;gBAGrC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB,EAC9B,OAAO,CAAC,EAAE,eAAe;IAW3B,2CAA2C;IACrC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAStC,uDAAuD;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAkHzE,8CAA8C;IAC9C,IAAI,KAAK;;;;;;;MASR;CACF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * IG Resource Map Repository (P1)
3
+ *
4
+ * Manages the `ig_resource_map` table which tracks which FHIR resources
5
+ * belong to which Implementation Guide. Supports batch insertion,
6
+ * grouped queries, and IG-level cleanup.
7
+ *
8
+ * @module fhir-persistence/conformance
9
+ */
10
+ import type { StorageAdapter } from '../db/adapter.js';
11
+ import type { DDLDialect } from '../schema/ddl-generator.js';
12
+ export interface IGResourceMapEntry {
13
+ igId: string;
14
+ resourceType: string;
15
+ resourceId: string;
16
+ resourceUrl?: string;
17
+ resourceName?: string;
18
+ baseType?: string;
19
+ }
20
+ export interface IGIndex {
21
+ profiles: IGResourceMapEntry[];
22
+ extensions: IGResourceMapEntry[];
23
+ valueSets: IGResourceMapEntry[];
24
+ codeSystems: IGResourceMapEntry[];
25
+ searchParameters: IGResourceMapEntry[];
26
+ }
27
+ export declare class IGResourceMapRepo {
28
+ private readonly adapter;
29
+ private readonly dialect;
30
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
31
+ ensureTable(): Promise<void>;
32
+ /** Batch insert resource map entries for an IG. */
33
+ batchInsert(igId: string, entries: Omit<IGResourceMapEntry, 'igId'>[]): Promise<number>;
34
+ /** Get grouped IG index. */
35
+ getIGIndex(igId: string): Promise<IGIndex>;
36
+ /** Get resources of a specific type within an IG. */
37
+ getByType(igId: string, resourceType: string): Promise<IGResourceMapEntry[]>;
38
+ /** Remove all resource mappings for an IG. */
39
+ removeIG(igId: string): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=ig-resource-map-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ig-resource-map-repo.d.ts","sourceRoot":"","sources":["../../../src/conformance/ig-resource-map-repo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;CACxC;AA2BD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB;IAG3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC,mDAAmD;IAC7C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7F,4BAA4B;IACtB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDhD,qDAAqD;IAC/C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmBlF,8CAA8C;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5C"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Conformance Module — Barrel Export
3
+ *
4
+ * Provides IG-related conformance resource storage:
5
+ * - IG → Resource mapping (P1)
6
+ * - StructureDefinition index (P2)
7
+ * - Element index (P3)
8
+ * - ValueSet expansion cache (P4)
9
+ * - CodeSystem concept hierarchy (P5)
10
+ * - SearchParameter index (B1)
11
+ * - IG import orchestrator (B2)
12
+ *
13
+ * @module fhir-persistence/conformance
14
+ */
15
+ export { IGResourceMapRepo } from './ig-resource-map-repo.js';
16
+ export type { IGResourceMapEntry, IGIndex } from './ig-resource-map-repo.js';
17
+ export { SDIndexRepo } from './sd-index-repo.js';
18
+ export type { SDIndexEntry } from './sd-index-repo.js';
19
+ export { ElementIndexRepo } from './element-index-repo.js';
20
+ export type { ElementIndexEntry } from './element-index-repo.js';
21
+ export { ExpansionCacheRepo } from './expansion-cache-repo.js';
22
+ export type { CachedExpansion } from './expansion-cache-repo.js';
23
+ export { ConceptHierarchyRepo } from './concept-hierarchy-repo.js';
24
+ export type { ConceptHierarchyEntry } from './concept-hierarchy-repo.js';
25
+ export { SearchParamIndexRepo } from './search-param-index-repo.js';
26
+ export type { SearchParamIndexEntry } from './search-param-index-repo.js';
27
+ export { IGImportOrchestrator } from './ig-import-orchestrator.js';
28
+ export type { IGImportOptions, IGImportResult } from './ig-import-orchestrator.js';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * StructureDefinition Index Repository (P2)
3
+ *
4
+ * Manages the `structure_definition_index` table for fast SD queries
5
+ * by type, kind, base definition, etc.
6
+ *
7
+ * @module fhir-persistence/conformance
8
+ */
9
+ import type { StorageAdapter } from '../db/adapter.js';
10
+ import type { DDLDialect } from '../schema/ddl-generator.js';
11
+ export interface SDIndexEntry {
12
+ id: string;
13
+ url?: string;
14
+ version?: string;
15
+ type?: string;
16
+ kind?: string;
17
+ baseDefinition?: string;
18
+ derivation?: string;
19
+ snapshotHash?: string;
20
+ }
21
+ export declare class SDIndexRepo {
22
+ private readonly adapter;
23
+ private readonly dialect;
24
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
25
+ ensureTable(): Promise<void>;
26
+ upsert(entry: SDIndexEntry): Promise<void>;
27
+ batchUpsert(entries: SDIndexEntry[]): Promise<number>;
28
+ getById(id: string): Promise<SDIndexEntry | undefined>;
29
+ getByUrl(url: string): Promise<SDIndexEntry[]>;
30
+ getByType(type: string): Promise<SDIndexEntry[]>;
31
+ getByBaseDefinition(baseUrl: string): Promise<SDIndexEntry[]>;
32
+ remove(id: string): Promise<void>;
33
+ private mapRow;
34
+ }
35
+ //# sourceMappingURL=sd-index-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-index-repo.d.ts","sourceRoot":"","sources":["../../../src/conformance/sd-index-repo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA6BD,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB;IAG3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1C,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IASrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAatD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAa9C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAahD,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAa7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,OAAO,CAAC,MAAM;CAgBf"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * SearchParameter Index Repository (B1)
3
+ *
4
+ * Manages the `search_parameter_index` table for tracking which
5
+ * SearchParameters are defined within an IG.
6
+ *
7
+ * @module fhir-persistence/conformance
8
+ */
9
+ import type { StorageAdapter } from '../db/adapter.js';
10
+ import type { DDLDialect } from '../schema/ddl-generator.js';
11
+ export interface SearchParamIndexEntry {
12
+ id: string;
13
+ igId: string;
14
+ url?: string;
15
+ code: string;
16
+ type: string;
17
+ base: string[];
18
+ expression?: string;
19
+ }
20
+ export declare class SearchParamIndexRepo {
21
+ private readonly adapter;
22
+ private readonly dialect;
23
+ constructor(adapter: StorageAdapter, dialect?: DDLDialect);
24
+ ensureTable(): Promise<void>;
25
+ upsert(entry: SearchParamIndexEntry): Promise<void>;
26
+ batchUpsert(entries: SearchParamIndexEntry[]): Promise<number>;
27
+ getByIG(igId: string): Promise<SearchParamIndexEntry[]>;
28
+ getByCode(code: string): Promise<SearchParamIndexEntry[]>;
29
+ remove(id: string): Promise<void>;
30
+ removeByIG(igId: string): Promise<void>;
31
+ private mapRow;
32
+ }
33
+ //# sourceMappingURL=search-param-index-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-param-index-repo.d.ts","sourceRoot":"","sources":["../../../src/conformance/search-param-index-repo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,UAAqB;IAG3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD,WAAW,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAS9D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IASvD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IASzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,OAAO,CAAC,MAAM;CAcf"}
@@ -65,4 +65,12 @@ export type { FhirSystemOptions, FhirSystemReady } from './startup/fhir-system.j
65
65
  export { FhirDefinitionBridge } from './providers/fhir-definition-provider.js';
66
66
  export { FhirRuntimeProvider, createFhirRuntimeProvider } from './providers/fhir-runtime-provider.js';
67
67
  export type { FhirRuntimeProviderOptions } from './providers/fhir-runtime-provider.js';
68
+ export { IGResourceMapRepo } from './conformance/ig-resource-map-repo.js';
69
+ export { SDIndexRepo } from './conformance/sd-index-repo.js';
70
+ export { ElementIndexRepo } from './conformance/element-index-repo.js';
71
+ export { ExpansionCacheRepo } from './conformance/expansion-cache-repo.js';
72
+ export { ConceptHierarchyRepo } from './conformance/concept-hierarchy-repo.js';
73
+ export { SearchParamIndexRepo } from './conformance/search-param-index-repo.js';
74
+ export { IGImportOrchestrator } from './conformance/ig-import-orchestrator.js';
75
+ export type { IGResourceMapEntry, IGIndex, SDIndexEntry, ElementIndexEntry, CachedExpansion, ConceptHierarchyEntry, SearchParamIndexEntry, IGImportOptions, IGImportResult, } from './conformance/index.js';
68
76
  //# sourceMappingURL=index.d.ts.map