@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("
|
|
11
|
-
test("
|
|
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: "
|
|
19
|
-
id: "
|
|
20
|
-
|
|
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: "
|
|
26
|
-
id: "
|
|
27
|
-
|
|
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: "
|
|
33
|
-
id: "
|
|
67
|
+
resourceType: "Observation",
|
|
68
|
+
id: "obs-2",
|
|
34
69
|
status: "final",
|
|
35
|
-
code: { text: "
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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: "
|
|
45
|
-
id: "
|
|
110
|
+
resourceType: "Observation",
|
|
111
|
+
id: "obs-1",
|
|
46
112
|
status: "final",
|
|
47
|
-
code: { text: "
|
|
48
|
-
|
|
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.
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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":"
|
|
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.
|
|
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.
|
|
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
|
}
|