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,27 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/composition-claims.ts
3
+ export const CompositionClaim = {
4
+ Subject: 'Composition.subject',
5
+ Section: 'Composition.section',
6
+ Author: 'Composition.author',
7
+ /** CSV of Composition.attester.party references, aligned with AttesterMode and AttesterTime. */
8
+ Attester: 'Composition.attester',
9
+ /** CSV of required R4 Composition.attester.mode values, one per attester. */
10
+ AttesterMode: 'Composition.attester-mode',
11
+ /** CSV of optional R4 Composition.attester.time values, positionally aligned with AttesterMode. */
12
+ AttesterTime: 'Composition.attester-time',
13
+ /** Composition.custodian Organization reference. */
14
+ Custodian: 'Composition.custodian',
15
+ Date: 'Composition.date',
16
+ Entry: 'Composition.entry',
17
+ Type: 'Composition.type',
18
+ Identifier: 'Composition.identifier',
19
+ Title: 'Composition.title',
20
+ };
21
+ /** Canonical FHIR R4 Composition.attester.mode codes. */
22
+ export const CompositionAttesterModes = Object.freeze({
23
+ Personal: 'personal',
24
+ Professional: 'professional',
25
+ Legal: 'legal',
26
+ Official: 'official',
27
+ });
@@ -0,0 +1,79 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const ConditionClaim: {
3
+ readonly Identifier: "Condition.identifier";
4
+ readonly Subject: "Condition.subject";
5
+ readonly ClinicalStatus: "Condition.clinical-status";
6
+ readonly VerificationStatus: "Condition.verification-status";
7
+ readonly Category: "Condition.category";
8
+ readonly Code: "Condition.code";
9
+ /** Local-language label projected to FHIR `Condition.code.text`. */
10
+ readonly CodeText: "Condition.code-text";
11
+ /** Alias that makes the local-language purpose explicit to UI authors. */
12
+ readonly CodeTextLocal: "Condition.code-text";
13
+ /** English/international terminology label projected to `code.coding.display`. */
14
+ readonly CodeDisplay: "Condition.code-display";
15
+ /**
16
+ * Canonical CSV/list of related contained resource references or identifiers.
17
+ */
18
+ readonly ContainedReferenceList: "Condition.contained-reference-list";
19
+ /**
20
+ * @deprecated Use `ContainedReferenceList`.
21
+ */
22
+ readonly ContainedResourceList: "Condition.contained-resource-list";
23
+ /**
24
+ * @deprecated Use `ContainedReferenceList`.
25
+ */
26
+ readonly ContainedDocuments: "Condition.contained-documents";
27
+ /**
28
+ * @deprecated Use `ContainedReferenceList`.
29
+ */
30
+ readonly AttachmentContentIds: "Condition.attachment-content-ids";
31
+ readonly Severity: "Condition.severity";
32
+ readonly OnsetDateTime: "Condition.onset-datetime";
33
+ readonly RecordedDate: "Condition.recorded-date";
34
+ readonly Asserter: "Condition.asserter";
35
+ readonly Recorder: "Condition.recorder";
36
+ };
37
+ export type ConditionClaimKey = typeof ConditionClaim[keyof typeof ConditionClaim];
38
+ export declare enum ConditionClaimsFhirApi {
39
+ Identifier = "org.hl7.fhir.api.Condition.identifier",
40
+ Subject = "org.hl7.fhir.api.Condition.subject",
41
+ ClinicalStatus = "org.hl7.fhir.api.Condition.clinical-status",
42
+ VerificationStatus = "org.hl7.fhir.api.Condition.verification-status",
43
+ Category = "org.hl7.fhir.api.Condition.category",
44
+ Code = "org.hl7.fhir.api.Condition.code",
45
+ CodeText = "org.hl7.fhir.api.Condition.code-text",
46
+ CodeDisplay = "org.hl7.fhir.api.Condition.code-display",
47
+ Severity = "org.hl7.fhir.api.Condition.severity",
48
+ OnsetDateTime = "org.hl7.fhir.api.Condition.onset-datetime",
49
+ Recorder = "org.hl7.fhir.api.Condition.recorder"
50
+ }
51
+ export declare const ConditionSearchParamNames: {
52
+ readonly Identifier: "identifier";
53
+ readonly Subject: "subject";
54
+ readonly ClinicalStatus: "clinical-status";
55
+ readonly VerificationStatus: "verification-status";
56
+ readonly Category: "category";
57
+ readonly Code: "code";
58
+ readonly CodeText: "code-text";
59
+ readonly CodeDisplay: "code-display";
60
+ readonly Severity: "severity";
61
+ readonly OnsetDateTime: "onset-datetime";
62
+ readonly Recorder: "recorder";
63
+ };
64
+ export type ConditionSearchParamName = typeof ConditionSearchParamNames[keyof typeof ConditionSearchParamNames];
65
+ export declare const ConditionSearchParamToClaimKey: Record<ConditionSearchParamName, ConditionClaimsFhirApi>;
66
+ export declare const ConditionClaimsFhirApiMap: {
67
+ "org.hl7.fhir.api.Condition.identifier": StringConstructor;
68
+ "org.hl7.fhir.api.Condition.subject": StringConstructor;
69
+ "org.hl7.fhir.api.Condition.clinical-status": StringConstructor;
70
+ "org.hl7.fhir.api.Condition.verification-status": StringConstructor;
71
+ "org.hl7.fhir.api.Condition.category": StringConstructor;
72
+ "org.hl7.fhir.api.Condition.code": StringConstructor;
73
+ "org.hl7.fhir.api.Condition.code-text": StringConstructor;
74
+ "org.hl7.fhir.api.Condition.code-display": StringConstructor;
75
+ "org.hl7.fhir.api.Condition.severity": StringConstructor;
76
+ "org.hl7.fhir.api.Condition.onset-datetime": StringConstructor;
77
+ "org.hl7.fhir.api.Condition.recorder": StringConstructor;
78
+ };
79
+ export declare const ConditionClaimSpecs: ClaimSpec[];
@@ -0,0 +1,104 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/condition-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 ConditionClaim = {
5
+ Identifier: 'Condition.identifier',
6
+ Subject: 'Condition.subject',
7
+ ClinicalStatus: 'Condition.clinical-status',
8
+ VerificationStatus: 'Condition.verification-status',
9
+ Category: 'Condition.category',
10
+ Code: 'Condition.code',
11
+ /** Local-language label projected to FHIR `Condition.code.text`. */
12
+ CodeText: 'Condition.code-text',
13
+ /** Alias that makes the local-language purpose explicit to UI authors. */
14
+ CodeTextLocal: 'Condition.code-text',
15
+ /** English/international terminology label projected to `code.coding.display`. */
16
+ CodeDisplay: 'Condition.code-display',
17
+ /**
18
+ * Canonical CSV/list of related contained resource references or identifiers.
19
+ */
20
+ ContainedReferenceList: 'Condition.contained-reference-list',
21
+ /**
22
+ * @deprecated Use `ContainedReferenceList`.
23
+ */
24
+ ContainedResourceList: 'Condition.contained-resource-list',
25
+ /**
26
+ * @deprecated Use `ContainedReferenceList`.
27
+ */
28
+ ContainedDocuments: 'Condition.contained-documents',
29
+ /**
30
+ * @deprecated Use `ContainedReferenceList`.
31
+ */
32
+ AttachmentContentIds: 'Condition.attachment-content-ids',
33
+ Severity: 'Condition.severity',
34
+ OnsetDateTime: 'Condition.onset-datetime',
35
+ RecordedDate: 'Condition.recorded-date',
36
+ Asserter: 'Condition.asserter',
37
+ Recorder: 'Condition.recorder',
38
+ };
39
+ export var ConditionClaimsFhirApi;
40
+ (function (ConditionClaimsFhirApi) {
41
+ ConditionClaimsFhirApi["Identifier"] = "org.hl7.fhir.api.Condition.identifier";
42
+ ConditionClaimsFhirApi["Subject"] = "org.hl7.fhir.api.Condition.subject";
43
+ ConditionClaimsFhirApi["ClinicalStatus"] = "org.hl7.fhir.api.Condition.clinical-status";
44
+ ConditionClaimsFhirApi["VerificationStatus"] = "org.hl7.fhir.api.Condition.verification-status";
45
+ ConditionClaimsFhirApi["Category"] = "org.hl7.fhir.api.Condition.category";
46
+ ConditionClaimsFhirApi["Code"] = "org.hl7.fhir.api.Condition.code";
47
+ ConditionClaimsFhirApi["CodeText"] = "org.hl7.fhir.api.Condition.code-text";
48
+ ConditionClaimsFhirApi["CodeDisplay"] = "org.hl7.fhir.api.Condition.code-display";
49
+ ConditionClaimsFhirApi["Severity"] = "org.hl7.fhir.api.Condition.severity";
50
+ ConditionClaimsFhirApi["OnsetDateTime"] = "org.hl7.fhir.api.Condition.onset-datetime";
51
+ ConditionClaimsFhirApi["Recorder"] = "org.hl7.fhir.api.Condition.recorder";
52
+ })(ConditionClaimsFhirApi || (ConditionClaimsFhirApi = {}));
53
+ export const ConditionSearchParamNames = {
54
+ Identifier: 'identifier',
55
+ Subject: 'subject',
56
+ ClinicalStatus: 'clinical-status',
57
+ VerificationStatus: 'verification-status',
58
+ Category: 'category',
59
+ Code: 'code',
60
+ CodeText: 'code-text',
61
+ CodeDisplay: 'code-display',
62
+ Severity: 'severity',
63
+ OnsetDateTime: 'onset-datetime',
64
+ Recorder: 'recorder',
65
+ };
66
+ export const ConditionSearchParamToClaimKey = {
67
+ [ConditionSearchParamNames.Identifier]: ConditionClaimsFhirApi.Identifier,
68
+ [ConditionSearchParamNames.Subject]: ConditionClaimsFhirApi.Subject,
69
+ [ConditionSearchParamNames.ClinicalStatus]: ConditionClaimsFhirApi.ClinicalStatus,
70
+ [ConditionSearchParamNames.VerificationStatus]: ConditionClaimsFhirApi.VerificationStatus,
71
+ [ConditionSearchParamNames.Category]: ConditionClaimsFhirApi.Category,
72
+ [ConditionSearchParamNames.Code]: ConditionClaimsFhirApi.Code,
73
+ [ConditionSearchParamNames.CodeText]: ConditionClaimsFhirApi.CodeText,
74
+ [ConditionSearchParamNames.CodeDisplay]: ConditionClaimsFhirApi.CodeDisplay,
75
+ [ConditionSearchParamNames.Severity]: ConditionClaimsFhirApi.Severity,
76
+ [ConditionSearchParamNames.OnsetDateTime]: ConditionClaimsFhirApi.OnsetDateTime,
77
+ [ConditionSearchParamNames.Recorder]: ConditionClaimsFhirApi.Recorder,
78
+ };
79
+ export const ConditionClaimsFhirApiMap = {
80
+ [ConditionClaimsFhirApi.Identifier]: String,
81
+ [ConditionClaimsFhirApi.Subject]: String,
82
+ [ConditionClaimsFhirApi.ClinicalStatus]: String,
83
+ [ConditionClaimsFhirApi.VerificationStatus]: String,
84
+ [ConditionClaimsFhirApi.Category]: String,
85
+ [ConditionClaimsFhirApi.Code]: String,
86
+ [ConditionClaimsFhirApi.CodeText]: String,
87
+ [ConditionClaimsFhirApi.CodeDisplay]: String,
88
+ [ConditionClaimsFhirApi.Severity]: String,
89
+ [ConditionClaimsFhirApi.OnsetDateTime]: String,
90
+ [ConditionClaimsFhirApi.Recorder]: String,
91
+ };
92
+ export const ConditionClaimSpecs = [
93
+ { key: ConditionClaim.Identifier, meaning: 'Business identifier for condition record.', example: 'COND-0001' },
94
+ { key: ConditionClaim.Subject, meaning: 'Patient subject reference.', example: 'Patient/pat-123' },
95
+ { key: ConditionClaim.ClinicalStatus, meaning: 'Clinical status code.', example: 'active' },
96
+ { key: ConditionClaim.VerificationStatus, meaning: 'Verification status code.', example: 'confirmed' },
97
+ { key: ConditionClaim.Category, meaning: 'Condition category code.', example: 'problem-list-item' },
98
+ { key: ConditionClaim.Code, meaning: 'Condition code.', example: 'http://snomed.info/sct|44054006' },
99
+ { key: ConditionClaim.CodeText, meaning: 'Local-language condition label matching the resource language.', example: 'Diabetes mellitus tipo 2' },
100
+ { key: ConditionClaim.CodeDisplay, meaning: 'English/international terminology display.', example: 'Type 2 diabetes mellitus' },
101
+ { key: ConditionClaim.Severity, meaning: 'Condition severity code.', example: 'http://snomed.info/sct|24484000' },
102
+ { key: ConditionClaim.OnsetDateTime, meaning: 'Onset date/time.', example: '2026-01-03T09:30:00Z' },
103
+ { key: ConditionClaim.Recorder, meaning: 'Recorder reference.', example: 'Practitioner/prac-2' },
104
+ ];
@@ -0,0 +1,195 @@
1
+ export declare enum ClaimConsent {
2
+ 'decision' = "Consent.decision",
3
+ 'status' = "Consent.status",
4
+ 'action' = "Consent.action",
5
+ 'category' = "Consent.category",
6
+ 'categoryText' = "Consent.category-text",
7
+ 'categoryDisplay' = "Consent.category-display",
8
+ 'resourceType' = "Consent.resource-type",
9
+ 'subject' = "Consent.subject",
10
+ 'patient' = "Consent.patient",
11
+ 'actorIdentifier' = "Consent.actor-identifier",
12
+ 'actorRole' = "Consent.actor-role",
13
+ 'date' = "Consent.date",
14
+ 'periodStart' = "Consent.period-start",
15
+ 'periodEnd' = "Consent.period-end",
16
+ 'dataPeriodStart' = "Consent.data-period-start",
17
+ 'dataPeriodEnd' = "Consent.data-period-end",
18
+ 'grantor' = "Consent.grantor",
19
+ 'grantee' = "Consent.grantee",
20
+ 'manager' = "Consent.manager",
21
+ 'controller' = "Consent.controller",
22
+ 'verifiedBy' = "Consent.verified-by",
23
+ 'verifiedDate' = "Consent.verified-date",
24
+ 'purpose' = "Consent.purpose",
25
+ 'identifier' = "Consent.identifier",
26
+ 'eventBasedOn' = "Consent.event-basedon",
27
+ 'sourceReference' = "Consent.source-reference",
28
+ 'scope' = "Consent.scope",
29
+ 'scopeDisplay' = "Consent.scope-display",
30
+ 'policyRule' = "Consent.policy-rule",
31
+ 'provisionCode' = "Consent.provision-code",
32
+ 'provisionCodeDisplay' = "Consent.provision-code-display",
33
+ 'securityLabel' = "Consent.security-label",
34
+ 'documentType' = "Consent.document-type",
35
+ 'containedReferenceList' = "Consent.contained-reference-list",
36
+ /**
37
+ * @deprecated Use `containedReferenceList`.
38
+ */
39
+ 'containedResourceList' = "Consent.contained-resource-list",
40
+ /**
41
+ * @deprecated Use `containedReferenceList`.
42
+ */
43
+ 'containedDocuments' = "Consent.contained-documents",
44
+ /**
45
+ * @deprecated Use `containedReferenceList`.
46
+ */
47
+ 'attachmentContentIds' = "Consent.attachment-content-ids",
48
+ 'attachmentContentType' = "Consent.attachment-contenttype",
49
+ 'attachmentData' = "Consent.attachment-data",
50
+ 'attachmentId' = "Consent.attachment-id"
51
+ }
52
+ /** Canonical resource-catalog name used consistently by the package. */
53
+ export declare const ConsentClaim: typeof ClaimConsent;
54
+ export declare const ConsentDecisions: Readonly<{
55
+ readonly Permit: "permit";
56
+ readonly Deny: "deny";
57
+ }>;
58
+ export type ConsentDecision = typeof ConsentDecisions[keyof typeof ConsentDecisions];
59
+ /**
60
+ * Canonical FHIR R5 Consent lifecycle states.
61
+ *
62
+ * `draft` is the only state used for a professional permission request. A
63
+ * draft is carried to the controller for review and must never participate in
64
+ * authorization evaluation. Only `active` consent rules can grant access.
65
+ */
66
+ export declare const ConsentStatuses: Readonly<{
67
+ readonly Draft: "draft";
68
+ readonly Active: "active";
69
+ readonly Inactive: "inactive";
70
+ readonly NotDone: "not-done";
71
+ readonly EnteredInError: "entered-in-error";
72
+ readonly Unknown: "unknown";
73
+ }>;
74
+ export type ConsentStatus = typeof ConsentStatuses[keyof typeof ConsentStatuses];
75
+ /**
76
+ * Defines the structured, query-optimized format for storing a single, atomic consent rule
77
+ * in the vault (e.g., Firestore, CouchDB).
78
+ *
79
+ * This object is the "Query" model in a CQRS (Command Query Responsibility Segregation) pattern.
80
+ * It is generated by the `ConsentManager` from the "Command" - a set of interoperable claims
81
+ * provided in the `meta.claims` block of an incoming FHIR Consent resource.
82
+ *
83
+ * The backend's authorization engine queries against collections of these objects for high-speed
84
+ * access decisions. The original FHIR Consent resource may be stored separately for auditing.
85
+ *
86
+ * All fields are derived from claims using the reverse-DNS format, e.g., the `decision` field
87
+ * is populated from the `org.hl7.fhir.api.Consent.decision` claim.
88
+ */
89
+ export interface ConsentRule {
90
+ /**
91
+ * JSON-LD context to define the vocabulary for the rule.
92
+ * Value MUST be "org.hl7.fhir.api".
93
+ */
94
+ '@context': 'org.hl7.fhir.api';
95
+ /** FHIR Consent lifecycle state; authorization evaluators accept only `active`. */
96
+ 'Consent.status'?: ConsentStatus;
97
+ /**
98
+ * The decision of the rule: permit or deny.
99
+ * Derived from the `org.hl7.fhir.api.Consent.decision` claim.
100
+ */
101
+ 'Consent.decision': ConsentDecision;
102
+ /**
103
+ * The data sections this rule applies to, as a comma-separated list of coded values.
104
+ * Derived from the `org.hl7.fhir.api.Consent.action` claim.
105
+ * Example claim: "LOINC|48765-2,SNOMED|12345"
106
+ */
107
+ 'Consent.action': string;
108
+ /**
109
+ * The type of consent document, as a comma-serpareted list of coded values.
110
+ * Used for classifying the consent itself (e.g., for release of information).
111
+ * Derived from the `org.hl7.fhir.api.Consent.category` claim.
112
+ * Example claim: "LOINC|59284-0,LOINC|57016-8"
113
+ */
114
+ 'Consent.category'?: string;
115
+ /**
116
+ * The subject of the consent.
117
+ * Derived from the `org.hl7.fhir.api.Consent.patient.identifier` claim.
118
+ */
119
+ 'Consent.subject': string;
120
+ /**
121
+ * The identifier of the actor (jurisdiction, organization, professional) this rule applies to.
122
+ * This is the party whose access is being controlled.
123
+ * Derived from a claim like `org.hl7.fhir.api.Consent.actor.reference.identifier`.
124
+ * e.g., "urn:iso:3166-2:ES-CT", "did:web:hospital.example.com", "urn:email:dr-smith@example.com"
125
+ */
126
+ 'Consent.actor-identifier': string;
127
+ /**
128
+ * The role of the actor this rule applies to.
129
+ * Derived from a claim like `org.hl7.fhir.api.Consent.actor.role`.
130
+ * e.g., "doctor", "nurse"
131
+ */
132
+ 'Consent.actor-role': string;
133
+ /**
134
+ * The date the consent was granted (ISO 8601 Date).
135
+ * Derived from the `org.hl7.fhir.api.Consent.date` claim.
136
+ */
137
+ 'Consent.date': string;
138
+ /**
139
+ * Start of the consent's validity period (ISO 8601 DateTime).
140
+ * Note: This is different from the date the consent was signed.
141
+ * Derived from the start of the `org.hl7.fhir.api.Consent.period` claim.
142
+ */
143
+ 'Consent.period-start'?: string;
144
+ /**
145
+ * End of the consent's validity period (ISO 8601 DateTime).
146
+ * Derived from the end of the `org.hl7.fhir.api.Consent.period` claim.
147
+ */
148
+ 'Consent.period-end'?: string;
149
+ /** Timeframe of the governed data; distinct from Consent validity. */
150
+ 'Consent.data-period-start'?: string;
151
+ 'Consent.data-period-end'?: string;
152
+ /** R5 grantor, grantee, workflow manager and enforcement controller references. */
153
+ 'Consent.grantor'?: string;
154
+ 'Consent.grantee'?: string;
155
+ 'Consent.manager'?: string;
156
+ 'Consent.controller'?: string;
157
+ /**
158
+ * The party to whom the consent is granted.
159
+ * Use both 'Consent.actor-identifier' and 'Consent.actor-role' instead.
160
+ * Derived from the `org.hl7.fhir.api.Consent.grantee` claim.
161
+ */
162
+ /**
163
+ * The DID of the entity (person or system) that verified the consent.
164
+ * Derived from the `org.hl7.fhir.api.Consent.verified-by` claim.
165
+ */
166
+ 'Consent.verified-by'?: string;
167
+ /**
168
+ * The date the consent was verified (ISO 8601 DateTime).
169
+ * Derived from the `org.hl7.fhir.api.Consent.verified-date` claim.
170
+ */
171
+ 'Consent.verified-date'?: string;
172
+ /**
173
+ * The purpose of use for this rule.
174
+ * Derived from the `org.hl7.fhir.api.Consent.purpose` claim.
175
+ * e.g., "ETREAT", "CAREMGT"
176
+ */
177
+ 'Consent.purpose': string;
178
+ /**
179
+ * The original Consent resource ID for auditing.
180
+ * Derived from the `org.hl7.fhir.api.Consent.identifier` claim.
181
+ */
182
+ 'Consent.identifier': string;
183
+ /** Governed FHIR resource types and security/content classifications. */
184
+ 'Consent.resource-type'?: string;
185
+ 'Consent.security-label'?: string;
186
+ 'Consent.document-type'?: string;
187
+ 'Consent.provision-code'?: string;
188
+ 'Consent.contained-reference-list'?: string;
189
+ 'Consent.contained-resource-list'?: string;
190
+ 'Consent.contained-documents'?: string;
191
+ 'Consent.attachment-content-ids'?: string;
192
+ 'Consent.attachment-contenttype'?: string;
193
+ 'Consent.attachment-data'?: string;
194
+ 'Consent.attachment-id'?: string;
195
+ }
@@ -0,0 +1,74 @@
1
+ // src/models/consent-rule.ts
2
+ export var ClaimConsent;
3
+ (function (ClaimConsent) {
4
+ ClaimConsent["decision"] = "Consent.decision";
5
+ ClaimConsent["status"] = "Consent.status";
6
+ ClaimConsent["action"] = "Consent.action";
7
+ ClaimConsent["category"] = "Consent.category";
8
+ ClaimConsent["categoryText"] = "Consent.category-text";
9
+ ClaimConsent["categoryDisplay"] = "Consent.category-display";
10
+ ClaimConsent["resourceType"] = "Consent.resource-type";
11
+ ClaimConsent["subject"] = "Consent.subject";
12
+ ClaimConsent["patient"] = "Consent.patient";
13
+ ClaimConsent["actorIdentifier"] = "Consent.actor-identifier";
14
+ ClaimConsent["actorRole"] = "Consent.actor-role";
15
+ ClaimConsent["date"] = "Consent.date";
16
+ ClaimConsent["periodStart"] = "Consent.period-start";
17
+ ClaimConsent["periodEnd"] = "Consent.period-end";
18
+ ClaimConsent["dataPeriodStart"] = "Consent.data-period-start";
19
+ ClaimConsent["dataPeriodEnd"] = "Consent.data-period-end";
20
+ ClaimConsent["grantor"] = "Consent.grantor";
21
+ ClaimConsent["grantee"] = "Consent.grantee";
22
+ ClaimConsent["manager"] = "Consent.manager";
23
+ ClaimConsent["controller"] = "Consent.controller";
24
+ ClaimConsent["verifiedBy"] = "Consent.verified-by";
25
+ ClaimConsent["verifiedDate"] = "Consent.verified-date";
26
+ ClaimConsent["purpose"] = "Consent.purpose";
27
+ ClaimConsent["identifier"] = "Consent.identifier";
28
+ ClaimConsent["eventBasedOn"] = "Consent.event-basedon";
29
+ ClaimConsent["sourceReference"] = "Consent.source-reference";
30
+ ClaimConsent["scope"] = "Consent.scope";
31
+ ClaimConsent["scopeDisplay"] = "Consent.scope-display";
32
+ ClaimConsent["policyRule"] = "Consent.policy-rule";
33
+ ClaimConsent["provisionCode"] = "Consent.provision-code";
34
+ ClaimConsent["provisionCodeDisplay"] = "Consent.provision-code-display";
35
+ ClaimConsent["securityLabel"] = "Consent.security-label";
36
+ ClaimConsent["documentType"] = "Consent.document-type";
37
+ ClaimConsent["containedReferenceList"] = "Consent.contained-reference-list";
38
+ /**
39
+ * @deprecated Use `containedReferenceList`.
40
+ */
41
+ ClaimConsent["containedResourceList"] = "Consent.contained-resource-list";
42
+ /**
43
+ * @deprecated Use `containedReferenceList`.
44
+ */
45
+ ClaimConsent["containedDocuments"] = "Consent.contained-documents";
46
+ /**
47
+ * @deprecated Use `containedReferenceList`.
48
+ */
49
+ ClaimConsent["attachmentContentIds"] = "Consent.attachment-content-ids";
50
+ ClaimConsent["attachmentContentType"] = "Consent.attachment-contenttype";
51
+ ClaimConsent["attachmentData"] = "Consent.attachment-data";
52
+ ClaimConsent["attachmentId"] = "Consent.attachment-id";
53
+ })(ClaimConsent || (ClaimConsent = {}));
54
+ /** Canonical resource-catalog name used consistently by the package. */
55
+ export const ConsentClaim = ClaimConsent;
56
+ export const ConsentDecisions = Object.freeze({
57
+ Permit: 'permit',
58
+ Deny: 'deny',
59
+ });
60
+ /**
61
+ * Canonical FHIR R5 Consent lifecycle states.
62
+ *
63
+ * `draft` is the only state used for a professional permission request. A
64
+ * draft is carried to the controller for review and must never participate in
65
+ * authorization evaluation. Only `active` consent rules can grant access.
66
+ */
67
+ export const ConsentStatuses = Object.freeze({
68
+ Draft: 'draft',
69
+ Active: 'active',
70
+ Inactive: 'inactive',
71
+ NotDone: 'not-done',
72
+ EnteredInError: 'entered-in-error',
73
+ Unknown: 'unknown',
74
+ });
@@ -0,0 +1,16 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const CoverageClaim: {
3
+ readonly Identifier: "Coverage.identifier";
4
+ readonly Status: "Coverage.status";
5
+ readonly Type: "Coverage.type";
6
+ readonly PolicyHolder: "Coverage.policy-holder";
7
+ readonly Subscriber: "Coverage.subscriber";
8
+ readonly Beneficiary: "Coverage.beneficiary";
9
+ readonly Relationship: "Coverage.relationship";
10
+ readonly PeriodStart: "Coverage.period-start";
11
+ readonly PeriodEnd: "Coverage.period-end";
12
+ readonly Payor: "Coverage.payor";
13
+ readonly Class: "Coverage.class";
14
+ };
15
+ export type CoverageClaimKey = typeof CoverageClaim[keyof typeof CoverageClaim];
16
+ export declare const CoverageClaimSpecs: ClaimSpec[];
@@ -0,0 +1,28 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/coverage-claims.ts
3
+ export const CoverageClaim = {
4
+ Identifier: 'Coverage.identifier',
5
+ Status: 'Coverage.status',
6
+ Type: 'Coverage.type',
7
+ PolicyHolder: 'Coverage.policy-holder',
8
+ Subscriber: 'Coverage.subscriber',
9
+ Beneficiary: 'Coverage.beneficiary',
10
+ Relationship: 'Coverage.relationship',
11
+ PeriodStart: 'Coverage.period-start',
12
+ PeriodEnd: 'Coverage.period-end',
13
+ Payor: 'Coverage.payor',
14
+ Class: 'Coverage.class',
15
+ };
16
+ export const CoverageClaimSpecs = [
17
+ { key: CoverageClaim.Identifier, meaning: 'Business identifier.', example: 'cov-001' },
18
+ { key: CoverageClaim.Status, meaning: 'Coverage status.', example: 'active' },
19
+ { key: CoverageClaim.Type, meaning: 'Coverage type token.', example: 'http://terminology.hl7.org/CodeSystem/v3-ActCode|EHCPOL' },
20
+ { key: CoverageClaim.PolicyHolder, meaning: 'Policy holder reference.', example: 'RelatedPerson/rel-1' },
21
+ { key: CoverageClaim.Subscriber, meaning: 'Subscriber reference.', example: 'RelatedPerson/rel-1' },
22
+ { key: CoverageClaim.Beneficiary, meaning: 'Beneficiary reference.', example: 'did:web:patient.example.org' },
23
+ { key: CoverageClaim.Relationship, meaning: 'Relationship token.', example: 'http://terminology.hl7.org/CodeSystem/subscriber-relationship|self' },
24
+ { key: CoverageClaim.PeriodStart, meaning: 'Coverage start.', example: '2026-01-01' },
25
+ { key: CoverageClaim.PeriodEnd, meaning: 'Coverage end.', example: '2026-12-31' },
26
+ { key: CoverageClaim.Payor, meaning: 'Payor references (CSV).', example: 'Organization/payer-1' },
27
+ { key: CoverageClaim.Class, meaning: 'Coverage class values (CSV).', example: 'group|G-001,plan|P-001' },
28
+ ];
@@ -0,0 +1,20 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const DeviceClaim: {
3
+ readonly DeviceName: "Device.device-name";
4
+ readonly Identifier: "Device.identifier";
5
+ readonly Location: "Device.location";
6
+ readonly Manufacturer: "Device.manufacturer";
7
+ readonly Model: "Device.model";
8
+ readonly Organization: "Device.organization";
9
+ readonly Patient: "Device.patient";
10
+ readonly SerialNumber: "Device.serial-number";
11
+ readonly Status: "Device.status";
12
+ readonly Type: "Device.type";
13
+ readonly TypeText: "Device.type-text";
14
+ readonly TypeDisplay: "Device.type-display";
15
+ readonly UdiCarrier: "Device.udi-carrier";
16
+ readonly Url: "Device.url";
17
+ readonly Note: "Device.note";
18
+ };
19
+ export type DeviceClaimKey = typeof DeviceClaim[keyof typeof DeviceClaim];
20
+ export declare const DeviceClaimSpecs: ClaimSpec[];
@@ -0,0 +1,36 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/device-claims.ts
3
+ export const DeviceClaim = {
4
+ DeviceName: 'Device.device-name',
5
+ Identifier: 'Device.identifier',
6
+ Location: 'Device.location',
7
+ Manufacturer: 'Device.manufacturer',
8
+ Model: 'Device.model',
9
+ Organization: 'Device.organization',
10
+ Patient: 'Device.patient',
11
+ SerialNumber: 'Device.serial-number',
12
+ Status: 'Device.status',
13
+ Type: 'Device.type',
14
+ TypeText: 'Device.type-text',
15
+ TypeDisplay: 'Device.type-display',
16
+ UdiCarrier: 'Device.udi-carrier',
17
+ Url: 'Device.url',
18
+ Note: 'Device.note',
19
+ };
20
+ export const DeviceClaimSpecs = [
21
+ { key: DeviceClaim.DeviceName, meaning: 'Human-readable device name.', example: 'Insulin pump' },
22
+ { key: DeviceClaim.Identifier, meaning: 'Business identifier.', example: 'device-001' },
23
+ { key: DeviceClaim.Location, meaning: 'Location reference.', example: 'Location/loc-1' },
24
+ { key: DeviceClaim.Manufacturer, meaning: 'Manufacturer name.', example: 'Medtronic' },
25
+ { key: DeviceClaim.Model, meaning: 'Model number or name.', example: 'MiniMed 780G' },
26
+ { key: DeviceClaim.Organization, meaning: 'Owning organization reference.', example: 'Organization/org-1' },
27
+ { key: DeviceClaim.Patient, meaning: 'Patient reference.', example: 'did:web:patient.example.org' },
28
+ { key: DeviceClaim.SerialNumber, meaning: 'Serial number.', example: 'SN-12345' },
29
+ { key: DeviceClaim.Status, meaning: 'Device status.', example: 'active' },
30
+ { key: DeviceClaim.Type, meaning: 'Device type token.', example: 'http://snomed.info/sct|706172005' },
31
+ { key: DeviceClaim.TypeText, meaning: 'Local-language device type label.', example: 'Bomba de insulina' },
32
+ { key: DeviceClaim.TypeDisplay, meaning: 'Canonical/international device type display.', example: 'Insulin pump' },
33
+ { key: DeviceClaim.UdiCarrier, meaning: 'UDI carrier string.', example: '(01)09504000059118(17)220101(10)ABCD1234' },
34
+ { key: DeviceClaim.Url, meaning: 'Canonical URL.', example: 'https://device.example.org/catalogue/123' },
35
+ { key: DeviceClaim.Note, meaning: 'Clinical note text.', example: 'Patient-owned continuous glucose monitor.' },
36
+ ];
@@ -0,0 +1,17 @@
1
+ import type { ClaimSpec } from './claim-types.js';
2
+ export declare const DeviceUseStatementClaim: {
3
+ readonly Identifier: "DeviceUseStatement.identifier";
4
+ readonly Subject: "DeviceUseStatement.subject";
5
+ readonly Status: "DeviceUseStatement.status";
6
+ readonly Device: "DeviceUseStatement.device";
7
+ readonly DeviceDisplay: "DeviceUseStatement.device-display";
8
+ readonly RecordedOn: "DeviceUseStatement.recorded-on";
9
+ /** @deprecated Read-only key from historical persisted rows. */
10
+ readonly RecordedOnLegacy: "DeviceUseStatement.recordedon";
11
+ readonly TimingDateTime: "DeviceUseStatement.timing-datetime";
12
+ readonly TimingAbsentReason: "DeviceUseStatement.timing-absent-reason";
13
+ readonly ReasonCode: "DeviceUseStatement.reason-code";
14
+ readonly Source: "DeviceUseStatement.source";
15
+ };
16
+ export type DeviceUseStatementClaimKey = typeof DeviceUseStatementClaim[keyof typeof DeviceUseStatementClaim];
17
+ export declare const DeviceUseStatementClaimSpecs: ClaimSpec[];
@@ -0,0 +1,28 @@
1
+ // Copyright 2026 Conéctate Soluciones y Aplicaciones SL under the Apache License, Version 2.0.
2
+ // File: src/models/interoperable-claims/device-use-statement-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 DeviceUseStatementClaim = {
5
+ Identifier: 'DeviceUseStatement.identifier',
6
+ Subject: 'DeviceUseStatement.subject',
7
+ Status: 'DeviceUseStatement.status',
8
+ Device: 'DeviceUseStatement.device',
9
+ DeviceDisplay: 'DeviceUseStatement.device-display',
10
+ RecordedOn: 'DeviceUseStatement.recorded-on',
11
+ /** @deprecated Read-only key from historical persisted rows. */
12
+ RecordedOnLegacy: 'DeviceUseStatement.recordedon',
13
+ TimingDateTime: 'DeviceUseStatement.timing-datetime',
14
+ TimingAbsentReason: 'DeviceUseStatement.timing-absent-reason',
15
+ ReasonCode: 'DeviceUseStatement.reason-code',
16
+ Source: 'DeviceUseStatement.source',
17
+ };
18
+ export const DeviceUseStatementClaimSpecs = [
19
+ { key: DeviceUseStatementClaim.Identifier, meaning: 'Business identifier for device-use record.', example: 'DUS-0001' },
20
+ { key: DeviceUseStatementClaim.Subject, meaning: 'Patient subject reference.', example: 'Patient/pat-123' },
21
+ { key: DeviceUseStatementClaim.Status, meaning: 'Use statement status.', example: 'active' },
22
+ { key: DeviceUseStatementClaim.Device, meaning: 'Device reference.', example: 'Device/dev-777' },
23
+ { key: DeviceUseStatementClaim.DeviceDisplay, meaning: 'Human-readable device name accompanying the reference.', example: 'Hip prosthesis' },
24
+ { key: DeviceUseStatementClaim.RecordedOn, meaning: 'Record creation date/time.', example: '2026-03-01T12:00:00Z' },
25
+ { key: DeviceUseStatementClaim.TimingDateTime, meaning: 'When the use happened.', example: '2026-03-01T08:00:00Z' },
26
+ { key: DeviceUseStatementClaim.ReasonCode, meaning: 'Reason code for use.', example: 'http://snomed.info/sct|182840001' },
27
+ { key: DeviceUseStatementClaim.Source, meaning: 'Source actor reference.', example: 'Practitioner/prac-8' },
28
+ ];