@metriport/fhir-sdk 0.30.0-alpha.1

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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +564 -0
  3. package/dist/__tests__/careplan.test.d.ts +2 -0
  4. package/dist/__tests__/careplan.test.d.ts.map +1 -0
  5. package/dist/__tests__/careplan.test.js +544 -0
  6. package/dist/__tests__/careplan.test.js.map +1 -0
  7. package/dist/__tests__/clinical-dates.test.d.ts +2 -0
  8. package/dist/__tests__/clinical-dates.test.d.ts.map +1 -0
  9. package/dist/__tests__/clinical-dates.test.js +341 -0
  10. package/dist/__tests__/clinical-dates.test.js.map +1 -0
  11. package/dist/__tests__/coding-utilities.test.d.ts +2 -0
  12. package/dist/__tests__/coding-utilities.test.d.ts.map +1 -0
  13. package/dist/__tests__/coding-utilities.test.js +482 -0
  14. package/dist/__tests__/coding-utilities.test.js.map +1 -0
  15. package/dist/__tests__/date-range-performance.test.d.ts +2 -0
  16. package/dist/__tests__/date-range-performance.test.d.ts.map +1 -0
  17. package/dist/__tests__/date-range-performance.test.js +218 -0
  18. package/dist/__tests__/date-range-performance.test.js.map +1 -0
  19. package/dist/__tests__/date-range-search.test.d.ts +2 -0
  20. package/dist/__tests__/date-range-search.test.d.ts.map +1 -0
  21. package/dist/__tests__/date-range-search.test.js +215 -0
  22. package/dist/__tests__/date-range-search.test.js.map +1 -0
  23. package/dist/__tests__/env-setup.d.ts +2 -0
  24. package/dist/__tests__/env-setup.d.ts.map +1 -0
  25. package/dist/__tests__/env-setup.js +37 -0
  26. package/dist/__tests__/env-setup.js.map +1 -0
  27. package/dist/__tests__/fhir-bundle-sdk-basic.test.d.ts +2 -0
  28. package/dist/__tests__/fhir-bundle-sdk-basic.test.d.ts.map +1 -0
  29. package/dist/__tests__/fhir-bundle-sdk-basic.test.js +19 -0
  30. package/dist/__tests__/fhir-bundle-sdk-basic.test.js.map +1 -0
  31. package/dist/__tests__/fhir-bundle-sdk.test.d.ts +2 -0
  32. package/dist/__tests__/fhir-bundle-sdk.test.d.ts.map +1 -0
  33. package/dist/__tests__/fhir-bundle-sdk.test.js +953 -0
  34. package/dist/__tests__/fhir-bundle-sdk.test.js.map +1 -0
  35. package/dist/__tests__/fixtures/fhir-bundles.d.ts +31 -0
  36. package/dist/__tests__/fixtures/fhir-bundles.d.ts.map +1 -0
  37. package/dist/__tests__/fixtures/fhir-bundles.js +487 -0
  38. package/dist/__tests__/fixtures/fhir-bundles.js.map +1 -0
  39. package/dist/__tests__/phase1-verification.test.d.ts +2 -0
  40. package/dist/__tests__/phase1-verification.test.d.ts.map +1 -0
  41. package/dist/__tests__/phase1-verification.test.js +141 -0
  42. package/dist/__tests__/phase1-verification.test.js.map +1 -0
  43. package/dist/__tests__/phase2-verification.test.d.ts +2 -0
  44. package/dist/__tests__/phase2-verification.test.d.ts.map +1 -0
  45. package/dist/__tests__/phase2-verification.test.js +234 -0
  46. package/dist/__tests__/phase2-verification.test.js.map +1 -0
  47. package/dist/__tests__/phase3-verification.test.d.ts +2 -0
  48. package/dist/__tests__/phase3-verification.test.d.ts.map +1 -0
  49. package/dist/__tests__/phase3-verification.test.js +121 -0
  50. package/dist/__tests__/phase3-verification.test.js.map +1 -0
  51. package/dist/__tests__/phase4-verification.test.d.ts +2 -0
  52. package/dist/__tests__/phase4-verification.test.d.ts.map +1 -0
  53. package/dist/__tests__/phase4-verification.test.js +168 -0
  54. package/dist/__tests__/phase4-verification.test.js.map +1 -0
  55. package/dist/__tests__/phase5-verification.test.d.ts +2 -0
  56. package/dist/__tests__/phase5-verification.test.d.ts.map +1 -0
  57. package/dist/__tests__/phase5-verification.test.js +397 -0
  58. package/dist/__tests__/phase5-verification.test.js.map +1 -0
  59. package/dist/__tests__/reverse-references.test.d.ts +2 -0
  60. package/dist/__tests__/reverse-references.test.d.ts.map +1 -0
  61. package/dist/__tests__/reverse-references.test.js +294 -0
  62. package/dist/__tests__/reverse-references.test.js.map +1 -0
  63. package/dist/__tests__/type-guards.test.d.ts +2 -0
  64. package/dist/__tests__/type-guards.test.d.ts.map +1 -0
  65. package/dist/__tests__/type-guards.test.js +163 -0
  66. package/dist/__tests__/type-guards.test.js.map +1 -0
  67. package/dist/clinical-dates.d.ts +26 -0
  68. package/dist/clinical-dates.d.ts.map +1 -0
  69. package/dist/clinical-dates.js +571 -0
  70. package/dist/clinical-dates.js.map +1 -0
  71. package/dist/fhir-bundle-sdk.d.ts +233 -0
  72. package/dist/fhir-bundle-sdk.d.ts.map +1 -0
  73. package/dist/fhir-bundle-sdk.js +545 -0
  74. package/dist/fhir-bundle-sdk.js.map +1 -0
  75. package/dist/index.d.ts +8 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +23 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/internal/bundle-operations.d.ts +14 -0
  80. package/dist/internal/bundle-operations.d.ts.map +1 -0
  81. package/dist/internal/bundle-operations.js +55 -0
  82. package/dist/internal/bundle-operations.js.map +1 -0
  83. package/dist/internal/coding-systems.d.ts +48 -0
  84. package/dist/internal/coding-systems.d.ts.map +1 -0
  85. package/dist/internal/coding-systems.js +55 -0
  86. package/dist/internal/coding-systems.js.map +1 -0
  87. package/dist/internal/coding-utilities.d.ts +27 -0
  88. package/dist/internal/coding-utilities.d.ts.map +1 -0
  89. package/dist/internal/coding-utilities.js +297 -0
  90. package/dist/internal/coding-utilities.js.map +1 -0
  91. package/dist/internal/date-extraction.d.ts +12 -0
  92. package/dist/internal/date-extraction.d.ts.map +1 -0
  93. package/dist/internal/date-extraction.js +629 -0
  94. package/dist/internal/date-extraction.js.map +1 -0
  95. package/dist/internal/graph-traversal.d.ts +13 -0
  96. package/dist/internal/graph-traversal.d.ts.map +1 -0
  97. package/dist/internal/graph-traversal.js +89 -0
  98. package/dist/internal/graph-traversal.js.map +1 -0
  99. package/dist/internal/indexing.d.ts +17 -0
  100. package/dist/internal/indexing.d.ts.map +1 -0
  101. package/dist/internal/indexing.js +129 -0
  102. package/dist/internal/indexing.js.map +1 -0
  103. package/dist/internal/llm-context.d.ts +40 -0
  104. package/dist/internal/llm-context.d.ts.map +1 -0
  105. package/dist/internal/llm-context.js +214 -0
  106. package/dist/internal/llm-context.js.map +1 -0
  107. package/dist/internal/reference-resolution.d.ts +29 -0
  108. package/dist/internal/reference-resolution.d.ts.map +1 -0
  109. package/dist/internal/reference-resolution.js +338 -0
  110. package/dist/internal/reference-resolution.js.map +1 -0
  111. package/dist/internal/reference-utils.d.ts +26 -0
  112. package/dist/internal/reference-utils.d.ts.map +1 -0
  113. package/dist/internal/reference-utils.js +89 -0
  114. package/dist/internal/reference-utils.js.map +1 -0
  115. package/dist/internal/transparent-proxy.d.ts +12 -0
  116. package/dist/internal/transparent-proxy.d.ts.map +1 -0
  117. package/dist/internal/transparent-proxy.js +81 -0
  118. package/dist/internal/transparent-proxy.js.map +1 -0
  119. package/dist/internal/validation.d.ts +16 -0
  120. package/dist/internal/validation.d.ts.map +1 -0
  121. package/dist/internal/validation.js +45 -0
  122. package/dist/internal/validation.js.map +1 -0
  123. package/dist/type-guards.d.ts +212 -0
  124. package/dist/type-guards.d.ts.map +1 -0
  125. package/dist/type-guards.js +375 -0
  126. package/dist/type-guards.js.map +1 -0
  127. package/dist/types/coding-fields.d.ts +311 -0
  128. package/dist/types/coding-fields.d.ts.map +1 -0
  129. package/dist/types/coding-fields.js +3 -0
  130. package/dist/types/coding-fields.js.map +1 -0
  131. package/dist/types/sdk-types.d.ts +107 -0
  132. package/dist/types/sdk-types.d.ts.map +1 -0
  133. package/dist/types/sdk-types.js +17 -0
  134. package/dist/types/sdk-types.js.map +1 -0
  135. package/dist/types/smart-resources.d.ts +470 -0
  136. package/dist/types/smart-resources.d.ts.map +1 -0
  137. package/dist/types/smart-resources.js +249 -0
  138. package/dist/types/smart-resources.js.map +1 -0
  139. package/dist/utils/interval-tree/index.d.ts +87 -0
  140. package/dist/utils/interval-tree/index.d.ts.map +1 -0
  141. package/dist/utils/interval-tree/index.js +774 -0
  142. package/dist/utils/interval-tree/index.js.map +1 -0
  143. package/dist/utils/interval-tree/shallowequal/arrays.d.ts +3 -0
  144. package/dist/utils/interval-tree/shallowequal/arrays.d.ts.map +1 -0
  145. package/dist/utils/interval-tree/shallowequal/arrays.js +25 -0
  146. package/dist/utils/interval-tree/shallowequal/arrays.js.map +1 -0
  147. package/dist/utils/interval-tree/shallowequal/index.d.ts +6 -0
  148. package/dist/utils/interval-tree/shallowequal/index.d.ts.map +1 -0
  149. package/dist/utils/interval-tree/shallowequal/index.js +28 -0
  150. package/dist/utils/interval-tree/shallowequal/index.js.map +1 -0
  151. package/dist/utils/interval-tree/shallowequal/objects.d.ts +3 -0
  152. package/dist/utils/interval-tree/shallowequal/objects.d.ts.map +1 -0
  153. package/dist/utils/interval-tree/shallowequal/objects.js +28 -0
  154. package/dist/utils/interval-tree/shallowequal/objects.js.map +1 -0
  155. package/package.json +70 -0
@@ -0,0 +1,470 @@
1
+ import { Resource, Patient, Observation, Encounter, Practitioner, PractitionerRole, Organization, CareTeam, RelatedPerson, DiagnosticReport, Group, Device, Location, AllergyIntolerance, Condition, Composition, Coverage, DocumentReference, FamilyMemberHistory, Immunization, Medication, MedicationAdministration, MedicationDispense, MedicationRequest, MedicationStatement, Procedure, RiskAssessment, ServiceRequest, CarePlan, Appointment, CommunicationRequest, DeviceRequest, NutritionOrder, Task, VisionPrescription, RequestGroup, HealthcareService, Substance, Coding, CodeableConcept } from "@medplum/fhirtypes";
2
+ import type { SmartCondition, SmartProcedure, SmartPatient, SmartDevice, SmartLocation, SmartEncounter, SmartPractitioner, SmartOrganization, SmartCareTeam, SmartObservation, SmartComposition, SmartDocumentReference, SmartMedication, SmartMedicationRequest, SmartCarePlan, SmartGoal, ToSmart } from "./coding-fields";
3
+ /**
4
+ * Options for reverse reference lookup
5
+ */
6
+ export interface ReverseReferenceOptions {
7
+ /** Filter by source resource type */
8
+ resourceType?: string;
9
+ /** Filter by specific reference field */
10
+ referenceField?: string;
11
+ }
12
+ /**
13
+ * Smart Coding type with enhanced methods for checking coding systems
14
+ */
15
+ export interface SmartCoding extends Coding {
16
+ /** Check if this coding belongs to the LOINC system */
17
+ isLoinc(): boolean;
18
+ /** Check if this coding belongs to the ICD-10 system */
19
+ isIcd10(): boolean;
20
+ /** Check if this coding belongs to the SNOMED system */
21
+ isSnomed(): boolean;
22
+ /** Check if this coding belongs to the RxNorm system */
23
+ isRxNorm(): boolean;
24
+ /** Check if this coding belongs to the NDC system */
25
+ isNdc(): boolean;
26
+ /** Check if this coding's code matches a specific code value */
27
+ matchesCode(code: string): boolean;
28
+ /** Check if this coding's code matches any of the provided code values */
29
+ matchesCodes(codes: string[]): boolean;
30
+ }
31
+ /**
32
+ * Smart CodeableConcept type with enhanced methods for working with coding systems
33
+ */
34
+ export interface SmartCodeableConcept extends Omit<CodeableConcept, "coding"> {
35
+ /** Array of smart codings */
36
+ coding?: SmartCoding[];
37
+ /** Get the first LOINC coding */
38
+ getLoinc(): SmartCoding | undefined;
39
+ /** Get all LOINC codings */
40
+ getLoincCodings(): SmartCoding[];
41
+ /** Get the first LOINC code value */
42
+ getLoincCode(): string | undefined;
43
+ /** Get all LOINC code values */
44
+ getLoincCodes(): string[];
45
+ /** Check if this CodeableConcept has any LOINC coding */
46
+ hasLoinc(): boolean;
47
+ /** Check if this CodeableConcept has a specific LOINC code */
48
+ hasLoincCode(code: string): boolean;
49
+ /** Check if this CodeableConcept has any of the provided LOINC codes */
50
+ hasSomeLoinc(codes: string[]): boolean;
51
+ /** Find a LOINC coding matching a predicate */
52
+ findLoincCoding(predicate: (code: string) => boolean): SmartCoding | undefined;
53
+ /** Get the first ICD-10 coding */
54
+ getIcd10(): SmartCoding | undefined;
55
+ /** Get all ICD-10 codings */
56
+ getIcd10Codings(): SmartCoding[];
57
+ /** Get the first ICD-10 code value */
58
+ getIcd10Code(): string | undefined;
59
+ /** Get all ICD-10 code values */
60
+ getIcd10Codes(): string[];
61
+ /** Check if this CodeableConcept has any ICD-10 coding */
62
+ hasIcd10(): boolean;
63
+ /** Check if this CodeableConcept has a specific ICD-10 code */
64
+ hasIcd10Code(code: string): boolean;
65
+ /** Check if this CodeableConcept has any of the provided ICD-10 codes */
66
+ hasSomeIcd10(codes: string[]): boolean;
67
+ /** Find an ICD-10 coding matching a predicate */
68
+ findIcd10Coding(predicate: (code: string) => boolean): SmartCoding | undefined;
69
+ /** Get the first SNOMED coding */
70
+ getSnomed(): SmartCoding | undefined;
71
+ /** Get all SNOMED codings */
72
+ getSnomedCodings(): SmartCoding[];
73
+ /** Get the first SNOMED code value */
74
+ getSnomedCode(): string | undefined;
75
+ /** Get all SNOMED code values */
76
+ getSnomedCodes(): string[];
77
+ /** Check if this CodeableConcept has any SNOMED coding */
78
+ hasSnomed(): boolean;
79
+ /** Check if this CodeableConcept has a specific SNOMED code */
80
+ hasSnomedCode(code: string): boolean;
81
+ /** Check if this CodeableConcept has any of the provided SNOMED codes */
82
+ hasSomeSnomed(codes: string[]): boolean;
83
+ /** Find a SNOMED coding matching a predicate */
84
+ findSnomedCoding(predicate: (code: string) => boolean): SmartCoding | undefined;
85
+ /** Get the first RxNorm coding */
86
+ getRxNorm(): SmartCoding | undefined;
87
+ /** Get all RxNorm codings */
88
+ getRxNormCodings(): SmartCoding[];
89
+ /** Get the first RxNorm code value */
90
+ getRxNormCode(): string | undefined;
91
+ /** Get all RxNorm code values */
92
+ getRxNormCodes(): string[];
93
+ /** Check if this CodeableConcept has any RxNorm coding */
94
+ hasRxNorm(): boolean;
95
+ /** Check if this CodeableConcept has a specific RxNorm code */
96
+ hasRxNormCode(code: string): boolean;
97
+ /** Check if this CodeableConcept has any of the provided RxNorm codes */
98
+ hasSomeRxNorm(codes: string[]): boolean;
99
+ /** Find a RxNorm coding matching a predicate */
100
+ findRxNormCoding(predicate: (code: string) => boolean): SmartCoding | undefined;
101
+ /** Get the first NDC coding */
102
+ getNdc(): SmartCoding | undefined;
103
+ /** Get all NDC codings */
104
+ getNdcCodings(): SmartCoding[];
105
+ /** Get the first NDC code value */
106
+ getNdcCode(): string | undefined;
107
+ /** Get all NDC code values */
108
+ getNdcCodes(): string[];
109
+ /** Check if this CodeableConcept has any NDC coding */
110
+ hasNdc(): boolean;
111
+ /** Check if this CodeableConcept has a specific NDC code */
112
+ hasNdcCode(code: string): boolean;
113
+ /** Check if this CodeableConcept has any of the provided NDC codes */
114
+ hasSomeNdc(codes: string[]): boolean;
115
+ /** Find an NDC coding matching a predicate */
116
+ findNdcCoding(predicate: (code: string) => boolean): SmartCoding | undefined;
117
+ }
118
+ /**
119
+ * Base interface for smart resources - all smart resources have these capabilities
120
+ */
121
+ export interface SmartResourceBase {
122
+ readonly __isSmartResource: true;
123
+ /**
124
+ * Get all resources that reference this resource (reverse reference lookup)
125
+ * @param options - Optional filters for resourceType and referenceField
126
+ * @returns Array of smart resources that reference this resource
127
+ */
128
+ getReferencingResources<T extends Resource = Resource>(options?: ReverseReferenceOptions): ToSmart<T>[];
129
+ /**
130
+ * Get all resources referenced by this resource (forward reference lookup)
131
+ * @returns Array of smart resources referenced by this resource based on REFERENCE_METHOD_MAPPING
132
+ */
133
+ getReferencedResources<T extends Resource = Resource>(): ToSmart<T>[];
134
+ /**
135
+ * Convert the resource to a string representation without proxy limitations
136
+ * @param space - Number of spaces to use for indentation (default: 2)
137
+ * @returns JSON string representation of the resource
138
+ */
139
+ toString(space?: number): string;
140
+ }
141
+ /**
142
+ * Generic type that converts any Resource to a Smart resource
143
+ *
144
+ * Note: CodeableConcept and Coding properties are wrapped at runtime via proxies.
145
+ * See coding-fields.ts for the complete list of transformed fields per resource type.
146
+ * TypeScript cannot enforce these transformations due to complexity limits,
147
+ * but the runtime behavior is fully functional.
148
+ */
149
+ export type Smart<T extends Resource> = T & SmartResourceBase & ReferenceMethodsFor<T>;
150
+ /**
151
+ * Reference methods for Observation resources
152
+ */
153
+ export interface ObservationReferenceMethods {
154
+ getBasedOn<T extends Resource>(): ToSmart<T>[];
155
+ getPartOf<T extends Resource>(): ToSmart<T>[];
156
+ getSubject<T extends Patient | Group | Device | Location>(): ToSmart<T> | undefined;
157
+ getFocus<T extends Resource>(): ToSmart<T>[];
158
+ getEncounter(): SmartEncounter | undefined;
159
+ getPerformers<T extends Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson>(): ToSmart<T>[];
160
+ getSpecimen<T extends Resource>(): ToSmart<T> | undefined;
161
+ getDevice(): SmartDevice | undefined;
162
+ getHasMember<T extends Resource>(): ToSmart<T>[];
163
+ getDerivedFrom<T extends Resource>(): ToSmart<T>[];
164
+ }
165
+ /**
166
+ * Reference methods for Encounter resources
167
+ */
168
+ export interface EncounterReferenceMethods {
169
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
170
+ getEpisodeOfCare<T extends Resource>(): ToSmart<T>[];
171
+ getBasedOn<T extends Resource>(): ToSmart<T>[];
172
+ getParticipants<T extends Practitioner | PractitionerRole | RelatedPerson | Device>(): ToSmart<T>[];
173
+ getAppointment<T extends Resource>(): ToSmart<T>[];
174
+ getReasonReference<T extends Resource>(): ToSmart<T>[];
175
+ getAccount<T extends Resource>(): ToSmart<T>[];
176
+ getServiceProvider(): SmartOrganization | undefined;
177
+ getPartOf(): SmartEncounter | undefined;
178
+ getHospitalizationOrigin<T extends Location | Organization>(): ToSmart<T> | undefined;
179
+ getHospitalizationDestination<T extends Location | Organization>(): ToSmart<T> | undefined;
180
+ getLocation(): SmartLocation[];
181
+ getDiagnosisCondition(): (SmartCondition | SmartProcedure)[];
182
+ }
183
+ /**
184
+ * Reference methods for DiagnosticReport resources
185
+ */
186
+ export interface DiagnosticReportReferenceMethods {
187
+ getBasedOn<T extends Resource>(): ToSmart<T>[];
188
+ getSubject<T extends Patient | Group | Device | Location>(): ToSmart<T> | undefined;
189
+ getEncounter(): SmartEncounter | undefined;
190
+ getPerformers<T extends Practitioner | PractitionerRole | Organization | CareTeam>(): ToSmart<T>[];
191
+ getResultsInterpreter<T extends Practitioner | PractitionerRole | Organization | CareTeam>(): ToSmart<T>[];
192
+ getSpecimen<T extends Resource>(): ToSmart<T>[];
193
+ getResults(): SmartObservation[];
194
+ getImagingStudy<T extends Resource>(): ToSmart<T>[];
195
+ getMediaLink<T extends Resource>(): ToSmart<T>[];
196
+ }
197
+ /**
198
+ * Reference methods for Patient resources
199
+ */
200
+ export interface PatientReferenceMethods {
201
+ getGeneralPractitioners<T extends Practitioner | PractitionerRole | Organization>(): ToSmart<T>[];
202
+ getManagingOrganization(): SmartOrganization | undefined;
203
+ getContactOrganization(): SmartOrganization[];
204
+ getLinkOther<T extends Patient | RelatedPerson>(): ToSmart<T>[];
205
+ }
206
+ /**
207
+ * Reference methods for Practitioner resources
208
+ */
209
+ export interface PractitionerReferenceMethods {
210
+ getQualificationIssuer(): SmartOrganization[];
211
+ }
212
+ /**
213
+ * Reference methods for PractitionerRole resources
214
+ */
215
+ export interface PractitionerRoleReferenceMethods {
216
+ getPractitioner(): SmartPractitioner | undefined;
217
+ getOrganization(): SmartOrganization | undefined;
218
+ getLocation(): SmartLocation[];
219
+ getHealthcareService<T extends Resource>(): ToSmart<T>[];
220
+ getEndpoint<T extends Resource>(): ToSmart<T>[];
221
+ }
222
+ /**
223
+ * Reference methods for AllergyIntolerance resources
224
+ */
225
+ export interface AllergyIntoleranceReferenceMethods {
226
+ getPatient(): SmartPatient | undefined;
227
+ getEncounter(): SmartEncounter | undefined;
228
+ getRecorder<T extends Practitioner | PractitionerRole | Patient | RelatedPerson>(): ToSmart<T> | undefined;
229
+ getAsserter<T extends Patient | RelatedPerson | Practitioner | PractitionerRole>(): ToSmart<T> | undefined;
230
+ }
231
+ /**
232
+ * Reference methods for Condition resources
233
+ */
234
+ export interface ConditionReferenceMethods {
235
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
236
+ getEncounter(): SmartEncounter | undefined;
237
+ getRecorder<T extends Practitioner | PractitionerRole | Patient | RelatedPerson>(): ToSmart<T> | undefined;
238
+ getAsserter<T extends Practitioner | PractitionerRole | Patient | RelatedPerson>(): ToSmart<T> | undefined;
239
+ getStageAssessment<T extends Resource>(): ToSmart<T>[];
240
+ getEvidenceDetail<T extends Resource>(): ToSmart<T>[];
241
+ }
242
+ /**
243
+ * Reference methods for Organization resources
244
+ */
245
+ export interface OrganizationReferenceMethods {
246
+ getPartOf(): SmartOrganization | undefined;
247
+ getEndpoint<T extends Resource>(): ToSmart<T>[];
248
+ }
249
+ /**
250
+ * Reference methods for Location resources
251
+ */
252
+ export interface LocationReferenceMethods {
253
+ getManagingOrganization(): SmartOrganization | undefined;
254
+ getPartOf(): SmartLocation | undefined;
255
+ getEndpoint<T extends Resource>(): ToSmart<T>[];
256
+ }
257
+ /**
258
+ * Reference methods for Composition resources
259
+ */
260
+ export interface CompositionReferenceMethods {
261
+ getSubject<T extends Resource>(): ToSmart<T> | undefined;
262
+ getEncounter(): SmartEncounter | undefined;
263
+ getAuthors<T extends Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization>(): ToSmart<T>[];
264
+ getCustodian(): SmartOrganization | undefined;
265
+ getAttesterParty<T extends Patient | RelatedPerson | Practitioner | PractitionerRole | Organization>(): ToSmart<T>[];
266
+ getRelatesToTarget(): SmartComposition[];
267
+ getEventDetail<T extends Resource>(): ToSmart<T>[];
268
+ getSectionAuthor<T extends Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization>(): ToSmart<T>[];
269
+ getSectionFocus<T extends Resource>(): ToSmart<T>[];
270
+ getSectionEntry<T extends Resource>(): ToSmart<T>[];
271
+ }
272
+ /**
273
+ * Reference methods for Coverage resources
274
+ */
275
+ export interface CoverageReferenceMethods {
276
+ getBeneficiary(): SmartPatient | undefined;
277
+ getSubscriber<T extends Patient | RelatedPerson>(): ToSmart<T> | undefined;
278
+ getPayors<T extends Organization | Patient | RelatedPerson>(): ToSmart<T>[];
279
+ getPolicyHolder<T extends Patient | RelatedPerson | Organization>(): ToSmart<T> | undefined;
280
+ }
281
+ /**
282
+ * Reference methods for DocumentReference resources
283
+ */
284
+ export interface DocumentReferenceReferenceMethods {
285
+ getSubject<T extends Patient | Group | Practitioner | PractitionerRole | Device>(): ToSmart<T> | undefined;
286
+ getAuthors<T extends Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson>(): ToSmart<T>[];
287
+ getAuthenticator<T extends Practitioner | PractitionerRole | Organization>(): ToSmart<T> | undefined;
288
+ getCustodian(): SmartOrganization | undefined;
289
+ getRelatesToTarget(): SmartDocumentReference[];
290
+ getContextEncounter<T extends Encounter | Resource>(): ToSmart<T>[];
291
+ getContextSourcePatientInfo(): SmartPatient | undefined;
292
+ getContextRelated<T extends Resource>(): ToSmart<T>[];
293
+ }
294
+ /**
295
+ * Reference methods for Immunization resources
296
+ */
297
+ export interface ImmunizationReferenceMethods {
298
+ getPatient(): SmartPatient | undefined;
299
+ getEncounter(): SmartEncounter | undefined;
300
+ getLocation(): SmartLocation | undefined;
301
+ getManufacturer(): SmartOrganization | undefined;
302
+ getPerformers<T extends Practitioner | PractitionerRole | Organization>(): ToSmart<T>[];
303
+ getReasonReference<T extends Condition | Observation | DiagnosticReport>(): ToSmart<T>[];
304
+ getProtocolAppliedAuthority(): SmartOrganization[];
305
+ getReactionDetail(): SmartObservation[];
306
+ }
307
+ /**
308
+ * Reference methods for Medication resources
309
+ */
310
+ export interface MedicationReferenceMethods {
311
+ getManufacturer(): SmartOrganization | undefined;
312
+ getIngredientItem<T extends Resource | Medication>(): ToSmart<T>[];
313
+ }
314
+ /**
315
+ * Reference methods for MedicationRequest resources
316
+ */
317
+ export interface MedicationRequestReferenceMethods {
318
+ getReportedReference<T extends Patient | Practitioner | PractitionerRole | RelatedPerson | Organization>(): ToSmart<T> | undefined;
319
+ getMedicationReference(): SmartMedication | undefined;
320
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
321
+ getEncounter(): SmartEncounter | undefined;
322
+ getSupportingInformation<T extends Resource>(): ToSmart<T>[];
323
+ getRequester<T extends Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device>(): ToSmart<T> | undefined;
324
+ getPerformer<T extends Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam>(): ToSmart<T> | undefined;
325
+ getRecorder<T extends Practitioner | PractitionerRole>(): ToSmart<T> | undefined;
326
+ getReasonReference<T extends Condition | Observation>(): ToSmart<T>[];
327
+ getBasedOn<T extends Resource>(): ToSmart<T>[];
328
+ getInsurance<T extends Resource>(): ToSmart<T>[];
329
+ getPriorPrescription(): SmartMedicationRequest | undefined;
330
+ getDetectedIssue<T extends Resource>(): ToSmart<T>[];
331
+ getEventHistory<T extends Resource>(): ToSmart<T>[];
332
+ getDispenseRequestPerformer(): SmartOrganization | undefined;
333
+ }
334
+ /**
335
+ * Reference methods for Procedure resources
336
+ */
337
+ export interface ProcedureReferenceMethods {
338
+ getBasedOn<T extends Resource>(): ToSmart<T>[];
339
+ getPartOf<T extends Procedure | Observation | Resource>(): ToSmart<T>[];
340
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
341
+ getEncounter(): SmartEncounter | undefined;
342
+ getRecorder<T extends Patient | RelatedPerson | Practitioner | PractitionerRole>(): ToSmart<T> | undefined;
343
+ getAsserter<T extends Patient | RelatedPerson | Practitioner | PractitionerRole>(): ToSmart<T> | undefined;
344
+ getPerformers<T extends Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device>(): ToSmart<T>[];
345
+ getPerformerOnBehalfOf(): SmartOrganization[];
346
+ getLocation(): SmartLocation | undefined;
347
+ getReasonReference<T extends Condition | Observation | Procedure | DiagnosticReport | DocumentReference>(): ToSmart<T>[];
348
+ getReport<T extends DiagnosticReport | DocumentReference | Composition>(): ToSmart<T>[];
349
+ getComplicationDetail(): SmartCondition[];
350
+ getFocalDeviceManipulated(): SmartDevice[];
351
+ getUsedReference<T extends Device | Medication | Resource>(): ToSmart<T>[];
352
+ }
353
+ /**
354
+ * Reference methods for FamilyMemberHistory resources
355
+ */
356
+ export interface FamilyMemberHistoryReferenceMethods {
357
+ getPatient(): SmartPatient | undefined;
358
+ }
359
+ /**
360
+ * Reference methods for MedicationAdministration resources
361
+ */
362
+ export interface MedicationAdministrationReferenceMethods {
363
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
364
+ getContext<T extends Encounter>(): ToSmart<T> | undefined;
365
+ getPerformers<T extends Practitioner | PractitionerRole | Patient | RelatedPerson | Device>(): ToSmart<T>[];
366
+ getMedicationReference(): SmartMedication | undefined;
367
+ }
368
+ /**
369
+ * Reference methods for MedicationDispense resources
370
+ */
371
+ export interface MedicationDispenseReferenceMethods {
372
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
373
+ getContext<T extends Encounter>(): ToSmart<T> | undefined;
374
+ getPerformers<T extends Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson>(): ToSmart<T>[];
375
+ getMedicationReference(): SmartMedication | undefined;
376
+ }
377
+ /**
378
+ * Reference methods for MedicationStatement resources
379
+ */
380
+ export interface MedicationStatementReferenceMethods {
381
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
382
+ getContext<T extends Encounter>(): ToSmart<T> | undefined;
383
+ getInformationSource<T extends Patient | Practitioner | PractitionerRole | RelatedPerson | Organization>(): ToSmart<T> | undefined;
384
+ getMedicationReference(): SmartMedication | undefined;
385
+ }
386
+ /**
387
+ * Reference methods for RelatedPerson resources
388
+ */
389
+ export interface RelatedPersonReferenceMethods {
390
+ getPatient(): SmartPatient | undefined;
391
+ }
392
+ /**
393
+ * Reference methods for RiskAssessment resources
394
+ */
395
+ export interface RiskAssessmentReferenceMethods {
396
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
397
+ getEncounter(): SmartEncounter | undefined;
398
+ getPerformer<T extends Practitioner | PractitionerRole | Device>(): ToSmart<T> | undefined;
399
+ }
400
+ /**
401
+ * Reference methods for ServiceRequest resources
402
+ */
403
+ export interface ServiceRequestReferenceMethods {
404
+ getSubject<T extends Patient | Group | Location | Device>(): ToSmart<T> | undefined;
405
+ getEncounter(): SmartEncounter | undefined;
406
+ getRequester<T extends Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device>(): ToSmart<T> | undefined;
407
+ getPerformers<T extends Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson>(): ToSmart<T>[];
408
+ }
409
+ /**
410
+ * Reference methods for CarePlan resources
411
+ */
412
+ export interface CarePlanReferenceMethods {
413
+ getBasedOn(): SmartCarePlan[];
414
+ getReplaces(): SmartCarePlan[];
415
+ getPartOf(): SmartCarePlan[];
416
+ getSubject<T extends Patient | Group>(): ToSmart<T> | undefined;
417
+ getEncounter(): SmartEncounter | undefined;
418
+ getAuthor<T extends Patient | Practitioner | PractitionerRole | Device | RelatedPerson | Organization | CareTeam>(): ToSmart<T> | undefined;
419
+ getContributor<T extends Patient | Practitioner | PractitionerRole | Device | RelatedPerson | Organization | CareTeam>(): ToSmart<T>[];
420
+ getCareTeam(): SmartCareTeam[];
421
+ getAddresses(): SmartCondition[];
422
+ getSupportingInfo<T extends Resource>(): ToSmart<T>[];
423
+ getGoal(): SmartGoal[];
424
+ getActivityReference<T extends Appointment | CommunicationRequest | DeviceRequest | MedicationRequest | NutritionOrder | Task | ServiceRequest | VisionPrescription | RequestGroup>(): ToSmart<T>[];
425
+ getActivityOutcomeReference<T extends Resource>(): ToSmart<T>[];
426
+ getActivityDetailReasonReference<T extends Condition | Observation | DiagnosticReport | DocumentReference>(): ToSmart<T>[];
427
+ getActivityDetailGoal(): SmartGoal[];
428
+ getActivityDetailLocation(): SmartLocation[];
429
+ getActivityDetailPerformer<T extends Practitioner | PractitionerRole | Organization | RelatedPerson | Patient | CareTeam | HealthcareService | Device>(): ToSmart<T>[];
430
+ getActivityDetailProductReference<T extends Medication | Substance>(): ToSmart<T>[];
431
+ }
432
+ /**
433
+ * Base reference methods for resources that don't have specific reference patterns
434
+ */
435
+ export interface BaseReferenceMethods {
436
+ }
437
+ /**
438
+ * Conditional type that maps resource types to their reference methods
439
+ */
440
+ export type ReferenceMethodsFor<T extends Resource> = T extends Observation ? ObservationReferenceMethods : T extends Encounter ? EncounterReferenceMethods : T extends DiagnosticReport ? DiagnosticReportReferenceMethods : T extends Patient ? PatientReferenceMethods : T extends Practitioner ? PractitionerReferenceMethods : T extends PractitionerRole ? PractitionerRoleReferenceMethods : T extends AllergyIntolerance ? AllergyIntoleranceReferenceMethods : T extends Condition ? ConditionReferenceMethods : T extends Organization ? OrganizationReferenceMethods : T extends Location ? LocationReferenceMethods : T extends Composition ? CompositionReferenceMethods : T extends Coverage ? CoverageReferenceMethods : T extends DocumentReference ? DocumentReferenceReferenceMethods : T extends Immunization ? ImmunizationReferenceMethods : T extends Medication ? MedicationReferenceMethods : T extends MedicationRequest ? MedicationRequestReferenceMethods : T extends Procedure ? ProcedureReferenceMethods : T extends FamilyMemberHistory ? FamilyMemberHistoryReferenceMethods : T extends MedicationAdministration ? MedicationAdministrationReferenceMethods : T extends MedicationDispense ? MedicationDispenseReferenceMethods : T extends MedicationStatement ? MedicationStatementReferenceMethods : T extends RelatedPerson ? RelatedPersonReferenceMethods : T extends RiskAssessment ? RiskAssessmentReferenceMethods : T extends ServiceRequest ? ServiceRequestReferenceMethods : T extends CarePlan ? CarePlanReferenceMethods : BaseReferenceMethods;
441
+ /**
442
+ * IMPORTANT: For user-facing code, prefer specific Smart type aliases (SmartObservation,
443
+ * SmartCondition, etc.) defined in coding-fields.ts over the generic Smart<T> pattern.
444
+ *
445
+ * The specific types include CodeableConcept field overrides that enable coding system
446
+ * utilities (hasLoinc(), getIcd10Code(), etc.) to work correctly in TypeScript.
447
+ *
448
+ * @example
449
+ * // ✅ GOOD - Users get full TypeScript support for coding utilities
450
+ * getObservationById(id: string): SmartObservation | undefined
451
+ *
452
+ * // ❌ BAD - Users cannot access coding utilities without type assertions
453
+ * getObservationById(id: string): Smart<Observation> | undefined
454
+ *
455
+ * The generic Smart<T> should only be used internally or when the specific resource
456
+ * type is truly dynamic.
457
+ */
458
+ /**
459
+ * Reference field mapping - maps reference method names to their field paths
460
+ */
461
+ export declare const REFERENCE_METHOD_MAPPING: Record<string, Record<string, string>>;
462
+ /**
463
+ * Helper type to check if a method name is a valid reference method for a resource type
464
+ */
465
+ export declare function isReferenceMethod(methodName: string, resourceType: string): boolean;
466
+ /**
467
+ * Get the reference field path for a method name and resource type
468
+ */
469
+ export declare function getReferenceField(methodName: string, resourceType: string): string | undefined;
470
+ //# sourceMappingURL=smart-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-resources.d.ts","sourceRoot":"","sources":["../../src/types/smart-resources.ts"],"names":[],"mappings":"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"}