@smile-cdr/fhirts 1.4.9 → 2.0.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 (322) hide show
  1. package/.github/workflows/npm-publish.yml +4 -0
  2. package/.github/workflows/pr-build.yml +31 -0
  3. package/.nycrc +7 -0
  4. package/CHANGELOG.md +14 -0
  5. package/GETTINGSTARTED.md +51 -0
  6. package/dist/FHIR-R3.d.ts +1 -1
  7. package/dist/FHIR-R4/classes/account.d.ts +1 -1
  8. package/dist/FHIR-R4/classes/activityDefinition.d.ts +1 -1
  9. package/dist/FHIR-R4/classes/adverseEvent.d.ts +1 -1
  10. package/dist/FHIR-R4/classes/allergyIntolerance.d.ts +1 -1
  11. package/dist/FHIR-R4/classes/appointment.d.ts +1 -1
  12. package/dist/FHIR-R4/classes/appointmentResponse.d.ts +1 -1
  13. package/dist/FHIR-R4/classes/auditEvent.d.ts +1 -1
  14. package/dist/FHIR-R4/classes/base64Binary.d.ts +1 -1
  15. package/dist/FHIR-R4/classes/baseResource.d.ts +1 -0
  16. package/dist/FHIR-R4/classes/baseResource.js +4 -0
  17. package/dist/FHIR-R4/classes/binary.d.ts +1 -1
  18. package/dist/FHIR-R4/classes/biologicallyDerivedProduct.d.ts +1 -1
  19. package/dist/FHIR-R4/classes/bodyStructure.d.ts +1 -1
  20. package/dist/FHIR-R4/classes/bundle.d.ts +1 -1
  21. package/dist/FHIR-R4/classes/canonical.d.ts +1 -1
  22. package/dist/FHIR-R4/classes/capabilityStatement.d.ts +1 -1
  23. package/dist/FHIR-R4/classes/capabilityStatementResource.d.ts +2 -2
  24. package/dist/FHIR-R4/classes/carePlan.d.ts +1 -1
  25. package/dist/FHIR-R4/classes/careTeam.d.ts +1 -1
  26. package/dist/FHIR-R4/classes/catalogEntry.d.ts +1 -1
  27. package/dist/FHIR-R4/classes/chargeItem.d.ts +1 -1
  28. package/dist/FHIR-R4/classes/chargeItemDefinition.d.ts +1 -1
  29. package/dist/FHIR-R4/classes/claim.d.ts +1 -1
  30. package/dist/FHIR-R4/classes/claimResponse.d.ts +1 -1
  31. package/dist/FHIR-R4/classes/clinicalImpression.d.ts +1 -1
  32. package/dist/FHIR-R4/classes/code.d.ts +1 -1
  33. package/dist/FHIR-R4/classes/codeSystem.d.ts +1 -1
  34. package/dist/FHIR-R4/classes/communication.d.ts +1 -1
  35. package/dist/FHIR-R4/classes/communicationRequest.d.ts +1 -1
  36. package/dist/FHIR-R4/classes/compartmentDefinition.d.ts +1 -1
  37. package/dist/FHIR-R4/classes/compartmentDefinitionResource.d.ts +2 -13
  38. package/dist/FHIR-R4/classes/composition.d.ts +1 -1
  39. package/dist/FHIR-R4/classes/conceptMap.d.ts +1 -1
  40. package/dist/FHIR-R4/classes/condition.d.ts +1 -1
  41. package/dist/FHIR-R4/classes/consent.d.ts +1 -1
  42. package/dist/FHIR-R4/classes/contract.d.ts +1 -1
  43. package/dist/FHIR-R4/classes/coverage.d.ts +1 -1
  44. package/dist/FHIR-R4/classes/coverageEligibilityRequest.d.ts +1 -1
  45. package/dist/FHIR-R4/classes/coverageEligibilityResponse.d.ts +1 -1
  46. package/dist/FHIR-R4/classes/date.d.ts +1 -1
  47. package/dist/FHIR-R4/classes/dateTime.d.ts +1 -1
  48. package/dist/FHIR-R4/classes/decimal.d.ts +1 -1
  49. package/dist/FHIR-R4/classes/detectedIssue.d.ts +1 -1
  50. package/dist/FHIR-R4/classes/device.d.ts +1 -1
  51. package/dist/FHIR-R4/classes/deviceDefinition.d.ts +1 -1
  52. package/dist/FHIR-R4/classes/deviceMetric.d.ts +1 -1
  53. package/dist/FHIR-R4/classes/deviceRequest.d.ts +1 -1
  54. package/dist/FHIR-R4/classes/deviceUseStatement.d.ts +1 -1
  55. package/dist/FHIR-R4/classes/diagnosticReport.d.ts +1 -1
  56. package/dist/FHIR-R4/classes/documentManifest.d.ts +1 -1
  57. package/dist/FHIR-R4/classes/documentReference.d.ts +1 -1
  58. package/dist/FHIR-R4/classes/encounter.d.ts +1 -1
  59. package/dist/FHIR-R4/classes/endpoint.d.ts +1 -1
  60. package/dist/FHIR-R4/classes/enrollmentRequest.d.ts +1 -1
  61. package/dist/FHIR-R4/classes/enrollmentResponse.d.ts +1 -1
  62. package/dist/FHIR-R4/classes/episodeOfCare.d.ts +1 -1
  63. package/dist/FHIR-R4/classes/eventDefinition.d.ts +1 -1
  64. package/dist/FHIR-R4/classes/evidence.d.ts +1 -1
  65. package/dist/FHIR-R4/classes/evidenceVariable.d.ts +1 -1
  66. package/dist/FHIR-R4/classes/exampleScenario.d.ts +1 -1
  67. package/dist/FHIR-R4/classes/exampleScenarioInstance.d.ts +3 -14
  68. package/dist/FHIR-R4/classes/exampleScenarioVersion.d.ts +2 -2
  69. package/dist/FHIR-R4/classes/explanationOfBenefit.d.ts +1 -1
  70. package/dist/FHIR-R4/classes/familyMemberHistory.d.ts +1 -1
  71. package/dist/FHIR-R4/classes/flag.d.ts +1 -1
  72. package/dist/FHIR-R4/classes/goal.d.ts +1 -1
  73. package/dist/FHIR-R4/classes/graphDefinition.d.ts +3 -2
  74. package/dist/FHIR-R4/classes/group.d.ts +1 -1
  75. package/dist/FHIR-R4/classes/guidanceResponse.d.ts +1 -1
  76. package/dist/FHIR-R4/classes/healthcareService.d.ts +1 -1
  77. package/dist/FHIR-R4/classes/id.d.ts +1 -1
  78. package/dist/FHIR-R4/classes/imagingStudy.d.ts +1 -1
  79. package/dist/FHIR-R4/classes/immunization.d.ts +1 -1
  80. package/dist/FHIR-R4/classes/immunizationEvaluation.d.ts +1 -1
  81. package/dist/FHIR-R4/classes/immunizationRecommendation.d.ts +1 -1
  82. package/dist/FHIR-R4/classes/implementationGuide.d.ts +1 -1
  83. package/dist/FHIR-R4/classes/implementationGuideGlobal.d.ts +2 -2
  84. package/dist/FHIR-R4/classes/instant.d.ts +1 -1
  85. package/dist/FHIR-R4/classes/insurancePlan.d.ts +1 -1
  86. package/dist/FHIR-R4/classes/integer.d.ts +1 -1
  87. package/dist/FHIR-R4/classes/invoice.d.ts +1 -1
  88. package/dist/FHIR-R4/classes/library.d.ts +1 -1
  89. package/dist/FHIR-R4/classes/linkage.d.ts +1 -1
  90. package/dist/FHIR-R4/classes/list.d.ts +1 -1
  91. package/dist/FHIR-R4/classes/location.d.ts +1 -1
  92. package/dist/FHIR-R4/classes/markdown.d.ts +1 -1
  93. package/dist/FHIR-R4/classes/measure.d.ts +1 -1
  94. package/dist/FHIR-R4/classes/measureReport.d.ts +1 -1
  95. package/dist/FHIR-R4/classes/media.d.ts +1 -1
  96. package/dist/FHIR-R4/classes/medication.d.ts +1 -1
  97. package/dist/FHIR-R4/classes/medicationAdministration.d.ts +1 -1
  98. package/dist/FHIR-R4/classes/medicationDispense.d.ts +1 -1
  99. package/dist/FHIR-R4/classes/medicationKnowledge.d.ts +1 -1
  100. package/dist/FHIR-R4/classes/medicationRequest.d.ts +1 -1
  101. package/dist/FHIR-R4/classes/medicationStatement.d.ts +1 -1
  102. package/dist/FHIR-R4/classes/messageDefinition.d.ts +1 -1
  103. package/dist/FHIR-R4/classes/messageDefinitionFocus.d.ts +2 -2
  104. package/dist/FHIR-R4/classes/messageHeader.d.ts +1 -1
  105. package/dist/FHIR-R4/classes/modelBoolean.d.ts +1 -1
  106. package/dist/FHIR-R4/classes/modelString.d.ts +1 -1
  107. package/dist/FHIR-R4/classes/molecularSequence.d.ts +1 -1
  108. package/dist/FHIR-R4/classes/namingSystem.d.ts +1 -1
  109. package/dist/FHIR-R4/classes/nutritionOrder.d.ts +1 -1
  110. package/dist/FHIR-R4/classes/observation.d.ts +1 -1
  111. package/dist/FHIR-R4/classes/observationDefinition.d.ts +1 -1
  112. package/dist/FHIR-R4/classes/operationDefinition.d.ts +3 -2
  113. package/dist/FHIR-R4/classes/operationOutcome.d.ts +1 -1
  114. package/dist/FHIR-R4/classes/organization.d.ts +1 -1
  115. package/dist/FHIR-R4/classes/organizationAffiliation.d.ts +1 -1
  116. package/dist/FHIR-R4/classes/parameters.d.ts +1 -1
  117. package/dist/FHIR-R4/classes/parametersParameter.d.ts +2 -2
  118. package/dist/FHIR-R4/classes/patient.d.ts +1 -1
  119. package/dist/FHIR-R4/classes/paymentNotice.d.ts +1 -1
  120. package/dist/FHIR-R4/classes/paymentReconciliation.d.ts +1 -1
  121. package/dist/FHIR-R4/classes/person.d.ts +1 -1
  122. package/dist/FHIR-R4/classes/planDefinition.d.ts +1 -1
  123. package/dist/FHIR-R4/classes/positiveInt.d.ts +1 -1
  124. package/dist/FHIR-R4/classes/practitioner.d.ts +1 -1
  125. package/dist/FHIR-R4/classes/practitionerRole.d.ts +1 -1
  126. package/dist/FHIR-R4/classes/procedure.d.ts +1 -1
  127. package/dist/FHIR-R4/classes/provenance.d.ts +1 -1
  128. package/dist/FHIR-R4/classes/questionnaire.d.ts +3 -2
  129. package/dist/FHIR-R4/classes/questionnaireResponse.d.ts +1 -1
  130. package/dist/FHIR-R4/classes/relatedPerson.d.ts +1 -1
  131. package/dist/FHIR-R4/classes/requestGroup.d.ts +1 -1
  132. package/dist/FHIR-R4/classes/researchDefinition.d.ts +1 -1
  133. package/dist/FHIR-R4/classes/researchElementDefinition.d.ts +1 -1
  134. package/dist/FHIR-R4/classes/researchStudy.d.ts +1 -1
  135. package/dist/FHIR-R4/classes/researchSubject.d.ts +1 -1
  136. package/dist/FHIR-R4/classes/resource.d.ts +127 -19
  137. package/dist/FHIR-R4/classes/resource.js +0 -4
  138. package/dist/FHIR-R4/classes/resourceList.d.ts +1 -2
  139. package/dist/FHIR-R4/classes/resourceList.js +0 -4
  140. package/dist/FHIR-R4/classes/riskAssessment.d.ts +1 -1
  141. package/dist/FHIR-R4/classes/schedule.d.ts +1 -1
  142. package/dist/FHIR-R4/classes/searchParameter.d.ts +6 -5
  143. package/dist/FHIR-R4/classes/serviceRequest.d.ts +1 -1
  144. package/dist/FHIR-R4/classes/slot.d.ts +1 -1
  145. package/dist/FHIR-R4/classes/specimen.d.ts +1 -1
  146. package/dist/FHIR-R4/classes/specimenDefinition.d.ts +1 -1
  147. package/dist/FHIR-R4/classes/structureDefinition.d.ts +1 -1
  148. package/dist/FHIR-R4/classes/structureMap.d.ts +1 -1
  149. package/dist/FHIR-R4/classes/subscription.d.ts +1 -1
  150. package/dist/FHIR-R4/classes/substance.d.ts +1 -1
  151. package/dist/FHIR-R4/classes/supplyDelivery.d.ts +1 -1
  152. package/dist/FHIR-R4/classes/supplyRequest.d.ts +1 -1
  153. package/dist/FHIR-R4/classes/task.d.ts +1 -1
  154. package/dist/FHIR-R4/classes/terminologyCapabilities.d.ts +1 -1
  155. package/dist/FHIR-R4/classes/testReport.d.ts +1 -1
  156. package/dist/FHIR-R4/classes/testScript.d.ts +1 -1
  157. package/dist/FHIR-R4/classes/time.d.ts +1 -1
  158. package/dist/FHIR-R4/classes/unsignedInt.d.ts +1 -1
  159. package/dist/FHIR-R4/classes/uri.d.ts +1 -1
  160. package/dist/FHIR-R4/classes/url.d.ts +1 -1
  161. package/dist/FHIR-R4/classes/valueSet.d.ts +1 -1
  162. package/dist/FHIR-R4/classes/verificationResult.d.ts +1 -1
  163. package/dist/FHIR-R4/classes/visionPrescription.d.ts +1 -1
  164. package/dist/FHIR-R4/classes/xhtml.d.ts +1 -1
  165. package/dist/index.d.ts +3 -1
  166. package/dist/index.js +5 -1
  167. package/dist/library/BundleUtilities/BundleUtilities.d.ts +10 -0
  168. package/dist/library/BundleUtilities/BundleUtilities.js +16 -0
  169. package/dist/library/BundleUtilities/BundleUtilities.spec.d.ts +1 -0
  170. package/dist/library/BundleUtilities/BundleUtilities.spec.js +26 -0
  171. package/dist/library/ResourceUtilities/ResourceUtilities.d.ts +35 -0
  172. package/dist/library/ResourceUtilities/ResourceUtilities.js +51 -0
  173. package/dist/library/ResourceUtilities/ResourceUtilities.spec.d.ts +1 -0
  174. package/dist/library/ResourceUtilities/ResourceUtilities.spec.js +180 -0
  175. package/package.json +13 -2
  176. package/spec/support/jasmine.json +10 -0
  177. package/src/FHIR-R4/classes/account.ts +1 -1
  178. package/src/FHIR-R4/classes/activityDefinition.ts +1 -1
  179. package/src/FHIR-R4/classes/adverseEvent.ts +1 -1
  180. package/src/FHIR-R4/classes/allergyIntolerance.ts +1 -1
  181. package/src/FHIR-R4/classes/appointment.ts +1 -1
  182. package/src/FHIR-R4/classes/appointmentResponse.ts +1 -1
  183. package/src/FHIR-R4/classes/auditEvent.ts +1 -1
  184. package/src/FHIR-R4/classes/baseResource.ts +24 -0
  185. package/src/FHIR-R4/classes/basic.ts +1 -1
  186. package/src/FHIR-R4/classes/binary.ts +1 -1
  187. package/src/FHIR-R4/classes/biologicallyDerivedProduct.ts +1 -1
  188. package/src/FHIR-R4/classes/bodyStructure.ts +1 -1
  189. package/src/FHIR-R4/classes/bundle.ts +1 -1
  190. package/src/FHIR-R4/classes/capabilityStatement.ts +1 -1
  191. package/src/FHIR-R4/classes/capabilityStatementResource.ts +3 -2
  192. package/src/FHIR-R4/classes/carePlan.ts +1 -1
  193. package/src/FHIR-R4/classes/careTeam.ts +1 -1
  194. package/src/FHIR-R4/classes/catalogEntry.ts +1 -1
  195. package/src/FHIR-R4/classes/chargeItem.ts +1 -1
  196. package/src/FHIR-R4/classes/chargeItemDefinition.ts +1 -1
  197. package/src/FHIR-R4/classes/claim.ts +1 -1
  198. package/src/FHIR-R4/classes/claimResponse.ts +1 -1
  199. package/src/FHIR-R4/classes/clinicalImpression.ts +1 -1
  200. package/src/FHIR-R4/classes/codeSystem.ts +1 -1
  201. package/src/FHIR-R4/classes/communication.ts +1 -1
  202. package/src/FHIR-R4/classes/communicationRequest.ts +1 -1
  203. package/src/FHIR-R4/classes/compartmentDefinition.ts +1 -1
  204. package/src/FHIR-R4/classes/compartmentDefinitionResource.ts +3 -2
  205. package/src/FHIR-R4/classes/composition.ts +1 -1
  206. package/src/FHIR-R4/classes/conceptMap.ts +1 -1
  207. package/src/FHIR-R4/classes/condition.ts +1 -1
  208. package/src/FHIR-R4/classes/consent.ts +1 -1
  209. package/src/FHIR-R4/classes/contract.ts +1 -1
  210. package/src/FHIR-R4/classes/coverage.ts +1 -1
  211. package/src/FHIR-R4/classes/coverageEligibilityRequest.ts +1 -1
  212. package/src/FHIR-R4/classes/coverageEligibilityResponse.ts +1 -1
  213. package/src/FHIR-R4/classes/detectedIssue.ts +1 -1
  214. package/src/FHIR-R4/classes/device.ts +1 -1
  215. package/src/FHIR-R4/classes/deviceDefinition.ts +1 -1
  216. package/src/FHIR-R4/classes/deviceMetric.ts +1 -1
  217. package/src/FHIR-R4/classes/deviceRequest.ts +1 -1
  218. package/src/FHIR-R4/classes/deviceUseStatement.ts +1 -1
  219. package/src/FHIR-R4/classes/diagnosticReport.ts +1 -1
  220. package/src/FHIR-R4/classes/documentManifest.ts +1 -1
  221. package/src/FHIR-R4/classes/documentReference.ts +1 -1
  222. package/src/FHIR-R4/classes/encounter.ts +1 -1
  223. package/src/FHIR-R4/classes/endpoint.ts +1 -1
  224. package/src/FHIR-R4/classes/enrollmentRequest.ts +1 -1
  225. package/src/FHIR-R4/classes/enrollmentResponse.ts +1 -1
  226. package/src/FHIR-R4/classes/episodeOfCare.ts +1 -1
  227. package/src/FHIR-R4/classes/eventDefinition.ts +1 -1
  228. package/src/FHIR-R4/classes/evidence.ts +1 -1
  229. package/src/FHIR-R4/classes/evidenceVariable.ts +1 -1
  230. package/src/FHIR-R4/classes/exampleScenario.ts +1 -1
  231. package/src/FHIR-R4/classes/exampleScenarioInstance.ts +4 -3
  232. package/src/FHIR-R4/classes/exampleScenarioVersion.ts +3 -3
  233. package/src/FHIR-R4/classes/explanationOfBenefit.ts +1 -1
  234. package/src/FHIR-R4/classes/familyMemberHistory.ts +1 -1
  235. package/src/FHIR-R4/classes/flag.ts +1 -1
  236. package/src/FHIR-R4/classes/goal.ts +1 -1
  237. package/src/FHIR-R4/classes/graphDefinition.ts +4 -3
  238. package/src/FHIR-R4/classes/group.ts +1 -1
  239. package/src/FHIR-R4/classes/guidanceResponse.ts +1 -1
  240. package/src/FHIR-R4/classes/healthcareService.ts +1 -1
  241. package/src/FHIR-R4/classes/imagingStudy.ts +1 -1
  242. package/src/FHIR-R4/classes/immunization.ts +1 -1
  243. package/src/FHIR-R4/classes/immunizationEvaluation.ts +1 -1
  244. package/src/FHIR-R4/classes/immunizationRecommendation.ts +1 -1
  245. package/src/FHIR-R4/classes/implementationGuide.ts +1 -1
  246. package/src/FHIR-R4/classes/implementationGuideGlobal.ts +3 -2
  247. package/src/FHIR-R4/classes/insurancePlan.ts +1 -1
  248. package/src/FHIR-R4/classes/invoice.ts +1 -1
  249. package/src/FHIR-R4/classes/library.ts +1 -1
  250. package/src/FHIR-R4/classes/linkage.ts +1 -1
  251. package/src/FHIR-R4/classes/list.ts +1 -1
  252. package/src/FHIR-R4/classes/location.ts +1 -1
  253. package/src/FHIR-R4/classes/measure.ts +1 -1
  254. package/src/FHIR-R4/classes/measureReport.ts +1 -1
  255. package/src/FHIR-R4/classes/media.ts +1 -1
  256. package/src/FHIR-R4/classes/medication.ts +1 -1
  257. package/src/FHIR-R4/classes/medicationAdministration.ts +1 -1
  258. package/src/FHIR-R4/classes/medicationDispense.ts +1 -1
  259. package/src/FHIR-R4/classes/medicationKnowledge.ts +1 -1
  260. package/src/FHIR-R4/classes/medicationRequest.ts +1 -1
  261. package/src/FHIR-R4/classes/medicationStatement.ts +1 -1
  262. package/src/FHIR-R4/classes/messageDefinition.ts +2 -2
  263. package/src/FHIR-R4/classes/messageDefinitionFocus.ts +3 -2
  264. package/src/FHIR-R4/classes/messageHeader.ts +1 -1
  265. package/src/FHIR-R4/classes/molecularSequence.ts +1 -1
  266. package/src/FHIR-R4/classes/namingSystem.ts +1 -1
  267. package/src/FHIR-R4/classes/nutritionOrder.ts +1 -1
  268. package/src/FHIR-R4/classes/observation.ts +1 -1
  269. package/src/FHIR-R4/classes/observationDefinition.ts +1 -1
  270. package/src/FHIR-R4/classes/operationDefinition.ts +4 -3
  271. package/src/FHIR-R4/classes/operationOutcome.ts +1 -1
  272. package/src/FHIR-R4/classes/organization.ts +1 -1
  273. package/src/FHIR-R4/classes/organizationAffiliation.ts +1 -1
  274. package/src/FHIR-R4/classes/parameters.ts +1 -1
  275. package/src/FHIR-R4/classes/parametersParameter.ts +3 -3
  276. package/src/FHIR-R4/classes/patient.ts +1 -1
  277. package/src/FHIR-R4/classes/paymentNotice.ts +1 -1
  278. package/src/FHIR-R4/classes/paymentReconciliation.ts +1 -1
  279. package/src/FHIR-R4/classes/person.ts +1 -1
  280. package/src/FHIR-R4/classes/planDefinition.ts +1 -1
  281. package/src/FHIR-R4/classes/practitioner.ts +1 -1
  282. package/src/FHIR-R4/classes/practitionerRole.ts +1 -1
  283. package/src/FHIR-R4/classes/procedure.ts +1 -1
  284. package/src/FHIR-R4/classes/provenance.ts +1 -1
  285. package/src/FHIR-R4/classes/questionnaire.ts +4 -3
  286. package/src/FHIR-R4/classes/questionnaireResponse.ts +1 -1
  287. package/src/FHIR-R4/classes/reference.ts +1 -1
  288. package/src/FHIR-R4/classes/relatedPerson.ts +1 -1
  289. package/src/FHIR-R4/classes/requestGroup.ts +1 -1
  290. package/src/FHIR-R4/classes/researchDefinition.ts +1 -1
  291. package/src/FHIR-R4/classes/researchElementDefinition.ts +1 -1
  292. package/src/FHIR-R4/classes/researchStudy.ts +1 -1
  293. package/src/FHIR-R4/classes/researchSubject.ts +1 -1
  294. package/src/FHIR-R4/classes/resource.ts +128 -19
  295. package/src/FHIR-R4/classes/resourceList.ts +1 -2
  296. package/src/FHIR-R4/classes/riskAssessment.ts +1 -1
  297. package/src/FHIR-R4/classes/schedule.ts +1 -1
  298. package/src/FHIR-R4/classes/searchParameter.ts +7 -6
  299. package/src/FHIR-R4/classes/serviceRequest.ts +1 -1
  300. package/src/FHIR-R4/classes/slot.ts +1 -1
  301. package/src/FHIR-R4/classes/specimen.ts +1 -1
  302. package/src/FHIR-R4/classes/specimenDefinition.ts +1 -1
  303. package/src/FHIR-R4/classes/structureDefinition.ts +1 -1
  304. package/src/FHIR-R4/classes/structureMap.ts +1 -1
  305. package/src/FHIR-R4/classes/subscription.ts +1 -1
  306. package/src/FHIR-R4/classes/substance.ts +1 -1
  307. package/src/FHIR-R4/classes/supplyDelivery.ts +1 -1
  308. package/src/FHIR-R4/classes/supplyRequest.ts +1 -1
  309. package/src/FHIR-R4/classes/task.ts +1 -1
  310. package/src/FHIR-R4/classes/terminologyCapabilities.ts +1 -1
  311. package/src/FHIR-R4/classes/testReport.ts +1 -1
  312. package/src/FHIR-R4/classes/testScript.ts +1 -1
  313. package/src/FHIR-R4/classes/valueSet.ts +1 -1
  314. package/src/FHIR-R4/classes/verificationResult.ts +1 -1
  315. package/src/FHIR-R4/classes/visionPrescription.ts +1 -1
  316. package/src/index.ts +3 -1
  317. package/src/library/BundleUtilities/BundleUtilities.spec.ts +29 -0
  318. package/src/library/BundleUtilities/BundleUtilities.ts +16 -0
  319. package/src/library/ResourceUtilities/ResourceUtilities.spec.ts +230 -0
  320. package/src/library/ResourceUtilities/ResourceUtilities.ts +52 -0
  321. package/src/test-resources/Bundle-R4.json +27472 -0
  322. package/src/test-resources/Patient-R4.json +125 -0
@@ -1,24 +1,133 @@
1
1
  /**
2
2
  * Account-ActivityDefinition-AdverseEvent-AllergyIntolerance-Appointment-AppointmentResponse-AuditEvent-Basic-Binary-BiologicallyDerivedProduct-BodyStructure-Bundle-CapabilityStatement-CarePlan-CareTeam-CatalogEntry-ChargeItem-ChargeItemDefinition-Claim-ClaimResponse-ClinicalImpression-CodeSystem-Communication-CommunicationRequest-CompartmentDefinition-Composition-ConceptMap-Condition-Consent-Contract-Coverage-CoverageEligibilityRequest-CoverageEligibilityResponse-DetectedIssue-Device-DeviceDefinition-DeviceMetric-DeviceRequest-DeviceUseStatement-DiagnosticReport-DocumentManifest-DocumentReference-EffectEvidenceSynthesis-Encounter-Endpoint-EnrollmentRequest-EnrollmentResponse-EpisodeOfCare-EventDefinition-Evidence-EvidenceVariable-ExampleScenario-ExplanationOfBenefit-FamilyMemberHistory-Flag-Goal-GraphDefinition-Group-GuidanceResponse-HealthcareService-ImagingStudy-Immunization-ImmunizationEvaluation-ImmunizationRecommendation-ImplementationGuide-InsurancePlan-Invoice-Library-Linkage-List-Location-Measure-MeasureReport-Media-Medication-MedicationAdministration-MedicationDispense-MedicationKnowledge-MedicationRequest-MedicationStatement-MedicinalProduct-MedicinalProductAuthorization-MedicinalProductContraindication-MedicinalProductIndication-MedicinalProductIngredient-MedicinalProductInteraction-MedicinalProductManufactured-MedicinalProductPackaged-MedicinalProductPharmaceutical-MedicinalProductUndesirableEffect-MessageDefinition-MessageHeader-MolecularSequence-NamingSystem-NutritionOrder-Observation-ObservationDefinition-OperationDefinition-OperationOutcome-Organization-OrganizationAffiliation-Parameters-Patient-PaymentNotice-PaymentReconciliation-Person-PlanDefinition-Practitioner-PractitionerRole-Procedure-Provenance-Questionnaire-QuestionnaireResponse-RelatedPerson-RequestGroup-ResearchDefinition-ResearchElementDefinition-ResearchStudy-ResearchSubject-RiskAssessment-RiskEvidenceSynthesis-Schedule-SearchParameter-ServiceRequest-Slot-Specimen-SpecimenDefinition-StructureDefinition-StructureMap-Subscription-Substance-SubstanceNucleicAcid-SubstancePolymer-SubstanceProtein-SubstanceReferenceInformation-SubstanceSourceMaterial-SubstanceSpecification-SupplyDelivery-SupplyRequest-Task-TerminologyCapabilities-TestReport-TestScript-ValueSet-VerificationResult-VisionPrescription--FHIRAPI
3
- * Swagger for FHIR Resources Account, ActivityDefinition, AdverseEvent, AllergyIntolerance, Appointment, AppointmentResponse, AuditEvent, Basic, Binary, BiologicallyDerivedProduct, BodyStructure, Bundle, CapabilityStatement, CarePlan, CareTeam, CatalogEntry, ChargeItem, ChargeItemDefinition, Claim, ClaimResponse, ClinicalImpression, CodeSystem, Communication, CommunicationRequest, CompartmentDefinition, Composition, ConceptMap, Condition, Consent, Contract, Coverage, CoverageEligibilityRequest, CoverageEligibilityResponse, DetectedIssue, Device, DeviceDefinition, DeviceMetric, DeviceRequest, DeviceUseStatement, DiagnosticReport, DocumentManifest, DocumentReference, EffectEvidenceSynthesis, Encounter, Endpoint, EnrollmentRequest, EnrollmentResponse, EpisodeOfCare, EventDefinition, Evidence, EvidenceVariable, ExampleScenario, ExplanationOfBenefit, FamilyMemberHistory, Flag, Goal, GraphDefinition, Group, GuidanceResponse, HealthcareService, ImagingStudy, Immunization, ImmunizationEvaluation, ImmunizationRecommendation, ImplementationGuide, InsurancePlan, Invoice, Library, Linkage, List, Location, Measure, MeasureReport, Media, Medication, MedicationAdministration, MedicationDispense, MedicationKnowledge, MedicationRequest, MedicationStatement, MedicinalProduct, MedicinalProductAuthorization, MedicinalProductContraindication, MedicinalProductIndication, MedicinalProductIngredient, MedicinalProductInteraction, MedicinalProductManufactured, MedicinalProductPackaged, MedicinalProductPharmaceutical, MedicinalProductUndesirableEffect, MessageDefinition, MessageHeader, MolecularSequence, NamingSystem, NutritionOrder, Observation, ObservationDefinition, OperationDefinition, OperationOutcome, Organization, OrganizationAffiliation, Parameters, Patient, PaymentNotice, PaymentReconciliation, Person, PlanDefinition, Practitioner, PractitionerRole, Procedure, Provenance, Questionnaire, QuestionnaireResponse, RelatedPerson, RequestGroup, ResearchDefinition, ResearchElementDefinition, ResearchStudy, ResearchSubject, RiskAssessment, RiskEvidenceSynthesis, Schedule, SearchParameter, ServiceRequest, Slot, Specimen, SpecimenDefinition, StructureDefinition, StructureMap, Subscription, Substance, SubstanceNucleicAcid, SubstancePolymer, SubstanceProtein, SubstanceReferenceInformation, SubstanceSourceMaterial, SubstanceSpecification, SupplyDelivery, SupplyRequest, Task, TerminologyCapabilities, TestReport, TestScript, ValueSet, VerificationResult, VisionPrescription
4
- *
5
- * OpenAPI spec version: 1.0.0
6
- *
7
- *
8
- * NOTE: This class is auto generated by the swagger code generator program.
9
- * https://github.com/swagger-api/swagger-codegen.git
10
- * Do not edit the class manually.
11
3
  */
12
- import { Code } from './code';
13
- import { Id } from './id';
14
- import { Meta } from './meta';
15
- import { Uri } from './uri';
4
+ import { Account } from './account';
5
+ import { ActivityDefinition } from './activityDefinition';
6
+ import { AdverseEvent } from './adverseEvent';
7
+ import { AllergyIntolerance } from './allergyIntolerance';
8
+ import { Appointment } from './appointment';
9
+ import { AppointmentResponse } from './appointmentResponse';
10
+ import { AuditEvent } from './auditEvent';
11
+ import { Basic } from './basic';
12
+ import { Binary } from './binary';
13
+ import { BiologicallyDerivedProduct } from './biologicallyDerivedProduct';
14
+ import { BodyStructure } from './bodyStructure';
15
+ import { Bundle } from './bundle';
16
+ import { CapabilityStatement } from './capabilityStatement';
17
+ import { CarePlan } from './carePlan';
18
+ import { CareTeam } from './careTeam';
19
+ import { CatalogEntry } from './catalogEntry';
20
+ import { ChargeItem } from './chargeItem';
21
+ import { ChargeItemDefinition } from './chargeItemDefinition';
22
+ import { Claim } from './claim';
23
+ import { ClaimResponse } from './claimResponse';
24
+ import { ClinicalImpression } from './clinicalImpression';
25
+ import { CodeSystem } from './codeSystem';
26
+ import { Communication } from './communication';
27
+ import { CommunicationRequest } from './communicationRequest';
28
+ import { CompartmentDefinition } from './compartmentDefinition';
29
+ import { Composition } from './composition';
30
+ import { ConceptMap } from './conceptMap';
31
+ import { Condition } from './condition';
32
+ import { Consent } from './consent';
33
+ import { Contract } from './contract';
34
+ import { Coverage } from './coverage';
35
+ import { CoverageEligibilityRequest } from './coverageEligibilityRequest';
36
+ import { CoverageEligibilityResponse } from './coverageEligibilityResponse';
37
+ import { DetectedIssue } from './detectedIssue';
38
+ import { Device } from './device';
39
+ import { DeviceDefinition } from './deviceDefinition';
40
+ import { DeviceMetric } from './deviceMetric';
41
+ import { DeviceRequest } from './deviceRequest';
42
+ import { DeviceUseStatement } from './deviceUseStatement';
43
+ import { DiagnosticReport } from './diagnosticReport';
44
+ import { DocumentManifest } from './documentManifest';
45
+ import { DocumentReference } from './documentReference';
46
+ import { Encounter } from './encounter';
47
+ import { Endpoint } from './endpoint';
48
+ import { EnrollmentRequest } from './enrollmentRequest';
49
+ import { EnrollmentResponse } from './enrollmentResponse';
50
+ import { EpisodeOfCare } from './episodeOfCare';
51
+ import { EventDefinition } from './eventDefinition';
52
+ import { Evidence } from './evidence';
53
+ import { EvidenceVariable } from './evidenceVariable';
54
+ import { ExampleScenario } from './exampleScenario';
55
+ import { ExplanationOfBenefit } from './explanationOfBenefit';
56
+ import { FamilyMemberHistory } from './familyMemberHistory';
57
+ import { Flag } from './flag';
58
+ import { Goal } from './goal';
59
+ import { GraphDefinition } from './graphDefinition';
60
+ import { Group } from './group';
61
+ import { GuidanceResponse } from './guidanceResponse';
62
+ import { HealthcareService } from './healthcareService';
63
+ import { ImagingStudy } from './imagingStudy';
64
+ import { Immunization } from './immunization';
65
+ import { ImmunizationEvaluation } from './immunizationEvaluation';
66
+ import { ImmunizationRecommendation } from './immunizationRecommendation';
67
+ import { ImplementationGuide } from './implementationGuide';
68
+ import { InsurancePlan } from './insurancePlan';
69
+ import { Invoice } from './invoice';
70
+ import { Library } from './library';
71
+ import { Linkage } from './linkage';
72
+ import { List } from './list';
73
+ import { Location } from './location';
74
+ import { Measure } from './measure';
75
+ import { MeasureReport } from './measureReport';
76
+ import { Media } from './media';
77
+ import { Medication } from './medication';
78
+ import { MedicationAdministration } from './medicationAdministration';
79
+ import { MedicationDispense } from './medicationDispense';
80
+ import { MedicationKnowledge } from './medicationKnowledge';
81
+ import { MedicationRequest } from './medicationRequest';
82
+ import { MedicationStatement } from './medicationStatement';
83
+ import { MessageDefinition } from './messageDefinition';
84
+ import { MessageHeader } from './messageHeader';
85
+ import { MolecularSequence } from './molecularSequence';
86
+ import { NamingSystem } from './namingSystem';
87
+ import { NutritionOrder } from './nutritionOrder';
88
+ import { Observation } from './observation';
89
+ import { ObservationDefinition } from './observationDefinition';
90
+ import { OperationDefinition } from './operationDefinition';
91
+ import { OperationOutcome } from './operationOutcome';
92
+ import { Organization } from './organization';
93
+ import { OrganizationAffiliation } from './organizationAffiliation';
94
+ import { Patient } from './patient';
95
+ import { PaymentNotice } from './paymentNotice';
96
+ import { PaymentReconciliation } from './paymentReconciliation';
97
+ import { Person } from './person';
98
+ import { PlanDefinition } from './planDefinition';
99
+ import { Practitioner } from './practitioner';
100
+ import { PractitionerRole } from './practitionerRole';
101
+ import { Procedure } from './procedure';
102
+ import { Provenance } from './provenance';
103
+ import { Questionnaire } from './questionnaire';
104
+ import { QuestionnaireResponse } from './questionnaireResponse';
105
+ import { RelatedPerson } from './relatedPerson';
106
+ import { RequestGroup } from './requestGroup';
107
+ import { ResearchDefinition } from './researchDefinition';
108
+ import { ResearchElementDefinition } from './researchElementDefinition';
109
+ import { ResearchStudy } from './researchStudy';
110
+ import { ResearchSubject } from './researchSubject';
111
+ import { RiskAssessment } from './riskAssessment';
112
+ import { Schedule } from './schedule';
113
+ import { SearchParameter } from './searchParameter';
114
+ import { ServiceRequest } from './serviceRequest';
115
+ import { Slot } from './slot';
116
+ import { Specimen } from './specimen';
117
+ import { SpecimenDefinition } from './specimenDefinition';
118
+ import { StructureDefinition } from './structureDefinition';
119
+ import { StructureMap } from './structureMap';
120
+ import { Subscription } from './subscription';
121
+ import { Substance } from './substance';
122
+ import { SupplyDelivery } from './supplyDelivery';
123
+ import { SupplyRequest } from './supplyRequest';
124
+ import { Task } from './task';
125
+ import { TerminologyCapabilities } from './terminologyCapabilities';
126
+ import { TestReport } from './testReport';
127
+ import { TestScript } from './testScript';
128
+ import { ValueSet } from './valueSet';
129
+ import { VerificationResult } from './verificationResult';
130
+ import { VisionPrescription } from './visionPrescription';
16
131
 
17
132
 
18
- export class Resource {
19
- resourceType: string;
20
- id?: Id;
21
- meta?: Meta;
22
- implicitRules?: Uri;
23
- language?: Code;
24
- }
133
+ export type Resource = Account | ActivityDefinition | AdverseEvent | AllergyIntolerance | Appointment | AppointmentResponse | AuditEvent | Binary | BiologicallyDerivedProduct | BodyStructure | Bundle | CapabilityStatement | CarePlan | CareTeam | CatalogEntry | ChargeItem | ChargeItemDefinition | Claim | ClaimResponse | ClinicalImpression | CodeSystem | Communication | CommunicationRequest | CompartmentDefinition | Composition | ConceptMap | Condition | Consent | Contract | Coverage | CoverageEligibilityRequest | CoverageEligibilityResponse | DetectedIssue | Device | DeviceDefinition | DeviceMetric | DeviceRequest | DeviceUseStatement | DiagnosticReport | DocumentManifest | DocumentReference | Encounter | Endpoint | EnrollmentRequest | EnrollmentResponse | EpisodeOfCare | EventDefinition | Evidence | EvidenceVariable | ExampleScenario | ExplanationOfBenefit | FamilyMemberHistory | Flag | Goal | GraphDefinition | Group | GuidanceResponse | HealthcareService | ImagingStudy | Immunization | ImmunizationEvaluation | ImmunizationRecommendation | ImplementationGuide | InsurancePlan | Invoice | Library | Linkage | List | Location | Measure | MeasureReport | Media | Medication | MedicationAdministration | MedicationDispense | MedicationKnowledge | MedicationRequest | MedicationStatement | MessageDefinition | MessageHeader | MolecularSequence | NamingSystem | NutritionOrder | Observation | ObservationDefinition | OperationDefinition | OperationOutcome | Organization | OrganizationAffiliation | Patient | PaymentNotice | PaymentReconciliation | Person | PlanDefinition | Practitioner | PractitionerRole | Procedure | Provenance | Questionnaire | QuestionnaireResponse | RelatedPerson | RequestGroup | ResearchDefinition | ResearchElementDefinition | ResearchStudy | ResearchSubject | RiskAssessment | Schedule | SearchParameter | ServiceRequest | Slot | Specimen | SpecimenDefinition | StructureDefinition | StructureMap | Subscription | Substance | SupplyDelivery | SupplyRequest | Task | TerminologyCapabilities | TestReport | TestScript | ValueSet | VerificationResult | VisionPrescription;
@@ -11,5 +11,4 @@
11
11
  */
12
12
 
13
13
 
14
- export class ResourceList {
15
- }
14
+ export type ResourceList = "Account" | "ActivityDefinition" | "AdverseEvent" | "AllergyIntolerance" | "Appointment" | "AppointmentResponse" | "AuditEvent" | "Basic" | "Binary" | "BiologicallyDerivedProduct" | "BodyStructure" | "Bundle" | "CapabilityStatement" | "CarePlan" | "CareTeam" | "CatalogEntry" | "ChargeItem" | "ChargeItemDefinition" | "Claim" | "ClaimResponse" | "ClinicalImpression" | "CodeSystem" | "Communication" | "CommunicationRequest" | "CompartmentDefinition" | "Composition" | "ConceptMap" | "Condition" | "Consent" | "Contract" | "Coverage" | "CoverageEligibilityRequest" | "CoverageEligibilityResponse" | "DetectedIssue" | "Device" | "DeviceDefinition" | "DeviceMetric" | "DeviceRequest" | "DeviceUseStatement" | "DiagnosticReport" | "DocumentManifest" | "DocumentReference" | "Encounter" | "Endpoint" | "EnrollmentRequest" | "EnrollmentResponse" | "EpisodeOfCare" | "EventDefinition" | "Evidence" | "EvidenceVariable" | "ExampleScenario" | "ExplanationOfBenefit" | "FamilyMemberHistory" | "Flag" | "Goal" | "GraphDefinition" | "Group" | "GuidanceResponse" | "HealthcareService" | "ImagingStudy" | "Immunization" | "ImmunizationEvaluation" | "ImmunizationRecommendation" | "ImplementationGuide" | "InsurancePlan" | "Invoice" | "Library" | "Linkage" | "List" | "Location" | "Measure" | "MeasureReport" | "Media" | "Medication" | "MedicationAdministration" | "MedicationDispense" | "MedicationKnowledge" | "MedicationRequest" | "MedicationStatement" | "MessageDefinition" | "MessageHeader" | "MolecularSequence" | "NamingSystem" | "NutritionOrder" | "Observation" | "ObservationDefinition" | "OperationDefinition" | "OperationOutcome" | "Organization" | "OrganizationAffiliation" | "Patient" | "PaymentNotice" | "PaymentReconciliation" | "Person" | "PlanDefinition" | "Practitioner" | "PractitionerRole" | "Procedure" | "Provenance" | "Questionnaire" | "QuestionnaireResponse" | "RelatedPerson" | "RequestGroup" | "ResearchDefinition" | "ResearchElementDefinition" | "ResearchStudy" | "ResearchSubject" | "RiskAssessment" | "Schedule" | "SearchParameter" | "ServiceRequest" | "Slot" | "Specimen" | "SpecimenDefinition" | "StructureDefinition" | "StructureMap" | "Subscription" | "Substance" | "SupplyDelivery" | "SupplyRequest" | "Task" | "TerminologyCapabilities" | "TestReport" | "TestScript" | "ValueSet" | "VerificationResult" | "VisionPrescription";
@@ -30,7 +30,7 @@ export class RiskAssessment {
30
30
  /**
31
31
  * This is a RiskAssessment resource
32
32
  */
33
- resourceType: string;
33
+ resourceType: 'RiskAssessment';
34
34
  /**
35
35
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
36
36
  */
@@ -28,7 +28,7 @@ export class Schedule {
28
28
  /**
29
29
  * This is a Schedule resource
30
30
  */
31
- resourceType: string;
31
+ resourceType: 'Schedule';
32
32
  /**
33
33
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
34
34
  */
@@ -19,6 +19,7 @@ import { Id } from './id';
19
19
  import { Markdown } from './markdown';
20
20
  import { Meta } from './meta';
21
21
  import { Narrative } from './narrative';
22
+ import { ResourceList } from './resourceList';
22
23
  import { SearchParameterComponent } from './searchParameterComponent';
23
24
  import { Uri } from './uri';
24
25
  import { UsageContext } from './usageContext';
@@ -27,11 +28,11 @@ import { UsageContext } from './usageContext';
27
28
  /**
28
29
  * A search parameter that defines a named search item that can be used to search/filter on a resource.
29
30
  */
30
- export class SearchParameter {
31
+ export class SearchParameter {
31
32
  /**
32
33
  * This is a SearchParameter resource
33
34
  */
34
- resourceType: string;
35
+ resourceType: 'SearchParameter';
35
36
  /**
36
37
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
37
38
  */
@@ -115,15 +116,15 @@ export class SearchParameter {
115
116
  /**
116
117
  * The code used in the URL or the parameter name in a parameters resource for this search parameter.
117
118
  */
118
- code?: Code;
119
+ code: Code;
119
120
  /**
120
121
  * The base resource type(s) that this search parameter can be used against.
121
122
  */
122
- base?: Array<Code>;
123
+ base: Array<ResourceList>;
123
124
  /**
124
125
  * The type of value that a search parameter may contain, and how the content is interpreted.
125
126
  */
126
- type?: SearchParameter.TypeEnum;
127
+ type: SearchParameter.TypeEnum;
127
128
  /**
128
129
  * A FHIRPath expression that returns a set of elements for the search parameter.
129
130
  */
@@ -139,7 +140,7 @@ export class SearchParameter {
139
140
  /**
140
141
  * Types of resource (if a resource is referenced).
141
142
  */
142
- target?: Array<Code>;
143
+ target: Array<ResourceList>;
143
144
  /**
144
145
  * Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.
145
146
  */
@@ -35,7 +35,7 @@ export class ServiceRequest {
35
35
  /**
36
36
  * This is a ServiceRequest resource
37
37
  */
38
- resourceType: string;
38
+ resourceType: 'ServiceRequest';
39
39
  /**
40
40
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
41
41
  */
@@ -28,7 +28,7 @@ export class Slot {
28
28
  /**
29
29
  * This is a Slot resource
30
30
  */
31
- resourceType: string;
31
+ resourceType: 'Slot';
32
32
  /**
33
33
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
34
34
  */
@@ -32,7 +32,7 @@ export class Specimen {
32
32
  /**
33
33
  * This is a Specimen resource
34
34
  */
35
- resourceType: string;
35
+ resourceType: 'Specimen';
36
36
  /**
37
37
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
38
38
  */
@@ -27,7 +27,7 @@ export class SpecimenDefinition {
27
27
  /**
28
28
  * This is a SpecimenDefinition resource
29
29
  */
30
- resourceType: string;
30
+ resourceType: 'SpecimenDefinition';
31
31
  /**
32
32
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
33
33
  */
@@ -36,7 +36,7 @@ export class StructureDefinition {
36
36
  /**
37
37
  * This is a StructureDefinition resource
38
38
  */
39
- resourceType: string;
39
+ resourceType: 'StructureDefinition';
40
40
  /**
41
41
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
42
42
  */
@@ -33,7 +33,7 @@ export class StructureMap {
33
33
  /**
34
34
  * This is a StructureMap resource
35
35
  */
36
- resourceType: string;
36
+ resourceType: 'StructureMap';
37
37
  /**
38
38
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
39
39
  */
@@ -27,7 +27,7 @@ export class Subscription {
27
27
  /**
28
28
  * This is a Subscription resource
29
29
  */
30
- resourceType: string;
30
+ resourceType: 'Subscription';
31
31
  /**
32
32
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
33
33
  */
@@ -28,7 +28,7 @@ export class Substance {
28
28
  /**
29
29
  * This is a Substance resource
30
30
  */
31
- resourceType: string;
31
+ resourceType: 'Substance';
32
32
  /**
33
33
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
34
34
  */
@@ -30,7 +30,7 @@ export class SupplyDelivery {
30
30
  /**
31
31
  * This is a SupplyDelivery resource
32
32
  */
33
- resourceType: string;
33
+ resourceType: 'SupplyDelivery';
34
34
  /**
35
35
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
36
36
  */
@@ -32,7 +32,7 @@ export class SupplyRequest {
32
32
  /**
33
33
  * This is a SupplyRequest resource
34
34
  */
35
- resourceType: string;
35
+ resourceType: 'SupplyRequest';
36
36
  /**
37
37
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
38
38
  */
@@ -34,7 +34,7 @@ export class Task {
34
34
  /**
35
35
  * This is a Task resource
36
36
  */
37
- resourceType: string;
37
+ resourceType: 'Task';
38
38
  /**
39
39
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
40
40
  */
@@ -36,7 +36,7 @@ export class TerminologyCapabilities {
36
36
  /**
37
37
  * This is a TerminologyCapabilities resource
38
38
  */
39
- resourceType: string;
39
+ resourceType: 'TerminologyCapabilities';
40
40
  /**
41
41
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
42
42
  */
@@ -32,7 +32,7 @@ export class TestReport {
32
32
  /**
33
33
  * This is a TestReport resource
34
34
  */
35
- resourceType: string;
35
+ resourceType: 'TestReport';
36
36
  /**
37
37
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
38
38
  */
@@ -39,7 +39,7 @@ export class TestScript {
39
39
  /**
40
40
  * This is a TestScript resource
41
41
  */
42
- resourceType: string;
42
+ resourceType: 'TestScript';
43
43
  /**
44
44
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
45
45
  */
@@ -32,7 +32,7 @@ export class ValueSet {
32
32
  /**
33
33
  * This is a ValueSet resource
34
34
  */
35
- resourceType: string;
35
+ resourceType: 'ValueSet';
36
36
  /**
37
37
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
38
38
  */
@@ -31,7 +31,7 @@ export class VerificationResult {
31
31
  /**
32
32
  * This is a VerificationResult resource
33
33
  */
34
- resourceType: string;
34
+ resourceType: 'VerificationResult';
35
35
  /**
36
36
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
37
37
  */
@@ -28,7 +28,7 @@ export class VisionPrescription {
28
28
  /**
29
29
  * This is a VisionPrescription resource
30
30
  */
31
- resourceType: string;
31
+ resourceType: 'VisionPrescription';
32
32
  /**
33
33
  * The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
34
34
  */
package/src/index.ts CHANGED
@@ -2,5 +2,7 @@ import * as fhirR4 from './FHIR-R4/classes/models-r4';
2
2
  import * as IfhirR4 from './FHIR-R4/interfaces/IModel';
3
3
  import * as fhirR3 from './FHIR-R3';
4
4
  import * as dstu2 from './FHIR-DSTU2';
5
- export { fhirR4, fhirR3, IfhirR4, dstu2 };
5
+ import { ResourceUtilities } from './library/ResourceUtilities/ResourceUtilities';
6
+ import { BundleUtilities } from './library/BundleUtilities/BundleUtilities';
7
+ export { fhirR4, fhirR3, IfhirR4, dstu2, ResourceUtilities, BundleUtilities };
6
8
 
@@ -0,0 +1,29 @@
1
+ import { Patient } from "../../FHIR-R4/classes/patient";
2
+ import { BundleUtilities } from "./BundleUtilities";
3
+
4
+ const inputPayload = require("./../../test-resources/Bundle-R4.json");
5
+ describe("BundleUtilities", () => {
6
+
7
+ describe("#getResourcesFromBundle()", () => {
8
+ it('should return empty array if null is passed as bundle entries', () => {
9
+ // execute
10
+ const actual = BundleUtilities.getResourcesFromBundle(null, 'Patient');
11
+ // validate
12
+ expect(actual.length).toEqual(0);
13
+ });
14
+
15
+ it('should return empty array if invalid resourceType is passed', () => {
16
+ // execute
17
+ const actual = BundleUtilities.getResourcesFromBundle(inputPayload.entry, 'patient');
18
+ // validate
19
+ expect(actual.length).toEqual(0);
20
+ });
21
+
22
+ it('should return all matches array', () => {
23
+ // execute
24
+ const actual = BundleUtilities.getResourcesFromBundle(inputPayload.entry, 'Claim');
25
+ // validate
26
+ expect(actual.length).toEqual(27);
27
+ });
28
+ });
29
+ });
@@ -0,0 +1,16 @@
1
+ export class BundleUtility {
2
+
3
+ /**
4
+ *
5
+ * @param bundleEntry Bundle.entry[] i.e. the bundle entries to filter
6
+ * @param resourceTypeToFilter ResourceType to filter from bundle entries
7
+ * @returns array of resources
8
+ */
9
+ getResourcesFromBundle(bundleEntry: any[], resourceTypeToFilter: string): any[] {
10
+ return bundleEntry?.length ? bundleEntry.filter(x => x['resource']['resourceType'] === resourceTypeToFilter) : [];
11
+ }
12
+ }
13
+
14
+ export const BundleUtilities = new BundleUtility();
15
+
16
+