@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.
Files changed (84) hide show
  1. package/README.md +207 -0
  2. package/dist/__tests__/date-range-performance.test.d.ts +2 -0
  3. package/dist/__tests__/date-range-performance.test.d.ts.map +1 -0
  4. package/dist/__tests__/date-range-performance.test.js +218 -0
  5. package/dist/__tests__/date-range-performance.test.js.map +1 -0
  6. package/dist/__tests__/date-range-search.test.d.ts +2 -0
  7. package/dist/__tests__/date-range-search.test.d.ts.map +1 -0
  8. package/dist/__tests__/date-range-search.test.js +215 -0
  9. package/dist/__tests__/date-range-search.test.js.map +1 -0
  10. package/dist/__tests__/fhir-bundle-sdk.test.js +467 -0
  11. package/dist/__tests__/fhir-bundle-sdk.test.js.map +1 -1
  12. package/dist/__tests__/reverse-references.test.d.ts +2 -0
  13. package/dist/__tests__/reverse-references.test.d.ts.map +1 -0
  14. package/dist/__tests__/reverse-references.test.js +241 -0
  15. package/dist/__tests__/reverse-references.test.js.map +1 -0
  16. package/dist/demo-reverse-references.d.ts +7 -0
  17. package/dist/demo-reverse-references.d.ts.map +1 -0
  18. package/dist/demo-reverse-references.js +207 -0
  19. package/dist/demo-reverse-references.js.map +1 -0
  20. package/dist/fhir-bundle-sdk.d.ts +222 -0
  21. package/dist/fhir-bundle-sdk.d.ts.map +1 -0
  22. package/dist/fhir-bundle-sdk.js +527 -0
  23. package/dist/fhir-bundle-sdk.js.map +1 -0
  24. package/dist/index.d.ts +2 -242
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -677
  27. package/dist/index.js.map +1 -1
  28. package/dist/internal/bundle-operations.d.ts +14 -0
  29. package/dist/internal/bundle-operations.d.ts.map +1 -0
  30. package/dist/internal/bundle-operations.js +55 -0
  31. package/dist/internal/bundle-operations.js.map +1 -0
  32. package/dist/internal/date-extraction.d.ts +12 -0
  33. package/dist/internal/date-extraction.d.ts.map +1 -0
  34. package/dist/internal/date-extraction.js +206 -0
  35. package/dist/internal/date-extraction.js.map +1 -0
  36. package/dist/internal/graph-traversal.d.ts +13 -0
  37. package/dist/internal/graph-traversal.d.ts.map +1 -0
  38. package/dist/internal/graph-traversal.js +89 -0
  39. package/dist/internal/graph-traversal.js.map +1 -0
  40. package/dist/internal/indexing.d.ts +17 -0
  41. package/dist/internal/indexing.d.ts.map +1 -0
  42. package/dist/internal/indexing.js +118 -0
  43. package/dist/internal/indexing.js.map +1 -0
  44. package/dist/internal/llm-context.d.ts +39 -0
  45. package/dist/internal/llm-context.d.ts.map +1 -0
  46. package/dist/internal/llm-context.js +188 -0
  47. package/dist/internal/llm-context.js.map +1 -0
  48. package/dist/internal/reference-resolution.d.ts +25 -0
  49. package/dist/internal/reference-resolution.d.ts.map +1 -0
  50. package/dist/internal/reference-resolution.js +133 -0
  51. package/dist/internal/reference-resolution.js.map +1 -0
  52. package/dist/internal/reference-utils.d.ts +26 -0
  53. package/dist/internal/reference-utils.d.ts.map +1 -0
  54. package/dist/internal/reference-utils.js +89 -0
  55. package/dist/internal/reference-utils.js.map +1 -0
  56. package/dist/internal/validation.d.ts +16 -0
  57. package/dist/internal/validation.d.ts.map +1 -0
  58. package/dist/internal/validation.js +45 -0
  59. package/dist/internal/validation.js.map +1 -0
  60. package/dist/types/sdk-types.d.ts +107 -0
  61. package/dist/types/sdk-types.d.ts.map +1 -0
  62. package/dist/types/sdk-types.js +17 -0
  63. package/dist/types/sdk-types.js.map +1 -0
  64. package/dist/types/smart-resources.d.ts +97 -4
  65. package/dist/types/smart-resources.d.ts.map +1 -1
  66. package/dist/types/smart-resources.js +82 -5
  67. package/dist/types/smart-resources.js.map +1 -1
  68. package/dist/utils/interval-tree/index.d.ts +87 -0
  69. package/dist/utils/interval-tree/index.d.ts.map +1 -0
  70. package/dist/utils/interval-tree/index.js +774 -0
  71. package/dist/utils/interval-tree/index.js.map +1 -0
  72. package/dist/utils/interval-tree/shallowequal/arrays.d.ts +3 -0
  73. package/dist/utils/interval-tree/shallowequal/arrays.d.ts.map +1 -0
  74. package/dist/utils/interval-tree/shallowequal/arrays.js +25 -0
  75. package/dist/utils/interval-tree/shallowequal/arrays.js.map +1 -0
  76. package/dist/utils/interval-tree/shallowequal/index.d.ts +6 -0
  77. package/dist/utils/interval-tree/shallowequal/index.d.ts.map +1 -0
  78. package/dist/utils/interval-tree/shallowequal/index.js +28 -0
  79. package/dist/utils/interval-tree/shallowequal/index.js.map +1 -0
  80. package/dist/utils/interval-tree/shallowequal/objects.d.ts +3 -0
  81. package/dist/utils/interval-tree/shallowequal/objects.d.ts.map +1 -0
  82. package/dist/utils/interval-tree/shallowequal/objects.js +28 -0
  83. package/dist/utils/interval-tree/shallowequal/objects.js.map +1 -0
  84. package/package.json +1 -1
@@ -429,5 +429,472 @@ describe("FhirBundleSdk", () => {
429
429
  });
430
430
  });
431
431
  });
432
+ describe("Reference Walking (BFS)", () => {
433
+ describe("Basic single-level traversal", () => {
434
+ it("should walk references from an Observation to related resources", async () => {
435
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
436
+ const observation = sdk.getObservationById("observation-001");
437
+ if (observation === undefined) {
438
+ throw new Error("Observation not found");
439
+ }
440
+ const result = sdk.walkReferences(observation);
441
+ expect(result).toBeDefined();
442
+ expect(result.startResource).toBe(observation);
443
+ expect(result.allResources).toBeDefined();
444
+ expect(Array.isArray(result.allResources)).toBe(true);
445
+ // Should include the observation itself plus referenced resources
446
+ // Observation references: subject (Patient), encounter (Encounter), performer (Practitioner)
447
+ expect(result.allResources.length).toBeGreaterThanOrEqual(4);
448
+ // Check that referenced resources are included
449
+ const resourceIds = result.allResources.map(r => r.id);
450
+ expect(resourceIds).toContain("observation-001"); // start resource
451
+ expect(resourceIds).toContain("patient-123"); // subject
452
+ expect(resourceIds).toContain("encounter-789"); // encounter
453
+ expect(resourceIds).toContain("practitioner-456"); // performer
454
+ });
455
+ it("should organize resources by depth level", async () => {
456
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
457
+ const observation = sdk.getObservationById("observation-001");
458
+ if (observation === undefined) {
459
+ throw new Error("Observation not found");
460
+ }
461
+ const result = sdk.walkReferences(observation);
462
+ expect(result.resourcesByDepth).toBeDefined();
463
+ expect(result.resourcesByDepth instanceof Map).toBe(true);
464
+ // Depth 0 should contain the starting resource
465
+ const depth0 = result.resourcesByDepth.get(0);
466
+ expect(depth0).toBeDefined();
467
+ expect(depth0?.length).toBe(1);
468
+ if (depth0 && depth0[0]) {
469
+ expect(depth0[0].id).toBe("observation-001");
470
+ }
471
+ // Depth 1 should contain directly referenced resources
472
+ const depth1 = result.resourcesByDepth.get(1);
473
+ if (depth1 === undefined) {
474
+ throw new Error("Depth 1 not found");
475
+ }
476
+ expect(depth1.length).toBeGreaterThan(0);
477
+ });
478
+ it("should report the depth reached", async () => {
479
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
480
+ const observation = sdk.getObservationById("observation-001");
481
+ if (observation === undefined) {
482
+ throw new Error("Observation not found");
483
+ }
484
+ const result = sdk.walkReferences(observation);
485
+ expect(result.depthReached).toBeGreaterThanOrEqual(0);
486
+ expect(typeof result.depthReached).toBe("number");
487
+ });
488
+ });
489
+ describe("Multi-level traversal", () => {
490
+ it("should traverse multiple levels from DiagnosticReport", async () => {
491
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
492
+ const diagnosticReport = sdk.getDiagnosticReportById("diagnostic-report-002");
493
+ if (diagnosticReport === undefined) {
494
+ throw new Error("DiagnosticReport not found");
495
+ }
496
+ const result = sdk.walkReferences(diagnosticReport);
497
+ // DiagnosticReport -> Observation (level 1) -> Patient/Encounter/Practitioner (level 2)
498
+ expect(result.depthReached).toBeGreaterThanOrEqual(1);
499
+ const allResourceIds = result.allResources.map(r => r.id);
500
+ expect(allResourceIds).toContain("diagnostic-report-002"); // start
501
+ expect(allResourceIds).toContain("observation-001"); // result reference
502
+ expect(allResourceIds).toContain("patient-123"); // from observation
503
+ });
504
+ });
505
+ describe("Include start resource option", () => {
506
+ it("should include start resource by default", async () => {
507
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
508
+ const observation = sdk.getObservationById("observation-001");
509
+ if (observation === undefined) {
510
+ throw new Error("Observation not found");
511
+ }
512
+ const result = sdk.walkReferences(observation);
513
+ expect(result.allResources.map(r => r.id)).toContain("observation-001");
514
+ });
515
+ it("should exclude start resource when includeStartResource is false", async () => {
516
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
517
+ const observation = sdk.getObservationById("observation-001");
518
+ if (observation === undefined) {
519
+ throw new Error("Observation not found");
520
+ }
521
+ const result = sdk.walkReferences(observation, { includeStartResource: false });
522
+ expect(result.allResources.map(r => r.id)).not.toContain("observation-001");
523
+ // But should still have referenced resources
524
+ expect(result.allResources.length).toBeGreaterThan(0);
525
+ });
526
+ });
527
+ describe("Max depth limiting", () => {
528
+ it("should respect maxDepth of 0 (only start resource)", async () => {
529
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
530
+ const observation = sdk.getObservationById("observation-001");
531
+ if (observation === undefined) {
532
+ throw new Error("Observation not found");
533
+ }
534
+ const result = sdk.walkReferences(observation, { maxDepth: 0 });
535
+ expect(result.depthReached).toBe(0);
536
+ expect(result.allResources.length).toBe(1);
537
+ if (result.allResources[0]) {
538
+ expect(result.allResources[0].id).toBe("observation-001");
539
+ }
540
+ expect(result.resourcesByDepth.size).toBe(1);
541
+ });
542
+ it("should respect maxDepth of 1 (start + direct references)", async () => {
543
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
544
+ const observation = sdk.getObservationById("observation-001");
545
+ if (observation === undefined) {
546
+ throw new Error("Observation not found");
547
+ }
548
+ const result = sdk.walkReferences(observation, { maxDepth: 1 });
549
+ expect(result.depthReached).toBe(1);
550
+ // Should have observation + its direct references (patient, encounter, practitioner)
551
+ expect(result.allResources.length).toBeGreaterThanOrEqual(4);
552
+ expect(result.resourcesByDepth.size).toBeGreaterThanOrEqual(2);
553
+ // Should have depth 0 and depth 1
554
+ expect(result.resourcesByDepth.has(0)).toBe(true);
555
+ expect(result.resourcesByDepth.has(1)).toBe(true);
556
+ // Should not have depth 2
557
+ expect(result.resourcesByDepth.has(2)).toBe(false);
558
+ });
559
+ it("should respect maxDepth of 2 from DiagnosticReport", async () => {
560
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
561
+ const diagnosticReport = sdk.getDiagnosticReportById("diagnostic-report-002");
562
+ if (diagnosticReport === undefined) {
563
+ throw new Error("DiagnosticReport not found");
564
+ }
565
+ const result = sdk.walkReferences(diagnosticReport, { maxDepth: 2 });
566
+ // Note: In validCompleteBundle, DiagnosticReport references form a tightly connected graph
567
+ // where all resources at depth 2 have already been visited at depth 1, so depthReached is 1
568
+ expect(result.depthReached).toBeGreaterThanOrEqual(1);
569
+ expect(result.resourcesByDepth.has(0)).toBe(true); // DiagnosticReport
570
+ expect(result.resourcesByDepth.has(1)).toBe(true); // Observation, Patient, Encounter, Practitioner
571
+ // Depth 2 may or may not exist depending on the reference structure
572
+ expect(result.resourcesByDepth.has(3)).toBe(false); // Should not exist
573
+ // Verify we got all expected resources
574
+ const allResourceIds = result.allResources.map(r => r.id);
575
+ expect(allResourceIds).toContain("diagnostic-report-002");
576
+ expect(allResourceIds).toContain("observation-001");
577
+ expect(allResourceIds).toContain("patient-123");
578
+ });
579
+ it("should handle Infinity maxDepth (default)", async () => {
580
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
581
+ const observation = sdk.getObservationById("observation-001");
582
+ if (observation === undefined) {
583
+ throw new Error("Observation not found");
584
+ }
585
+ const resultWithInfinity = sdk.walkReferences(observation, { maxDepth: Infinity });
586
+ const resultWithoutOption = sdk.walkReferences(observation);
587
+ // Both should traverse all reachable resources
588
+ expect(resultWithInfinity.allResources.length).toBe(resultWithoutOption.allResources.length);
589
+ expect(resultWithInfinity.depthReached).toBe(resultWithoutOption.depthReached);
590
+ });
591
+ });
592
+ describe("Circular reference handling", () => {
593
+ it("should handle circular references without infinite loops", async () => {
594
+ // Create bundle with circular references
595
+ const circularBundle = {
596
+ resourceType: "Bundle",
597
+ type: "collection",
598
+ entry: [
599
+ {
600
+ resource: {
601
+ resourceType: "Organization",
602
+ id: "org-1",
603
+ partOf: { reference: "Organization/org-2" },
604
+ },
605
+ },
606
+ {
607
+ resource: {
608
+ resourceType: "Organization",
609
+ id: "org-2",
610
+ partOf: { reference: "Organization/org-1" },
611
+ },
612
+ },
613
+ ],
614
+ };
615
+ const sdk = await index_1.FhirBundleSdk.create(circularBundle);
616
+ const org1 = sdk.getOrganizationById("org-1");
617
+ // Should complete without hanging
618
+ if (org1 === undefined) {
619
+ throw new Error("Organization not found");
620
+ }
621
+ const result = sdk.walkReferences(org1);
622
+ expect(result).toBeDefined();
623
+ expect(result.allResources.length).toBe(2); // Both organizations
624
+ const ids = result.allResources.map(r => r.id);
625
+ expect(ids).toContain("org-1");
626
+ expect(ids).toContain("org-2");
627
+ });
628
+ });
629
+ describe("Array reference handling", () => {
630
+ it("should handle array references correctly", async () => {
631
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
632
+ const observation = sdk.getObservationById("observation-001");
633
+ if (observation === undefined) {
634
+ throw new Error("Observation not found");
635
+ }
636
+ const result = sdk.walkReferences(observation);
637
+ // Observation has performer array
638
+ const practitionerId = "practitioner-456";
639
+ expect(result.allResources.map(r => r.id)).toContain(practitionerId);
640
+ });
641
+ it("should handle DiagnosticReport result array", async () => {
642
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
643
+ const diagnosticReport = sdk.getDiagnosticReportById("diagnostic-report-002");
644
+ if (diagnosticReport === undefined) {
645
+ throw new Error("DiagnosticReport not found");
646
+ }
647
+ const result = sdk.walkReferences(diagnosticReport);
648
+ // DiagnosticReport has result array pointing to Observations
649
+ expect(result.allResources.map(r => r.id)).toContain("observation-001");
650
+ });
651
+ });
652
+ describe("Edge cases", () => {
653
+ it("should handle resources with no references", async () => {
654
+ const bundleWithIsolatedPatient = {
655
+ resourceType: "Bundle",
656
+ type: "collection",
657
+ entry: [
658
+ {
659
+ resource: {
660
+ resourceType: "Patient",
661
+ id: "patient-isolated",
662
+ name: [{ family: "Isolated", given: ["Patient"] }],
663
+ },
664
+ },
665
+ ],
666
+ };
667
+ const sdk = await index_1.FhirBundleSdk.create(bundleWithIsolatedPatient);
668
+ const patient = sdk.getPatientById("patient-isolated");
669
+ if (patient === undefined) {
670
+ throw new Error("Patient not found");
671
+ }
672
+ const result = sdk.walkReferences(patient);
673
+ expect(result.allResources.length).toBe(1);
674
+ expect(result.depthReached).toBe(0);
675
+ expect(result.allResources[0]?.id).toBe("patient-isolated");
676
+ });
677
+ it("should handle resources with broken references", async () => {
678
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.bundleWithBrokenReferences);
679
+ const observation = sdk.getObservationById("observation-broken");
680
+ // Should not throw, just return what's reachable
681
+ if (observation === undefined) {
682
+ throw new Error("Observation not found");
683
+ }
684
+ const result = sdk.walkReferences(observation);
685
+ expect(result).toBeDefined();
686
+ expect(result.startResource.id).toBe("observation-broken");
687
+ });
688
+ it("should handle empty options", async () => {
689
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
690
+ const observation = sdk.getObservationById("observation-001");
691
+ if (observation === undefined) {
692
+ throw new Error("Observation not found");
693
+ }
694
+ const result = sdk.walkReferences(observation, {});
695
+ expect(result).toBeDefined();
696
+ expect(result.allResources.length).toBeGreaterThan(0);
697
+ });
698
+ });
699
+ });
700
+ describe("LLM Context Generation", () => {
701
+ describe("stripNonClinicalData", () => {
702
+ it("should remove meta field", () => {
703
+ const patient = {
704
+ resourceType: "Patient",
705
+ id: "patient-123",
706
+ meta: {
707
+ lastUpdated: "2023-01-01T00:00:00Z",
708
+ versionId: "1",
709
+ source: "http://example.com",
710
+ },
711
+ name: [{ family: "Smith", given: ["John"] }],
712
+ };
713
+ const cleaned = index_1.FhirBundleSdk.stripNonClinicalData(patient);
714
+ expect(cleaned.meta).toBeUndefined();
715
+ expect(cleaned.name).toEqual([{ family: "Smith", given: ["John"] }]);
716
+ expect(cleaned.id).toBe("patient-123");
717
+ });
718
+ it("should remove extension field", () => {
719
+ const patient = {
720
+ resourceType: "Patient",
721
+ id: "patient-123",
722
+ extension: [
723
+ {
724
+ url: "http://example.com/extension",
725
+ valueString: "some extension",
726
+ },
727
+ ],
728
+ name: [{ family: "Smith", given: ["John"] }],
729
+ };
730
+ const cleaned = index_1.FhirBundleSdk.stripNonClinicalData(patient);
731
+ expect(cleaned.extension).toBeUndefined();
732
+ expect(cleaned.name).toEqual([{ family: "Smith", given: ["John"] }]);
733
+ });
734
+ it("should remove text field", () => {
735
+ const observation = {
736
+ resourceType: "Observation",
737
+ id: "obs-123",
738
+ status: "final",
739
+ code: {
740
+ coding: [{ system: "http://loinc.org", code: "12345" }],
741
+ },
742
+ text: {
743
+ status: "generated",
744
+ div: "<div>Some narrative</div>",
745
+ },
746
+ };
747
+ const cleaned = index_1.FhirBundleSdk.stripNonClinicalData(observation);
748
+ expect(cleaned.text).toBeUndefined();
749
+ expect(cleaned.code).toBeDefined();
750
+ expect(cleaned.status).toBe("final");
751
+ });
752
+ it("should not mutate the original resource", () => {
753
+ const patient = {
754
+ resourceType: "Patient",
755
+ id: "patient-123",
756
+ meta: {
757
+ lastUpdated: "2023-01-01T00:00:00Z",
758
+ },
759
+ name: [{ family: "Smith", given: ["John"] }],
760
+ };
761
+ const cleaned = index_1.FhirBundleSdk.stripNonClinicalData(patient);
762
+ expect(patient.meta).toBeDefined();
763
+ expect(cleaned.meta).toBeUndefined();
764
+ });
765
+ it("should handle nested extension fields", () => {
766
+ const patient = {
767
+ resourceType: "Patient",
768
+ id: "patient-123",
769
+ name: [
770
+ {
771
+ family: "Smith",
772
+ given: ["John"],
773
+ extension: [
774
+ {
775
+ url: "http://example.com/name-extension",
776
+ valueString: "some value",
777
+ },
778
+ ],
779
+ },
780
+ ],
781
+ };
782
+ const cleaned = index_1.FhirBundleSdk.stripNonClinicalData(patient);
783
+ expect(cleaned.name?.[0]?.extension).toBeUndefined();
784
+ expect(cleaned.name?.[0]?.family).toBe("Smith");
785
+ });
786
+ });
787
+ describe("generateLLMContext", () => {
788
+ it("should generate structured text format by default", async () => {
789
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
790
+ const observation = sdk.getObservationById("observation-001");
791
+ if (observation === undefined) {
792
+ throw new Error("Observation not found");
793
+ }
794
+ const context = sdk.generateLLMContext(observation);
795
+ expect(context).toContain("PRIMARY RESOURCE:");
796
+ expect(context).toContain("[Type: Observation");
797
+ expect(context).toContain("DIRECTLY REFERENCED");
798
+ });
799
+ it("should respect maxDepth option", async () => {
800
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
801
+ const observation = sdk.getObservationById("observation-001");
802
+ if (observation === undefined) {
803
+ throw new Error("Observation not found");
804
+ }
805
+ const context = sdk.generateLLMContext(observation, { maxDepth: 0 });
806
+ expect(context).toContain("PRIMARY RESOURCE:");
807
+ expect(context).not.toContain("DIRECTLY REFERENCED");
808
+ });
809
+ it("should generate JSON format when specified", async () => {
810
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
811
+ const observation = sdk.getObservationById("observation-001");
812
+ if (observation === undefined) {
813
+ throw new Error("Observation not found");
814
+ }
815
+ const context = sdk.generateLLMContext(observation, { format: "json" });
816
+ expect(() => JSON.parse(context)).not.toThrow();
817
+ const parsed = JSON.parse(context);
818
+ expect(parsed.primaryResource).toBeDefined();
819
+ expect(parsed.primaryResource.resourceType).toBe("Observation");
820
+ });
821
+ it("should strip non-clinical data from all resources", async () => {
822
+ const bundleWithMeta = {
823
+ resourceType: "Bundle",
824
+ type: "collection",
825
+ entry: [
826
+ {
827
+ resource: {
828
+ resourceType: "Observation",
829
+ id: "obs-with-meta",
830
+ status: "final",
831
+ code: {
832
+ coding: [{ system: "http://loinc.org", code: "12345" }],
833
+ },
834
+ meta: {
835
+ lastUpdated: "2023-01-01T00:00:00Z",
836
+ },
837
+ extension: [
838
+ {
839
+ url: "http://example.com/extension",
840
+ valueString: "test",
841
+ },
842
+ ],
843
+ },
844
+ },
845
+ ],
846
+ };
847
+ const sdk = await index_1.FhirBundleSdk.create(bundleWithMeta);
848
+ const observation = sdk.getObservationById("obs-with-meta");
849
+ if (observation === undefined) {
850
+ throw new Error("Observation not found");
851
+ }
852
+ const context = sdk.generateLLMContext(observation, { format: "json" });
853
+ const parsed = JSON.parse(context);
854
+ expect(parsed.primaryResource.meta).toBeUndefined();
855
+ expect(parsed.primaryResource.extension).toBeUndefined();
856
+ expect(parsed.primaryResource.code).toBeDefined();
857
+ });
858
+ it("should group resources by type at each depth", async () => {
859
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
860
+ const diagnosticReport = sdk.getDiagnosticReportById("diagnostic-report-002");
861
+ if (diagnosticReport === undefined) {
862
+ throw new Error("DiagnosticReport not found");
863
+ }
864
+ const context = sdk.generateLLMContext(diagnosticReport, { maxDepth: 2 });
865
+ // Should have resource type groupings
866
+ expect(context).toContain("---");
867
+ expect(context).toMatch(/--- \w+ \(\d+\) ---/);
868
+ });
869
+ it("should handle includeStartResource option", async () => {
870
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
871
+ const observation = sdk.getObservationById("observation-001");
872
+ if (observation === undefined) {
873
+ throw new Error("Observation not found");
874
+ }
875
+ const contextWithStart = sdk.generateLLMContext(observation, {
876
+ includeStartResource: true,
877
+ });
878
+ const contextWithoutStart = sdk.generateLLMContext(observation, {
879
+ includeStartResource: false,
880
+ });
881
+ expect(contextWithStart).toContain("PRIMARY RESOURCE:");
882
+ expect(contextWithoutStart).not.toContain("PRIMARY RESOURCE:");
883
+ expect(contextWithoutStart).toContain("DIRECTLY REFERENCED");
884
+ });
885
+ it("should log resource counts to console", async () => {
886
+ const consoleSpy = jest.spyOn(console, "log").mockImplementation();
887
+ const sdk = await index_1.FhirBundleSdk.create(fhir_bundles_1.validCompleteBundle);
888
+ const observation = sdk.getObservationById("observation-001");
889
+ if (observation === undefined) {
890
+ throw new Error("Observation not found");
891
+ }
892
+ sdk.generateLLMContext(observation);
893
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining("[LLM Context] Total resources discovered:"));
894
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining("[LLM Context] Depth"));
895
+ consoleSpy.mockRestore();
896
+ });
897
+ });
898
+ });
432
899
  });
433
900
  //# sourceMappingURL=fhir-bundle-sdk.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fhir-bundle-sdk.test.js","sourceRoot":"","sources":["../../src/__tests__/fhir-bundle-sdk.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fhir-bundle-sdk.test.js","sourceRoot":"","sources":["../../src/__tests__/fhir-bundle-sdk.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reverse-references.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-references.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/reverse-references.test.ts"],"names":[],"mappings":""}