fhir-data-utils-ts 0.2.4 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/.codex/skills/govern-fhir-data-utilities/SKILL.md +58 -0
  2. package/.codex/skills/govern-fhir-data-utilities/agents/openai.yaml +4 -0
  3. package/.codex/skills/govern-fhir-observation-components/SKILL.md +18 -0
  4. package/CHANGELOG.md +30 -0
  5. package/README.md +39 -0
  6. package/dist/builders/immunization-graph.d.ts +36 -0
  7. package/dist/builders/immunization-graph.js +115 -0
  8. package/dist/builders/immunization-reminders.d.ts +35 -0
  9. package/dist/builders/immunization-reminders.js +104 -0
  10. package/dist/builders/index.d.ts +2 -0
  11. package/dist/builders/index.js +2 -0
  12. package/dist/claim-helpers/claim-list-helpers.d.ts +21 -0
  13. package/dist/claim-helpers/claim-list-helpers.js +54 -0
  14. package/dist/claim-helpers/claims-helpers-allergy-intolerance.d.ts +18 -0
  15. package/dist/claim-helpers/claims-helpers-allergy-intolerance.js +65 -0
  16. package/dist/claim-helpers/claims-helpers-appointment-response.d.ts +8 -0
  17. package/dist/claim-helpers/claims-helpers-appointment-response.js +20 -0
  18. package/dist/claim-helpers/claims-helpers-appointment.d.ts +10 -0
  19. package/dist/claim-helpers/claims-helpers-appointment.js +26 -0
  20. package/dist/claim-helpers/claims-helpers-care-plan.d.ts +8 -0
  21. package/dist/claim-helpers/claims-helpers-care-plan.js +20 -0
  22. package/dist/claim-helpers/claims-helpers-clinical-impression.d.ts +10 -0
  23. package/dist/claim-helpers/claims-helpers-clinical-impression.js +26 -0
  24. package/dist/claim-helpers/claims-helpers-communication.d.ts +19 -0
  25. package/dist/claim-helpers/claims-helpers-communication.js +63 -0
  26. package/dist/claim-helpers/claims-helpers-composition.d.ts +12 -0
  27. package/dist/claim-helpers/claims-helpers-composition.js +32 -0
  28. package/dist/claim-helpers/claims-helpers-condition.d.ts +18 -0
  29. package/dist/claim-helpers/claims-helpers-condition.js +65 -0
  30. package/dist/claim-helpers/claims-helpers-coverage.d.ts +10 -0
  31. package/dist/claim-helpers/claims-helpers-coverage.js +26 -0
  32. package/dist/claim-helpers/claims-helpers-device-use-statement.d.ts +8 -0
  33. package/dist/claim-helpers/claims-helpers-device-use-statement.js +20 -0
  34. package/dist/claim-helpers/claims-helpers-device.d.ts +8 -0
  35. package/dist/claim-helpers/claims-helpers-device.js +20 -0
  36. package/dist/claim-helpers/claims-helpers-diagnostic-report.d.ts +16 -0
  37. package/dist/claim-helpers/claims-helpers-diagnostic-report.js +47 -0
  38. package/dist/claim-helpers/claims-helpers-document-reference.d.ts +8 -0
  39. package/dist/claim-helpers/claims-helpers-document-reference.js +20 -0
  40. package/dist/claim-helpers/claims-helpers-encounter.d.ts +10 -0
  41. package/dist/claim-helpers/claims-helpers-encounter.js +26 -0
  42. package/dist/claim-helpers/claims-helpers-flag.d.ts +8 -0
  43. package/dist/claim-helpers/claims-helpers-flag.js +20 -0
  44. package/dist/claim-helpers/claims-helpers-immunization.d.ts +8 -0
  45. package/dist/claim-helpers/claims-helpers-immunization.js +20 -0
  46. package/dist/claim-helpers/claims-helpers-location.d.ts +10 -0
  47. package/dist/claim-helpers/claims-helpers-location.js +26 -0
  48. package/dist/claim-helpers/claims-helpers-medication-statement.d.ts +96 -0
  49. package/dist/claim-helpers/claims-helpers-medication-statement.js +278 -0
  50. package/dist/claim-helpers/claims-helpers-observation.d.ts +8 -0
  51. package/dist/claim-helpers/claims-helpers-observation.js +20 -0
  52. package/dist/claim-helpers/claims-helpers-organization.d.ts +12 -0
  53. package/dist/claim-helpers/claims-helpers-organization.js +32 -0
  54. package/dist/claim-helpers/claims-helpers-procedure.d.ts +8 -0
  55. package/dist/claim-helpers/claims-helpers-procedure.js +20 -0
  56. package/dist/claim-helpers/claims-helpers-related-person.d.ts +22 -0
  57. package/dist/claim-helpers/claims-helpers-related-person.js +53 -0
  58. package/dist/claim-helpers/index.d.ts +23 -0
  59. package/dist/claim-helpers/index.js +23 -0
  60. package/dist/claims/allergy-intolerance-claims.d.ts +153 -0
  61. package/dist/claims/allergy-intolerance-claims.js +194 -0
  62. package/dist/claims/appointment-claims.d.ts +226 -0
  63. package/dist/claims/appointment-claims.js +218 -0
  64. package/dist/claims/appointment-response-claims.d.ts +63 -0
  65. package/dist/claims/appointment-response-claims.js +58 -0
  66. package/dist/claims/care-plan-claims.d.ts +37 -0
  67. package/dist/claims/care-plan-claims.js +59 -0
  68. package/dist/claims/claim-types.d.ts +9 -0
  69. package/dist/claims/claim-types.js +3 -0
  70. package/dist/claims/clinical-impression-claims.d.ts +17 -0
  71. package/dist/claims/clinical-impression-claims.js +30 -0
  72. package/dist/claims/communication-claims.d.ts +55 -0
  73. package/dist/claims/communication-claims.js +57 -0
  74. package/dist/claims/composition-claims.d.ts +27 -0
  75. package/dist/claims/composition-claims.js +27 -0
  76. package/dist/claims/condition-claims.d.ts +79 -0
  77. package/dist/claims/condition-claims.js +104 -0
  78. package/dist/claims/consent-claims.d.ts +195 -0
  79. package/dist/claims/consent-claims.js +74 -0
  80. package/dist/claims/coverage-claims.d.ts +16 -0
  81. package/dist/claims/coverage-claims.js +28 -0
  82. package/dist/claims/device-claims.d.ts +20 -0
  83. package/dist/claims/device-claims.js +36 -0
  84. package/dist/claims/device-use-statement-claims.d.ts +17 -0
  85. package/dist/claims/device-use-statement-claims.js +28 -0
  86. package/dist/claims/diagnostic-report-claims.d.ts +109 -0
  87. package/dist/claims/diagnostic-report-claims.js +120 -0
  88. package/dist/claims/document-reference-claims.d.ts +39 -0
  89. package/dist/claims/document-reference-claims.js +96 -0
  90. package/dist/claims/encounter-claims.d.ts +18 -0
  91. package/dist/claims/encounter-claims.js +32 -0
  92. package/dist/claims/flag-claims.d.ts +19 -0
  93. package/dist/claims/flag-claims.js +33 -0
  94. package/dist/claims/immunization-claims.d.ts +31 -0
  95. package/dist/claims/immunization-claims.js +54 -0
  96. package/dist/claims/immunization-recommendation-claims.d.ts +19 -0
  97. package/dist/claims/immunization-recommendation-claims.js +26 -0
  98. package/dist/claims/index.d.ts +29 -0
  99. package/dist/claims/index.js +29 -0
  100. package/dist/claims/invoice-claims.d.ts +277 -0
  101. package/dist/claims/invoice-claims.js +357 -0
  102. package/dist/claims/location-claims.d.ts +22 -0
  103. package/dist/claims/location-claims.js +34 -0
  104. package/dist/claims/medication-claims.d.ts +15 -0
  105. package/dist/claims/medication-claims.js +23 -0
  106. package/dist/claims/medication-statement-claims.d.ts +539 -0
  107. package/dist/claims/medication-statement-claims.js +469 -0
  108. package/dist/claims/organization-claims.d.ts +18 -0
  109. package/dist/claims/organization-claims.js +27 -0
  110. package/dist/claims/practitioner-role-claims.d.ts +18 -0
  111. package/dist/claims/practitioner-role-claims.js +33 -0
  112. package/dist/claims/procedure-claims.d.ts +24 -0
  113. package/dist/claims/procedure-claims.js +44 -0
  114. package/dist/claims/related-person-claims.d.ts +30 -0
  115. package/dist/claims/related-person-claims.js +44 -0
  116. package/dist/claims/research-subject-claims.d.ts +4 -0
  117. package/dist/claims/research-subject-claims.js +4 -0
  118. package/dist/claims/task-claims.d.ts +61 -0
  119. package/dist/claims/task-claims.js +64 -0
  120. package/dist/clinical-terminology.d.ts +73 -0
  121. package/dist/clinical-terminology.js +77 -0
  122. package/dist/constants/clinical-statuses.d.ts +102 -0
  123. package/dist/constants/clinical-statuses.js +93 -0
  124. package/dist/constants/fhir-code-systems.d.ts +15 -0
  125. package/dist/constants/fhir-code-systems.js +15 -0
  126. package/dist/constants/fhir-resource-types.d.ts +162 -0
  127. package/dist/constants/fhir-resource-types.js +70 -0
  128. package/dist/constants/fhir-versions.d.ts +10 -0
  129. package/dist/constants/fhir-versions.js +10 -0
  130. package/dist/constants/index.d.ts +4 -0
  131. package/dist/constants/index.js +4 -0
  132. package/dist/converters/convert-allergy-intolerance.d.ts +3 -0
  133. package/dist/converters/convert-allergy-intolerance.js +85 -0
  134. package/dist/converters/convert-appointment-response.d.ts +3 -0
  135. package/dist/converters/convert-appointment-response.js +32 -0
  136. package/dist/converters/convert-appointment.d.ts +3 -0
  137. package/dist/converters/convert-appointment.js +61 -0
  138. package/dist/converters/convert-care-plan.d.ts +3 -0
  139. package/dist/converters/convert-care-plan.js +93 -0
  140. package/dist/converters/convert-clinical-impression.d.ts +3 -0
  141. package/dist/converters/convert-clinical-impression.js +42 -0
  142. package/dist/converters/convert-composition.d.ts +3 -0
  143. package/dist/converters/convert-composition.js +70 -0
  144. package/dist/converters/convert-condition.d.ts +3 -0
  145. package/dist/converters/convert-condition.js +51 -0
  146. package/dist/converters/convert-consent.d.ts +9 -0
  147. package/dist/converters/convert-consent.js +174 -0
  148. package/dist/converters/convert-coverage.d.ts +3 -0
  149. package/dist/converters/convert-coverage.js +51 -0
  150. package/dist/converters/convert-device-use-statement.d.ts +3 -0
  151. package/dist/converters/convert-device-use-statement.js +36 -0
  152. package/dist/converters/convert-device.d.ts +3 -0
  153. package/dist/converters/convert-device.js +48 -0
  154. package/dist/converters/convert-diagnostic-report.d.ts +3 -0
  155. package/dist/converters/convert-diagnostic-report.js +63 -0
  156. package/dist/converters/convert-document-reference.d.ts +3 -0
  157. package/dist/converters/convert-document-reference.js +54 -0
  158. package/dist/converters/convert-encounter.d.ts +3 -0
  159. package/dist/converters/convert-encounter.js +68 -0
  160. package/dist/converters/convert-flag.d.ts +3 -0
  161. package/dist/converters/convert-flag.js +42 -0
  162. package/dist/converters/convert-immunization.d.ts +3 -0
  163. package/dist/converters/convert-immunization.js +80 -0
  164. package/dist/converters/convert-location.d.ts +3 -0
  165. package/dist/converters/convert-location.js +44 -0
  166. package/dist/converters/convert-medication-statement.d.ts +3 -0
  167. package/dist/converters/convert-medication-statement.js +130 -0
  168. package/dist/converters/convert-observation.d.ts +33 -0
  169. package/dist/converters/convert-observation.js +246 -0
  170. package/dist/converters/convert-organization.d.ts +3 -0
  171. package/dist/converters/convert-organization.js +39 -0
  172. package/dist/converters/convert-practitioner-role.d.ts +3 -0
  173. package/dist/converters/convert-practitioner-role.js +62 -0
  174. package/dist/converters/convert-procedure.d.ts +3 -0
  175. package/dist/converters/convert-procedure.js +64 -0
  176. package/dist/converters/convert-related-person.d.ts +3 -0
  177. package/dist/converters/convert-related-person.js +31 -0
  178. package/dist/converters/convert-shared.d.ts +33 -0
  179. package/dist/converters/convert-shared.js +181 -0
  180. package/dist/converters/index.d.ts +24 -0
  181. package/dist/converters/index.js +24 -0
  182. package/dist/fhir-bundle.d.ts +9 -0
  183. package/dist/fhir-bundle.js +43 -0
  184. package/dist/fhir-search-parameters.d.ts +18 -0
  185. package/dist/fhir-search-parameters.js +52 -0
  186. package/dist/fhir-tokens.d.ts +11 -0
  187. package/dist/fhir-tokens.js +26 -0
  188. package/dist/fhir-types.d.ts +77 -0
  189. package/dist/fhir-types.js +1 -0
  190. package/dist/fhir-values.d.ts +13 -0
  191. package/dist/fhir-values.js +53 -0
  192. package/dist/group-r5.d.ts +121 -0
  193. package/dist/group-r5.js +301 -0
  194. package/dist/imaging-types.d.ts +30 -0
  195. package/dist/imaging-types.js +1 -0
  196. package/dist/immunization-flat-claims.d.ts +2 -0
  197. package/dist/immunization-flat-claims.js +2 -0
  198. package/dist/immunization-reminder-plan.d.ts +2 -0
  199. package/dist/immunization-reminder-plan.js +2 -0
  200. package/dist/index.d.ts +19 -0
  201. package/dist/index.js +19 -0
  202. package/dist/observation-claims.d.ts +170 -0
  203. package/dist/observation-claims.js +184 -0
  204. package/dist/related-person.d.ts +16 -0
  205. package/dist/related-person.js +14 -0
  206. package/dist/research-study-r5.d.ts +163 -0
  207. package/dist/research-study-r5.js +490 -0
  208. package/dist/search-models/index.d.ts +7 -0
  209. package/dist/search-models/index.js +7 -0
  210. package/dist/search-models/params/AdverseEvent.params.model.d.ts +14 -0
  211. package/dist/search-models/params/AdverseEvent.params.model.js +16 -0
  212. package/dist/search-models/params/AllergyIntolerance.params.model.d.ts +24 -0
  213. package/dist/search-models/params/AllergyIntolerance.params.model.js +27 -0
  214. package/dist/search-models/params/Appointment.params.model.d.ts +12 -0
  215. package/dist/search-models/params/Appointment.params.model.js +14 -0
  216. package/dist/search-models/params/ClinicalImpression.params.model.d.ts +14 -0
  217. package/dist/search-models/params/ClinicalImpression.params.model.js +15 -0
  218. package/dist/search-models/params/Condition.params.model.d.ts +16 -0
  219. package/dist/search-models/params/Condition.params.model.js +17 -0
  220. package/dist/search-models/params/DetectedIssue.params.model.d.ts +9 -0
  221. package/dist/search-models/params/DetectedIssue.params.model.js +11 -0
  222. package/dist/search-models/params/DiagnosticReport.params.model.d.ts +13 -0
  223. package/dist/search-models/params/DiagnosticReport.params.model.js +14 -0
  224. package/dist/search-models/params/Encounter.params.model.d.ts +15 -0
  225. package/dist/search-models/params/Encounter.params.model.js +17 -0
  226. package/dist/search-models/params/Immunization.params.model.d.ts +14 -0
  227. package/dist/search-models/params/Immunization.params.model.js +16 -0
  228. package/dist/search-models/params/Medication.params.model.d.ts +35 -0
  229. package/dist/search-models/params/Medication.params.model.js +45 -0
  230. package/dist/search-models/params/Observation.params.model.d.ts +326 -0
  231. package/dist/search-models/params/Observation.params.model.js +244 -0
  232. package/dist/search-models/params/Procedure.params.model.d.ts +15 -0
  233. package/dist/search-models/params/Procedure.params.model.js +17 -0
  234. package/dist/search-models/params/Search.params.model.d.ts +75 -0
  235. package/dist/search-models/params/Search.params.model.js +69 -0
  236. package/dist/search-models/params/ServiceRequest.params.model.d.ts +14 -0
  237. package/dist/search-models/params/ServiceRequest.params.model.js +16 -0
  238. package/dist/search-models/params/Specimen.params.model.d.ts +10 -0
  239. package/dist/search-models/params/Specimen.params.model.js +12 -0
  240. package/dist/search-models/params/index.d.ts +15 -0
  241. package/dist/search-models/params/index.js +15 -0
  242. package/dist/search-models/templates/AdverseEvent.template.model.d.ts +16 -0
  243. package/dist/search-models/templates/AdverseEvent.template.model.js +2 -0
  244. package/dist/search-models/templates/AllergyIntolerance.template.model.d.ts +24 -0
  245. package/dist/search-models/templates/AllergyIntolerance.template.model.js +1 -0
  246. package/dist/search-models/templates/Appointment.template.model.d.ts +13 -0
  247. package/dist/search-models/templates/Appointment.template.model.js +1 -0
  248. package/dist/search-models/templates/ClinicalImpression.template.model.d.ts +16 -0
  249. package/dist/search-models/templates/ClinicalImpression.template.model.js +1 -0
  250. package/dist/search-models/templates/Condition.template.model.d.ts +18 -0
  251. package/dist/search-models/templates/Condition.template.model.js +1 -0
  252. package/dist/search-models/templates/DetectedIssue.template.model.d.ts +11 -0
  253. package/dist/search-models/templates/DetectedIssue.template.model.js +1 -0
  254. package/dist/search-models/templates/DiagnosticReport.template.model.d.ts +15 -0
  255. package/dist/search-models/templates/DiagnosticReport.template.model.js +1 -0
  256. package/dist/search-models/templates/Encounter.template.model.d.ts +17 -0
  257. package/dist/search-models/templates/Encounter.template.model.js +1 -0
  258. package/dist/search-models/templates/Immunization.template.model.d.ts +18 -0
  259. package/dist/search-models/templates/Immunization.template.model.js +2 -0
  260. package/dist/search-models/templates/Medication.template.model.d.ts +37 -0
  261. package/dist/search-models/templates/Medication.template.model.js +1 -0
  262. package/dist/search-models/templates/Observation.template.model.d.ts +18 -0
  263. package/dist/search-models/templates/Observation.template.model.js +1 -0
  264. package/dist/search-models/templates/Procedure.template.model.d.ts +17 -0
  265. package/dist/search-models/templates/Procedure.template.model.js +1 -0
  266. package/dist/search-models/templates/ServiceRequest.template.model.d.ts +16 -0
  267. package/dist/search-models/templates/ServiceRequest.template.model.js +1 -0
  268. package/dist/search-models/templates/Specimen.template.model.d.ts +12 -0
  269. package/dist/search-models/templates/Specimen.template.model.js +1 -0
  270. package/dist/search-models/templates/index.d.ts +14 -0
  271. package/dist/search-models/templates/index.js +14 -0
  272. package/dist/terminology-models/AtcModel.d.ts +15 -0
  273. package/dist/terminology-models/AtcModel.js +2 -0
  274. package/dist/terminology-models/CommonModels.d.ts +70 -0
  275. package/dist/terminology-models/CommonModels.js +55 -0
  276. package/dist/terminology-models/FhirModels.d.ts +60 -0
  277. package/dist/terminology-models/FhirModels.js +34 -0
  278. package/dist/terminology-models/LoincModels.d.ts +24 -0
  279. package/dist/terminology-models/LoincModels.js +2 -0
  280. package/dist/terminology-models/SnomedModels.d.ts +13 -0
  281. package/dist/terminology-models/SnomedModels.js +2 -0
  282. package/dist/terminology-models/index.d.ts +6 -0
  283. package/dist/terminology-models/index.js +6 -0
  284. package/docs/UHC_FHIR_UTILS_MIGRATION.md +51 -8
  285. package/package.json +83 -2
@@ -0,0 +1,109 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const DiagnosticReportClaim: {
3
+ readonly BasedOn: "DiagnosticReport.based-on";
4
+ readonly Category: "DiagnosticReport.category";
5
+ readonly Code: "DiagnosticReport.code";
6
+ readonly CodeText: "DiagnosticReport.code-text";
7
+ readonly CodeTextLocal: "DiagnosticReport.code-text";
8
+ readonly CodeDisplay: "DiagnosticReport.code-display";
9
+ readonly Date: "DiagnosticReport.date";
10
+ readonly Encounter: "DiagnosticReport.encounter";
11
+ readonly Identifier: "DiagnosticReport.identifier";
12
+ readonly Media: "DiagnosticReport.media";
13
+ readonly Patient: "DiagnosticReport.patient";
14
+ readonly Performer: "DiagnosticReport.performer";
15
+ readonly Result: "DiagnosticReport.result";
16
+ readonly ResultsInterpreter: "DiagnosticReport.results-interpreter";
17
+ readonly Specimen: "DiagnosticReport.specimen";
18
+ readonly Status: "DiagnosticReport.status";
19
+ readonly Subject: "DiagnosticReport.subject";
20
+ readonly PresentedFormContentType: "DiagnosticReport.presented-form-contenttype";
21
+ readonly PresentedFormData: "DiagnosticReport.presented-form-data";
22
+ readonly PresentedFormUrl: "DiagnosticReport.presented-form-url";
23
+ /**
24
+ * Canonical CSV/list of related contained resource references or identifiers.
25
+ */
26
+ readonly ContainedReferenceList: "DiagnosticReport.contained-reference-list";
27
+ /**
28
+ * @deprecated Use `ContainedReferenceList`.
29
+ */
30
+ readonly ContainedResourceList: "DiagnosticReport.contained-resource-list";
31
+ /**
32
+ * @deprecated Use `ContainedReferenceList`.
33
+ */
34
+ readonly ContainedDocuments: "DiagnosticReport.contained-documents";
35
+ };
36
+ /**
37
+ * TODO(ips-next):
38
+ * Add resource-level claim helpers in `src/utils/claims-helpers-diagnostic-report.ts`
39
+ * following the same contract already used by Consent/Medication/Condition/Allergy:
40
+ * - `getDiagnosticReportClaimList(...)`
41
+ * - `setDiagnosticReportClaimList(...)`
42
+ * - `addDiagnosticReportClaimList(...)`
43
+ * - `removeDiagnosticReportClaimList(...)`
44
+ * - focused helpers for:
45
+ * - `get/set/add/removeDiagnosticReportResultList`
46
+ * - `get/set/add/removeDiagnosticReportPerformerList`
47
+ * - `get/set/add/removeDiagnosticReportSpecimenList`
48
+ * - `get/set/add/removeDiagnosticReportContainedResourceReferences`
49
+ * - `get/setDiagnosticReportPresentedFormContentType`
50
+ * - `get/setDiagnosticReportPresentedFormData`
51
+ * - `get/setDiagnosticReportPresentedFormUrl`
52
+ *
53
+ * Keep naming aligned with canonical FHIR search parameter names
54
+ * (lowercase with `-`) and reuse the existing `SearchParamNames` + contextualized
55
+ * claim-key mapping pattern.
56
+ *
57
+ * This file is intentionally type-first only for now so GW Core and
58
+ * `common-utils` can already exercise the rest of the bundle workflow without
59
+ * committing to the DiagnosticReport editing surface yet.
60
+ */
61
+ export type DiagnosticReportClaimKey = typeof DiagnosticReportClaim[keyof typeof DiagnosticReportClaim];
62
+ export declare const DiagnosticReportClaimSpecs: ClaimSpec[];
63
+ export declare const DiagnosticReportSearchParamNames: {
64
+ readonly BasedOn: "based-on";
65
+ readonly Category: "category";
66
+ readonly Code: "code";
67
+ readonly Date: "date";
68
+ readonly Encounter: "encounter";
69
+ readonly Identifier: "identifier";
70
+ readonly Media: "media";
71
+ readonly Patient: "patient";
72
+ readonly Performer: "performer";
73
+ readonly Result: "result";
74
+ readonly ResultsInterpreter: "results-interpreter";
75
+ readonly Specimen: "specimen";
76
+ readonly Status: "status";
77
+ readonly Subject: "subject";
78
+ };
79
+ export type DiagnosticReportSearchParamName = typeof DiagnosticReportSearchParamNames[keyof typeof DiagnosticReportSearchParamNames];
80
+ export declare enum DiagnosticReportClaimsFhirApi {
81
+ BasedOn = "org.hl7.fhir.api.DiagnosticReport.based-on",
82
+ Category = "org.hl7.fhir.api.DiagnosticReport.category",
83
+ Code = "org.hl7.fhir.api.DiagnosticReport.code",
84
+ Date = "org.hl7.fhir.api.DiagnosticReport.date",
85
+ Encounter = "org.hl7.fhir.api.DiagnosticReport.encounter",
86
+ Identifier = "org.hl7.fhir.api.DiagnosticReport.identifier",
87
+ Media = "org.hl7.fhir.api.DiagnosticReport.media",
88
+ Patient = "org.hl7.fhir.api.DiagnosticReport.patient",
89
+ Performer = "org.hl7.fhir.api.DiagnosticReport.performer",
90
+ Result = "org.hl7.fhir.api.DiagnosticReport.result",
91
+ ResultsInterpreter = "org.hl7.fhir.api.DiagnosticReport.results-interpreter",
92
+ Specimen = "org.hl7.fhir.api.DiagnosticReport.specimen",
93
+ Status = "org.hl7.fhir.api.DiagnosticReport.status",
94
+ Subject = "org.hl7.fhir.api.DiagnosticReport.subject"
95
+ }
96
+ export declare const DiagnosticReportSearchParamToClaimKey: Record<DiagnosticReportSearchParamName, DiagnosticReportClaimsFhirApi>;
97
+ /**
98
+ * TODO(ips-next):
99
+ * Add `DiagnosticReportClaimsFhirApiExtended` only if/when the bundle editor
100
+ * needs operational flat fields beyond the official search parameter surface.
101
+ *
102
+ * Do not invent camelCase names. Prefer official FHIR search parameter names
103
+ * or explicit attachment aliases such as `presented-form-*` and
104
+ * `contained-reference-list`.
105
+ *
106
+ * Keep `DiagnosticReport` paused at the typing/mapping layer until:
107
+ * 1. `claims-helpers-diagnostic-report.ts` exists
108
+ * 2. GW Core readers/tests consume the same shared claim keys
109
+ */
@@ -0,0 +1,120 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/diagnostic-report-claims.ts
3
+ export const DiagnosticReportClaim = {
4
+ BasedOn: 'DiagnosticReport.based-on',
5
+ Category: 'DiagnosticReport.category',
6
+ Code: 'DiagnosticReport.code',
7
+ CodeText: 'DiagnosticReport.code-text',
8
+ CodeTextLocal: 'DiagnosticReport.code-text',
9
+ CodeDisplay: 'DiagnosticReport.code-display',
10
+ Date: 'DiagnosticReport.date',
11
+ Encounter: 'DiagnosticReport.encounter',
12
+ Identifier: 'DiagnosticReport.identifier',
13
+ Media: 'DiagnosticReport.media',
14
+ Patient: 'DiagnosticReport.patient',
15
+ Performer: 'DiagnosticReport.performer',
16
+ Result: 'DiagnosticReport.result',
17
+ ResultsInterpreter: 'DiagnosticReport.results-interpreter',
18
+ Specimen: 'DiagnosticReport.specimen',
19
+ Status: 'DiagnosticReport.status',
20
+ Subject: 'DiagnosticReport.subject',
21
+ PresentedFormContentType: 'DiagnosticReport.presented-form-contenttype',
22
+ PresentedFormData: 'DiagnosticReport.presented-form-data',
23
+ PresentedFormUrl: 'DiagnosticReport.presented-form-url',
24
+ /**
25
+ * Canonical CSV/list of related contained resource references or identifiers.
26
+ */
27
+ ContainedReferenceList: 'DiagnosticReport.contained-reference-list',
28
+ /**
29
+ * @deprecated Use `ContainedReferenceList`.
30
+ */
31
+ ContainedResourceList: 'DiagnosticReport.contained-resource-list',
32
+ /**
33
+ * @deprecated Use `ContainedReferenceList`.
34
+ */
35
+ ContainedDocuments: 'DiagnosticReport.contained-documents',
36
+ };
37
+ export const DiagnosticReportClaimSpecs = [
38
+ { key: DiagnosticReportClaim.BasedOn, meaning: 'Request or order that originated the report.', example: 'ServiceRequest/sr-1' },
39
+ { key: DiagnosticReportClaim.Category, meaning: 'Diagnostic service section/category.', example: 'http://terminology.hl7.org/CodeSystem/v2-0074|LAB' },
40
+ { key: DiagnosticReportClaim.Code, meaning: 'Main diagnostic report code.', example: 'http://loinc.org|58410-2' },
41
+ { key: DiagnosticReportClaim.CodeText, meaning: 'Local-language report name matching resource language.', example: 'Hemograma completo' },
42
+ { key: DiagnosticReportClaim.CodeDisplay, meaning: 'English/international terminology display.', example: 'Complete blood count panel' },
43
+ { key: DiagnosticReportClaim.Date, meaning: 'Report issuance date/time.', example: '2026-06-12T10:00:00Z' },
44
+ { key: DiagnosticReportClaim.Encounter, meaning: 'Encounter reference.', example: 'Encounter/enc-1' },
45
+ { key: DiagnosticReportClaim.Identifier, meaning: 'Business identifier for the report.', example: 'diag-report-001' },
46
+ { key: DiagnosticReportClaim.Media, meaning: 'Linked media reference list (comma-separeted).', example: 'Media/media-1' },
47
+ { key: DiagnosticReportClaim.Patient, meaning: 'Patient reference.', example: 'did:web:patient.example.org' },
48
+ { key: DiagnosticReportClaim.Performer, meaning: 'Performer reference.', example: 'did:web:lab.example.org:system:lisin' },
49
+ { key: DiagnosticReportClaim.Result, meaning: 'Observation/result reference.', example: 'Observation/obs-1' },
50
+ { key: DiagnosticReportClaim.ResultsInterpreter, meaning: 'Results interpreter reference.', example: 'Practitioner/prac-1' },
51
+ { key: DiagnosticReportClaim.Specimen, meaning: 'Specimen reference list (comma-separared).', example: 'Specimen/spec-1' },
52
+ { key: DiagnosticReportClaim.Status, meaning: 'Diagnostic report status.', example: 'final' },
53
+ { key: DiagnosticReportClaim.Subject, meaning: 'Canonical subject reference.', example: 'did:web:patient.example.org' },
54
+ { key: DiagnosticReportClaim.PresentedFormContentType, meaning: 'FHIR presentedForm attachment content type.', example: 'application/pdf' },
55
+ { key: DiagnosticReportClaim.PresentedFormData, meaning: 'FHIR presentedForm inline base64 payload.', example: 'JVBERi0xLjc...' },
56
+ { key: DiagnosticReportClaim.PresentedFormUrl, meaning: 'FHIR presentedForm external URL.', example: 'https://example.org/report.pdf' },
57
+ { key: DiagnosticReportClaim.ContainedDocuments, meaning: 'CSV of linked DocumentReference identifiers stored in the same bundle.', example: 'docref-example-001,docref-example-002' },
58
+ ];
59
+ export const DiagnosticReportSearchParamNames = {
60
+ BasedOn: 'based-on',
61
+ Category: 'category',
62
+ Code: 'code',
63
+ Date: 'date',
64
+ Encounter: 'encounter',
65
+ Identifier: 'identifier',
66
+ Media: 'media',
67
+ Patient: 'patient',
68
+ Performer: 'performer',
69
+ Result: 'result',
70
+ ResultsInterpreter: 'results-interpreter',
71
+ Specimen: 'specimen',
72
+ Status: 'status',
73
+ Subject: 'subject',
74
+ };
75
+ export var DiagnosticReportClaimsFhirApi;
76
+ (function (DiagnosticReportClaimsFhirApi) {
77
+ DiagnosticReportClaimsFhirApi["BasedOn"] = "org.hl7.fhir.api.DiagnosticReport.based-on";
78
+ DiagnosticReportClaimsFhirApi["Category"] = "org.hl7.fhir.api.DiagnosticReport.category";
79
+ DiagnosticReportClaimsFhirApi["Code"] = "org.hl7.fhir.api.DiagnosticReport.code";
80
+ DiagnosticReportClaimsFhirApi["Date"] = "org.hl7.fhir.api.DiagnosticReport.date";
81
+ DiagnosticReportClaimsFhirApi["Encounter"] = "org.hl7.fhir.api.DiagnosticReport.encounter";
82
+ DiagnosticReportClaimsFhirApi["Identifier"] = "org.hl7.fhir.api.DiagnosticReport.identifier";
83
+ DiagnosticReportClaimsFhirApi["Media"] = "org.hl7.fhir.api.DiagnosticReport.media";
84
+ DiagnosticReportClaimsFhirApi["Patient"] = "org.hl7.fhir.api.DiagnosticReport.patient";
85
+ DiagnosticReportClaimsFhirApi["Performer"] = "org.hl7.fhir.api.DiagnosticReport.performer";
86
+ DiagnosticReportClaimsFhirApi["Result"] = "org.hl7.fhir.api.DiagnosticReport.result";
87
+ DiagnosticReportClaimsFhirApi["ResultsInterpreter"] = "org.hl7.fhir.api.DiagnosticReport.results-interpreter";
88
+ DiagnosticReportClaimsFhirApi["Specimen"] = "org.hl7.fhir.api.DiagnosticReport.specimen";
89
+ DiagnosticReportClaimsFhirApi["Status"] = "org.hl7.fhir.api.DiagnosticReport.status";
90
+ DiagnosticReportClaimsFhirApi["Subject"] = "org.hl7.fhir.api.DiagnosticReport.subject";
91
+ })(DiagnosticReportClaimsFhirApi || (DiagnosticReportClaimsFhirApi = {}));
92
+ export const DiagnosticReportSearchParamToClaimKey = {
93
+ [DiagnosticReportSearchParamNames.BasedOn]: DiagnosticReportClaimsFhirApi.BasedOn,
94
+ [DiagnosticReportSearchParamNames.Category]: DiagnosticReportClaimsFhirApi.Category,
95
+ [DiagnosticReportSearchParamNames.Code]: DiagnosticReportClaimsFhirApi.Code,
96
+ [DiagnosticReportSearchParamNames.Date]: DiagnosticReportClaimsFhirApi.Date,
97
+ [DiagnosticReportSearchParamNames.Encounter]: DiagnosticReportClaimsFhirApi.Encounter,
98
+ [DiagnosticReportSearchParamNames.Identifier]: DiagnosticReportClaimsFhirApi.Identifier,
99
+ [DiagnosticReportSearchParamNames.Media]: DiagnosticReportClaimsFhirApi.Media,
100
+ [DiagnosticReportSearchParamNames.Patient]: DiagnosticReportClaimsFhirApi.Patient,
101
+ [DiagnosticReportSearchParamNames.Performer]: DiagnosticReportClaimsFhirApi.Performer,
102
+ [DiagnosticReportSearchParamNames.Result]: DiagnosticReportClaimsFhirApi.Result,
103
+ [DiagnosticReportSearchParamNames.ResultsInterpreter]: DiagnosticReportClaimsFhirApi.ResultsInterpreter,
104
+ [DiagnosticReportSearchParamNames.Specimen]: DiagnosticReportClaimsFhirApi.Specimen,
105
+ [DiagnosticReportSearchParamNames.Status]: DiagnosticReportClaimsFhirApi.Status,
106
+ [DiagnosticReportSearchParamNames.Subject]: DiagnosticReportClaimsFhirApi.Subject,
107
+ };
108
+ /**
109
+ * TODO(ips-next):
110
+ * Add `DiagnosticReportClaimsFhirApiExtended` only if/when the bundle editor
111
+ * needs operational flat fields beyond the official search parameter surface.
112
+ *
113
+ * Do not invent camelCase names. Prefer official FHIR search parameter names
114
+ * or explicit attachment aliases such as `presented-form-*` and
115
+ * `contained-reference-list`.
116
+ *
117
+ * Keep `DiagnosticReport` paused at the typing/mapping layer until:
118
+ * 1. `claims-helpers-diagnostic-report.ts` exists
119
+ * 2. GW Core readers/tests consume the same shared claim keys
120
+ */
@@ -0,0 +1,39 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const DocumentReferenceClaim: {
3
+ readonly Attester: "DocumentReference.attester";
4
+ readonly Author: "DocumentReference.author";
5
+ readonly BasedOn: "DocumentReference.based-on";
6
+ readonly Category: "DocumentReference.category";
7
+ readonly ContentData: "DocumentReference.contentdata";
8
+ readonly ContentHash: "DocumentReference.contenthash";
9
+ readonly ContentType: "DocumentReference.contenttype";
10
+ readonly Context: "DocumentReference.context";
11
+ readonly Creation: "DocumentReference.creation";
12
+ readonly Date: "DocumentReference.date";
13
+ readonly Description: "DocumentReference.description";
14
+ readonly EventCode: "DocumentReference.event-code";
15
+ readonly EventReference: "DocumentReference.event-reference";
16
+ readonly FormatUri: "DocumentReference.format-uri";
17
+ readonly Identifier: "DocumentReference.identifier";
18
+ readonly Language: "DocumentReference.language";
19
+ readonly Location: "DocumentReference.location";
20
+ readonly Modality: "DocumentReference.modality";
21
+ readonly RelatesTo: "DocumentReference.relatesto";
22
+ readonly Relation: "DocumentReference.relation";
23
+ readonly Subject: "DocumentReference.subject";
24
+ readonly Type: "DocumentReference.type";
25
+ readonly TypeText: "DocumentReference.type-text";
26
+ readonly TypeDisplay: "DocumentReference.type-display";
27
+ readonly UserSelected: "DocumentReference.user-selected";
28
+ };
29
+ export type DocumentReferenceClaimKey = typeof DocumentReferenceClaim[keyof typeof DocumentReferenceClaim];
30
+ /**
31
+ * Human-readable reference for UI/docs generators.
32
+ * This is intentionally claims-first metadata and not a FHIR structure.
33
+ */
34
+ export declare const DocumentReferenceClaimSpecs: ClaimSpec[];
35
+ /**
36
+ * Optional mapping helper when converting claims-first payloads to strict FHIR JSON.
37
+ * Not used as canonical claim naming.
38
+ */
39
+ export declare const DocumentReferenceClaimToFhirPath: Record<string, string | string[]>;
@@ -0,0 +1,96 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/document-reference-claims.ts
3
+ // Always create JSDoc, do not use strings inline in keys nor values, use types instead, and reuse the data test examples.
4
+ export const DocumentReferenceClaim = {
5
+ Attester: 'DocumentReference.attester',
6
+ Author: 'DocumentReference.author',
7
+ BasedOn: 'DocumentReference.based-on',
8
+ Category: 'DocumentReference.category',
9
+ ContentData: 'DocumentReference.contentdata',
10
+ ContentHash: 'DocumentReference.contenthash',
11
+ ContentType: 'DocumentReference.contenttype',
12
+ Context: 'DocumentReference.context',
13
+ Creation: 'DocumentReference.creation',
14
+ Date: 'DocumentReference.date',
15
+ Description: 'DocumentReference.description',
16
+ EventCode: 'DocumentReference.event-code',
17
+ EventReference: 'DocumentReference.event-reference',
18
+ FormatUri: 'DocumentReference.format-uri',
19
+ Identifier: 'DocumentReference.identifier',
20
+ Language: 'DocumentReference.language',
21
+ Location: 'DocumentReference.location',
22
+ Modality: 'DocumentReference.modality',
23
+ RelatesTo: 'DocumentReference.relatesto',
24
+ Relation: 'DocumentReference.relation',
25
+ Subject: 'DocumentReference.subject',
26
+ Type: 'DocumentReference.type',
27
+ TypeText: 'DocumentReference.type-text',
28
+ TypeDisplay: 'DocumentReference.type-display',
29
+ UserSelected: 'DocumentReference.user-selected',
30
+ };
31
+ /**
32
+ * Human-readable reference for UI/docs generators.
33
+ * This is intentionally claims-first metadata and not a FHIR structure.
34
+ */
35
+ export const DocumentReferenceClaimSpecs = [
36
+ { key: DocumentReferenceClaim.Attester, meaning: 'Attester value (DID or role: personal | professional | legal | official).', example: 'did:web:hospital.example.com:employee:adm-332' },
37
+ { key: DocumentReferenceClaim.Author, meaning: 'DID of the source author.', example: 'did:web:lab.example.com:system:lisin' },
38
+ { key: DocumentReferenceClaim.BasedOn, meaning: 'URL of the source FHIR resource.', example: 'https://ehr.example.com/fhir/ServiceRequest/sr-991' },
39
+ { key: DocumentReferenceClaim.Category, meaning: 'Higher-level document grouping.', example: 'http://hl7.org/fhir/ValueSet/document-classcodes|LP173418-7' },
40
+ { key: DocumentReferenceClaim.ContentData, meaning: 'Embedded attachment as base64.', example: 'JVBERi0xLjc...' },
41
+ { key: DocumentReferenceClaim.ContentHash, meaning: 'Attachment content hash/CID used for retrieval and integrity checks.', example: 'z4EBG9jDwAxbThHs9AMGBy6dTN1P9fGEcXq6tCm1ugw3pV89Nsc' },
42
+ { key: DocumentReferenceClaim.ContentType, meaning: 'Attachment MIME type.', example: 'application/pdf' },
43
+ { key: DocumentReferenceClaim.Context, meaning: 'Context such as Appointment | Encounter | EpisodeOfCare.', example: 'Encounter/enc-123' },
44
+ { key: DocumentReferenceClaim.Creation, meaning: 'When source information was created.', example: '2026-02-10T08:20:00Z' },
45
+ { key: DocumentReferenceClaim.Date, meaning: 'When this registration was attested.', example: '2026-02-10T10:05:33Z' },
46
+ { key: DocumentReferenceClaim.Description, meaning: 'Human-readable summary.', example: 'Vital signs report from home device' },
47
+ { key: DocumentReferenceClaim.EventCode, meaning: 'Main code for the source FHIR resource.', example: 'http://loinc.org|85354-9' },
48
+ { key: DocumentReferenceClaim.EventReference, meaning: 'URL of the source FHIR resource.', example: 'https://ehr.example.com/fhir/Observation/obs-778' },
49
+ { key: DocumentReferenceClaim.FormatUri, meaning: 'Attachment format URI.', example: 'urn:ihe:dent:PDF' },
50
+ { key: DocumentReferenceClaim.Identifier, meaning: 'Document identifier used for correlation.', example: 'docref-2026-00042' },
51
+ { key: DocumentReferenceClaim.Language, meaning: 'Language of attachment content.', example: 'en' },
52
+ { key: DocumentReferenceClaim.Location, meaning: 'Remote URL of attachment.', example: 'https://ehr.example.com/fhir/Binary/bin-123' },
53
+ { key: DocumentReferenceClaim.Modality, meaning: 'Imaging modality/equipment function.', example: 'http://dicom.nema.org/resources/ontology/DCM|CT' },
54
+ { key: DocumentReferenceClaim.RelatesTo, meaning: 'Reference to related/prior document.', example: 'DocumentReference/docref-00041' },
55
+ { key: DocumentReferenceClaim.Relation, meaning: 'Relation type to related document.', example: 'appends' },
56
+ { key: DocumentReferenceClaim.Subject, meaning: 'URN for the section in the individual index.', example: 'urn:uhix:section:vitals' },
57
+ { key: DocumentReferenceClaim.Type, meaning: 'Lower-level, sector-specific type.', example: 'http://hl7.org/fhir/ValueSet/c80-doc-typecodes|34133-9' },
58
+ { key: DocumentReferenceClaim.TypeText, meaning: 'Local-language document type label.', example: 'Resumen clínico' },
59
+ { key: DocumentReferenceClaim.TypeDisplay, meaning: 'Canonical/international document type display.', example: 'Patient summary Document' },
60
+ { key: DocumentReferenceClaim.UserSelected, meaning: 'Custom provenance flag telling whether the document was explicitly created or selected by the end user/controller.', example: 'true' },
61
+ ];
62
+ /**
63
+ * Optional mapping helper when converting claims-first payloads to strict FHIR JSON.
64
+ * Not used as canonical claim naming.
65
+ */
66
+ export const DocumentReferenceClaimToFhirPath = {
67
+ [DocumentReferenceClaim.Attester]: [
68
+ 'DocumentReference.attester.party.reference',
69
+ 'DocumentReference.attester.mode',
70
+ ],
71
+ [DocumentReferenceClaim.Author]: 'DocumentReference.author.reference',
72
+ [DocumentReferenceClaim.BasedOn]: 'DocumentReference.basedOn.reference',
73
+ [DocumentReferenceClaim.Category]: 'DocumentReference.category.coding',
74
+ [DocumentReferenceClaim.ContentData]: 'DocumentReference.content.attachment.data',
75
+ [DocumentReferenceClaim.ContentHash]: [
76
+ 'DocumentReference.content.attachment.hash',
77
+ 'DocumentReference.meta.versionId',
78
+ ],
79
+ [DocumentReferenceClaim.ContentType]: 'DocumentReference.content.attachment.contentType',
80
+ [DocumentReferenceClaim.Context]: 'DocumentReference.context',
81
+ [DocumentReferenceClaim.Creation]: 'DocumentReference.content.attachment.creation',
82
+ [DocumentReferenceClaim.Date]: 'DocumentReference.date',
83
+ [DocumentReferenceClaim.Description]: 'DocumentReference.description',
84
+ [DocumentReferenceClaim.EventCode]: 'DocumentReference.context.event.coding',
85
+ [DocumentReferenceClaim.EventReference]: 'DocumentReference.context.related.reference',
86
+ [DocumentReferenceClaim.FormatUri]: 'DocumentReference.content.format.code',
87
+ [DocumentReferenceClaim.Identifier]: 'DocumentReference.identifier.value',
88
+ [DocumentReferenceClaim.Language]: 'DocumentReference.content.attachment.language',
89
+ [DocumentReferenceClaim.Location]: 'DocumentReference.content.attachment.url',
90
+ [DocumentReferenceClaim.Modality]: 'DocumentReference.modality',
91
+ [DocumentReferenceClaim.RelatesTo]: 'DocumentReference.relatesTo.target.reference',
92
+ [DocumentReferenceClaim.Relation]: 'DocumentReference.relatesTo.code',
93
+ [DocumentReferenceClaim.Subject]: 'DocumentReference.subject.reference',
94
+ [DocumentReferenceClaim.Type]: 'DocumentReference.type.coding',
95
+ [DocumentReferenceClaim.UserSelected]: 'DocumentReference.user-selected',
96
+ };
@@ -0,0 +1,18 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const EncounterClaim: {
3
+ readonly Identifier: "Encounter.identifier";
4
+ readonly Status: "Encounter.status";
5
+ readonly Class: "Encounter.class";
6
+ readonly Type: "Encounter.type";
7
+ readonly Subject: "Encounter.subject";
8
+ readonly Patient: "Encounter.patient";
9
+ readonly Participant: "Encounter.participant";
10
+ readonly ServiceProvider: "Encounter.service-provider";
11
+ readonly PeriodStart: "Encounter.period-start";
12
+ readonly PeriodEnd: "Encounter.period-end";
13
+ readonly ReasonCode: "Encounter.reason-code";
14
+ readonly Diagnosis: "Encounter.diagnosis";
15
+ readonly Location: "Encounter.location";
16
+ };
17
+ export type EncounterClaimKey = typeof EncounterClaim[keyof typeof EncounterClaim];
18
+ export declare const EncounterClaimSpecs: ClaimSpec[];
@@ -0,0 +1,32 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/encounter-claims.ts
3
+ export const EncounterClaim = {
4
+ Identifier: 'Encounter.identifier',
5
+ Status: 'Encounter.status',
6
+ Class: 'Encounter.class',
7
+ Type: 'Encounter.type',
8
+ Subject: 'Encounter.subject',
9
+ Patient: 'Encounter.patient',
10
+ Participant: 'Encounter.participant',
11
+ ServiceProvider: 'Encounter.service-provider',
12
+ PeriodStart: 'Encounter.period-start',
13
+ PeriodEnd: 'Encounter.period-end',
14
+ ReasonCode: 'Encounter.reason-code',
15
+ Diagnosis: 'Encounter.diagnosis',
16
+ Location: 'Encounter.location',
17
+ };
18
+ export const EncounterClaimSpecs = [
19
+ { key: EncounterClaim.Identifier, meaning: 'Business identifier.', example: 'enc-001' },
20
+ { key: EncounterClaim.Status, meaning: 'Encounter status.', example: 'finished' },
21
+ { key: EncounterClaim.Class, meaning: 'Encounter class token.', example: 'http://terminology.hl7.org/CodeSystem/v3-ActCode|AMB' },
22
+ { key: EncounterClaim.Type, meaning: 'Encounter type token.', example: 'http://snomed.info/sct|185349003' },
23
+ { key: EncounterClaim.Subject, meaning: 'Canonical subject reference.', example: 'did:web:patient.example.org' },
24
+ { key: EncounterClaim.Patient, meaning: 'Patient alias reference.', example: 'did:web:patient.example.org' },
25
+ { key: EncounterClaim.Participant, meaning: 'Participant references (CSV).', example: 'Practitioner/prac-1' },
26
+ { key: EncounterClaim.ServiceProvider, meaning: 'Service provider reference.', example: 'Organization/org-1' },
27
+ { key: EncounterClaim.PeriodStart, meaning: 'Encounter start.', example: '2026-06-01T10:00:00Z' },
28
+ { key: EncounterClaim.PeriodEnd, meaning: 'Encounter end.', example: '2026-06-01T10:30:00Z' },
29
+ { key: EncounterClaim.ReasonCode, meaning: 'Reason code token.', example: 'http://snomed.info/sct|65363002' },
30
+ { key: EncounterClaim.Diagnosis, meaning: 'Diagnosis references (CSV).', example: 'Condition/cond-1' },
31
+ { key: EncounterClaim.Location, meaning: 'Location references (CSV).', example: 'Location/loc-1' },
32
+ ];
@@ -0,0 +1,19 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const FlagClaim: {
3
+ readonly Author: "Flag.author";
4
+ readonly Date: "Flag.date";
5
+ readonly Encounter: "Flag.encounter";
6
+ readonly Identifier: "Flag.identifier";
7
+ readonly Patient: "Flag.patient";
8
+ readonly Subject: "Flag.subject";
9
+ readonly Status: "Flag.status";
10
+ readonly Category: "Flag.category";
11
+ readonly Code: "Flag.code";
12
+ readonly CodeText: "Flag.code-text";
13
+ readonly CodeTextLocal: "Flag.code-text";
14
+ readonly CodeDisplay: "Flag.code-display";
15
+ readonly PeriodStart: "Flag.period-start";
16
+ readonly PeriodEnd: "Flag.period-end";
17
+ };
18
+ export type FlagClaimKey = typeof FlagClaim[keyof typeof FlagClaim];
19
+ export declare const FlagClaimSpecs: ClaimSpec[];
@@ -0,0 +1,33 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/flag-claims.ts
3
+ export const FlagClaim = {
4
+ Author: 'Flag.author',
5
+ Date: 'Flag.date',
6
+ Encounter: 'Flag.encounter',
7
+ Identifier: 'Flag.identifier',
8
+ Patient: 'Flag.patient',
9
+ Subject: 'Flag.subject',
10
+ Status: 'Flag.status',
11
+ Category: 'Flag.category',
12
+ Code: 'Flag.code',
13
+ CodeText: 'Flag.code-text',
14
+ CodeTextLocal: 'Flag.code-text',
15
+ CodeDisplay: 'Flag.code-display',
16
+ PeriodStart: 'Flag.period-start',
17
+ PeriodEnd: 'Flag.period-end',
18
+ };
19
+ export const FlagClaimSpecs = [
20
+ { key: FlagClaim.Author, meaning: 'Author reference.', example: 'Practitioner/prac-1' },
21
+ { key: FlagClaim.Date, meaning: 'Flag issue date/time.', example: '2026-06-01T10:00:00Z' },
22
+ { key: FlagClaim.Encounter, meaning: 'Encounter reference.', example: 'Encounter/enc-1' },
23
+ { key: FlagClaim.Identifier, meaning: 'Business identifier.', example: 'flag-001' },
24
+ { key: FlagClaim.Patient, meaning: 'Patient reference.', example: 'did:web:patient.example.org' },
25
+ { key: FlagClaim.Subject, meaning: 'Canonical subject reference.', example: 'did:web:patient.example.org' },
26
+ { key: FlagClaim.Status, meaning: 'Flag status.', example: 'active' },
27
+ { key: FlagClaim.Category, meaning: 'Flag category token.', example: 'http://terminology.hl7.org/CodeSystem/flag-category|safety' },
28
+ { key: FlagClaim.Code, meaning: 'Flag code token.', example: 'http://loinc.org|104605-1' },
29
+ { key: FlagClaim.CodeText, meaning: 'Local-language alert name matching resource language.', example: 'Dieta sin marisco' },
30
+ { key: FlagClaim.CodeDisplay, meaning: 'English/international terminology display.', example: 'Shellfish free diet' },
31
+ { key: FlagClaim.PeriodStart, meaning: 'Flag period start.', example: '2026-06-01T10:00:00Z' },
32
+ { key: FlagClaim.PeriodEnd, meaning: 'Flag period end.', example: '2026-07-01T10:00:00Z' },
33
+ ];
@@ -0,0 +1,31 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const ImmunizationClaim: {
3
+ readonly Date: "Immunization.date";
4
+ readonly Identifier: "Immunization.identifier";
5
+ readonly Location: "Immunization.location";
6
+ readonly LotNumber: "Immunization.lot-number";
7
+ readonly Manufacturer: "Immunization.manufacturer";
8
+ readonly Patient: "Immunization.patient";
9
+ readonly Performer: "Immunization.performer";
10
+ readonly ReactionDate: "Immunization.reaction-date";
11
+ readonly ReasonCode: "Immunization.reason-code";
12
+ readonly ReasonReference: "Immunization.reason-reference";
13
+ readonly Series: "Immunization.series";
14
+ readonly Status: "Immunization.status";
15
+ readonly StatusReason: "Immunization.status-reason";
16
+ readonly TargetDisease: "Immunization.target-disease";
17
+ readonly TargetDiseaseText: "Immunization.target-disease-text";
18
+ readonly TargetDiseaseDisplay: "Immunization.target-disease-display";
19
+ readonly VaccineCode: "Immunization.vaccine-code";
20
+ readonly VaccineCodeText: "Immunization.vaccine-code-text";
21
+ readonly VaccineCodeDisplay: "Immunization.vaccine-code-display";
22
+ readonly DoseSequence: "Immunization.dose-sequence";
23
+ readonly Subject: "Immunization.subject";
24
+ readonly Note: "Immunization.note";
25
+ readonly Route: "Immunization.route";
26
+ readonly RouteDisplay: "Immunization.route-display";
27
+ readonly Site: "Immunization.site";
28
+ readonly SiteDisplay: "Immunization.site-display";
29
+ };
30
+ export type ImmunizationClaimKey = typeof ImmunizationClaim[keyof typeof ImmunizationClaim];
31
+ export declare const ImmunizationClaimSpecs: ClaimSpec[];
@@ -0,0 +1,54 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/immunization-claims.ts
3
+ export const ImmunizationClaim = {
4
+ Date: 'Immunization.date',
5
+ Identifier: 'Immunization.identifier',
6
+ Location: 'Immunization.location',
7
+ LotNumber: 'Immunization.lot-number',
8
+ Manufacturer: 'Immunization.manufacturer',
9
+ Patient: 'Immunization.patient',
10
+ Performer: 'Immunization.performer',
11
+ ReactionDate: 'Immunization.reaction-date',
12
+ ReasonCode: 'Immunization.reason-code',
13
+ ReasonReference: 'Immunization.reason-reference',
14
+ Series: 'Immunization.series',
15
+ Status: 'Immunization.status',
16
+ StatusReason: 'Immunization.status-reason',
17
+ TargetDisease: 'Immunization.target-disease',
18
+ TargetDiseaseText: 'Immunization.target-disease-text',
19
+ TargetDiseaseDisplay: 'Immunization.target-disease-display',
20
+ VaccineCode: 'Immunization.vaccine-code',
21
+ VaccineCodeText: 'Immunization.vaccine-code-text',
22
+ VaccineCodeDisplay: 'Immunization.vaccine-code-display',
23
+ DoseSequence: 'Immunization.dose-sequence',
24
+ Subject: 'Immunization.subject',
25
+ Note: 'Immunization.note',
26
+ Route: 'Immunization.route',
27
+ RouteDisplay: 'Immunization.route-display',
28
+ Site: 'Immunization.site',
29
+ SiteDisplay: 'Immunization.site-display',
30
+ };
31
+ export const ImmunizationClaimSpecs = [
32
+ { key: ImmunizationClaim.Date, meaning: 'Administration date/time.', example: '2026-06-01T10:00:00Z' },
33
+ { key: ImmunizationClaim.Identifier, meaning: 'Business identifier.', example: 'imm-001' },
34
+ { key: ImmunizationClaim.Location, meaning: 'Location reference.', example: 'Location/loc-1' },
35
+ { key: ImmunizationClaim.LotNumber, meaning: 'Vaccine lot number.', example: 'LOT-2026-01' },
36
+ { key: ImmunizationClaim.Manufacturer, meaning: 'Manufacturer reference.', example: 'Organization/org-vax' },
37
+ { key: ImmunizationClaim.Patient, meaning: 'Patient reference.', example: 'did:web:patient.example.org' },
38
+ { key: ImmunizationClaim.Performer, meaning: 'Performer references (CSV).', example: 'Practitioner/prac-1' },
39
+ { key: ImmunizationClaim.ReactionDate, meaning: 'Reaction date/time.', example: '2026-06-02T08:00:00Z' },
40
+ { key: ImmunizationClaim.ReasonCode, meaning: 'Reason code token.', example: 'http://snomed.info/sct|281647001' },
41
+ { key: ImmunizationClaim.ReasonReference, meaning: 'Reason reference.', example: 'Condition/cond-1' },
42
+ { key: ImmunizationClaim.Series, meaning: 'Vaccination series.', example: 'COVID primary series' },
43
+ { key: ImmunizationClaim.Status, meaning: 'Immunization status.', example: 'completed' },
44
+ { key: ImmunizationClaim.StatusReason, meaning: 'Status reason token.', example: 'http://terminology.hl7.org/CodeSystem/immunization-status-reason|expired' },
45
+ { key: ImmunizationClaim.TargetDisease, meaning: 'Target disease token.', example: 'http://snomed.info/sct|840539006' },
46
+ { key: ImmunizationClaim.TargetDiseaseText, meaning: 'Source-language target disease label.', example: 'Gripe' },
47
+ { key: ImmunizationClaim.TargetDiseaseDisplay, meaning: 'Canonical target disease display.', example: 'Influenza' },
48
+ { key: ImmunizationClaim.VaccineCode, meaning: 'Vaccine code token.', example: 'http://hl7.org/fhir/sid/cvx|207' },
49
+ { key: ImmunizationClaim.VaccineCodeText, meaning: 'Local-language vaccine label used by forms/UI.', example: 'Vacuna COVID-19' },
50
+ { key: ImmunizationClaim.VaccineCodeDisplay, meaning: 'Canonical/international vaccine display label.', example: 'COVID-19 vaccine' },
51
+ { key: ImmunizationClaim.DoseSequence, meaning: 'Dose sequence string.', example: '2' },
52
+ { key: ImmunizationClaim.Subject, meaning: 'Canonical subject reference.', example: 'did:web:patient.example.org' },
53
+ { key: ImmunizationClaim.Note, meaning: 'Clinical note text.', example: 'No adverse reaction recorded.' },
54
+ ];
@@ -0,0 +1,19 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ /** Canonical flat claims used by a FHIR ImmunizationRecommendation graph entry. */
3
+ export declare const ImmunizationRecommendationClaim: Readonly<{
4
+ readonly Identifier: "ImmunizationRecommendation.identifier";
5
+ readonly Patient: "ImmunizationRecommendation.patient";
6
+ readonly Date: "ImmunizationRecommendation.date";
7
+ readonly VaccineCode: "ImmunizationRecommendation.vaccine-code";
8
+ readonly ForecastStatus: "ImmunizationRecommendation.forecast-status";
9
+ readonly DateCriterionCode: "ImmunizationRecommendation.date-criterion-code";
10
+ readonly DateCriterionValue: "ImmunizationRecommendation.date-criterion-value";
11
+ readonly SupportingImmunization: "ImmunizationRecommendation.supporting-immunization";
12
+ }>;
13
+ export type ImmunizationRecommendationClaimKey = typeof ImmunizationRecommendationClaim[keyof typeof ImmunizationRecommendationClaim];
14
+ /** Governed coding tokens authored by the neutral recommendation builder. */
15
+ export declare const ImmunizationRecommendationCodes: Readonly<{
16
+ readonly ForecastDue: "http://terminology.hl7.org/CodeSystem/immunization-recommendation-status|due";
17
+ readonly RecommendedDate: "http://loinc.org|30980-7";
18
+ }>;
19
+ export declare const ImmunizationRecommendationClaimSpecs: readonly ClaimSpec[];
@@ -0,0 +1,26 @@
1
+ /** Canonical flat claims used by a FHIR ImmunizationRecommendation graph entry. */
2
+ export const ImmunizationRecommendationClaim = Object.freeze({
3
+ Identifier: 'ImmunizationRecommendation.identifier',
4
+ Patient: 'ImmunizationRecommendation.patient',
5
+ Date: 'ImmunizationRecommendation.date',
6
+ VaccineCode: 'ImmunizationRecommendation.vaccine-code',
7
+ ForecastStatus: 'ImmunizationRecommendation.forecast-status',
8
+ DateCriterionCode: 'ImmunizationRecommendation.date-criterion-code',
9
+ DateCriterionValue: 'ImmunizationRecommendation.date-criterion-value',
10
+ SupportingImmunization: 'ImmunizationRecommendation.supporting-immunization',
11
+ });
12
+ /** Governed coding tokens authored by the neutral recommendation builder. */
13
+ export const ImmunizationRecommendationCodes = Object.freeze({
14
+ ForecastDue: 'http://terminology.hl7.org/CodeSystem/immunization-recommendation-status|due',
15
+ RecommendedDate: 'http://loinc.org|30980-7',
16
+ });
17
+ export const ImmunizationRecommendationClaimSpecs = Object.freeze([
18
+ { key: ImmunizationRecommendationClaim.Identifier, meaning: 'Recommendation business identifier.', example: 'urn:uuid:recommendation-1' },
19
+ { key: ImmunizationRecommendationClaim.Patient, meaning: 'Subject reference.', example: 'Patient/subject-1' },
20
+ { key: ImmunizationRecommendationClaim.Date, meaning: 'Recommendation creation date.', example: '2026-09-22' },
21
+ { key: ImmunizationRecommendationClaim.VaccineCode, meaning: 'Recommended vaccine coding token.', example: 'http://www.whocc.no/atc|J07BB02' },
22
+ { key: ImmunizationRecommendationClaim.ForecastStatus, meaning: 'FHIR forecast status coding token.', example: 'http://terminology.hl7.org/CodeSystem/immunization-recommendation-status|due' },
23
+ { key: ImmunizationRecommendationClaim.DateCriterionCode, meaning: 'Date criterion coding token.', example: 'http://loinc.org|30980-7' },
24
+ { key: ImmunizationRecommendationClaim.DateCriterionValue, meaning: 'Date criterion value.', example: '2026-12-21' },
25
+ { key: ImmunizationRecommendationClaim.SupportingImmunization, meaning: 'Supporting Immunization reference.', example: 'Immunization/immunization-1' },
26
+ ]);