@medplum/core 0.1.6 → 0.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 (679) hide show
  1. package/README.md +29 -25
  2. package/dist/cache.d.ts +1 -0
  3. package/dist/cache.js +3 -2
  4. package/dist/cache.js.map +1 -1
  5. package/dist/client.d.ts +72 -54
  6. package/dist/client.js +267 -223
  7. package/dist/client.js.map +1 -1
  8. package/dist/crypto.js +13 -2
  9. package/dist/crypto.js.map +1 -1
  10. package/dist/eventtarget.js +1 -2
  11. package/dist/eventtarget.js.map +1 -1
  12. package/dist/format.d.ts +1 -1
  13. package/dist/format.js +4 -4
  14. package/dist/format.js.map +1 -1
  15. package/dist/index.d.ts +1 -2
  16. package/dist/index.js +1 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/jwt.js.map +1 -1
  19. package/dist/outcomes.d.ts +4 -1
  20. package/dist/outcomes.js +71 -24
  21. package/dist/outcomes.js.map +1 -1
  22. package/dist/search.js +7 -9
  23. package/dist/search.js.map +1 -1
  24. package/dist/searchparams.d.ts +34 -0
  25. package/dist/searchparams.js +128 -0
  26. package/dist/searchparams.js.map +1 -0
  27. package/dist/storage.d.ts +36 -12
  28. package/dist/storage.js +55 -22
  29. package/dist/storage.js.map +1 -1
  30. package/dist/types.d.ts +3 -5
  31. package/dist/types.js +32 -18
  32. package/dist/types.js.map +1 -1
  33. package/dist/utils.d.ts +14 -3
  34. package/dist/utils.js +57 -12
  35. package/dist/utils.js.map +1 -1
  36. package/package.json +3 -16
  37. package/dist/cache.test.d.ts +0 -1
  38. package/dist/cache.test.js +0 -29
  39. package/dist/cache.test.js.map +0 -1
  40. package/dist/client.test.d.ts +0 -1
  41. package/dist/client.test.js +0 -294
  42. package/dist/client.test.js.map +0 -1
  43. package/dist/eventtarget.test.d.ts +0 -1
  44. package/dist/eventtarget.test.js +0 -44
  45. package/dist/eventtarget.test.js.map +0 -1
  46. package/dist/fhir/Account.d.ts +0 -240
  47. package/dist/fhir/Account.js +0 -7
  48. package/dist/fhir/Account.js.map +0 -1
  49. package/dist/fhir/ActivityDefinition.d.ts +0 -494
  50. package/dist/fhir/ActivityDefinition.js +0 -7
  51. package/dist/fhir/ActivityDefinition.js.map +0 -1
  52. package/dist/fhir/Address.d.ts +0 -74
  53. package/dist/fhir/Address.js +0 -7
  54. package/dist/fhir/Address.js.map +0 -1
  55. package/dist/fhir/AdverseEvent.d.ts +0 -287
  56. package/dist/fhir/AdverseEvent.js +0 -7
  57. package/dist/fhir/AdverseEvent.js.map +0 -1
  58. package/dist/fhir/Age.d.ts +0 -47
  59. package/dist/fhir/Age.js +0 -7
  60. package/dist/fhir/Age.js.map +0 -1
  61. package/dist/fhir/AllergyIntolerance.d.ts +0 -278
  62. package/dist/fhir/AllergyIntolerance.js +0 -7
  63. package/dist/fhir/AllergyIntolerance.js.map +0 -1
  64. package/dist/fhir/Annotation.d.ts +0 -38
  65. package/dist/fhir/Annotation.js +0 -7
  66. package/dist/fhir/Annotation.js.map +0 -1
  67. package/dist/fhir/Appointment.d.ts +0 -273
  68. package/dist/fhir/Appointment.js +0 -7
  69. package/dist/fhir/Appointment.js.map +0 -1
  70. package/dist/fhir/AppointmentResponse.d.ts +0 -123
  71. package/dist/fhir/AppointmentResponse.js +0 -7
  72. package/dist/fhir/AppointmentResponse.js.map +0 -1
  73. package/dist/fhir/Attachment.d.ts +0 -57
  74. package/dist/fhir/Attachment.js +0 -7
  75. package/dist/fhir/Attachment.js.map +0 -1
  76. package/dist/fhir/AuditEvent.d.ts +0 -458
  77. package/dist/fhir/AuditEvent.js +0 -7
  78. package/dist/fhir/AuditEvent.js.map +0 -1
  79. package/dist/fhir/Basic.d.ts +0 -105
  80. package/dist/fhir/Basic.js +0 -7
  81. package/dist/fhir/Basic.js.map +0 -1
  82. package/dist/fhir/Binary.d.ts +0 -58
  83. package/dist/fhir/Binary.js +0 -7
  84. package/dist/fhir/Binary.js.map +0 -1
  85. package/dist/fhir/BiologicallyDerivedProduct.d.ts +0 -356
  86. package/dist/fhir/BiologicallyDerivedProduct.js +0 -7
  87. package/dist/fhir/BiologicallyDerivedProduct.js.map +0 -1
  88. package/dist/fhir/BodyStructure.d.ts +0 -118
  89. package/dist/fhir/BodyStructure.js +0 -7
  90. package/dist/fhir/BodyStructure.js.map +0 -1
  91. package/dist/fhir/Bundle.d.ts +0 -373
  92. package/dist/fhir/Bundle.js +0 -7
  93. package/dist/fhir/Bundle.js.map +0 -1
  94. package/dist/fhir/CapabilityStatement.d.ts +0 -1068
  95. package/dist/fhir/CapabilityStatement.js +0 -7
  96. package/dist/fhir/CapabilityStatement.js.map +0 -1
  97. package/dist/fhir/CarePlan.d.ts +0 -421
  98. package/dist/fhir/CarePlan.js +0 -7
  99. package/dist/fhir/CarePlan.js.map +0 -1
  100. package/dist/fhir/CareTeam.d.ts +0 -203
  101. package/dist/fhir/CareTeam.js +0 -7
  102. package/dist/fhir/CareTeam.js.map +0 -1
  103. package/dist/fhir/CatalogEntry.d.ts +0 -184
  104. package/dist/fhir/CatalogEntry.js +0 -7
  105. package/dist/fhir/CatalogEntry.js.map +0 -1
  106. package/dist/fhir/ChargeItem.d.ts +0 -270
  107. package/dist/fhir/ChargeItem.js +0 -7
  108. package/dist/fhir/ChargeItem.js.map +0 -1
  109. package/dist/fhir/ChargeItemDefinition.d.ts +0 -402
  110. package/dist/fhir/ChargeItemDefinition.js +0 -7
  111. package/dist/fhir/ChargeItemDefinition.js.map +0 -1
  112. package/dist/fhir/Claim.d.ts +0 -1089
  113. package/dist/fhir/Claim.js +0 -7
  114. package/dist/fhir/Claim.js.map +0 -1
  115. package/dist/fhir/ClaimResponse.d.ts +0 -1037
  116. package/dist/fhir/ClaimResponse.js +0 -7
  117. package/dist/fhir/ClaimResponse.js.map +0 -1
  118. package/dist/fhir/ClientApplication.d.ts +0 -54
  119. package/dist/fhir/ClientApplication.js +0 -7
  120. package/dist/fhir/ClientApplication.js.map +0 -1
  121. package/dist/fhir/ClinicalImpression.d.ts +0 -301
  122. package/dist/fhir/ClinicalImpression.js +0 -7
  123. package/dist/fhir/ClinicalImpression.js.map +0 -1
  124. package/dist/fhir/CodeSystem.d.ts +0 -546
  125. package/dist/fhir/CodeSystem.js +0 -7
  126. package/dist/fhir/CodeSystem.js.map +0 -1
  127. package/dist/fhir/CodeableConcept.d.ts +0 -32
  128. package/dist/fhir/CodeableConcept.js +0 -7
  129. package/dist/fhir/CodeableConcept.js.map +0 -1
  130. package/dist/fhir/Coding.d.ts +0 -49
  131. package/dist/fhir/Coding.js +0 -7
  132. package/dist/fhir/Coding.js.map +0 -1
  133. package/dist/fhir/Communication.d.ts +0 -251
  134. package/dist/fhir/Communication.js +0 -7
  135. package/dist/fhir/Communication.js.map +0 -1
  136. package/dist/fhir/CommunicationRequest.d.ts +0 -248
  137. package/dist/fhir/CommunicationRequest.js +0 -7
  138. package/dist/fhir/CommunicationRequest.js.map +0 -1
  139. package/dist/fhir/CompartmentDefinition.d.ts +0 -218
  140. package/dist/fhir/CompartmentDefinition.js +0 -7
  141. package/dist/fhir/CompartmentDefinition.js.map +0 -1
  142. package/dist/fhir/Composition.d.ts +0 -455
  143. package/dist/fhir/Composition.js +0 -7
  144. package/dist/fhir/Composition.js.map +0 -1
  145. package/dist/fhir/ConceptMap.d.ts +0 -523
  146. package/dist/fhir/ConceptMap.js +0 -7
  147. package/dist/fhir/ConceptMap.js.map +0 -1
  148. package/dist/fhir/Condition.d.ts +0 -316
  149. package/dist/fhir/Condition.js +0 -7
  150. package/dist/fhir/Condition.js.map +0 -1
  151. package/dist/fhir/Consent.d.ts +0 -457
  152. package/dist/fhir/Consent.js +0 -7
  153. package/dist/fhir/Consent.js.map +0 -1
  154. package/dist/fhir/ContactDetail.d.ts +0 -30
  155. package/dist/fhir/ContactDetail.js +0 -7
  156. package/dist/fhir/ContactDetail.js.map +0 -1
  157. package/dist/fhir/ContactPoint.d.ts +0 -46
  158. package/dist/fhir/ContactPoint.js +0 -7
  159. package/dist/fhir/ContactPoint.js.map +0 -1
  160. package/dist/fhir/Contract.d.ts +0 -1431
  161. package/dist/fhir/Contract.js +0 -7
  162. package/dist/fhir/Contract.js.map +0 -1
  163. package/dist/fhir/Contributor.d.ts +0 -36
  164. package/dist/fhir/Contributor.js +0 -7
  165. package/dist/fhir/Contributor.js.map +0 -1
  166. package/dist/fhir/Count.d.ts +0 -49
  167. package/dist/fhir/Count.js +0 -7
  168. package/dist/fhir/Count.js.map +0 -1
  169. package/dist/fhir/Coverage.d.ts +0 -323
  170. package/dist/fhir/Coverage.js +0 -7
  171. package/dist/fhir/Coverage.js.map +0 -1
  172. package/dist/fhir/CoverageEligibilityRequest.d.ts +0 -409
  173. package/dist/fhir/CoverageEligibilityRequest.js +0 -7
  174. package/dist/fhir/CoverageEligibilityRequest.js.map +0 -1
  175. package/dist/fhir/CoverageEligibilityResponse.d.ts +0 -430
  176. package/dist/fhir/CoverageEligibilityResponse.js +0 -7
  177. package/dist/fhir/CoverageEligibilityResponse.js.map +0 -1
  178. package/dist/fhir/DataRequirement.d.ts +0 -288
  179. package/dist/fhir/DataRequirement.js +0 -7
  180. package/dist/fhir/DataRequirement.js.map +0 -1
  181. package/dist/fhir/DetectedIssue.d.ts +0 -249
  182. package/dist/fhir/DetectedIssue.js +0 -7
  183. package/dist/fhir/DetectedIssue.js.map +0 -1
  184. package/dist/fhir/Device.d.ts +0 -488
  185. package/dist/fhir/Device.js +0 -7
  186. package/dist/fhir/Device.js.map +0 -1
  187. package/dist/fhir/DeviceDefinition.d.ts +0 -484
  188. package/dist/fhir/DeviceDefinition.js +0 -7
  189. package/dist/fhir/DeviceDefinition.js.map +0 -1
  190. package/dist/fhir/DeviceMetric.d.ts +0 -198
  191. package/dist/fhir/DeviceMetric.js +0 -7
  192. package/dist/fhir/DeviceMetric.js.map +0 -1
  193. package/dist/fhir/DeviceRequest.d.ts +0 -279
  194. package/dist/fhir/DeviceRequest.js +0 -7
  195. package/dist/fhir/DeviceRequest.js.map +0 -1
  196. package/dist/fhir/DeviceUseStatement.d.ts +0 -153
  197. package/dist/fhir/DeviceUseStatement.js +0 -7
  198. package/dist/fhir/DeviceUseStatement.js.map +0 -1
  199. package/dist/fhir/DiagnosticReport.d.ts +0 -239
  200. package/dist/fhir/DiagnosticReport.js +0 -7
  201. package/dist/fhir/DiagnosticReport.js.map +0 -1
  202. package/dist/fhir/Distance.d.ts +0 -46
  203. package/dist/fhir/Distance.js +0 -7
  204. package/dist/fhir/Distance.js.map +0 -1
  205. package/dist/fhir/DocumentManifest.d.ts +0 -190
  206. package/dist/fhir/DocumentManifest.js +0 -7
  207. package/dist/fhir/DocumentManifest.js.map +0 -1
  208. package/dist/fhir/DocumentReference.d.ts +0 -353
  209. package/dist/fhir/DocumentReference.js +0 -7
  210. package/dist/fhir/DocumentReference.js.map +0 -1
  211. package/dist/fhir/Dosage.d.ts +0 -171
  212. package/dist/fhir/Dosage.js +0 -7
  213. package/dist/fhir/Dosage.js.map +0 -1
  214. package/dist/fhir/Duration.d.ts +0 -46
  215. package/dist/fhir/Duration.js +0 -7
  216. package/dist/fhir/Duration.js.map +0 -1
  217. package/dist/fhir/EffectEvidenceSynthesis.d.ts +0 -600
  218. package/dist/fhir/EffectEvidenceSynthesis.js +0 -7
  219. package/dist/fhir/EffectEvidenceSynthesis.js.map +0 -1
  220. package/dist/fhir/Element.d.ts +0 -20
  221. package/dist/fhir/Element.js +0 -7
  222. package/dist/fhir/Element.js.map +0 -1
  223. package/dist/fhir/ElementDefinition.d.ts +0 -2828
  224. package/dist/fhir/ElementDefinition.js +0 -7
  225. package/dist/fhir/ElementDefinition.js.map +0 -1
  226. package/dist/fhir/Encounter.d.ts +0 -546
  227. package/dist/fhir/Encounter.js +0 -7
  228. package/dist/fhir/Encounter.js.map +0 -1
  229. package/dist/fhir/Endpoint.d.ts +0 -139
  230. package/dist/fhir/Endpoint.js +0 -7
  231. package/dist/fhir/Endpoint.js.map +0 -1
  232. package/dist/fhir/EnrollmentRequest.d.ts +0 -108
  233. package/dist/fhir/EnrollmentRequest.js +0 -7
  234. package/dist/fhir/EnrollmentRequest.js.map +0 -1
  235. package/dist/fhir/EnrollmentResponse.d.ts +0 -113
  236. package/dist/fhir/EnrollmentResponse.js +0 -7
  237. package/dist/fhir/EnrollmentResponse.js.map +0 -1
  238. package/dist/fhir/EpisodeOfCare.d.ts +0 -243
  239. package/dist/fhir/EpisodeOfCare.js +0 -7
  240. package/dist/fhir/EpisodeOfCare.js.map +0 -1
  241. package/dist/fhir/EventDefinition.d.ts +0 -252
  242. package/dist/fhir/EventDefinition.js +0 -7
  243. package/dist/fhir/EventDefinition.js.map +0 -1
  244. package/dist/fhir/Evidence.d.ts +0 -251
  245. package/dist/fhir/Evidence.js +0 -7
  246. package/dist/fhir/Evidence.js.map +0 -1
  247. package/dist/fhir/EvidenceVariable.d.ts +0 -369
  248. package/dist/fhir/EvidenceVariable.js +0 -7
  249. package/dist/fhir/EvidenceVariable.js.map +0 -1
  250. package/dist/fhir/ExampleScenario.d.ts +0 -626
  251. package/dist/fhir/ExampleScenario.js +0 -7
  252. package/dist/fhir/ExampleScenario.js.map +0 -1
  253. package/dist/fhir/ExplanationOfBenefit.d.ts +0 -1854
  254. package/dist/fhir/ExplanationOfBenefit.js +0 -7
  255. package/dist/fhir/ExplanationOfBenefit.js.map +0 -1
  256. package/dist/fhir/Expression.d.ts +0 -45
  257. package/dist/fhir/Expression.js +0 -7
  258. package/dist/fhir/Expression.js.map +0 -1
  259. package/dist/fhir/Extension.d.ts +0 -305
  260. package/dist/fhir/Extension.js +0 -7
  261. package/dist/fhir/Extension.js.map +0 -1
  262. package/dist/fhir/FamilyMemberHistory.d.ts +0 -297
  263. package/dist/fhir/FamilyMemberHistory.js +0 -7
  264. package/dist/fhir/FamilyMemberHistory.js.map +0 -1
  265. package/dist/fhir/Flag.d.ts +0 -121
  266. package/dist/fhir/Flag.js +0 -7
  267. package/dist/fhir/Flag.js.map +0 -1
  268. package/dist/fhir/Goal.d.ts +0 -290
  269. package/dist/fhir/Goal.js +0 -7
  270. package/dist/fhir/Goal.js.map +0 -1
  271. package/dist/fhir/GraphDefinition.d.ts +0 -359
  272. package/dist/fhir/GraphDefinition.js +0 -7
  273. package/dist/fhir/GraphDefinition.js.map +0 -1
  274. package/dist/fhir/Group.d.ts +0 -268
  275. package/dist/fhir/Group.js +0 -7
  276. package/dist/fhir/Group.js.map +0 -1
  277. package/dist/fhir/GuidanceResponse.d.ts +0 -184
  278. package/dist/fhir/GuidanceResponse.js +0 -7
  279. package/dist/fhir/GuidanceResponse.js.map +0 -1
  280. package/dist/fhir/HealthcareService.d.ts +0 -351
  281. package/dist/fhir/HealthcareService.js +0 -7
  282. package/dist/fhir/HealthcareService.js.map +0 -1
  283. package/dist/fhir/HumanName.d.ts +0 -57
  284. package/dist/fhir/HumanName.js +0 -7
  285. package/dist/fhir/HumanName.js.map +0 -1
  286. package/dist/fhir/Identifier.d.ts +0 -51
  287. package/dist/fhir/Identifier.js +0 -7
  288. package/dist/fhir/Identifier.js.map +0 -1
  289. package/dist/fhir/ImagingStudy.d.ts +0 -398
  290. package/dist/fhir/ImagingStudy.js +0 -7
  291. package/dist/fhir/ImagingStudy.js.map +0 -1
  292. package/dist/fhir/Immunization.d.ts +0 -440
  293. package/dist/fhir/Immunization.js +0 -7
  294. package/dist/fhir/Immunization.js.map +0 -1
  295. package/dist/fhir/ImmunizationEvaluation.d.ts +0 -146
  296. package/dist/fhir/ImmunizationEvaluation.js +0 -7
  297. package/dist/fhir/ImmunizationEvaluation.js.map +0 -1
  298. package/dist/fhir/ImmunizationRecommendation.d.ts +0 -253
  299. package/dist/fhir/ImmunizationRecommendation.js +0 -7
  300. package/dist/fhir/ImmunizationRecommendation.js.map +0 -1
  301. package/dist/fhir/ImplementationGuide.d.ts +0 -854
  302. package/dist/fhir/ImplementationGuide.js +0 -7
  303. package/dist/fhir/ImplementationGuide.js.map +0 -1
  304. package/dist/fhir/InsurancePlan.d.ts +0 -630
  305. package/dist/fhir/InsurancePlan.js +0 -7
  306. package/dist/fhir/InsurancePlan.js.map +0 -1
  307. package/dist/fhir/Invoice.d.ts +0 -331
  308. package/dist/fhir/Invoice.js +0 -7
  309. package/dist/fhir/Invoice.js.map +0 -1
  310. package/dist/fhir/JsonWebKey.d.ts +0 -99
  311. package/dist/fhir/JsonWebKey.js +0 -7
  312. package/dist/fhir/JsonWebKey.js.map +0 -1
  313. package/dist/fhir/Library.d.ts +0 -276
  314. package/dist/fhir/Library.js +0 -7
  315. package/dist/fhir/Library.js.map +0 -1
  316. package/dist/fhir/Linkage.d.ts +0 -142
  317. package/dist/fhir/Linkage.js +0 -7
  318. package/dist/fhir/Linkage.js.map +0 -1
  319. package/dist/fhir/List.d.ts +0 -193
  320. package/dist/fhir/List.js +0 -7
  321. package/dist/fhir/List.js.map +0 -1
  322. package/dist/fhir/Location.d.ts +0 -278
  323. package/dist/fhir/Location.js +0 -7
  324. package/dist/fhir/Location.js.map +0 -1
  325. package/dist/fhir/Login.d.ts +0 -108
  326. package/dist/fhir/Login.js +0 -7
  327. package/dist/fhir/Login.js.map +0 -1
  328. package/dist/fhir/MarketingStatus.d.ts +0 -82
  329. package/dist/fhir/MarketingStatus.js +0 -7
  330. package/dist/fhir/MarketingStatus.js.map +0 -1
  331. package/dist/fhir/Measure.d.ts +0 -613
  332. package/dist/fhir/Measure.js +0 -7
  333. package/dist/fhir/Measure.js.map +0 -1
  334. package/dist/fhir/MeasureReport.d.ts +0 -460
  335. package/dist/fhir/MeasureReport.js +0 -7
  336. package/dist/fhir/MeasureReport.js.map +0 -1
  337. package/dist/fhir/Media.d.ts +0 -191
  338. package/dist/fhir/Media.js +0 -7
  339. package/dist/fhir/Media.js.map +0 -1
  340. package/dist/fhir/Medication.d.ts +0 -234
  341. package/dist/fhir/Medication.js +0 -7
  342. package/dist/fhir/Medication.js.map +0 -1
  343. package/dist/fhir/MedicationAdministration.d.ts +0 -343
  344. package/dist/fhir/MedicationAdministration.js +0 -7
  345. package/dist/fhir/MedicationAdministration.js.map +0 -1
  346. package/dist/fhir/MedicationDispense.d.ts +0 -332
  347. package/dist/fhir/MedicationDispense.js +0 -7
  348. package/dist/fhir/MedicationDispense.js.map +0 -1
  349. package/dist/fhir/MedicationKnowledge.d.ts +0 -979
  350. package/dist/fhir/MedicationKnowledge.js +0 -7
  351. package/dist/fhir/MedicationKnowledge.js.map +0 -1
  352. package/dist/fhir/MedicationRequest.d.ts +0 -468
  353. package/dist/fhir/MedicationRequest.js +0 -7
  354. package/dist/fhir/MedicationRequest.js.map +0 -1
  355. package/dist/fhir/MedicationStatement.d.ts +0 -210
  356. package/dist/fhir/MedicationStatement.js +0 -7
  357. package/dist/fhir/MedicationStatement.js.map +0 -1
  358. package/dist/fhir/MedicinalProduct.d.ts +0 -449
  359. package/dist/fhir/MedicinalProduct.js +0 -7
  360. package/dist/fhir/MedicinalProduct.js.map +0 -1
  361. package/dist/fhir/MedicinalProductAuthorization.d.ts +0 -267
  362. package/dist/fhir/MedicinalProductAuthorization.js +0 -7
  363. package/dist/fhir/MedicinalProductAuthorization.js.map +0 -1
  364. package/dist/fhir/MedicinalProductContraindication.d.ts +0 -165
  365. package/dist/fhir/MedicinalProductContraindication.js +0 -7
  366. package/dist/fhir/MedicinalProductContraindication.js.map +0 -1
  367. package/dist/fhir/MedicinalProductIndication.d.ts +0 -173
  368. package/dist/fhir/MedicinalProductIndication.js +0 -7
  369. package/dist/fhir/MedicinalProductIndication.js.map +0 -1
  370. package/dist/fhir/MedicinalProductIngredient.d.ts +0 -334
  371. package/dist/fhir/MedicinalProductIngredient.js +0 -7
  372. package/dist/fhir/MedicinalProductIngredient.js.map +0 -1
  373. package/dist/fhir/MedicinalProductInteraction.d.ts +0 -155
  374. package/dist/fhir/MedicinalProductInteraction.js +0 -7
  375. package/dist/fhir/MedicinalProductInteraction.js.map +0 -1
  376. package/dist/fhir/MedicinalProductManufactured.d.ts +0 -111
  377. package/dist/fhir/MedicinalProductManufactured.js +0 -7
  378. package/dist/fhir/MedicinalProductManufactured.js.map +0 -1
  379. package/dist/fhir/MedicinalProductPackaged.d.ts +0 -253
  380. package/dist/fhir/MedicinalProductPackaged.js +0 -7
  381. package/dist/fhir/MedicinalProductPackaged.js.map +0 -1
  382. package/dist/fhir/MedicinalProductPharmaceutical.d.ts +0 -331
  383. package/dist/fhir/MedicinalProductPharmaceutical.js +0 -7
  384. package/dist/fhir/MedicinalProductPharmaceutical.js.map +0 -1
  385. package/dist/fhir/MedicinalProductUndesirableEffect.d.ts +0 -99
  386. package/dist/fhir/MedicinalProductUndesirableEffect.js +0 -7
  387. package/dist/fhir/MedicinalProductUndesirableEffect.js.map +0 -1
  388. package/dist/fhir/MessageDefinition.d.ts +0 -331
  389. package/dist/fhir/MessageDefinition.js +0 -7
  390. package/dist/fhir/MessageDefinition.js.map +0 -1
  391. package/dist/fhir/MessageHeader.d.ts +0 -329
  392. package/dist/fhir/MessageHeader.js +0 -7
  393. package/dist/fhir/MessageHeader.js.map +0 -1
  394. package/dist/fhir/Meta.d.ts +0 -68
  395. package/dist/fhir/Meta.js +0 -7
  396. package/dist/fhir/Meta.js.map +0 -1
  397. package/dist/fhir/MolecularSequence.d.ts +0 -746
  398. package/dist/fhir/MolecularSequence.js +0 -7
  399. package/dist/fhir/MolecularSequence.js.map +0 -1
  400. package/dist/fhir/Money.d.ts +0 -28
  401. package/dist/fhir/Money.js +0 -7
  402. package/dist/fhir/Money.js.map +0 -1
  403. package/dist/fhir/NamingSystem.d.ts +0 -219
  404. package/dist/fhir/NamingSystem.js +0 -7
  405. package/dist/fhir/NamingSystem.js.map +0 -1
  406. package/dist/fhir/Narrative.d.ts +0 -31
  407. package/dist/fhir/Narrative.js +0 -7
  408. package/dist/fhir/Narrative.js.map +0 -1
  409. package/dist/fhir/NutritionOrder.d.ts +0 -558
  410. package/dist/fhir/NutritionOrder.js +0 -7
  411. package/dist/fhir/NutritionOrder.js.map +0 -1
  412. package/dist/fhir/Observation.d.ts +0 -487
  413. package/dist/fhir/Observation.js +0 -7
  414. package/dist/fhir/Observation.js.map +0 -1
  415. package/dist/fhir/ObservationDefinition.d.ts +0 -277
  416. package/dist/fhir/ObservationDefinition.js +0 -7
  417. package/dist/fhir/ObservationDefinition.js.map +0 -1
  418. package/dist/fhir/OperationDefinition.d.ts +0 -468
  419. package/dist/fhir/OperationDefinition.js +0 -7
  420. package/dist/fhir/OperationDefinition.js.map +0 -1
  421. package/dist/fhir/OperationOutcome.d.ts +0 -168
  422. package/dist/fhir/OperationOutcome.js +0 -7
  423. package/dist/fhir/OperationOutcome.js.map +0 -1
  424. package/dist/fhir/Organization.d.ts +0 -187
  425. package/dist/fhir/Organization.js +0 -7
  426. package/dist/fhir/Organization.js.map +0 -1
  427. package/dist/fhir/OrganizationAffiliation.d.ts +0 -141
  428. package/dist/fhir/OrganizationAffiliation.js +0 -7
  429. package/dist/fhir/OrganizationAffiliation.js.map +0 -1
  430. package/dist/fhir/ParameterDefinition.d.ts +0 -56
  431. package/dist/fhir/ParameterDefinition.js +0 -7
  432. package/dist/fhir/ParameterDefinition.js.map +0 -1
  433. package/dist/fhir/Parameters.d.ts +0 -321
  434. package/dist/fhir/Parameters.js +0 -7
  435. package/dist/fhir/Parameters.js.map +0 -1
  436. package/dist/fhir/PasswordChangeRequest.d.ts +0 -50
  437. package/dist/fhir/PasswordChangeRequest.js +0 -7
  438. package/dist/fhir/PasswordChangeRequest.js.map +0 -1
  439. package/dist/fhir/Patient.d.ts +0 -339
  440. package/dist/fhir/Patient.js +0 -7
  441. package/dist/fhir/Patient.js.map +0 -1
  442. package/dist/fhir/PaymentNotice.d.ts +0 -131
  443. package/dist/fhir/PaymentNotice.js +0 -7
  444. package/dist/fhir/PaymentNotice.js.map +0 -1
  445. package/dist/fhir/PaymentReconciliation.d.ts +0 -276
  446. package/dist/fhir/PaymentReconciliation.js +0 -7
  447. package/dist/fhir/PaymentReconciliation.js.map +0 -1
  448. package/dist/fhir/Period.d.ts +0 -31
  449. package/dist/fhir/Period.js +0 -7
  450. package/dist/fhir/Period.js.map +0 -1
  451. package/dist/fhir/Person.d.ts +0 -172
  452. package/dist/fhir/Person.js +0 -7
  453. package/dist/fhir/Person.js.map +0 -1
  454. package/dist/fhir/PlanDefinition.d.ts +0 -855
  455. package/dist/fhir/PlanDefinition.js +0 -7
  456. package/dist/fhir/PlanDefinition.js.map +0 -1
  457. package/dist/fhir/Population.d.ts +0 -61
  458. package/dist/fhir/Population.js +0 -7
  459. package/dist/fhir/Population.js.map +0 -1
  460. package/dist/fhir/Practitioner.d.ts +0 -188
  461. package/dist/fhir/Practitioner.js +0 -7
  462. package/dist/fhir/Practitioner.js.map +0 -1
  463. package/dist/fhir/PractitionerRole.d.ts +0 -254
  464. package/dist/fhir/PractitionerRole.js +0 -7
  465. package/dist/fhir/PractitionerRole.js.map +0 -1
  466. package/dist/fhir/Procedure.d.ts +0 -355
  467. package/dist/fhir/Procedure.js +0 -7
  468. package/dist/fhir/Procedure.js.map +0 -1
  469. package/dist/fhir/ProdCharacteristic.d.ts +0 -112
  470. package/dist/fhir/ProdCharacteristic.js +0 -7
  471. package/dist/fhir/ProdCharacteristic.js.map +0 -1
  472. package/dist/fhir/ProductShelfLife.d.ts +0 -69
  473. package/dist/fhir/ProductShelfLife.js +0 -7
  474. package/dist/fhir/ProductShelfLife.js.map +0 -1
  475. package/dist/fhir/Project.d.ts +0 -46
  476. package/dist/fhir/Project.js +0 -7
  477. package/dist/fhir/Project.js.map +0 -1
  478. package/dist/fhir/ProjectMembership.d.ts +0 -54
  479. package/dist/fhir/ProjectMembership.js +0 -7
  480. package/dist/fhir/ProjectMembership.js.map +0 -1
  481. package/dist/fhir/Provenance.d.ts +0 -270
  482. package/dist/fhir/Provenance.js +0 -7
  483. package/dist/fhir/Provenance.js.map +0 -1
  484. package/dist/fhir/Quantity.d.ts +0 -49
  485. package/dist/fhir/Quantity.js +0 -7
  486. package/dist/fhir/Quantity.js.map +0 -1
  487. package/dist/fhir/Questionnaire.d.ts +0 -610
  488. package/dist/fhir/Questionnaire.js +0 -7
  489. package/dist/fhir/Questionnaire.js.map +0 -1
  490. package/dist/fhir/QuestionnaireResponse.d.ts +0 -305
  491. package/dist/fhir/QuestionnaireResponse.js +0 -7
  492. package/dist/fhir/QuestionnaireResponse.js.map +0 -1
  493. package/dist/fhir/Range.d.ts +0 -29
  494. package/dist/fhir/Range.js +0 -7
  495. package/dist/fhir/Range.js.map +0 -1
  496. package/dist/fhir/Ratio.d.ts +0 -30
  497. package/dist/fhir/Ratio.js +0 -7
  498. package/dist/fhir/Ratio.js.map +0 -1
  499. package/dist/fhir/Reference.d.ts +0 -66
  500. package/dist/fhir/Reference.js +0 -7
  501. package/dist/fhir/Reference.js.map +0 -1
  502. package/dist/fhir/RefreshToken.d.ts +0 -45
  503. package/dist/fhir/RefreshToken.js +0 -7
  504. package/dist/fhir/RefreshToken.js.map +0 -1
  505. package/dist/fhir/RelatedArtifact.d.ts +0 -56
  506. package/dist/fhir/RelatedArtifact.js +0 -7
  507. package/dist/fhir/RelatedArtifact.js.map +0 -1
  508. package/dist/fhir/RelatedPerson.d.ts +0 -190
  509. package/dist/fhir/RelatedPerson.js +0 -7
  510. package/dist/fhir/RelatedPerson.js.map +0 -1
  511. package/dist/fhir/RequestGroup.d.ts +0 -427
  512. package/dist/fhir/RequestGroup.js +0 -7
  513. package/dist/fhir/RequestGroup.js.map +0 -1
  514. package/dist/fhir/ResearchDefinition.d.ts +0 -289
  515. package/dist/fhir/ResearchDefinition.js +0 -7
  516. package/dist/fhir/ResearchDefinition.js.map +0 -1
  517. package/dist/fhir/ResearchElementDefinition.d.ts +0 -430
  518. package/dist/fhir/ResearchElementDefinition.js +0 -7
  519. package/dist/fhir/ResearchElementDefinition.js.map +0 -1
  520. package/dist/fhir/ResearchStudy.d.ts +0 -320
  521. package/dist/fhir/ResearchStudy.js +0 -7
  522. package/dist/fhir/ResearchStudy.js.map +0 -1
  523. package/dist/fhir/ResearchSubject.d.ts +0 -116
  524. package/dist/fhir/ResearchSubject.js +0 -7
  525. package/dist/fhir/ResearchSubject.js.map +0 -1
  526. package/dist/fhir/Resource.d.ts +0 -154
  527. package/dist/fhir/Resource.js +0 -7
  528. package/dist/fhir/Resource.js.map +0 -1
  529. package/dist/fhir/RiskAssessment.d.ts +0 -237
  530. package/dist/fhir/RiskAssessment.js +0 -7
  531. package/dist/fhir/RiskAssessment.js.map +0 -1
  532. package/dist/fhir/RiskEvidenceSynthesis.d.ts +0 -539
  533. package/dist/fhir/RiskEvidenceSynthesis.js +0 -7
  534. package/dist/fhir/RiskEvidenceSynthesis.js.map +0 -1
  535. package/dist/fhir/SampledData.d.ts +0 -61
  536. package/dist/fhir/SampledData.js +0 -7
  537. package/dist/fhir/SampledData.js.map +0 -1
  538. package/dist/fhir/Schedule.d.ts +0 -122
  539. package/dist/fhir/Schedule.js +0 -7
  540. package/dist/fhir/Schedule.js.map +0 -1
  541. package/dist/fhir/SearchParameter.d.ts +0 -278
  542. package/dist/fhir/SearchParameter.js +0 -7
  543. package/dist/fhir/SearchParameter.js.map +0 -1
  544. package/dist/fhir/ServiceRequest.d.ts +0 -288
  545. package/dist/fhir/ServiceRequest.js +0 -7
  546. package/dist/fhir/ServiceRequest.js.map +0 -1
  547. package/dist/fhir/Signature.d.ts +0 -65
  548. package/dist/fhir/Signature.js +0 -7
  549. package/dist/fhir/Signature.js.map +0 -1
  550. package/dist/fhir/Slot.d.ts +0 -133
  551. package/dist/fhir/Slot.js +0 -7
  552. package/dist/fhir/Slot.js.map +0 -1
  553. package/dist/fhir/Specimen.d.ts +0 -357
  554. package/dist/fhir/Specimen.js +0 -7
  555. package/dist/fhir/Specimen.js.map +0 -1
  556. package/dist/fhir/SpecimenDefinition.d.ts +0 -359
  557. package/dist/fhir/SpecimenDefinition.js +0 -7
  558. package/dist/fhir/SpecimenDefinition.js.map +0 -1
  559. package/dist/fhir/StructureDefinition.d.ts +0 -443
  560. package/dist/fhir/StructureDefinition.js +0 -7
  561. package/dist/fhir/StructureDefinition.js.map +0 -1
  562. package/dist/fhir/StructureMap.d.ts +0 -908
  563. package/dist/fhir/StructureMap.js +0 -7
  564. package/dist/fhir/StructureMap.js.map +0 -1
  565. package/dist/fhir/Subscription.d.ts +0 -176
  566. package/dist/fhir/Subscription.js +0 -7
  567. package/dist/fhir/Subscription.js.map +0 -1
  568. package/dist/fhir/Substance.d.ts +0 -212
  569. package/dist/fhir/Substance.js +0 -7
  570. package/dist/fhir/Substance.js.map +0 -1
  571. package/dist/fhir/SubstanceAmount.d.ts +0 -138
  572. package/dist/fhir/SubstanceAmount.js +0 -7
  573. package/dist/fhir/SubstanceAmount.js.map +0 -1
  574. package/dist/fhir/SubstanceNucleicAcid.d.ts +0 -316
  575. package/dist/fhir/SubstanceNucleicAcid.js +0 -7
  576. package/dist/fhir/SubstanceNucleicAcid.js.map +0 -1
  577. package/dist/fhir/SubstancePolymer.d.ts +0 -405
  578. package/dist/fhir/SubstancePolymer.js +0 -7
  579. package/dist/fhir/SubstancePolymer.js.map +0 -1
  580. package/dist/fhir/SubstanceProtein.d.ts +0 -217
  581. package/dist/fhir/SubstanceProtein.js +0 -7
  582. package/dist/fhir/SubstanceProtein.js.map +0 -1
  583. package/dist/fhir/SubstanceReferenceInformation.d.ts +0 -329
  584. package/dist/fhir/SubstanceReferenceInformation.js +0 -7
  585. package/dist/fhir/SubstanceReferenceInformation.js.map +0 -1
  586. package/dist/fhir/SubstanceSourceMaterial.d.ts +0 -594
  587. package/dist/fhir/SubstanceSourceMaterial.js +0 -7
  588. package/dist/fhir/SubstanceSourceMaterial.js.map +0 -1
  589. package/dist/fhir/SubstanceSpecification.d.ts +0 -826
  590. package/dist/fhir/SubstanceSpecification.js +0 -7
  591. package/dist/fhir/SubstanceSpecification.js.map +0 -1
  592. package/dist/fhir/SupplyDelivery.d.ts +0 -195
  593. package/dist/fhir/SupplyDelivery.js +0 -7
  594. package/dist/fhir/SupplyDelivery.js.map +0 -1
  595. package/dist/fhir/SupplyRequest.d.ts +0 -223
  596. package/dist/fhir/SupplyRequest.js +0 -7
  597. package/dist/fhir/SupplyRequest.js.map +0 -1
  598. package/dist/fhir/Task.d.ts +0 -789
  599. package/dist/fhir/Task.js +0 -7
  600. package/dist/fhir/Task.js.map +0 -1
  601. package/dist/fhir/TerminologyCapabilities.d.ts +0 -734
  602. package/dist/fhir/TerminologyCapabilities.js +0 -7
  603. package/dist/fhir/TerminologyCapabilities.js.map +0 -1
  604. package/dist/fhir/TestReport.d.ts +0 -554
  605. package/dist/fhir/TestReport.js +0 -7
  606. package/dist/fhir/TestReport.js.map +0 -1
  607. package/dist/fhir/TestScript.d.ts +0 -1192
  608. package/dist/fhir/TestScript.js +0 -7
  609. package/dist/fhir/TestScript.js.map +0 -1
  610. package/dist/fhir/Timing.d.ts +0 -201
  611. package/dist/fhir/Timing.js +0 -7
  612. package/dist/fhir/Timing.js.map +0 -1
  613. package/dist/fhir/TriggerDefinition.d.ts +0 -63
  614. package/dist/fhir/TriggerDefinition.js +0 -7
  615. package/dist/fhir/TriggerDefinition.js.map +0 -1
  616. package/dist/fhir/UsageContext.d.ts +0 -54
  617. package/dist/fhir/UsageContext.js +0 -7
  618. package/dist/fhir/UsageContext.js.map +0 -1
  619. package/dist/fhir/User.d.ts +0 -44
  620. package/dist/fhir/User.js +0 -7
  621. package/dist/fhir/User.js.map +0 -1
  622. package/dist/fhir/ValueSet.d.ts +0 -736
  623. package/dist/fhir/ValueSet.js +0 -7
  624. package/dist/fhir/ValueSet.js.map +0 -1
  625. package/dist/fhir/VerificationResult.d.ts +0 -340
  626. package/dist/fhir/VerificationResult.js +0 -7
  627. package/dist/fhir/VerificationResult.js.map +0 -1
  628. package/dist/fhir/VisionPrescription.d.ts +0 -261
  629. package/dist/fhir/VisionPrescription.js +0 -7
  630. package/dist/fhir/VisionPrescription.js.map +0 -1
  631. package/dist/fhir/index.d.ts +0 -194
  632. package/dist/fhir/index.js +0 -211
  633. package/dist/fhir/index.js.map +0 -1
  634. package/dist/fhirpath/functions.d.ts +0 -6
  635. package/dist/fhirpath/functions.js +0 -349
  636. package/dist/fhirpath/functions.js.map +0 -1
  637. package/dist/fhirpath/functions.test.d.ts +0 -1
  638. package/dist/fhirpath/functions.test.js +0 -162
  639. package/dist/fhirpath/functions.test.js.map +0 -1
  640. package/dist/fhirpath/index.d.ts +0 -2
  641. package/dist/fhirpath/index.js +0 -15
  642. package/dist/fhirpath/index.js.map +0 -1
  643. package/dist/fhirpath/parse.d.ts +0 -10
  644. package/dist/fhirpath/parse.js +0 -285
  645. package/dist/fhirpath/parse.js.map +0 -1
  646. package/dist/fhirpath/parse.test.d.ts +0 -1
  647. package/dist/fhirpath/parse.test.js +0 -239
  648. package/dist/fhirpath/parse.test.js.map +0 -1
  649. package/dist/fhirpath/tokenize.d.ts +0 -13
  650. package/dist/fhirpath/tokenize.js +0 -43
  651. package/dist/fhirpath/tokenize.js.map +0 -1
  652. package/dist/fhirpath/tokenize.test.d.ts +0 -1
  653. package/dist/fhirpath/tokenize.test.js +0 -69
  654. package/dist/fhirpath/tokenize.test.js.map +0 -1
  655. package/dist/fhirpath/utils.d.ts +0 -13
  656. package/dist/fhirpath/utils.js +0 -34
  657. package/dist/fhirpath/utils.js.map +0 -1
  658. package/dist/fhirpath/utils.test.d.ts +0 -1
  659. package/dist/fhirpath/utils.test.js +0 -22
  660. package/dist/fhirpath/utils.test.js.map +0 -1
  661. package/dist/format.test.d.ts +0 -1
  662. package/dist/format.test.js +0 -127
  663. package/dist/format.test.js.map +0 -1
  664. package/dist/index.test.d.ts +0 -1
  665. package/dist/index.test.js +0 -11
  666. package/dist/index.test.js.map +0 -1
  667. package/dist/outcomes.test.d.ts +0 -1
  668. package/dist/outcomes.test.js +0 -30
  669. package/dist/outcomes.test.js.map +0 -1
  670. package/dist/search.test.d.ts +0 -1
  671. package/dist/search.test.js +0 -70
  672. package/dist/search.test.js.map +0 -1
  673. package/dist/storage.test.d.ts +0 -1
  674. package/dist/storage.test.js +0 -19
  675. package/dist/storage.test.js.map +0 -1
  676. package/dist/tsconfig.tsbuildinfo +0 -1
  677. package/dist/utils.test.d.ts +0 -1
  678. package/dist/utils.test.js +0 -90
  679. package/dist/utils.test.js.map +0 -1
@@ -1,285 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseFhirPath = exports.FhirPathAtom = void 0;
4
- const functions_1 = require("./functions");
5
- const tokenize_1 = require("./tokenize");
6
- const utils_1 = require("./utils");
7
- class ParserBuilder {
8
- prefixParselets = {};
9
- infixParselets = {};
10
- registerInfix(tokenType, parselet) {
11
- this.infixParselets[tokenType] = parselet;
12
- return this;
13
- }
14
- registerPrefix(tokenType, parselet) {
15
- this.prefixParselets[tokenType] = parselet;
16
- return this;
17
- }
18
- prefix(tokenType, precedence, builder) {
19
- return this.registerPrefix(tokenType, {
20
- parse(parser, token) {
21
- const right = parser.parse(precedence);
22
- return builder(token, right);
23
- },
24
- });
25
- }
26
- infixLeft(tokenType, precedence, builder) {
27
- return this.registerInfix(tokenType, {
28
- parse(parser, left, token) {
29
- const right = parser.parse(precedence);
30
- return builder(left, token, right);
31
- },
32
- precedence
33
- });
34
- }
35
- infixRight(tokenType, precedence, builder) {
36
- return this.registerInfix(tokenType, {
37
- parse(parser, left, token) {
38
- const right = parser.parse(precedence - 1);
39
- return builder(left, token, right);
40
- },
41
- precedence
42
- });
43
- }
44
- construct(input) {
45
- return new Parser(tokenize_1.tokenizer.tokenize(input), this.prefixParselets, this.infixParselets);
46
- }
47
- }
48
- class Parser {
49
- tokens;
50
- prefixParselets;
51
- infixParselets;
52
- constructor(tokens, prefixParselets, infixParselets) {
53
- this.tokens = tokens;
54
- this.prefixParselets = prefixParselets;
55
- this.infixParselets = infixParselets;
56
- }
57
- match(expected) {
58
- const token = this.look();
59
- if (token?.id !== expected) {
60
- return false;
61
- }
62
- this.consume();
63
- return true;
64
- }
65
- parse(precedence = 0) {
66
- const token = this.consume();
67
- const prefix = this.prefixParselets[token.id];
68
- if (!prefix) {
69
- throw Error(`Parse error at ${token.value}. No matching prefix parselet.`);
70
- }
71
- let left = prefix.parse(this, token);
72
- while (precedence < this.getPrecedence()) {
73
- const next = this.consume();
74
- const infix = this.infixParselets[next.id];
75
- left = infix.parse(this, left, next);
76
- }
77
- return left;
78
- }
79
- getPrecedence() {
80
- const nextToken = this.look();
81
- if (!nextToken) {
82
- return 0;
83
- }
84
- const parser = this.infixParselets[nextToken.id];
85
- if (parser) {
86
- return parser.precedence;
87
- }
88
- return 0;
89
- }
90
- consume() {
91
- if (!this.tokens.length) {
92
- throw Error('Cant consume any more tokens.');
93
- }
94
- return this.tokens.shift();
95
- }
96
- look() {
97
- return this.tokens.length > 0 ? this.tokens[0] : undefined;
98
- }
99
- }
100
- class FhirPathAtom {
101
- original;
102
- child;
103
- constructor(original, child) {
104
- this.original = original;
105
- this.child = child;
106
- }
107
- eval(context) {
108
- try {
109
- const result = (0, utils_1.applyMaybeArray)(context, e => this.child.eval(e));
110
- if (Array.isArray(result)) {
111
- return result.flat();
112
- }
113
- else if (result === undefined || result === null) {
114
- return [];
115
- }
116
- else {
117
- return [result];
118
- }
119
- }
120
- catch (error) {
121
- throw new Error(`FhirPathError on "${this.original}": ${error}`);
122
- }
123
- }
124
- }
125
- exports.FhirPathAtom = FhirPathAtom;
126
- class LiteralAtom {
127
- value;
128
- constructor(value) {
129
- this.value = value;
130
- }
131
- eval() {
132
- return this.value;
133
- }
134
- }
135
- class SymbolAtom {
136
- name;
137
- constructor(name) {
138
- this.name = name;
139
- }
140
- eval(context) {
141
- return (0, utils_1.applyMaybeArray)(context, e => e.resourceType === this.name ? e : e[this.name]);
142
- }
143
- }
144
- class UnaryOperatorAtom {
145
- child;
146
- impl;
147
- constructor(child, impl) {
148
- this.child = child;
149
- this.impl = impl;
150
- }
151
- eval(context) {
152
- return this.impl(this.child.eval(context));
153
- }
154
- }
155
- class BinaryOperatorAtom {
156
- left;
157
- right;
158
- impl;
159
- constructor(left, right, impl) {
160
- this.left = left;
161
- this.right = right;
162
- this.impl = impl;
163
- }
164
- eval(context) {
165
- return this.impl(this.left.eval(context), this.right.eval(context));
166
- }
167
- }
168
- class DotAtom {
169
- left;
170
- right;
171
- constructor(left, right) {
172
- this.left = left;
173
- this.right = right;
174
- }
175
- eval(context) {
176
- return this.right.eval(this.left.eval(context));
177
- }
178
- }
179
- class UnionAtom {
180
- left;
181
- right;
182
- constructor(left, right) {
183
- this.left = left;
184
- this.right = right;
185
- }
186
- eval(context) {
187
- const leftResult = this.left.eval(context);
188
- const rightResult = this.right.eval(context);
189
- if (leftResult && rightResult) {
190
- return [leftResult, rightResult].flat();
191
- }
192
- return leftResult || rightResult;
193
- }
194
- }
195
- class IsAtom {
196
- left;
197
- right;
198
- constructor(left, right) {
199
- this.left = left;
200
- this.right = right;
201
- }
202
- eval(context) {
203
- const desiredResourceType = this.right.name;
204
- return (0, utils_1.applyMaybeArray)(this.left.eval(context), e => e?.resourceType === desiredResourceType ? e : undefined);
205
- }
206
- }
207
- class FunctionAtom {
208
- name;
209
- args;
210
- impl;
211
- constructor(name, args, impl) {
212
- this.name = name;
213
- this.args = args;
214
- this.impl = impl;
215
- }
216
- eval(context) {
217
- if (context === undefined) {
218
- return undefined;
219
- }
220
- const input = Array.isArray(context) ? context : [context];
221
- return this.impl(input, ...this.args);
222
- }
223
- }
224
- const PARENTHESES_PARSELET = {
225
- parse(parser) {
226
- const expr = parser.parse();
227
- if (!parser.match(')')) {
228
- throw new Error('Parse error: expected `)`');
229
- }
230
- return expr;
231
- }
232
- };
233
- const FUNCTION_CALL_PARSELET = {
234
- parse(parser, left) {
235
- if (!(left instanceof SymbolAtom)) {
236
- throw new Error('Unexpected parentheses');
237
- }
238
- if (!(left.name in functions_1.functions)) {
239
- throw new Error('Unrecognized function: ' + left.name);
240
- }
241
- const args = [];
242
- while (!parser.match(')')) {
243
- args.push(parser.parse());
244
- }
245
- return new FunctionAtom(left.name, args, functions_1.functions[left.name]);
246
- },
247
- precedence: 8 /* FunctionCall */
248
- };
249
- const parserBuilder = new ParserBuilder()
250
- .registerPrefix('StringLiteral', { parse: (_, token) => new LiteralAtom(token.value.substring(1, token.value.length - 1)) })
251
- .registerPrefix('Number', { parse: (_, token) => new LiteralAtom(parseFloat(token.value)) })
252
- .registerPrefix('Symbol', { parse: (_, token) => new SymbolAtom(token.value) })
253
- .registerPrefix('(', PARENTHESES_PARSELET)
254
- .registerInfix('(', FUNCTION_CALL_PARSELET)
255
- .prefix('-', 6 /* Negate */, (_, right) => new UnaryOperatorAtom(right, x => -x))
256
- .infixLeft('.', 7 /* Dot */, (left, _, right) => new DotAtom(left, right))
257
- .infixRight('^', 5 /* Exp */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x ** y))
258
- .infixLeft('/', 4 /* MulDiv */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x / y))
259
- .infixLeft('*', 4 /* MulDiv */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x * y))
260
- .infixLeft('+', 3 /* AddSub */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x + y))
261
- .infixLeft('-', 3 /* AddSub */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x - y))
262
- .infixLeft('|', 1 /* Union */, (left, _, right) => new UnionAtom(left, right))
263
- .infixLeft('=', 2 /* Equals */, (left, _, right) => new BinaryOperatorAtom(left, right, (x, y) => x === y))
264
- .infixLeft('Symbol', 1 /* Union */, (left, symbol, right) => {
265
- switch (symbol.value) {
266
- case 'as':
267
- return new BinaryOperatorAtom(left, right, (x) => x);
268
- case 'is':
269
- return new IsAtom(left, right);
270
- case 'and':
271
- return new BinaryOperatorAtom(left, right, (x, y) => x && y);
272
- default:
273
- throw new Error('Cannot use ' + symbol.value + ' as infix operator');
274
- }
275
- });
276
- function parseFhirPath(input) {
277
- try {
278
- return new FhirPathAtom(input, parserBuilder.construct(input).parse());
279
- }
280
- catch (error) {
281
- throw new Error(`FhirPathError on "${input}": ${error}`);
282
- }
283
- }
284
- exports.parseFhirPath = parseFhirPath;
285
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/fhirpath/parse.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,239 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const definitions_1 = require("@medplum/definitions");
4
- const parse_1 = require("./parse");
5
- test('Parser can build a arithmetic parser with correct order of operations', () => {
6
- const result = (0, parse_1.parseFhirPath)('3 / 3 + 4 * 3 ^ 2 - 1').eval(0);
7
- expect(result).toEqual([36]);
8
- });
9
- test('Parser can build a arithmetic parser with parentheses', () => {
10
- const result = (0, parse_1.parseFhirPath)('3 / 3 + 4 * (3 ^ (2 - 1))').eval(0);
11
- expect(result).toEqual([13]);
12
- });
13
- test('Parser can build a arithmetic parser with correct associativity', () => {
14
- const result = (0, parse_1.parseFhirPath)('5 - 4 - 3 - 2 - 1 + 2 ^ 3 ^ 2').eval(0);
15
- expect(result).toEqual([507]);
16
- });
17
- test('Parser can build an arithmetic parser with prefix operators', () => {
18
- const result = (0, parse_1.parseFhirPath)('-4 + -(4 + 5 - -4)').eval(0);
19
- expect(result).toEqual([-17]);
20
- });
21
- test('Parser throws on missing closing parentheses', () => {
22
- expect(() => (0, parse_1.parseFhirPath)('(2 + 1')).toThrowError('Parse error: expected `)`');
23
- });
24
- test('Parser throws on unexpected symbol', () => {
25
- expect(() => (0, parse_1.parseFhirPath)('*')).toThrowError('Parse error at *. No matching prefix parselet.');
26
- });
27
- test('Parser throws on missing tokens', () => {
28
- expect(() => (0, parse_1.parseFhirPath)('1 * ')).toThrowError('Cant consume any more tokens.');
29
- });
30
- test('Evaluate FHIRPath Patient.name.given on empty resource', () => {
31
- const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval({});
32
- expect(result).toEqual([]);
33
- });
34
- test('Evaluate FHIRPath Patient.name.given', () => {
35
- const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval({
36
- resourceType: 'Patient',
37
- name: [{
38
- given: ['Alice'],
39
- family: 'Smith'
40
- }]
41
- });
42
- expect(result).toEqual(['Alice']);
43
- });
44
- test('Evaluate FHIRPath string concatenation', () => {
45
- const result = (0, parse_1.parseFhirPath)('Patient.name.given + \' \' + Patient.name.family').eval({
46
- resourceType: 'Patient',
47
- name: [{
48
- given: ['Alice'],
49
- family: 'Smith'
50
- }]
51
- });
52
- expect(result).toEqual(['Alice Smith']);
53
- });
54
- test('Evaluate FHIRPath Patient.name.given on array of resources', () => {
55
- const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval([{
56
- resourceType: 'Patient',
57
- name: [{
58
- given: ['Alice'],
59
- family: 'Smith'
60
- }]
61
- },
62
- {
63
- resourceType: 'Patient',
64
- name: [{
65
- given: ['Bob'],
66
- family: 'Jones'
67
- }]
68
- }]);
69
- expect(result).toEqual(['Alice', 'Bob']);
70
- });
71
- test('Evaluate FHIRPath string concatenation on array of resources', () => {
72
- const result = (0, parse_1.parseFhirPath)('Patient.name.given + \' \' + Patient.name.family').eval([{
73
- resourceType: 'Patient',
74
- name: [{
75
- given: ['Alice'],
76
- family: 'Smith'
77
- }]
78
- },
79
- {
80
- resourceType: 'Patient',
81
- name: [{
82
- given: ['Bob'],
83
- family: 'Jones'
84
- }]
85
- }]);
86
- expect(result).toEqual(['Alice Smith', 'Bob Jones']);
87
- });
88
- test('Evaluate FHIRPath Patient.name.given on array of resources', () => {
89
- const result = (0, parse_1.parseFhirPath)('Patient.name.given').eval([{
90
- resourceType: 'Practitioner',
91
- name: [{
92
- given: ['Alice'],
93
- family: 'Smith'
94
- }]
95
- },
96
- {
97
- resourceType: 'Patient',
98
- name: [{
99
- given: ['Bob'],
100
- family: 'Jones'
101
- }]
102
- }]);
103
- expect(result).toEqual(['Bob']);
104
- });
105
- test('Evaluate FHIRPath union', () => {
106
- const result = (0, parse_1.parseFhirPath)('Practitioner.name.given | Patient.name.given').eval({
107
- resourceType: 'Patient',
108
- name: [{
109
- given: ['Alice'],
110
- family: 'Smith'
111
- }]
112
- });
113
- expect(result).toEqual(['Alice']);
114
- });
115
- test('Evaluate FHIRPath union to combine results', () => {
116
- const result = (0, parse_1.parseFhirPath)('Practitioner.name.given | Patient.name.given').eval([{
117
- resourceType: 'Patient',
118
- name: [{
119
- given: ['Alice'],
120
- family: 'Smith'
121
- }]
122
- },
123
- {
124
- resourceType: 'Practitioner',
125
- name: [{
126
- given: ['Bob'],
127
- family: 'Jones'
128
- }]
129
- }]);
130
- expect(result).toEqual(['Alice', 'Bob']);
131
- });
132
- test('Evaluate FHIRPath double union', () => {
133
- const result = (0, parse_1.parseFhirPath)('Patient.name.given | Patient.name.given').eval([{
134
- resourceType: 'Patient',
135
- name: [{
136
- given: ['Alice'],
137
- family: 'Smith'
138
- }]
139
- },
140
- {
141
- resourceType: 'Patient',
142
- name: [{
143
- given: ['Bob'],
144
- family: 'Jones'
145
- }]
146
- }]);
147
- expect(result).toEqual(['Alice', 'Alice', 'Bob', 'Bob']);
148
- });
149
- test('Evaluate ignores non-objects', () => {
150
- const result = (0, parse_1.parseFhirPath)('foo.bar').eval({
151
- foo: 1
152
- });
153
- expect(result).toEqual([]);
154
- });
155
- test('Evaluate fails on function parentheses after non-symbol', () => {
156
- expect(() => (0, parse_1.parseFhirPath)('1()').eval(0)).toThrowError('Unexpected parentheses');
157
- });
158
- test('Evaluate fails on unrecognized function', () => {
159
- expect(() => (0, parse_1.parseFhirPath)('asdf()').eval(0)).toThrowError('Unrecognized function');
160
- });
161
- test('Evaluate FHIRPath where function', () => {
162
- const result = (0, parse_1.parseFhirPath)('Patient.telecom.where(system=\'email\')').eval({
163
- resourceType: 'Patient',
164
- name: [{
165
- given: ['Alice'],
166
- family: 'Smith'
167
- }],
168
- telecom: [
169
- {
170
- system: 'a',
171
- value: 'a'
172
- },
173
- {
174
- system: 'b',
175
- value: 'b'
176
- },
177
- {
178
- system: 'email',
179
- value: 'alice@example.com'
180
- },
181
- {
182
- system: 'c',
183
- value: 'c'
184
- },
185
- ]
186
- });
187
- expect(result).toMatchObject([{
188
- system: 'email',
189
- value: 'alice@example.com'
190
- }]);
191
- });
192
- test('Eval all SearchParameter expressions', () => {
193
- const searchParams = (0, definitions_1.readJson)('fhir/r4/search-parameters.json');
194
- for (const entry of searchParams.entry) {
195
- const resource = entry.resource;
196
- const { expression } = resource;
197
- if (expression) {
198
- expect(() => (0, parse_1.parseFhirPath)((expression))).not.toThrow();
199
- }
200
- }
201
- });
202
- test('Eval FHIRPath resolve function', () => {
203
- const observation = {
204
- resourceType: 'Observation',
205
- subject: {
206
- reference: 'Patient/123'
207
- }
208
- };
209
- const result = (0, parse_1.parseFhirPath)('Observation.subject.resolve()').eval(observation);
210
- expect(result).toMatchObject([{
211
- resourceType: 'Patient',
212
- id: '123'
213
- }]);
214
- });
215
- test('Resolve is resourceType', () => {
216
- const auditEvent = {
217
- resourceType: 'AuditEvent',
218
- entity: [{
219
- what: {
220
- reference: 'Patient/123'
221
- }
222
- }]
223
- };
224
- const result = (0, parse_1.parseFhirPath)('AuditEvent.entity.what.where(resolve() is Patient)').eval(auditEvent);
225
- expect(result).toEqual([{ reference: 'Patient/123' }]);
226
- });
227
- test('Resolve is not resourceType', () => {
228
- const auditEvent = {
229
- resourceType: 'AuditEvent',
230
- entity: [{
231
- what: {
232
- reference: 'Subscription/123'
233
- }
234
- }]
235
- };
236
- const result = (0, parse_1.parseFhirPath)('AuditEvent.entity.what.where(resolve() is Patient)').eval(auditEvent);
237
- expect(result).toEqual([]);
238
- });
239
- //# sourceMappingURL=parse.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.test.js","sourceRoot":"","sources":["../../src/fhirpath/parse.test.ts"],"names":[],"mappings":";;AAAA,sDAAgD;AAKhD,mCAAwC;AAExC,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACjF,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACxD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAClF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,gDAAgD,CAAC,CAAC;AAClG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;IAClE,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC;QACtD,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC;gBACL,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,MAAM,EAAE,OAAO;aAChB,CAAC;KACH,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,kDAAkD,CAAC,CAAC,IAAI,CAAC;QACpF,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC;gBACL,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,MAAM,EAAE,OAAO;aAChB,CAAC;KACH,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC;YACvD,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,OAAO,CAAC;oBAChB,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH;QACD;YACE,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACxE,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,kDAAkD,CAAC,CAAC,IAAI,CAAC,CAAC;YACrF,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,OAAO,CAAC;oBAChB,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH;QACD;YACE,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC;YACvD,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,OAAO,CAAC;oBAChB,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH;QACD;YACE,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,8CAA8C,CAAC,CAAC,IAAI,CAAC;QAChF,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC;gBACL,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,MAAM,EAAE,OAAO;aAChB,CAAC;KACH,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACtD,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,8CAA8C,CAAC,CAAC,IAAI,CAAC,CAAC;YACjF,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,OAAO,CAAC;oBAChB,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH;QACD;YACE,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,yCAAyC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5E,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,OAAO,CAAC;oBAChB,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH;QACD;YACE,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC;oBACL,KAAK,EAAE,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE,OAAO;iBAChB,CAAC;SACH,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACxC,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QAC3C,GAAG,EAAE,CAAC;KACP,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACnD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC5C,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,yCAAyC,CAAC,CAAC,IAAI,CAAC;QAC3E,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC;gBACL,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,MAAM,EAAE,OAAO;aAChB,CAAC;QACF,OAAO,EAAE;YACP;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,GAAG;aACX;YACD;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,GAAG;aACX;YACD;gBACE,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,mBAAmB;aAC3B;YACD;gBACE,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,GAAG;aACX;SACF;KACF,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC5B,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,YAAY,GAAG,IAAA,sBAAQ,EAAC,gCAAgC,CAAW,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,KAAsB,EAAE;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAA2B,CAAC;QACnD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAChC,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACzD;KACF;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,WAAW,GAAgB;QAC/B,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE;YACP,SAAS,EAAE,aAAa;SACzB;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC5B,YAAY,EAAE,SAAS;YACvB,EAAE,EAAE,KAAK;SACV,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,MAAM,UAAU,GAAe;QAC7B,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,CAAC;gBACP,IAAI,EAAE;oBACJ,SAAS,EAAE,aAAa;iBACzB;aACF,CAAC;KACH,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACvC,MAAM,UAAU,GAAe;QAC7B,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,CAAC;gBACP,IAAI,EAAE;oBACJ,SAAS,EAAE,kBAAkB;iBAC9B;aACF,CAAC;KACH,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- export interface TokenMatcher {
2
- id: string;
3
- pattern: RegExp;
4
- }
5
- export interface Token extends TokenMatcher {
6
- value: string;
7
- }
8
- export declare class Tokenizer {
9
- private matchAll;
10
- constructor();
11
- tokenize(str: string): Token[];
12
- }
13
- export declare const tokenizer: Tokenizer;
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tokenizer = exports.Tokenizer = void 0;
4
- const matchers = [
5
- { id: 'Comment', pattern: /\/\/.*$/ },
6
- { id: 'StringLiteral', pattern: /'[^']*'/ },
7
- { id: '(', pattern: /\(/ },
8
- { id: ')', pattern: /\)/ },
9
- { id: '*', pattern: /\*/ },
10
- { id: '/', pattern: /\// },
11
- { id: '+', pattern: /\+/ },
12
- { id: '-', pattern: /-/ },
13
- { id: '^', pattern: /\^/ },
14
- { id: '!', pattern: /!/ },
15
- { id: '.', pattern: /\./ },
16
- { id: '|', pattern: /\|/ },
17
- { id: '=', pattern: /=/ },
18
- { id: 'Number', pattern: /\d+/ },
19
- { id: 'Symbol', pattern: /\w+/ },
20
- ];
21
- class Tokenizer {
22
- matchAll;
23
- constructor() {
24
- this.matchAll = new RegExp(matchers.map(matcher => matcher.pattern.source).join('|'), 'g');
25
- }
26
- tokenize(str) {
27
- // Double-execing the RegExp is actually not that slow. Faster than my attempted alternative implementation.
28
- // https://jsperf.com/tokenization-strategies-jkearl-pratt/1
29
- const tokens = str.match(this.matchAll);
30
- if (!tokens) {
31
- throw new Error('Could not tokenize');
32
- }
33
- return tokens.map(value => {
34
- return {
35
- ...matchers.find(matcher => matcher.pattern.test(value)),
36
- value
37
- };
38
- });
39
- }
40
- }
41
- exports.Tokenizer = Tokenizer;
42
- exports.tokenizer = new Tokenizer();
43
- //# sourceMappingURL=tokenize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/fhirpath/tokenize.ts"],"names":[],"mappings":";;;AAUA,MAAM,QAAQ,GAAmB;IAC/B,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;IACrC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE;IAC3C,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;IAChC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;CACjC,CAAC;AAEF,MAAa,SAAS;IACZ,QAAQ,CAAQ;IAExB;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IAEM,QAAQ,CAAC,GAAW;QACzB,4GAA4G;QAC5G,4DAA4D;QAE5D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO;gBACL,GAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAkB;gBAC1E,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvBD,8BAuBC;AAEY,QAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- export {};