gdc-common-utils-ts 1.14.9 → 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 (258) hide show
  1. package/README.md +55 -2
  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-document-request.js +2 -2
  101. package/dist/examples/communication-bundle-session.js +2 -2
  102. package/dist/examples/shared.d.ts +21 -2
  103. package/dist/examples/shared.js +74 -1
  104. package/dist/index.d.ts +2 -0
  105. package/dist/index.js +2 -0
  106. package/dist/models/bundle.d.ts +13 -1
  107. package/dist/models/interoperable-claims/appointment-claims.d.ts +23 -1
  108. package/dist/models/interoperable-claims/appointment-claims.js +22 -1
  109. package/dist/models/interoperable-claims/appointment-response-claims.d.ts +14 -0
  110. package/dist/models/interoperable-claims/appointment-response-claims.js +13 -0
  111. package/dist/models/interoperable-claims/care-plan-claims.d.ts +24 -0
  112. package/dist/models/interoperable-claims/care-plan-claims.js +44 -0
  113. package/dist/models/interoperable-claims/clinical-impression-claims.d.ts +17 -0
  114. package/dist/models/interoperable-claims/clinical-impression-claims.js +30 -0
  115. package/dist/models/interoperable-claims/coverage-claims.d.ts +16 -0
  116. package/dist/models/interoperable-claims/coverage-claims.js +28 -0
  117. package/dist/models/interoperable-claims/device-claims.d.ts +18 -0
  118. package/dist/models/interoperable-claims/device-claims.js +32 -0
  119. package/dist/models/interoperable-claims/diagnostic-report-claims.d.ts +2 -2
  120. package/dist/models/interoperable-claims/diagnostic-report-claims.js +1 -1
  121. package/dist/models/interoperable-claims/encounter-claims.d.ts +18 -0
  122. package/dist/models/interoperable-claims/encounter-claims.js +32 -0
  123. package/dist/models/interoperable-claims/flag-claims.d.ts +16 -0
  124. package/dist/models/interoperable-claims/flag-claims.js +28 -0
  125. package/dist/models/interoperable-claims/immunization-claims.d.ts +23 -0
  126. package/dist/models/interoperable-claims/immunization-claims.js +42 -0
  127. package/dist/models/interoperable-claims/index.d.ts +12 -0
  128. package/dist/models/interoperable-claims/index.js +12 -0
  129. package/dist/models/interoperable-claims/location-claims.d.ts +22 -0
  130. package/dist/models/interoperable-claims/location-claims.js +34 -0
  131. package/dist/models/interoperable-claims/observation-claims.d.ts +26 -0
  132. package/dist/models/interoperable-claims/observation-claims.js +48 -0
  133. package/dist/models/interoperable-claims/organization-claims.d.ts +18 -0
  134. package/dist/models/interoperable-claims/organization-claims.js +27 -0
  135. package/dist/models/interoperable-claims/procedure-claims.d.ts +22 -0
  136. package/dist/models/interoperable-claims/procedure-claims.js +40 -0
  137. package/dist/models/interoperable-claims/related-person-claims.d.ts +14 -0
  138. package/dist/models/interoperable-claims/related-person-claims.js +24 -0
  139. package/dist/utils/appointment-claim-helpers.d.ts +10 -0
  140. package/dist/utils/appointment-claim-helpers.js +26 -0
  141. package/dist/utils/appointment-response-claim-helpers.d.ts +8 -0
  142. package/dist/utils/appointment-response-claim-helpers.js +20 -0
  143. package/dist/utils/bundle-document-builder.d.ts +36 -0
  144. package/dist/utils/bundle-document-builder.js +311 -0
  145. package/dist/utils/claims-helpers-allergy-intolerance.d.ts +1 -0
  146. package/dist/utils/claims-helpers-allergy-intolerance.js +1 -0
  147. package/dist/utils/claims-helpers-appointment-response.d.ts +1 -0
  148. package/dist/utils/claims-helpers-appointment-response.js +1 -0
  149. package/dist/utils/claims-helpers-appointment.d.ts +1 -0
  150. package/dist/utils/claims-helpers-appointment.js +1 -0
  151. package/dist/utils/claims-helpers-care-plan.d.ts +1 -0
  152. package/dist/utils/claims-helpers-care-plan.js +1 -0
  153. package/dist/utils/claims-helpers-clinical-impression.d.ts +1 -0
  154. package/dist/utils/claims-helpers-clinical-impression.js +1 -0
  155. package/dist/utils/claims-helpers-communication.d.ts +1 -0
  156. package/dist/utils/claims-helpers-communication.js +1 -0
  157. package/dist/utils/claims-helpers-composition.d.ts +1 -0
  158. package/dist/utils/claims-helpers-composition.js +1 -0
  159. package/dist/utils/claims-helpers-condition.d.ts +1 -0
  160. package/dist/utils/claims-helpers-condition.js +1 -0
  161. package/dist/utils/claims-helpers-consent.d.ts +1 -0
  162. package/dist/utils/claims-helpers-consent.js +1 -0
  163. package/dist/utils/claims-helpers-coverage.d.ts +1 -0
  164. package/dist/utils/claims-helpers-coverage.js +1 -0
  165. package/dist/utils/claims-helpers-device-use-statement.d.ts +1 -0
  166. package/dist/utils/claims-helpers-device-use-statement.js +1 -0
  167. package/dist/utils/claims-helpers-device.d.ts +1 -0
  168. package/dist/utils/claims-helpers-device.js +1 -0
  169. package/dist/utils/claims-helpers-diagnostic-report.d.ts +1 -0
  170. package/dist/utils/claims-helpers-diagnostic-report.js +1 -0
  171. package/dist/utils/claims-helpers-document-reference.d.ts +1 -0
  172. package/dist/utils/claims-helpers-document-reference.js +1 -0
  173. package/dist/utils/claims-helpers-encounter.d.ts +1 -0
  174. package/dist/utils/claims-helpers-encounter.js +1 -0
  175. package/dist/utils/claims-helpers-flag.d.ts +1 -0
  176. package/dist/utils/claims-helpers-flag.js +1 -0
  177. package/dist/utils/claims-helpers-immunization.d.ts +1 -0
  178. package/dist/utils/claims-helpers-immunization.js +1 -0
  179. package/dist/utils/claims-helpers-location.d.ts +1 -0
  180. package/dist/utils/claims-helpers-location.js +1 -0
  181. package/dist/utils/claims-helpers-medication-statement.d.ts +1 -0
  182. package/dist/utils/claims-helpers-medication-statement.js +1 -0
  183. package/dist/utils/claims-helpers-observation.d.ts +1 -0
  184. package/dist/utils/claims-helpers-observation.js +1 -0
  185. package/dist/utils/claims-helpers-organization.d.ts +1 -0
  186. package/dist/utils/claims-helpers-organization.js +1 -0
  187. package/dist/utils/claims-helpers-procedure.d.ts +1 -0
  188. package/dist/utils/claims-helpers-procedure.js +1 -0
  189. package/dist/utils/claims-helpers-related-person.d.ts +1 -0
  190. package/dist/utils/claims-helpers-related-person.js +1 -0
  191. package/dist/utils/clinical-impression-claim-helpers.d.ts +10 -0
  192. package/dist/utils/clinical-impression-claim-helpers.js +26 -0
  193. package/dist/utils/clinical-resource-converters.d.ts +91 -62
  194. package/dist/utils/clinical-resource-converters.js +135 -273
  195. package/dist/utils/communication-bundle-document-request.d.ts +6 -4
  196. package/dist/utils/communication-bundle-document-request.js +7 -5
  197. package/dist/utils/communication-bundle-session.js +1 -1
  198. package/dist/utils/composition-claim-helpers.d.ts +12 -0
  199. package/dist/utils/composition-claim-helpers.js +32 -0
  200. package/dist/utils/consent-claim-helpers.d.ts +2 -2
  201. package/dist/utils/consent-claim-helpers.js +2 -2
  202. package/dist/utils/convert-allergy-intolerance.d.ts +3 -0
  203. package/dist/utils/convert-allergy-intolerance.js +34 -0
  204. package/dist/utils/convert-appointment-response.d.ts +3 -0
  205. package/dist/utils/convert-appointment-response.js +32 -0
  206. package/dist/utils/convert-appointment.d.ts +3 -0
  207. package/dist/utils/convert-appointment.js +61 -0
  208. package/dist/utils/convert-care-plan.d.ts +3 -0
  209. package/dist/utils/convert-care-plan.js +58 -0
  210. package/dist/utils/convert-clinical-impression.d.ts +3 -0
  211. package/dist/utils/convert-clinical-impression.js +42 -0
  212. package/dist/utils/convert-composition.d.ts +3 -0
  213. package/dist/utils/convert-composition.js +35 -0
  214. package/dist/utils/convert-condition.d.ts +3 -0
  215. package/dist/utils/convert-condition.js +24 -0
  216. package/dist/utils/convert-coverage.d.ts +3 -0
  217. package/dist/utils/convert-coverage.js +51 -0
  218. package/dist/utils/convert-device-use-statement.d.ts +3 -0
  219. package/dist/utils/convert-device-use-statement.js +28 -0
  220. package/dist/utils/convert-device.d.ts +3 -0
  221. package/dist/utils/convert-device.js +37 -0
  222. package/dist/utils/convert-diagnostic-report.d.ts +3 -0
  223. package/dist/utils/convert-diagnostic-report.js +55 -0
  224. package/dist/utils/convert-document-reference.d.ts +3 -0
  225. package/dist/utils/convert-document-reference.js +35 -0
  226. package/dist/utils/convert-encounter.d.ts +3 -0
  227. package/dist/utils/convert-encounter.js +68 -0
  228. package/dist/utils/convert-flag.d.ts +3 -0
  229. package/dist/utils/convert-flag.js +34 -0
  230. package/dist/utils/convert-immunization.d.ts +3 -0
  231. package/dist/utils/convert-immunization.js +56 -0
  232. package/dist/utils/convert-medication-statement.d.ts +3 -0
  233. package/dist/utils/convert-medication-statement.js +64 -0
  234. package/dist/utils/convert-observation.d.ts +3 -0
  235. package/dist/utils/convert-observation.js +57 -0
  236. package/dist/utils/convert-procedure.d.ts +3 -0
  237. package/dist/utils/convert-procedure.js +50 -0
  238. package/dist/utils/convert-related-person.d.ts +3 -0
  239. package/dist/utils/convert-related-person.js +31 -0
  240. package/dist/utils/convert-shared.d.ts +34 -0
  241. package/dist/utils/convert-shared.js +179 -0
  242. package/dist/utils/coverage-claim-helpers.d.ts +10 -0
  243. package/dist/utils/coverage-claim-helpers.js +26 -0
  244. package/dist/utils/diagnostic-report-claim-helpers.d.ts +12 -0
  245. package/dist/utils/diagnostic-report-claim-helpers.js +32 -0
  246. package/dist/utils/encounter-claim-helpers.d.ts +10 -0
  247. package/dist/utils/encounter-claim-helpers.js +26 -0
  248. package/dist/utils/fhir-cid.d.ts +49 -0
  249. package/dist/utils/fhir-cid.js +75 -0
  250. package/dist/utils/index.d.ts +4 -6
  251. package/dist/utils/index.js +4 -6
  252. package/dist/utils/ips-bundle-claims.d.ts +52 -0
  253. package/dist/utils/ips-bundle-claims.js +104 -0
  254. package/dist/utils/jwt.d.ts +16 -0
  255. package/dist/utils/jwt.js +21 -0
  256. package/dist/utils/related-person-claim-helpers.d.ts +8 -0
  257. package/dist/utils/related-person-claim-helpers.js +20 -0
  258. 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
  }
@@ -136,8 +136,8 @@ export declare function buildBundleSearchReferenceUrl(input: Readonly<{
136
136
  */
137
137
  export declare function createSummaryOperationRequestParameters(subjectIdOrInput: string | CreateSummaryOperationParametersInput, filterSections?: string[]): ReadonlyArray<ParameterData>;
138
138
  /**
139
- * Flattens semantic summary-operation parameters to the relative search path
140
- * currently stored in `Communication.content-reference`.
139
+ * Flattens semantic summary-operation parameters to the relative `Bundle/_search`
140
+ * path currently stored in `Communication.content-reference`.
141
141
  */
142
142
  export declare function createSummaryOperationRequestReferencePath(parameters: ReadonlyArray<ParameterData>): string;
143
143
  /**
@@ -187,8 +187,10 @@ export declare const communication: Readonly<{
187
187
  */
188
188
  newIpsSummarySearchCommunication: typeof createIpsSummarySearchCommunicationClaims;
189
189
  /**
190
- * Frontend-facing IPS helper: creates the DIDComm-ready message to request
191
- * an IPS summary/search using an already-generated reference path.
190
+ * Compatibility helper for current DIDComm transport flows.
191
+ *
192
+ * Prefer `newIpsSummarySearchCommunication(...)` in `common-utils` 101 docs.
193
+ * DIDComm/outbox orchestration belongs to the next SDK layer.
192
194
  */
193
195
  newIpsSummarySearchDidcommMessage: typeof createIpsSummarySearchDidcommMessage;
194
196
  /**