gdc-common-utils-ts 1.14.10 → 1.14.13

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 (255) hide show
  1. package/README.md +54 -1
  2. package/dist/claims/claim-list-helpers.d.ts +21 -0
  3. package/dist/claims/claim-list-helpers.js +50 -0
  4. package/dist/claims/claims-helpers-allergy-intolerance.d.ts +10 -0
  5. package/dist/claims/claims-helpers-allergy-intolerance.js +47 -0
  6. package/dist/claims/claims-helpers-appointment-response.d.ts +8 -0
  7. package/dist/claims/claims-helpers-appointment-response.js +20 -0
  8. package/dist/claims/claims-helpers-appointment.d.ts +10 -0
  9. package/dist/claims/claims-helpers-appointment.js +26 -0
  10. package/dist/claims/claims-helpers-care-plan.d.ts +8 -0
  11. package/dist/claims/claims-helpers-care-plan.js +20 -0
  12. package/dist/claims/claims-helpers-clinical-impression.d.ts +10 -0
  13. package/dist/claims/claims-helpers-clinical-impression.js +26 -0
  14. package/dist/claims/claims-helpers-communication.d.ts +17 -0
  15. package/dist/claims/claims-helpers-communication.js +57 -0
  16. package/dist/claims/claims-helpers-composition.d.ts +12 -0
  17. package/dist/claims/claims-helpers-composition.js +32 -0
  18. package/dist/claims/claims-helpers-condition.d.ts +10 -0
  19. package/dist/claims/claims-helpers-condition.js +47 -0
  20. package/dist/claims/claims-helpers-consent.d.ts +112 -0
  21. package/dist/claims/claims-helpers-consent.js +271 -0
  22. package/dist/claims/claims-helpers-coverage.d.ts +10 -0
  23. package/dist/claims/claims-helpers-coverage.js +26 -0
  24. package/dist/claims/claims-helpers-device-use-statement.d.ts +8 -0
  25. package/dist/claims/claims-helpers-device-use-statement.js +20 -0
  26. package/dist/claims/claims-helpers-device.d.ts +8 -0
  27. package/dist/claims/claims-helpers-device.js +20 -0
  28. package/dist/claims/claims-helpers-diagnostic-report.d.ts +12 -0
  29. package/dist/claims/claims-helpers-diagnostic-report.js +32 -0
  30. package/dist/claims/claims-helpers-document-reference.d.ts +8 -0
  31. package/dist/claims/claims-helpers-document-reference.js +20 -0
  32. package/dist/claims/claims-helpers-encounter.d.ts +10 -0
  33. package/dist/claims/claims-helpers-encounter.js +26 -0
  34. package/dist/claims/claims-helpers-flag.d.ts +8 -0
  35. package/dist/claims/claims-helpers-flag.js +20 -0
  36. package/dist/claims/claims-helpers-immunization.d.ts +8 -0
  37. package/dist/claims/claims-helpers-immunization.js +20 -0
  38. package/dist/claims/claims-helpers-location.d.ts +10 -0
  39. package/dist/claims/claims-helpers-location.js +26 -0
  40. package/dist/claims/claims-helpers-medication-statement.d.ts +88 -0
  41. package/dist/claims/claims-helpers-medication-statement.js +259 -0
  42. package/dist/claims/claims-helpers-observation.d.ts +8 -0
  43. package/dist/claims/claims-helpers-observation.js +20 -0
  44. package/dist/claims/claims-helpers-organization.d.ts +12 -0
  45. package/dist/claims/claims-helpers-organization.js +32 -0
  46. package/dist/claims/claims-helpers-procedure.d.ts +8 -0
  47. package/dist/claims/claims-helpers-procedure.js +20 -0
  48. package/dist/claims/claims-helpers-related-person.d.ts +8 -0
  49. package/dist/claims/claims-helpers-related-person.js +20 -0
  50. package/dist/claims/index.d.ts +24 -0
  51. package/dist/claims/index.js +24 -0
  52. package/dist/constants/fhir-resource-types.d.ts +16 -0
  53. package/dist/constants/fhir-resource-types.js +8 -0
  54. package/dist/convert/convert-allergy-intolerance.d.ts +3 -0
  55. package/dist/convert/convert-allergy-intolerance.js +34 -0
  56. package/dist/convert/convert-appointment-response.d.ts +3 -0
  57. package/dist/convert/convert-appointment-response.js +32 -0
  58. package/dist/convert/convert-appointment.d.ts +3 -0
  59. package/dist/convert/convert-appointment.js +61 -0
  60. package/dist/convert/convert-care-plan.d.ts +3 -0
  61. package/dist/convert/convert-care-plan.js +58 -0
  62. package/dist/convert/convert-clinical-impression.d.ts +3 -0
  63. package/dist/convert/convert-clinical-impression.js +42 -0
  64. package/dist/convert/convert-composition.d.ts +3 -0
  65. package/dist/convert/convert-composition.js +35 -0
  66. package/dist/convert/convert-condition.d.ts +3 -0
  67. package/dist/convert/convert-condition.js +24 -0
  68. package/dist/convert/convert-coverage.d.ts +3 -0
  69. package/dist/convert/convert-coverage.js +51 -0
  70. package/dist/convert/convert-device-use-statement.d.ts +3 -0
  71. package/dist/convert/convert-device-use-statement.js +28 -0
  72. package/dist/convert/convert-device.d.ts +3 -0
  73. package/dist/convert/convert-device.js +37 -0
  74. package/dist/convert/convert-diagnostic-report.d.ts +3 -0
  75. package/dist/convert/convert-diagnostic-report.js +55 -0
  76. package/dist/convert/convert-document-reference.d.ts +3 -0
  77. package/dist/convert/convert-document-reference.js +35 -0
  78. package/dist/convert/convert-encounter.d.ts +3 -0
  79. package/dist/convert/convert-encounter.js +68 -0
  80. package/dist/convert/convert-flag.d.ts +3 -0
  81. package/dist/convert/convert-flag.js +34 -0
  82. package/dist/convert/convert-immunization.d.ts +3 -0
  83. package/dist/convert/convert-immunization.js +56 -0
  84. package/dist/convert/convert-location.d.ts +3 -0
  85. package/dist/convert/convert-location.js +44 -0
  86. package/dist/convert/convert-medication-statement.d.ts +3 -0
  87. package/dist/convert/convert-medication-statement.js +64 -0
  88. package/dist/convert/convert-observation.d.ts +3 -0
  89. package/dist/convert/convert-observation.js +57 -0
  90. package/dist/convert/convert-organization.d.ts +3 -0
  91. package/dist/convert/convert-organization.js +39 -0
  92. package/dist/convert/convert-procedure.d.ts +3 -0
  93. package/dist/convert/convert-procedure.js +50 -0
  94. package/dist/convert/convert-related-person.d.ts +3 -0
  95. package/dist/convert/convert-related-person.js +31 -0
  96. package/dist/convert/convert-shared.d.ts +34 -0
  97. package/dist/convert/convert-shared.js +179 -0
  98. package/dist/convert/index.d.ts +22 -0
  99. package/dist/convert/index.js +22 -0
  100. package/dist/examples/communication-bundle-session.js +2 -2
  101. package/dist/examples/shared.d.ts +19 -0
  102. package/dist/examples/shared.js +73 -0
  103. package/dist/index.d.ts +2 -0
  104. package/dist/index.js +2 -0
  105. package/dist/models/bundle.d.ts +13 -1
  106. package/dist/models/interoperable-claims/appointment-claims.d.ts +23 -1
  107. package/dist/models/interoperable-claims/appointment-claims.js +22 -1
  108. package/dist/models/interoperable-claims/appointment-response-claims.d.ts +14 -0
  109. package/dist/models/interoperable-claims/appointment-response-claims.js +13 -0
  110. package/dist/models/interoperable-claims/care-plan-claims.d.ts +24 -0
  111. package/dist/models/interoperable-claims/care-plan-claims.js +44 -0
  112. package/dist/models/interoperable-claims/clinical-impression-claims.d.ts +17 -0
  113. package/dist/models/interoperable-claims/clinical-impression-claims.js +30 -0
  114. package/dist/models/interoperable-claims/coverage-claims.d.ts +16 -0
  115. package/dist/models/interoperable-claims/coverage-claims.js +28 -0
  116. package/dist/models/interoperable-claims/device-claims.d.ts +18 -0
  117. package/dist/models/interoperable-claims/device-claims.js +32 -0
  118. package/dist/models/interoperable-claims/diagnostic-report-claims.d.ts +2 -2
  119. package/dist/models/interoperable-claims/diagnostic-report-claims.js +1 -1
  120. package/dist/models/interoperable-claims/encounter-claims.d.ts +18 -0
  121. package/dist/models/interoperable-claims/encounter-claims.js +32 -0
  122. package/dist/models/interoperable-claims/flag-claims.d.ts +16 -0
  123. package/dist/models/interoperable-claims/flag-claims.js +28 -0
  124. package/dist/models/interoperable-claims/immunization-claims.d.ts +23 -0
  125. package/dist/models/interoperable-claims/immunization-claims.js +42 -0
  126. package/dist/models/interoperable-claims/index.d.ts +12 -0
  127. package/dist/models/interoperable-claims/index.js +12 -0
  128. package/dist/models/interoperable-claims/location-claims.d.ts +22 -0
  129. package/dist/models/interoperable-claims/location-claims.js +34 -0
  130. package/dist/models/interoperable-claims/observation-claims.d.ts +26 -0
  131. package/dist/models/interoperable-claims/observation-claims.js +48 -0
  132. package/dist/models/interoperable-claims/organization-claims.d.ts +18 -0
  133. package/dist/models/interoperable-claims/organization-claims.js +27 -0
  134. package/dist/models/interoperable-claims/procedure-claims.d.ts +22 -0
  135. package/dist/models/interoperable-claims/procedure-claims.js +40 -0
  136. package/dist/models/interoperable-claims/related-person-claims.d.ts +14 -0
  137. package/dist/models/interoperable-claims/related-person-claims.js +24 -0
  138. package/dist/utils/appointment-claim-helpers.d.ts +10 -0
  139. package/dist/utils/appointment-claim-helpers.js +26 -0
  140. package/dist/utils/appointment-response-claim-helpers.d.ts +8 -0
  141. package/dist/utils/appointment-response-claim-helpers.js +20 -0
  142. package/dist/utils/bundle-document-builder.d.ts +36 -0
  143. package/dist/utils/bundle-document-builder.js +311 -0
  144. package/dist/utils/claims-helpers-allergy-intolerance.d.ts +1 -0
  145. package/dist/utils/claims-helpers-allergy-intolerance.js +1 -0
  146. package/dist/utils/claims-helpers-appointment-response.d.ts +1 -0
  147. package/dist/utils/claims-helpers-appointment-response.js +1 -0
  148. package/dist/utils/claims-helpers-appointment.d.ts +1 -0
  149. package/dist/utils/claims-helpers-appointment.js +1 -0
  150. package/dist/utils/claims-helpers-care-plan.d.ts +1 -0
  151. package/dist/utils/claims-helpers-care-plan.js +1 -0
  152. package/dist/utils/claims-helpers-clinical-impression.d.ts +1 -0
  153. package/dist/utils/claims-helpers-clinical-impression.js +1 -0
  154. package/dist/utils/claims-helpers-communication.d.ts +1 -0
  155. package/dist/utils/claims-helpers-communication.js +1 -0
  156. package/dist/utils/claims-helpers-composition.d.ts +1 -0
  157. package/dist/utils/claims-helpers-composition.js +1 -0
  158. package/dist/utils/claims-helpers-condition.d.ts +1 -0
  159. package/dist/utils/claims-helpers-condition.js +1 -0
  160. package/dist/utils/claims-helpers-consent.d.ts +1 -0
  161. package/dist/utils/claims-helpers-consent.js +1 -0
  162. package/dist/utils/claims-helpers-coverage.d.ts +1 -0
  163. package/dist/utils/claims-helpers-coverage.js +1 -0
  164. package/dist/utils/claims-helpers-device-use-statement.d.ts +1 -0
  165. package/dist/utils/claims-helpers-device-use-statement.js +1 -0
  166. package/dist/utils/claims-helpers-device.d.ts +1 -0
  167. package/dist/utils/claims-helpers-device.js +1 -0
  168. package/dist/utils/claims-helpers-diagnostic-report.d.ts +1 -0
  169. package/dist/utils/claims-helpers-diagnostic-report.js +1 -0
  170. package/dist/utils/claims-helpers-document-reference.d.ts +1 -0
  171. package/dist/utils/claims-helpers-document-reference.js +1 -0
  172. package/dist/utils/claims-helpers-encounter.d.ts +1 -0
  173. package/dist/utils/claims-helpers-encounter.js +1 -0
  174. package/dist/utils/claims-helpers-flag.d.ts +1 -0
  175. package/dist/utils/claims-helpers-flag.js +1 -0
  176. package/dist/utils/claims-helpers-immunization.d.ts +1 -0
  177. package/dist/utils/claims-helpers-immunization.js +1 -0
  178. package/dist/utils/claims-helpers-location.d.ts +1 -0
  179. package/dist/utils/claims-helpers-location.js +1 -0
  180. package/dist/utils/claims-helpers-medication-statement.d.ts +1 -0
  181. package/dist/utils/claims-helpers-medication-statement.js +1 -0
  182. package/dist/utils/claims-helpers-observation.d.ts +1 -0
  183. package/dist/utils/claims-helpers-observation.js +1 -0
  184. package/dist/utils/claims-helpers-organization.d.ts +1 -0
  185. package/dist/utils/claims-helpers-organization.js +1 -0
  186. package/dist/utils/claims-helpers-procedure.d.ts +1 -0
  187. package/dist/utils/claims-helpers-procedure.js +1 -0
  188. package/dist/utils/claims-helpers-related-person.d.ts +1 -0
  189. package/dist/utils/claims-helpers-related-person.js +1 -0
  190. package/dist/utils/clinical-impression-claim-helpers.d.ts +10 -0
  191. package/dist/utils/clinical-impression-claim-helpers.js +26 -0
  192. package/dist/utils/clinical-resource-converters.d.ts +91 -62
  193. package/dist/utils/clinical-resource-converters.js +135 -273
  194. package/dist/utils/communication-bundle-session.js +1 -1
  195. package/dist/utils/composition-claim-helpers.d.ts +12 -0
  196. package/dist/utils/composition-claim-helpers.js +32 -0
  197. package/dist/utils/consent-claim-helpers.d.ts +2 -2
  198. package/dist/utils/consent-claim-helpers.js +2 -2
  199. package/dist/utils/convert-allergy-intolerance.d.ts +3 -0
  200. package/dist/utils/convert-allergy-intolerance.js +34 -0
  201. package/dist/utils/convert-appointment-response.d.ts +3 -0
  202. package/dist/utils/convert-appointment-response.js +32 -0
  203. package/dist/utils/convert-appointment.d.ts +3 -0
  204. package/dist/utils/convert-appointment.js +61 -0
  205. package/dist/utils/convert-care-plan.d.ts +3 -0
  206. package/dist/utils/convert-care-plan.js +58 -0
  207. package/dist/utils/convert-clinical-impression.d.ts +3 -0
  208. package/dist/utils/convert-clinical-impression.js +42 -0
  209. package/dist/utils/convert-composition.d.ts +3 -0
  210. package/dist/utils/convert-composition.js +35 -0
  211. package/dist/utils/convert-condition.d.ts +3 -0
  212. package/dist/utils/convert-condition.js +24 -0
  213. package/dist/utils/convert-coverage.d.ts +3 -0
  214. package/dist/utils/convert-coverage.js +51 -0
  215. package/dist/utils/convert-device-use-statement.d.ts +3 -0
  216. package/dist/utils/convert-device-use-statement.js +28 -0
  217. package/dist/utils/convert-device.d.ts +3 -0
  218. package/dist/utils/convert-device.js +37 -0
  219. package/dist/utils/convert-diagnostic-report.d.ts +3 -0
  220. package/dist/utils/convert-diagnostic-report.js +55 -0
  221. package/dist/utils/convert-document-reference.d.ts +3 -0
  222. package/dist/utils/convert-document-reference.js +35 -0
  223. package/dist/utils/convert-encounter.d.ts +3 -0
  224. package/dist/utils/convert-encounter.js +68 -0
  225. package/dist/utils/convert-flag.d.ts +3 -0
  226. package/dist/utils/convert-flag.js +34 -0
  227. package/dist/utils/convert-immunization.d.ts +3 -0
  228. package/dist/utils/convert-immunization.js +56 -0
  229. package/dist/utils/convert-medication-statement.d.ts +3 -0
  230. package/dist/utils/convert-medication-statement.js +64 -0
  231. package/dist/utils/convert-observation.d.ts +3 -0
  232. package/dist/utils/convert-observation.js +57 -0
  233. package/dist/utils/convert-procedure.d.ts +3 -0
  234. package/dist/utils/convert-procedure.js +50 -0
  235. package/dist/utils/convert-related-person.d.ts +3 -0
  236. package/dist/utils/convert-related-person.js +31 -0
  237. package/dist/utils/convert-shared.d.ts +34 -0
  238. package/dist/utils/convert-shared.js +179 -0
  239. package/dist/utils/coverage-claim-helpers.d.ts +10 -0
  240. package/dist/utils/coverage-claim-helpers.js +26 -0
  241. package/dist/utils/diagnostic-report-claim-helpers.d.ts +12 -0
  242. package/dist/utils/diagnostic-report-claim-helpers.js +32 -0
  243. package/dist/utils/encounter-claim-helpers.d.ts +10 -0
  244. package/dist/utils/encounter-claim-helpers.js +26 -0
  245. package/dist/utils/fhir-cid.d.ts +49 -0
  246. package/dist/utils/fhir-cid.js +75 -0
  247. package/dist/utils/index.d.ts +4 -6
  248. package/dist/utils/index.js +4 -6
  249. package/dist/utils/ips-bundle-claims.d.ts +52 -0
  250. package/dist/utils/ips-bundle-claims.js +104 -0
  251. package/dist/utils/jwt.d.ts +16 -0
  252. package/dist/utils/jwt.js +21 -0
  253. package/dist/utils/related-person-claim-helpers.d.ts +8 -0
  254. package/dist/utils/related-person-claim-helpers.js +20 -0
  255. package/package.json +17 -1
@@ -0,0 +1,26 @@
1
+ import { ClinicalImpressionClaim } from '../models/interoperable-claims/clinical-impression-claims.js';
2
+ import { addClaimValues, getClaimValues, normalizeClaimScalar, removeClaimValues, setClaimValues, } from './claim-list-helpers.js';
3
+ export function getClinicalImpressionClaimList(claims, claimKey) {
4
+ return getClaimValues(claims, claimKey);
5
+ }
6
+ export function setClinicalImpressionClaimList(claims, claimKey, values) {
7
+ return setClaimValues(claims, claimKey, values);
8
+ }
9
+ export function addClinicalImpressionClaimList(claims, claimKey, values) {
10
+ return addClaimValues(claims, claimKey, values);
11
+ }
12
+ export function removeClinicalImpressionClaimList(claims, claimKey, values) {
13
+ return removeClaimValues(claims, claimKey, values);
14
+ }
15
+ export function getClinicalImpressionIdentifier(claims) {
16
+ return normalizeClaimScalar(claims[ClinicalImpressionClaim.Identifier]);
17
+ }
18
+ export function setClinicalImpressionIdentifier(claims, value) {
19
+ return { ...claims, [ClinicalImpressionClaim.Identifier]: normalizeClaimScalar(value) };
20
+ }
21
+ export function getClinicalImpressionProblemList(claims) {
22
+ return getClinicalImpressionClaimList(claims, ClinicalImpressionClaim.Problem);
23
+ }
24
+ export function setClinicalImpressionProblemList(claims, values) {
25
+ return setClinicalImpressionClaimList(claims, ClinicalImpressionClaim.Problem, values);
26
+ }
@@ -1,64 +1,93 @@
1
- export type FlatClaims = Record<string, string | undefined>;
2
- export type FhirResource = Record<string, unknown> & {
3
- resourceType: string;
4
- };
1
+ export type { FlatClaims, FhirResource } from '../convert/convert-shared';
2
+ export { flatClaimsToFhirResource, fhirResourceToFlatClaims, } from '../convert/convert-shared';
3
+ export { medicationStatementFlatToFhirR4, medicationStatementFhirR4ToFlat, } from '../convert/convert-medication-statement';
4
+ export { allergyIntoleranceFlatToFhirR4, allergyIntoleranceFhirR4ToFlat, } from '../convert/convert-allergy-intolerance';
5
+ export { conditionFlatToFhirR4, conditionFhirR4ToFlat, } from '../convert/convert-condition';
6
+ export { deviceUseStatementFlatToFhirR4, deviceUseStatementFhirR4ToFlat, } from '../convert/convert-device-use-statement';
7
+ export { documentReferenceFlatToFhirR4, documentReferenceFhirR4ToFlat, } from '../convert/convert-document-reference';
8
+ export { immunizationFlatToFhirR4, immunizationFhirR4ToFlat, } from '../convert/convert-immunization';
9
+ export { locationFlatToFhirR4, locationFhirR4ToFlat, } from '../convert/convert-location';
10
+ export { observationFlatToFhirR4, observationFhirR4ToFlat, } from '../convert/convert-observation';
11
+ export { organizationFlatToFhirR4, organizationFhirR4ToFlat, } from '../convert/convert-organization';
12
+ export { procedureFlatToFhirR4, procedureFhirR4ToFlat, } from '../convert/convert-procedure';
13
+ export { deviceFlatToFhirR4, deviceFhirR4ToFlat, } from '../convert/convert-device';
14
+ export { flagFlatToFhirR4, flagFhirR4ToFlat, } from '../convert/convert-flag';
15
+ export { carePlanFlatToFhirR4, carePlanFhirR4ToFlat, } from '../convert/convert-care-plan';
16
+ export { diagnosticReportFlatToFhirR4, diagnosticReportFhirR4ToFlat, } from '../convert/convert-diagnostic-report';
17
+ export { compositionFlatToFhirR4, compositionFhirR4ToFlat, } from '../convert/convert-composition';
18
+ export { appointmentFlatToFhirR4, appointmentFhirR4ToFlat, } from '../convert/convert-appointment';
19
+ export { appointmentResponseFlatToFhirR4, appointmentResponseFhirR4ToFlat, } from '../convert/convert-appointment-response';
20
+ export { encounterFlatToFhirR4, encounterFhirR4ToFlat, } from '../convert/convert-encounter';
21
+ export { relatedPersonFlatToFhirR4, relatedPersonFhirR4ToFlat, } from '../convert/convert-related-person';
22
+ export { coverageFlatToFhirR4, coverageFhirR4ToFlat, } from '../convert/convert-coverage';
23
+ export { clinicalImpressionFlatToFhirR4, clinicalImpressionFhirR4ToFlat, } from '../convert/convert-clinical-impression';
24
+ import type { FhirResource, FlatClaims } from '../convert/convert-shared';
25
+ import { medicationStatementFhirR4ToFlat, medicationStatementFlatToFhirR4 } from '../convert/convert-medication-statement';
26
+ import { allergyIntoleranceFhirR4ToFlat, allergyIntoleranceFlatToFhirR4 } from '../convert/convert-allergy-intolerance';
27
+ import { conditionFhirR4ToFlat, conditionFlatToFhirR4 } from '../convert/convert-condition';
28
+ import { deviceUseStatementFhirR4ToFlat, deviceUseStatementFlatToFhirR4 } from '../convert/convert-device-use-statement';
29
+ import { documentReferenceFhirR4ToFlat, documentReferenceFlatToFhirR4 } from '../convert/convert-document-reference';
30
+ import { immunizationFhirR4ToFlat, immunizationFlatToFhirR4 } from '../convert/convert-immunization';
31
+ import { locationFhirR4ToFlat, locationFlatToFhirR4 } from '../convert/convert-location';
32
+ import { observationFhirR4ToFlat, observationFlatToFhirR4 } from '../convert/convert-observation';
33
+ import { organizationFhirR4ToFlat, organizationFlatToFhirR4 } from '../convert/convert-organization';
34
+ import { procedureFhirR4ToFlat, procedureFlatToFhirR4 } from '../convert/convert-procedure';
35
+ import { deviceFhirR4ToFlat, deviceFlatToFhirR4 } from '../convert/convert-device';
36
+ import { flagFhirR4ToFlat, flagFlatToFhirR4 } from '../convert/convert-flag';
37
+ import { carePlanFhirR4ToFlat, carePlanFlatToFhirR4 } from '../convert/convert-care-plan';
38
+ import { diagnosticReportFhirR4ToFlat, diagnosticReportFlatToFhirR4 } from '../convert/convert-diagnostic-report';
39
+ import { compositionFhirR4ToFlat, compositionFlatToFhirR4 } from '../convert/convert-composition';
40
+ import { appointmentFhirR4ToFlat, appointmentFlatToFhirR4 } from '../convert/convert-appointment';
41
+ import { appointmentResponseFhirR4ToFlat, appointmentResponseFlatToFhirR4 } from '../convert/convert-appointment-response';
42
+ import { encounterFhirR4ToFlat, encounterFlatToFhirR4 } from '../convert/convert-encounter';
43
+ import { relatedPersonFhirR4ToFlat, relatedPersonFlatToFhirR4 } from '../convert/convert-related-person';
44
+ import { coverageFhirR4ToFlat, coverageFlatToFhirR4 } from '../convert/convert-coverage';
45
+ import { clinicalImpressionFhirR4ToFlat, clinicalImpressionFlatToFhirR4 } from '../convert/convert-clinical-impression';
46
+ export declare const medicationStatementFlatToFhir: typeof medicationStatementFlatToFhirR4;
47
+ export declare const medicationStatementFhirToFlat: typeof medicationStatementFhirR4ToFlat;
48
+ export declare const allergyIntoleranceFlatToFhir: typeof allergyIntoleranceFlatToFhirR4;
49
+ export declare const allergyIntoleranceFhirToFlat: typeof allergyIntoleranceFhirR4ToFlat;
50
+ export declare const conditionFlatToFhir: typeof conditionFlatToFhirR4;
51
+ export declare const conditionFhirToFlat: typeof conditionFhirR4ToFlat;
52
+ export declare const deviceUseStatementFlatToFhir: typeof deviceUseStatementFlatToFhirR4;
53
+ export declare const deviceUseStatementFhirToFlat: typeof deviceUseStatementFhirR4ToFlat;
54
+ export declare const documentReferenceFlatToFhir: typeof documentReferenceFlatToFhirR4;
55
+ export declare const documentReferenceFhirToFlat: typeof documentReferenceFhirR4ToFlat;
56
+ export declare const immunizationFlatToFhir: typeof immunizationFlatToFhirR4;
57
+ export declare const immunizationFhirToFlat: typeof immunizationFhirR4ToFlat;
58
+ export declare const locationFlatToFhir: typeof locationFlatToFhirR4;
59
+ export declare const locationFhirToFlat: typeof locationFhirR4ToFlat;
60
+ export declare const observationFlatToFhir: typeof observationFlatToFhirR4;
61
+ export declare const observationFhirToFlat: typeof observationFhirR4ToFlat;
62
+ export declare const organizationFlatToFhir: typeof organizationFlatToFhirR4;
63
+ export declare const organizationFhirToFlat: typeof organizationFhirR4ToFlat;
64
+ export declare const procedureFlatToFhir: typeof procedureFlatToFhirR4;
65
+ export declare const procedureFhirToFlat: typeof procedureFhirR4ToFlat;
66
+ export declare const deviceFlatToFhir: typeof deviceFlatToFhirR4;
67
+ export declare const deviceFhirToFlat: typeof deviceFhirR4ToFlat;
68
+ export declare const flagFlatToFhir: typeof flagFlatToFhirR4;
69
+ export declare const flagFhirToFlat: typeof flagFhirR4ToFlat;
70
+ export declare const carePlanFlatToFhir: typeof carePlanFlatToFhirR4;
71
+ export declare const carePlanFhirToFlat: typeof carePlanFhirR4ToFlat;
72
+ export declare const diagnosticReportFlatToFhir: typeof diagnosticReportFlatToFhirR4;
73
+ export declare const diagnosticReportFhirToFlat: typeof diagnosticReportFhirR4ToFlat;
74
+ export declare const compositionFlatToFhir: typeof compositionFlatToFhirR4;
75
+ export declare const compositionFhirToFlat: typeof compositionFhirR4ToFlat;
76
+ export declare const appointmentFlatToFhir: typeof appointmentFlatToFhirR4;
77
+ export declare const appointmentFhirToFlat: typeof appointmentFhirR4ToFlat;
78
+ export declare const appointmentResponseFlatToFhir: typeof appointmentResponseFlatToFhirR4;
79
+ export declare const appointmentResponseFhirToFlat: typeof appointmentResponseFhirR4ToFlat;
80
+ export declare const encounterFlatToFhir: typeof encounterFlatToFhirR4;
81
+ export declare const encounterFhirToFlat: typeof encounterFhirR4ToFlat;
82
+ export declare const relatedPersonFlatToFhir: typeof relatedPersonFlatToFhirR4;
83
+ export declare const relatedPersonFhirToFlat: typeof relatedPersonFhirR4ToFlat;
84
+ export declare const coverageFlatToFhir: typeof coverageFlatToFhirR4;
85
+ export declare const coverageFhirToFlat: typeof coverageFhirR4ToFlat;
86
+ export declare const clinicalImpressionFlatToFhir: typeof clinicalImpressionFlatToFhirR4;
87
+ export declare const clinicalImpressionFhirToFlat: typeof clinicalImpressionFhirR4ToFlat;
5
88
  /**
6
- * Converts flat claims into a minimal MedicationStatement resource.
7
- *
8
- * @param claims Flat medication claims map.
89
+ * Converts a FHIR resource to the semantic flat-claims contract when a
90
+ * resource-specific converter exists. Unsupported resources fall back to the
91
+ * generic structural flattening.
9
92
  */
10
- export declare function medicationStatementFlatToFhir(claims: FlatClaims): FhirResource;
11
- /**
12
- * Converts a minimal MedicationStatement resource to flat claims.
13
- *
14
- * @param resource FHIR `MedicationStatement` resource.
15
- */
16
- export declare function medicationStatementFhirToFlat(resource: FhirResource): FlatClaims;
17
- /**
18
- * Converts flat claims into a minimal AllergyIntolerance resource.
19
- *
20
- * @param claims Flat allergy/intolerance claims map.
21
- */
22
- export declare function allergyIntoleranceFlatToFhir(claims: FlatClaims): FhirResource;
23
- /**
24
- * Converts a minimal AllergyIntolerance resource to flat claims.
25
- *
26
- * @param resource FHIR `AllergyIntolerance` resource.
27
- */
28
- export declare function allergyIntoleranceFhirToFlat(resource: FhirResource): FlatClaims;
29
- /**
30
- * Converts flat claims into a minimal Condition resource.
31
- *
32
- * @param claims Flat condition claims map.
33
- */
34
- export declare function conditionFlatToFhir(claims: FlatClaims): FhirResource;
35
- /**
36
- * Converts a minimal Condition resource to flat claims.
37
- *
38
- * @param resource FHIR `Condition` resource.
39
- */
40
- export declare function conditionFhirToFlat(resource: FhirResource): FlatClaims;
41
- /**
42
- * Converts flat claims into a minimal DeviceUseStatement resource.
43
- *
44
- * @param claims Flat device-use claims map.
45
- */
46
- export declare function deviceUseStatementFlatToFhir(claims: FlatClaims): FhirResource;
47
- /**
48
- * Converts a minimal DeviceUseStatement resource to flat claims.
49
- *
50
- * @param resource FHIR `DeviceUseStatement` resource.
51
- */
52
- export declare function deviceUseStatementFhirToFlat(resource: FhirResource): FlatClaims;
53
- /**
54
- * Converts flat claims into a minimal DocumentReference resource.
55
- *
56
- * @param claims Flat document reference claims map.
57
- */
58
- export declare function documentReferenceFlatToFhir(claims: FlatClaims): FhirResource;
59
- /**
60
- * Converts a minimal DocumentReference resource to flat claims.
61
- *
62
- * @param resource FHIR `DocumentReference` resource.
63
- */
64
- export declare function documentReferenceFhirToFlat(resource: FhirResource): FlatClaims;
93
+ export declare function convertFhirResourceToClaims(resource: FhirResource, context?: string): FlatClaims;
@@ -1,279 +1,141 @@
1
1
  // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
2
  // File: src/utils/clinical-resource-converters.ts
3
- // Always create JSDoc, do not use strings inline in keys nor values, use types instead, and reuse the data test examples.
4
- import { AllergyIntoleranceClaim } from '../models/interoperable-claims/allergy-intolerance-claims.js';
5
- import { ConditionClaim } from '../models/interoperable-claims/condition-claims.js';
6
- import { DeviceUseStatementClaim } from '../models/interoperable-claims/device-use-statement-claims.js';
7
- import { DocumentReferenceClaim } from '../models/interoperable-claims/document-reference-claims.js';
8
- import { MedicationStatementClaim } from '../models/interoperable-claims/medication-statement-claims.js';
9
- function codingFromValue(value) {
10
- if (!value) {
11
- return undefined;
12
- }
13
- const [system, code] = value.split('|');
14
- if (!code) {
15
- return [{ code: system }];
16
- }
17
- return [{ system, code }];
18
- }
19
- function codingToValue(coding) {
20
- if (!coding?.code) {
21
- return undefined;
22
- }
23
- return coding.system ? `${coding.system}|${coding.code}` : coding.code;
24
- }
25
- function requireClaim(claims, key) {
26
- const value = claims[key];
27
- if (!value) {
28
- throw new Error(`Missing required claim: ${key}`);
29
- }
30
- return value;
31
- }
32
- function requireSubjectIdentifier(value, key) {
33
- if (!value.startsWith('urn:') && !value.startsWith('did:web:')) {
34
- throw new Error(`Invalid ${key}: expected urn:* or did:web:*`);
35
- }
36
- }
37
- function requireDidWeb(value, key) {
38
- if (!value.startsWith('did:web:')) {
39
- throw new Error(`Invalid ${key}: expected did:web:*`);
40
- }
41
- }
42
- /**
43
- * Converts flat claims into a minimal MedicationStatement resource.
44
- *
45
- * @param claims Flat medication claims map.
46
- */
47
- export function medicationStatementFlatToFhir(claims) {
48
- const subject = requireClaim(claims, MedicationStatementClaim.Subject);
49
- const status = requireClaim(claims, MedicationStatementClaim.Status);
50
- const effectiveDateTime = claims[MedicationStatementClaim.Effective];
51
- const medicationText = claims[MedicationStatementClaim.MedicationText];
52
- const medicationIdentifier = claims[MedicationStatementClaim.MedicationIdentifier];
53
- const medicationSerialNumber = claims[MedicationStatementClaim.MedicationSerialNumber];
54
- const medicationExpirationDate = claims[MedicationStatementClaim.MedicationExpirationDate];
55
- const hasContainedMedication = Boolean(medicationIdentifier)
56
- || Boolean(medicationSerialNumber)
57
- || Boolean(medicationExpirationDate)
58
- || Boolean(medicationText);
59
- const containedMedicationId = 'medication-contained-1';
60
- const containedMedication = hasContainedMedication
61
- ? {
62
- resourceType: 'Medication',
63
- id: containedMedicationId,
64
- identifier: medicationIdentifier ? [{ value: medicationIdentifier }] : undefined,
65
- code: medicationText ? { text: medicationText } : undefined,
66
- batch: medicationSerialNumber || medicationExpirationDate
67
- ? {
68
- lotNumber: medicationSerialNumber,
69
- expirationDate: medicationExpirationDate,
70
- }
71
- : undefined,
72
- }
73
- : undefined;
74
- const dosageInstructionText = claims[MedicationStatementClaim.DosageInstruction];
75
- const noteText = claims[MedicationStatementClaim.Note];
76
- return {
77
- resourceType: 'MedicationStatement',
78
- identifier: claims[MedicationStatementClaim.Identifier] ? [{ value: claims[MedicationStatementClaim.Identifier] }] : undefined,
79
- status,
80
- subject: { reference: subject },
81
- effectiveDateTime,
82
- medicationCodeableConcept: claims[MedicationStatementClaim.Code]
83
- ? { coding: codingFromValue(claims[MedicationStatementClaim.Code]) }
84
- : (!hasContainedMedication && medicationText ? { text: medicationText } : undefined),
85
- medicationReference: hasContainedMedication ? { reference: `#${containedMedicationId}` } : undefined,
86
- contained: containedMedication ? [containedMedication] : undefined,
87
- dosage: dosageInstructionText ? [{ text: dosageInstructionText }] : undefined,
88
- note: noteText ? [{ text: noteText }] : undefined,
89
- };
90
- }
91
- /**
92
- * Converts a minimal MedicationStatement resource to flat claims.
93
- *
94
- * @param resource FHIR `MedicationStatement` resource.
95
- */
96
- export function medicationStatementFhirToFlat(resource) {
97
- const medicationReference = resource.medicationReference?.reference;
98
- const containedResources = Array.isArray(resource.contained) ? resource.contained : [];
99
- const containedMedication = medicationReference?.startsWith('#')
100
- ? containedResources.find((item) => item?.resourceType === 'Medication' && String(item?.id || '') === medicationReference.slice(1))
101
- : containedResources.find((item) => item?.resourceType === 'Medication');
102
- const containedMedicationIdentifier = containedMedication?.identifier?.[0]?.value;
103
- const containedMedicationText = containedMedication?.code?.text;
104
- const batch = containedMedication?.batch;
105
- const dosageInstructionText = resource.dosage?.[0]?.text;
106
- const noteText = resource.note?.[0]?.text;
107
- const medicationCode = codingToValue(resource.medicationCodeableConcept?.coding?.[0]);
108
- const medicationText = containedMedicationText
109
- || resource.medicationCodeableConcept?.text
110
- || undefined;
111
- return {
112
- [MedicationStatementClaim.Identifier]: resource.identifier?.[0]?.value,
113
- [MedicationStatementClaim.Subject]: resource.subject?.reference,
114
- [MedicationStatementClaim.Status]: resource.status,
115
- [MedicationStatementClaim.Effective]: resource.effectiveDateTime,
116
- [MedicationStatementClaim.Code]: medicationCode,
117
- [MedicationStatementClaim.MedicationText]: medicationText,
118
- [MedicationStatementClaim.Note]: noteText,
119
- [MedicationStatementClaim.DosageInstruction]: dosageInstructionText,
120
- [MedicationStatementClaim.MedicationIdentifier]: containedMedicationIdentifier,
121
- [MedicationStatementClaim.MedicationSerialNumber]: batch?.lotNumber,
122
- [MedicationStatementClaim.MedicationExpirationDate]: batch?.expirationDate,
123
- };
124
- }
3
+ export { flatClaimsToFhirResource, fhirResourceToFlatClaims, } from '../convert/convert-shared.js';
4
+ export { medicationStatementFlatToFhirR4, medicationStatementFhirR4ToFlat, } from '../convert/convert-medication-statement.js';
5
+ export { allergyIntoleranceFlatToFhirR4, allergyIntoleranceFhirR4ToFlat, } from '../convert/convert-allergy-intolerance.js';
6
+ export { conditionFlatToFhirR4, conditionFhirR4ToFlat, } from '../convert/convert-condition.js';
7
+ export { deviceUseStatementFlatToFhirR4, deviceUseStatementFhirR4ToFlat, } from '../convert/convert-device-use-statement.js';
8
+ export { documentReferenceFlatToFhirR4, documentReferenceFhirR4ToFlat, } from '../convert/convert-document-reference.js';
9
+ export { immunizationFlatToFhirR4, immunizationFhirR4ToFlat, } from '../convert/convert-immunization.js';
10
+ export { locationFlatToFhirR4, locationFhirR4ToFlat, } from '../convert/convert-location.js';
11
+ export { observationFlatToFhirR4, observationFhirR4ToFlat, } from '../convert/convert-observation.js';
12
+ export { organizationFlatToFhirR4, organizationFhirR4ToFlat, } from '../convert/convert-organization.js';
13
+ export { procedureFlatToFhirR4, procedureFhirR4ToFlat, } from '../convert/convert-procedure.js';
14
+ export { deviceFlatToFhirR4, deviceFhirR4ToFlat, } from '../convert/convert-device.js';
15
+ export { flagFlatToFhirR4, flagFhirR4ToFlat, } from '../convert/convert-flag.js';
16
+ export { carePlanFlatToFhirR4, carePlanFhirR4ToFlat, } from '../convert/convert-care-plan.js';
17
+ export { diagnosticReportFlatToFhirR4, diagnosticReportFhirR4ToFlat, } from '../convert/convert-diagnostic-report.js';
18
+ export { compositionFlatToFhirR4, compositionFhirR4ToFlat, } from '../convert/convert-composition.js';
19
+ export { appointmentFlatToFhirR4, appointmentFhirR4ToFlat, } from '../convert/convert-appointment.js';
20
+ export { appointmentResponseFlatToFhirR4, appointmentResponseFhirR4ToFlat, } from '../convert/convert-appointment-response.js';
21
+ export { encounterFlatToFhirR4, encounterFhirR4ToFlat, } from '../convert/convert-encounter.js';
22
+ export { relatedPersonFlatToFhirR4, relatedPersonFhirR4ToFlat, } from '../convert/convert-related-person.js';
23
+ export { coverageFlatToFhirR4, coverageFhirR4ToFlat, } from '../convert/convert-coverage.js';
24
+ export { clinicalImpressionFlatToFhirR4, clinicalImpressionFhirR4ToFlat, } from '../convert/convert-clinical-impression.js';
25
+ import { fhirResourceToFlatClaims } from '../convert/convert-shared.js';
26
+ import { medicationStatementFhirR4ToFlat, medicationStatementFlatToFhirR4 } from '../convert/convert-medication-statement.js';
27
+ import { allergyIntoleranceFhirR4ToFlat, allergyIntoleranceFlatToFhirR4 } from '../convert/convert-allergy-intolerance.js';
28
+ import { conditionFhirR4ToFlat, conditionFlatToFhirR4 } from '../convert/convert-condition.js';
29
+ import { deviceUseStatementFhirR4ToFlat, deviceUseStatementFlatToFhirR4 } from '../convert/convert-device-use-statement.js';
30
+ import { documentReferenceFhirR4ToFlat, documentReferenceFlatToFhirR4 } from '../convert/convert-document-reference.js';
31
+ import { immunizationFhirR4ToFlat, immunizationFlatToFhirR4 } from '../convert/convert-immunization.js';
32
+ import { locationFhirR4ToFlat, locationFlatToFhirR4 } from '../convert/convert-location.js';
33
+ import { observationFhirR4ToFlat, observationFlatToFhirR4 } from '../convert/convert-observation.js';
34
+ import { organizationFhirR4ToFlat, organizationFlatToFhirR4 } from '../convert/convert-organization.js';
35
+ import { procedureFhirR4ToFlat, procedureFlatToFhirR4 } from '../convert/convert-procedure.js';
36
+ import { deviceFhirR4ToFlat, deviceFlatToFhirR4 } from '../convert/convert-device.js';
37
+ import { flagFhirR4ToFlat, flagFlatToFhirR4 } from '../convert/convert-flag.js';
38
+ import { carePlanFhirR4ToFlat, carePlanFlatToFhirR4 } from '../convert/convert-care-plan.js';
39
+ import { diagnosticReportFhirR4ToFlat, diagnosticReportFlatToFhirR4 } from '../convert/convert-diagnostic-report.js';
40
+ import { compositionFhirR4ToFlat, compositionFlatToFhirR4 } from '../convert/convert-composition.js';
41
+ import { appointmentFhirR4ToFlat, appointmentFlatToFhirR4 } from '../convert/convert-appointment.js';
42
+ import { appointmentResponseFhirR4ToFlat, appointmentResponseFlatToFhirR4 } from '../convert/convert-appointment-response.js';
43
+ import { encounterFhirR4ToFlat, encounterFlatToFhirR4 } from '../convert/convert-encounter.js';
44
+ import { relatedPersonFhirR4ToFlat, relatedPersonFlatToFhirR4 } from '../convert/convert-related-person.js';
45
+ import { coverageFhirR4ToFlat, coverageFlatToFhirR4 } from '../convert/convert-coverage.js';
46
+ import { clinicalImpressionFhirR4ToFlat, clinicalImpressionFlatToFhirR4 } from '../convert/convert-clinical-impression.js';
47
+ export const medicationStatementFlatToFhir = medicationStatementFlatToFhirR4;
48
+ export const medicationStatementFhirToFlat = medicationStatementFhirR4ToFlat;
49
+ export const allergyIntoleranceFlatToFhir = allergyIntoleranceFlatToFhirR4;
50
+ export const allergyIntoleranceFhirToFlat = allergyIntoleranceFhirR4ToFlat;
51
+ export const conditionFlatToFhir = conditionFlatToFhirR4;
52
+ export const conditionFhirToFlat = conditionFhirR4ToFlat;
53
+ export const deviceUseStatementFlatToFhir = deviceUseStatementFlatToFhirR4;
54
+ export const deviceUseStatementFhirToFlat = deviceUseStatementFhirR4ToFlat;
55
+ export const documentReferenceFlatToFhir = documentReferenceFlatToFhirR4;
56
+ export const documentReferenceFhirToFlat = documentReferenceFhirR4ToFlat;
57
+ export const immunizationFlatToFhir = immunizationFlatToFhirR4;
58
+ export const immunizationFhirToFlat = immunizationFhirR4ToFlat;
59
+ export const locationFlatToFhir = locationFlatToFhirR4;
60
+ export const locationFhirToFlat = locationFhirR4ToFlat;
61
+ export const observationFlatToFhir = observationFlatToFhirR4;
62
+ export const observationFhirToFlat = observationFhirR4ToFlat;
63
+ export const organizationFlatToFhir = organizationFlatToFhirR4;
64
+ export const organizationFhirToFlat = organizationFhirR4ToFlat;
65
+ export const procedureFlatToFhir = procedureFlatToFhirR4;
66
+ export const procedureFhirToFlat = procedureFhirR4ToFlat;
67
+ export const deviceFlatToFhir = deviceFlatToFhirR4;
68
+ export const deviceFhirToFlat = deviceFhirR4ToFlat;
69
+ export const flagFlatToFhir = flagFlatToFhirR4;
70
+ export const flagFhirToFlat = flagFhirR4ToFlat;
71
+ export const carePlanFlatToFhir = carePlanFlatToFhirR4;
72
+ export const carePlanFhirToFlat = carePlanFhirR4ToFlat;
73
+ export const diagnosticReportFlatToFhir = diagnosticReportFlatToFhirR4;
74
+ export const diagnosticReportFhirToFlat = diagnosticReportFhirR4ToFlat;
75
+ export const compositionFlatToFhir = compositionFlatToFhirR4;
76
+ export const compositionFhirToFlat = compositionFhirR4ToFlat;
77
+ export const appointmentFlatToFhir = appointmentFlatToFhirR4;
78
+ export const appointmentFhirToFlat = appointmentFhirR4ToFlat;
79
+ export const appointmentResponseFlatToFhir = appointmentResponseFlatToFhirR4;
80
+ export const appointmentResponseFhirToFlat = appointmentResponseFhirR4ToFlat;
81
+ export const encounterFlatToFhir = encounterFlatToFhirR4;
82
+ export const encounterFhirToFlat = encounterFhirR4ToFlat;
83
+ export const relatedPersonFlatToFhir = relatedPersonFlatToFhirR4;
84
+ export const relatedPersonFhirToFlat = relatedPersonFhirR4ToFlat;
85
+ export const coverageFlatToFhir = coverageFlatToFhirR4;
86
+ export const coverageFhirToFlat = coverageFhirR4ToFlat;
87
+ export const clinicalImpressionFlatToFhir = clinicalImpressionFlatToFhirR4;
88
+ export const clinicalImpressionFhirToFlat = clinicalImpressionFhirR4ToFlat;
125
89
  /**
126
- * Converts flat claims into a minimal AllergyIntolerance resource.
127
- *
128
- * @param claims Flat allergy/intolerance claims map.
90
+ * Converts a FHIR resource to the semantic flat-claims contract when a
91
+ * resource-specific converter exists. Unsupported resources fall back to the
92
+ * generic structural flattening.
129
93
  */
130
- export function allergyIntoleranceFlatToFhir(claims) {
131
- const patient = claims[AllergyIntoleranceClaim.Subject] ?? claims[AllergyIntoleranceClaim.Patient];
132
- const recorder = claims[AllergyIntoleranceClaim.Recorder];
133
- if (!patient) {
134
- throw new Error(`Missing required claim: ${AllergyIntoleranceClaim.Subject}`);
135
- }
136
- requireSubjectIdentifier(patient, AllergyIntoleranceClaim.Subject);
137
- if (recorder) {
138
- requireDidWeb(recorder, AllergyIntoleranceClaim.Recorder);
94
+ export function convertFhirResourceToClaims(resource, context = 'org.hl7.fhir.r4') {
95
+ switch (resource.resourceType) {
96
+ case 'MedicationStatement':
97
+ return medicationStatementFhirR4ToFlat(resource);
98
+ case 'AllergyIntolerance':
99
+ return allergyIntoleranceFhirR4ToFlat(resource);
100
+ case 'Condition':
101
+ return conditionFhirR4ToFlat(resource);
102
+ case 'DocumentReference':
103
+ return documentReferenceFhirR4ToFlat(resource);
104
+ case 'DeviceUseStatement':
105
+ return deviceUseStatementFhirR4ToFlat(resource);
106
+ case 'Immunization':
107
+ return immunizationFhirR4ToFlat(resource);
108
+ case 'Location':
109
+ return locationFhirR4ToFlat(resource);
110
+ case 'Observation':
111
+ return observationFhirR4ToFlat(resource);
112
+ case 'Organization':
113
+ return organizationFhirR4ToFlat(resource);
114
+ case 'Procedure':
115
+ return procedureFhirR4ToFlat(resource);
116
+ case 'Device':
117
+ return deviceFhirR4ToFlat(resource);
118
+ case 'Flag':
119
+ return flagFhirR4ToFlat(resource);
120
+ case 'CarePlan':
121
+ return carePlanFhirR4ToFlat(resource);
122
+ case 'DiagnosticReport':
123
+ return diagnosticReportFhirR4ToFlat(resource);
124
+ case 'Composition':
125
+ return compositionFhirR4ToFlat(resource);
126
+ case 'Appointment':
127
+ return appointmentFhirR4ToFlat(resource);
128
+ case 'AppointmentResponse':
129
+ return appointmentResponseFhirR4ToFlat(resource);
130
+ case 'Encounter':
131
+ return encounterFhirR4ToFlat(resource);
132
+ case 'RelatedPerson':
133
+ return relatedPersonFhirR4ToFlat(resource);
134
+ case 'Coverage':
135
+ return coverageFhirR4ToFlat(resource);
136
+ case 'ClinicalImpression':
137
+ return clinicalImpressionFhirR4ToFlat(resource);
138
+ default:
139
+ return fhirResourceToFlatClaims(resource, context);
139
140
  }
140
- return {
141
- resourceType: 'AllergyIntolerance',
142
- identifier: claims[AllergyIntoleranceClaim.Identifier] ? [{ value: claims[AllergyIntoleranceClaim.Identifier] }] : undefined,
143
- patient: { reference: patient },
144
- code: claims[AllergyIntoleranceClaim.Code] ? { coding: codingFromValue(claims[AllergyIntoleranceClaim.Code]) } : undefined,
145
- clinicalStatus: claims[AllergyIntoleranceClaim.ClinicalStatus]
146
- ? { coding: [{ code: claims[AllergyIntoleranceClaim.ClinicalStatus] }] }
147
- : undefined,
148
- verificationStatus: claims[AllergyIntoleranceClaim.VerificationStatus]
149
- ? { coding: [{ code: claims[AllergyIntoleranceClaim.VerificationStatus] }] }
150
- : undefined,
151
- recorder: recorder ? { reference: recorder } : undefined,
152
- };
153
- }
154
- /**
155
- * Converts a minimal AllergyIntolerance resource to flat claims.
156
- *
157
- * @param resource FHIR `AllergyIntolerance` resource.
158
- */
159
- export function allergyIntoleranceFhirToFlat(resource) {
160
- const subject = resource.patient?.reference;
161
- return {
162
- [AllergyIntoleranceClaim.Identifier]: resource.identifier?.[0]?.value,
163
- [AllergyIntoleranceClaim.Subject]: subject,
164
- [AllergyIntoleranceClaim.Patient]: subject,
165
- [AllergyIntoleranceClaim.Code]: codingToValue(resource.code?.coding?.[0]),
166
- [AllergyIntoleranceClaim.ClinicalStatus]: resource.clinicalStatus?.coding?.[0]?.code,
167
- [AllergyIntoleranceClaim.VerificationStatus]: resource.verificationStatus?.coding?.[0]?.code,
168
- [AllergyIntoleranceClaim.Recorder]: resource.recorder?.reference,
169
- };
170
- }
171
- /**
172
- * Converts flat claims into a minimal Condition resource.
173
- *
174
- * @param claims Flat condition claims map.
175
- */
176
- export function conditionFlatToFhir(claims) {
177
- const subject = requireClaim(claims, ConditionClaim.Subject);
178
- return {
179
- resourceType: 'Condition',
180
- identifier: claims[ConditionClaim.Identifier] ? [{ value: claims[ConditionClaim.Identifier] }] : undefined,
181
- subject: { reference: subject },
182
- code: claims[ConditionClaim.Code] ? { coding: codingFromValue(claims[ConditionClaim.Code]) } : undefined,
183
- clinicalStatus: claims[ConditionClaim.ClinicalStatus] ? { coding: [{ code: claims[ConditionClaim.ClinicalStatus] }] } : undefined,
184
- verificationStatus: claims[ConditionClaim.VerificationStatus] ? { coding: [{ code: claims[ConditionClaim.VerificationStatus] }] } : undefined,
185
- };
186
- }
187
- /**
188
- * Converts a minimal Condition resource to flat claims.
189
- *
190
- * @param resource FHIR `Condition` resource.
191
- */
192
- export function conditionFhirToFlat(resource) {
193
- return {
194
- [ConditionClaim.Identifier]: resource.identifier?.[0]?.value,
195
- [ConditionClaim.Subject]: resource.subject?.reference,
196
- [ConditionClaim.Code]: codingToValue(resource.code?.coding?.[0]),
197
- [ConditionClaim.ClinicalStatus]: resource.clinicalStatus?.coding?.[0]?.code,
198
- [ConditionClaim.VerificationStatus]: resource.verificationStatus?.coding?.[0]?.code,
199
- };
200
- }
201
- /**
202
- * Converts flat claims into a minimal DeviceUseStatement resource.
203
- *
204
- * @param claims Flat device-use claims map.
205
- */
206
- export function deviceUseStatementFlatToFhir(claims) {
207
- const subject = requireClaim(claims, DeviceUseStatementClaim.Subject);
208
- const device = requireClaim(claims, DeviceUseStatementClaim.Device);
209
- const status = requireClaim(claims, DeviceUseStatementClaim.Status);
210
- return {
211
- resourceType: 'DeviceUseStatement',
212
- identifier: claims[DeviceUseStatementClaim.Identifier] ? [{ value: claims[DeviceUseStatementClaim.Identifier] }] : undefined,
213
- subject: { reference: subject },
214
- device: { reference: device },
215
- status,
216
- recordedOn: claims[DeviceUseStatementClaim.RecordedOn],
217
- timingDateTime: claims[DeviceUseStatementClaim.TimingDateTime],
218
- };
219
- }
220
- /**
221
- * Converts a minimal DeviceUseStatement resource to flat claims.
222
- *
223
- * @param resource FHIR `DeviceUseStatement` resource.
224
- */
225
- export function deviceUseStatementFhirToFlat(resource) {
226
- return {
227
- [DeviceUseStatementClaim.Identifier]: resource.identifier?.[0]?.value,
228
- [DeviceUseStatementClaim.Subject]: resource.subject?.reference,
229
- [DeviceUseStatementClaim.Device]: resource.device?.reference,
230
- [DeviceUseStatementClaim.Status]: resource.status,
231
- [DeviceUseStatementClaim.RecordedOn]: resource.recordedOn,
232
- [DeviceUseStatementClaim.TimingDateTime]: resource.timingDateTime,
233
- };
234
- }
235
- /**
236
- * Converts flat claims into a minimal DocumentReference resource.
237
- *
238
- * @param claims Flat document reference claims map.
239
- */
240
- export function documentReferenceFlatToFhir(claims) {
241
- const subject = requireClaim(claims, DocumentReferenceClaim.Subject);
242
- return {
243
- resourceType: 'DocumentReference',
244
- identifier: claims[DocumentReferenceClaim.Identifier] ? [{ value: claims[DocumentReferenceClaim.Identifier] }] : undefined,
245
- subject: { reference: subject },
246
- description: claims[DocumentReferenceClaim.Description],
247
- date: claims[DocumentReferenceClaim.Date],
248
- content: [
249
- {
250
- attachment: {
251
- contentType: claims[DocumentReferenceClaim.ContentType],
252
- data: claims[DocumentReferenceClaim.ContentData],
253
- url: claims[DocumentReferenceClaim.Location],
254
- hash: claims[DocumentReferenceClaim.ContentHash],
255
- language: claims[DocumentReferenceClaim.Language],
256
- },
257
- },
258
- ],
259
- };
260
- }
261
- /**
262
- * Converts a minimal DocumentReference resource to flat claims.
263
- *
264
- * @param resource FHIR `DocumentReference` resource.
265
- */
266
- export function documentReferenceFhirToFlat(resource) {
267
- const attachment = resource.content?.[0]?.attachment;
268
- return {
269
- [DocumentReferenceClaim.Identifier]: resource.identifier?.[0]?.value,
270
- [DocumentReferenceClaim.Subject]: resource.subject?.reference,
271
- [DocumentReferenceClaim.Description]: resource.description,
272
- [DocumentReferenceClaim.Date]: resource.date,
273
- [DocumentReferenceClaim.ContentType]: attachment?.contentType,
274
- [DocumentReferenceClaim.ContentData]: attachment?.data,
275
- [DocumentReferenceClaim.Location]: attachment?.url,
276
- [DocumentReferenceClaim.ContentHash]: attachment?.hash,
277
- [DocumentReferenceClaim.Language]: attachment?.language,
278
- };
279
141
  }
@@ -7,7 +7,7 @@ import { CommunicationClaim } from '../models/interoperable-claims/communication
7
7
  import { ConditionClaim } from '../models/interoperable-claims/condition-claims.js';
8
8
  import { DocumentReferenceClaim } from '../models/interoperable-claims/document-reference-claims.js';
9
9
  import { BundleQuery } from './bundle-query.js';
10
- import { addClaimValues } from './claim-list-helpers.js';
10
+ import { addClaimValues } from '../claims/claim-list-helpers.js';
11
11
  import { MedicationStatementClaim, } from '../models/interoperable-claims/medication-statement-claims.js';
12
12
  /**
13
13
  * Communication editing session with bundle-in-memory as source of truth.
@@ -0,0 +1,12 @@
1
+ import { type GenericInteroperableClaims } from './claim-list-helpers.js';
2
+ export type CompositionInteroperableClaims = GenericInteroperableClaims;
3
+ export declare function getCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string): string[];
4
+ export declare function setCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string, values: string | readonly string[]): CompositionInteroperableClaims;
5
+ export declare function addCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string, values: string | readonly string[]): CompositionInteroperableClaims;
6
+ export declare function removeCompositionClaimList(claims: CompositionInteroperableClaims, claimKey: string, values: string | readonly string[]): CompositionInteroperableClaims;
7
+ export declare function getCompositionTypeList(claims: CompositionInteroperableClaims): string[];
8
+ export declare function setCompositionTypeList(claims: CompositionInteroperableClaims, values: string | readonly string[]): CompositionInteroperableClaims;
9
+ export declare function getCompositionSectionList(claims: CompositionInteroperableClaims): string[];
10
+ export declare function setCompositionSectionList(claims: CompositionInteroperableClaims, values: string | readonly string[]): CompositionInteroperableClaims;
11
+ export declare function getCompositionSubject(claims: CompositionInteroperableClaims): string;
12
+ export declare function setCompositionSubject(claims: CompositionInteroperableClaims, value: string): CompositionInteroperableClaims;