@metriport/fhir-sdk 1.6.3 → 1.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.
@@ -1,82 +1,162 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const lodash_1 = __importDefault(require("lodash"));
7
3
  const fhir_bundle_sdk_1 = require("../fhir-bundle-sdk");
8
4
  const type_guards_1 = require("../type-guards");
9
5
  describe("Type Guards", () => {
10
- describe("Type guards work with Smart resources from SDK", () => {
11
- test("type guards work with chained method calls like getDiagnosticReports().getPerformers()", () => {
6
+ describe("Basic type narrowing with mixed resource arrays", () => {
7
+ test("filters mixed Resource array to specific type with proper inference", () => {
8
+ const resources = [
9
+ { resourceType: "Patient", id: "patient-1" },
10
+ { resourceType: "Observation", id: "obs-1", status: "final", code: { text: "test" } },
11
+ { resourceType: "Patient", id: "patient-2" },
12
+ {
13
+ resourceType: "DiagnosticReport",
14
+ id: "report-1",
15
+ status: "final",
16
+ code: { text: "test" },
17
+ },
18
+ { resourceType: "Observation", id: "obs-2", status: "final", code: { text: "test" } },
19
+ ];
20
+ const patients = resources.filter(type_guards_1.isPatient);
21
+ const observations = resources.filter(type_guards_1.isObservation);
22
+ const reports = resources.filter(type_guards_1.isDiagnosticReport);
23
+ // Type assertions validate TypeScript properly inferred the types
24
+ expect(patients).toHaveLength(2);
25
+ expect(observations).toHaveLength(2);
26
+ expect(reports).toHaveLength(1);
27
+ // TypeScript knows these are Patients, so we can access Patient-specific fields
28
+ patients.forEach(patient => {
29
+ expect(patient.resourceType).toBe("Patient");
30
+ // This wouldn't compile if TypeScript didn't narrow the type
31
+ void patient.name; // Patient-specific field accessible due to type narrowing
32
+ });
33
+ // TypeScript knows these are Observations
34
+ observations.forEach(obs => {
35
+ expect(obs.resourceType).toBe("Observation");
36
+ expect(obs.status).toBe("final"); // Observation-specific field accessible
37
+ });
38
+ });
39
+ });
40
+ describe("Type guards with Smart resources", () => {
41
+ test("filters Smart resources with proper type inference", async () => {
12
42
  const bundle = {
13
43
  resourceType: "Bundle",
14
44
  type: "collection",
15
45
  entry: [
46
+ { resource: { resourceType: "Patient", id: "patient-1" } },
16
47
  {
17
48
  resource: {
18
- resourceType: "Practitioner",
19
- id: "prac-1",
20
- name: [{ given: ["John"], family: "Smith" }],
49
+ resourceType: "Observation",
50
+ id: "obs-1",
51
+ status: "final",
52
+ code: { text: "test" },
53
+ subject: { reference: "Patient/patient-1" },
21
54
  },
22
55
  },
56
+ { resource: { resourceType: "Patient", id: "patient-2" } },
23
57
  {
24
58
  resource: {
25
- resourceType: "Organization",
26
- id: "org-1",
27
- name: "Test Lab",
59
+ resourceType: "Encounter",
60
+ id: "enc-1",
61
+ status: "finished",
62
+ class: { code: "test" },
28
63
  },
29
64
  },
30
65
  {
31
66
  resource: {
32
- resourceType: "DiagnosticReport",
33
- id: "report-1",
67
+ resourceType: "Observation",
68
+ id: "obs-2",
34
69
  status: "final",
35
- code: { text: "Blood Test" },
36
- performer: [
37
- { reference: "Practitioner/prac-1" },
38
- { reference: "Organization/org-1" },
39
- ],
70
+ code: { text: "test" },
71
+ },
72
+ },
73
+ ],
74
+ };
75
+ const sdk = await fhir_bundle_sdk_1.FhirBundleSdk.create(bundle);
76
+ // Test filtering observations directly - this is the main use case
77
+ const allObservations = sdk.getObservations();
78
+ expect(allObservations).toHaveLength(2);
79
+ allObservations.forEach(obs => {
80
+ expect(obs.resourceType).toBe("Observation");
81
+ expect(obs.__isSmartResource).toBe(true);
82
+ // Type guard confirms it's an Observation, so we can access observation-specific fields
83
+ if ((0, type_guards_1.isObservation)(obs)) {
84
+ const subject = obs.getSubject();
85
+ void subject;
86
+ }
87
+ });
88
+ // Test filtering patients
89
+ const allPatients = sdk.getPatients();
90
+ expect(allPatients).toHaveLength(2);
91
+ allPatients.forEach(patient => {
92
+ expect(patient.resourceType).toBe("Patient");
93
+ expect(patient.__isSmartResource).toBe(true);
94
+ });
95
+ });
96
+ test("type guards work in conditional blocks with Smart resources", async () => {
97
+ const bundle = {
98
+ resourceType: "Bundle",
99
+ type: "collection",
100
+ entry: [
101
+ {
102
+ resource: {
103
+ resourceType: "Patient",
104
+ id: "patient-1",
105
+ name: [{ given: ["Jane"], family: "Doe" }],
40
106
  },
41
107
  },
42
108
  {
43
109
  resource: {
44
- resourceType: "DiagnosticReport",
45
- id: "report-2",
110
+ resourceType: "Observation",
111
+ id: "obs-1",
46
112
  status: "final",
47
- code: { text: "X-Ray" },
48
- performer: [{ reference: "Practitioner/prac-1" }],
113
+ code: { text: "test" },
114
+ valueQuantity: { value: 120, unit: "mmHg" },
49
115
  },
50
116
  },
51
117
  ],
52
118
  };
53
- const sdk = fhir_bundle_sdk_1.FhirBundleSdk.createSync(bundle);
54
- // Test chained method calls with type guards on Smart resources
55
- const performers = sdk.getDiagnosticReports().flatMap(report => report.getPerformers());
56
- const practitioners = performers.filter(type_guards_1.isPractitioner);
57
- // Type-level verification: These lines will only compile if type narrowing works
58
- // If narrowing fails, TypeScript will error because these properties don't exist on the union type
59
- const firstPractitionerName = practitioners[0]?.name; // 'name' is specific to Practitioner
60
- const firstPractitionerQualification = practitioners[0]?.qualification; // 'qualification' is also Practitioner-specific
61
- // Two diagnostic reports both reference the same practitioner, so we get 2 instances
62
- expect(practitioners).toHaveLength(2);
63
- expect(practitioners[0]?.id).toBe("prac-1");
64
- expect(practitioners[1]?.id).toBe("prac-1");
65
- expect(firstPractitionerName).toBeDefined();
66
- expect(firstPractitionerName?.[0]?.family).toBe("Smith");
67
- expect(practitioners[0]?.resourceType).toBe("Practitioner");
68
- // The fact that we can access qualification without TypeScript error proves narrowing works
69
- // (even though it's undefined in this test data)
70
- expect(firstPractitionerQualification).toBeUndefined();
71
- // Test filtering plain FHIR resources using plain type guards
72
- const plainResources = lodash_1.default.compact(bundle.entry?.map(entry => entry.resource)) ?? [];
73
- const plainPractitioners = plainResources.filter(type_guards_1.isPlainPractitioner);
74
- // Type-level verification for plain resources
75
- const plainPractitionerName = plainPractitioners[0]?.name;
76
- expect(plainPractitioners).toHaveLength(1);
77
- expect(plainPractitioners[0]?.id).toBe("prac-1");
78
- expect(plainPractitionerName).toBeDefined();
79
- expect(plainPractitionerName?.[0]?.family).toBe("Smith");
119
+ const sdk = await fhir_bundle_sdk_1.FhirBundleSdk.create(bundle);
120
+ const resource1 = sdk.getResourceById("patient-1");
121
+ const resource2 = sdk.getResourceById("obs-1");
122
+ // Type guard in conditional - TypeScript should narrow the type
123
+ if (resource1 && (0, type_guards_1.isPatient)(resource1)) {
124
+ expect(resource1.resourceType).toBe("Patient");
125
+ const name = resource1.name?.[0]?.given?.[0];
126
+ expect(name).toBe("Jane");
127
+ }
128
+ if (resource2 && (0, type_guards_1.isObservation)(resource2)) {
129
+ expect(resource2.resourceType).toBe("Observation");
130
+ const value = resource2.valueQuantity?.value;
131
+ expect(value).toBe(120);
132
+ }
133
+ });
134
+ });
135
+ describe("Edge cases", () => {
136
+ test("handles undefined gracefully", () => {
137
+ expect((0, type_guards_1.isPatient)(undefined)).toBe(false);
138
+ expect((0, type_guards_1.isObservation)(undefined)).toBe(false);
139
+ expect((0, type_guards_1.isDiagnosticReport)(undefined)).toBe(false);
140
+ });
141
+ test("filters out undefined values from array", () => {
142
+ const resources = [
143
+ { resourceType: "Patient", id: "1" },
144
+ undefined,
145
+ { resourceType: "Observation", id: "2", status: "final", code: { text: "test" } },
146
+ undefined,
147
+ ];
148
+ const patients = resources.filter(type_guards_1.isPatient);
149
+ const observations = resources.filter(type_guards_1.isObservation);
150
+ expect(patients).toHaveLength(1);
151
+ expect(observations).toHaveLength(1);
152
+ });
153
+ test("returns empty array when no matches found", () => {
154
+ const resources = [
155
+ { resourceType: "Patient", id: "1" },
156
+ { resourceType: "Patient", id: "2" },
157
+ ];
158
+ const observations = resources.filter(type_guards_1.isObservation);
159
+ expect(observations).toHaveLength(0);
80
160
  });
81
161
  });
82
162
  });
@@ -1 +1 @@
1
- {"version":3,"file":"type-guards.test.js","sourceRoot":"","sources":["../../src/__tests__/type-guards.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-guards.test.js","sourceRoot":"","sources":["../../src/__tests__/type-guards.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metriport/fhir-sdk",
3
- "version": "1.6.3",
3
+ "version": "1.7.0",
4
4
  "description": "FHIR Bundle SDK for parsing, querying, and manipulating FHIR bundles with reference resolution",
5
5
  "author": "Metriport Inc. <contact@metriport.com>",
6
6
  "homepage": "https://metriport.com/",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@medplum/fhirtypes": "^2.2.10",
53
- "@metriport/shared": "^0.27.2"
53
+ "@metriport/shared": "^0.28.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@metriport/eslint-rules": "file:packages/eslint-rules",
@@ -65,5 +65,6 @@
65
65
  "rimraf": "^5.0.1",
66
66
  "ts-jest": "29.1.1",
67
67
  "typescript": "^4.9.5"
68
- }
68
+ },
69
+ "gitHead": "4076de3502de4558dd9b99bbe600e6a08ed61ffe"
69
70
  }