fhir-runtime 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/LICENSE +21 -0
  3. package/README.md +261 -0
  4. package/dist/cjs/index.cjs +7368 -0
  5. package/dist/cjs/index.cjs.map +7 -0
  6. package/dist/cjs/index.d.ts +4224 -0
  7. package/dist/cjs/package.json +5 -0
  8. package/dist/esm/index.d.ts +4224 -0
  9. package/dist/esm/index.mjs +7250 -0
  10. package/dist/esm/index.mjs.map +7 -0
  11. package/dist/esm/package.json +5 -0
  12. package/dist/index.d.ts +4224 -0
  13. package/dist/lib/context/bundle-loader.d.ts +124 -0
  14. package/dist/lib/context/bundle-loader.d.ts.map +1 -0
  15. package/dist/lib/context/core-definitions/index.d.ts +72 -0
  16. package/dist/lib/context/core-definitions/index.d.ts.map +1 -0
  17. package/dist/lib/context/errors.d.ts +114 -0
  18. package/dist/lib/context/errors.d.ts.map +1 -0
  19. package/dist/lib/context/fhir-context.d.ts +72 -0
  20. package/dist/lib/context/fhir-context.d.ts.map +1 -0
  21. package/dist/lib/context/index.d.ts +21 -0
  22. package/dist/lib/context/index.d.ts.map +1 -0
  23. package/dist/lib/context/inheritance-resolver.d.ts +98 -0
  24. package/dist/lib/context/inheritance-resolver.d.ts.map +1 -0
  25. package/dist/lib/context/inner-type-extractor.d.ts +80 -0
  26. package/dist/lib/context/inner-type-extractor.d.ts.map +1 -0
  27. package/dist/lib/context/loaders/composite-loader.d.ts +47 -0
  28. package/dist/lib/context/loaders/composite-loader.d.ts.map +1 -0
  29. package/dist/lib/context/loaders/file-loader.d.ts +47 -0
  30. package/dist/lib/context/loaders/file-loader.d.ts.map +1 -0
  31. package/dist/lib/context/loaders/index.d.ts +11 -0
  32. package/dist/lib/context/loaders/index.d.ts.map +1 -0
  33. package/dist/lib/context/loaders/memory-loader.d.ts +42 -0
  34. package/dist/lib/context/loaders/memory-loader.d.ts.map +1 -0
  35. package/dist/lib/context/registry.d.ts +116 -0
  36. package/dist/lib/context/registry.d.ts.map +1 -0
  37. package/dist/lib/context/types.d.ts +266 -0
  38. package/dist/lib/context/types.d.ts.map +1 -0
  39. package/dist/lib/fhirpath/atoms.d.ts +228 -0
  40. package/dist/lib/fhirpath/atoms.d.ts.map +1 -0
  41. package/dist/lib/fhirpath/cache.d.ts +79 -0
  42. package/dist/lib/fhirpath/cache.d.ts.map +1 -0
  43. package/dist/lib/fhirpath/date.d.ts +17 -0
  44. package/dist/lib/fhirpath/date.d.ts.map +1 -0
  45. package/dist/lib/fhirpath/functions.d.ts +28 -0
  46. package/dist/lib/fhirpath/functions.d.ts.map +1 -0
  47. package/dist/lib/fhirpath/index.d.ts +20 -0
  48. package/dist/lib/fhirpath/index.d.ts.map +1 -0
  49. package/dist/lib/fhirpath/lexer/parse.d.ts +100 -0
  50. package/dist/lib/fhirpath/lexer/parse.d.ts.map +1 -0
  51. package/dist/lib/fhirpath/lexer/tokenize.d.ts +80 -0
  52. package/dist/lib/fhirpath/lexer/tokenize.d.ts.map +1 -0
  53. package/dist/lib/fhirpath/parse.d.ts +101 -0
  54. package/dist/lib/fhirpath/parse.d.ts.map +1 -0
  55. package/dist/lib/fhirpath/tokenize.d.ts +20 -0
  56. package/dist/lib/fhirpath/tokenize.d.ts.map +1 -0
  57. package/dist/lib/fhirpath/types.d.ts +111 -0
  58. package/dist/lib/fhirpath/types.d.ts.map +1 -0
  59. package/dist/lib/fhirpath/utils.d.ts +81 -0
  60. package/dist/lib/fhirpath/utils.d.ts.map +1 -0
  61. package/dist/lib/index.d.ts +24 -0
  62. package/dist/lib/index.d.ts.map +1 -0
  63. package/dist/lib/model/canonical-profile.d.ts +381 -0
  64. package/dist/lib/model/canonical-profile.d.ts.map +1 -0
  65. package/dist/lib/model/element-definition.d.ts +503 -0
  66. package/dist/lib/model/element-definition.d.ts.map +1 -0
  67. package/dist/lib/model/index.d.ts +14 -0
  68. package/dist/lib/model/index.d.ts.map +1 -0
  69. package/dist/lib/model/primitives.d.ts +464 -0
  70. package/dist/lib/model/primitives.d.ts.map +1 -0
  71. package/dist/lib/model/structure-definition.d.ts +263 -0
  72. package/dist/lib/model/structure-definition.d.ts.map +1 -0
  73. package/dist/lib/parser/choice-type-parser.d.ts +182 -0
  74. package/dist/lib/parser/choice-type-parser.d.ts.map +1 -0
  75. package/dist/lib/parser/index.d.ts +16 -0
  76. package/dist/lib/parser/index.d.ts.map +1 -0
  77. package/dist/lib/parser/json-parser.d.ts +171 -0
  78. package/dist/lib/parser/json-parser.d.ts.map +1 -0
  79. package/dist/lib/parser/parse-error.d.ts +146 -0
  80. package/dist/lib/parser/parse-error.d.ts.map +1 -0
  81. package/dist/lib/parser/primitive-parser.d.ts +136 -0
  82. package/dist/lib/parser/primitive-parser.d.ts.map +1 -0
  83. package/dist/lib/parser/serializer.d.ts +64 -0
  84. package/dist/lib/parser/serializer.d.ts.map +1 -0
  85. package/dist/lib/parser/structure-definition-parser.d.ts +63 -0
  86. package/dist/lib/parser/structure-definition-parser.d.ts.map +1 -0
  87. package/dist/lib/profile/canonical-builder.d.ts +87 -0
  88. package/dist/lib/profile/canonical-builder.d.ts.map +1 -0
  89. package/dist/lib/profile/constraint-merger.d.ts +100 -0
  90. package/dist/lib/profile/constraint-merger.d.ts.map +1 -0
  91. package/dist/lib/profile/element-merger.d.ts +80 -0
  92. package/dist/lib/profile/element-merger.d.ts.map +1 -0
  93. package/dist/lib/profile/element-sorter.d.ts +81 -0
  94. package/dist/lib/profile/element-sorter.d.ts.map +1 -0
  95. package/dist/lib/profile/errors.d.ts +150 -0
  96. package/dist/lib/profile/errors.d.ts.map +1 -0
  97. package/dist/lib/profile/index.d.ts +27 -0
  98. package/dist/lib/profile/index.d.ts.map +1 -0
  99. package/dist/lib/profile/path-utils.d.ts +180 -0
  100. package/dist/lib/profile/path-utils.d.ts.map +1 -0
  101. package/dist/lib/profile/slicing-handler.d.ts +121 -0
  102. package/dist/lib/profile/slicing-handler.d.ts.map +1 -0
  103. package/dist/lib/profile/snapshot-generator.d.ts +73 -0
  104. package/dist/lib/profile/snapshot-generator.d.ts.map +1 -0
  105. package/dist/lib/profile/types.d.ts +220 -0
  106. package/dist/lib/profile/types.d.ts.map +1 -0
  107. package/dist/lib/validator/errors.d.ts +83 -0
  108. package/dist/lib/validator/errors.d.ts.map +1 -0
  109. package/dist/lib/validator/index.d.ts +23 -0
  110. package/dist/lib/validator/index.d.ts.map +1 -0
  111. package/dist/lib/validator/invariant-validator.d.ts +62 -0
  112. package/dist/lib/validator/invariant-validator.d.ts.map +1 -0
  113. package/dist/lib/validator/path-extractor.d.ts +123 -0
  114. package/dist/lib/validator/path-extractor.d.ts.map +1 -0
  115. package/dist/lib/validator/slicing-validator.d.ts +119 -0
  116. package/dist/lib/validator/slicing-validator.d.ts.map +1 -0
  117. package/dist/lib/validator/structure-validator.d.ts +74 -0
  118. package/dist/lib/validator/structure-validator.d.ts.map +1 -0
  119. package/dist/lib/validator/types.d.ts +288 -0
  120. package/dist/lib/validator/types.d.ts.map +1 -0
  121. package/dist/lib/validator/validation-rules.d.ts +198 -0
  122. package/dist/lib/validator/validation-rules.d.ts.map +1 -0
  123. package/dist/tsdoc-metadata.json +11 -0
  124. package/package.json +76 -0
@@ -0,0 +1,464 @@
1
+ /**
2
+ * FHIR R4 Primitive Types, Common Enums, and Base Complex Types
3
+ *
4
+ * This file defines the foundational type system for the fhir-core package.
5
+ * All types are pure type definitions with zero runtime logic.
6
+ *
7
+ * @see https://hl7.org/fhir/R4/datatypes.html
8
+ * @module fhir-model
9
+ */
10
+ /**
11
+ * Brand symbol used to distinguish FHIR primitive types at compile time.
12
+ * This provides nominal typing over TypeScript's structural type system,
13
+ * preventing accidental assignment between semantically different types
14
+ * (e.g., assigning a FhirUri to a FhirCode) while maintaining zero runtime overhead.
15
+ */
16
+ declare const __brand: unique symbol;
17
+ /**
18
+ * Generic branded type. Intersects a base type with a unique brand tag.
19
+ * @typeParam Base - The underlying TypeScript type (string, number, boolean)
20
+ * @typeParam Brand - A unique string literal identifying the FHIR type
21
+ */
22
+ type Branded<Base, Brand extends string> = Base & {
23
+ readonly [__brand]: Brand;
24
+ };
25
+ /**
26
+ * FHIR boolean: true | false
27
+ * @see https://hl7.org/fhir/R4/datatypes.html#boolean
28
+ */
29
+ export type FhirBoolean = Branded<boolean, 'FhirBoolean'>;
30
+ /**
31
+ * FHIR integer: whole numbers in the range -2,147,483,648..2,147,483,647
32
+ * Regex: `[0]|[-+]?[1-9][0-9]*`
33
+ * @see https://hl7.org/fhir/R4/datatypes.html#integer
34
+ */
35
+ export type FhirInteger = Branded<number, 'FhirInteger'>;
36
+ /**
37
+ * FHIR string: a sequence of Unicode characters.
38
+ * Regex: `[ \r\n\t\S]+`
39
+ * Note: strings SHOULD not contain Unicode character points below 32,
40
+ * except for horizontal tab, carriage return, and line feed.
41
+ * @see https://hl7.org/fhir/R4/datatypes.html#string
42
+ */
43
+ export type FhirString = Branded<string, 'FhirString'>;
44
+ /**
45
+ * FHIR decimal: rational numbers with implicit precision.
46
+ * Regex: `-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?`
47
+ * Note: precision of the decimal value has significance
48
+ * (e.g., 0.010 is regarded as different to 0.01).
49
+ * @see https://hl7.org/fhir/R4/datatypes.html#decimal
50
+ */
51
+ export type FhirDecimal = Branded<number, 'FhirDecimal'>;
52
+ /**
53
+ * FHIR uri: a Uniform Resource Identifier.
54
+ * Regex: `\S*`
55
+ * @see https://hl7.org/fhir/R4/datatypes.html#uri
56
+ */
57
+ export type FhirUri = Branded<string, 'FhirUri'>;
58
+ /**
59
+ * FHIR url: a Uniform Resource Locator (a subset of uri).
60
+ * Must start with http:, https:, ftp:, mailto:, or mllp:.
61
+ * @see https://hl7.org/fhir/R4/datatypes.html#url
62
+ */
63
+ export type FhirUrl = Branded<string, 'FhirUrl'>;
64
+ /**
65
+ * FHIR canonical: a URI that refers to a resource by its canonical URL,
66
+ * optionally with a version suffix `|version`.
67
+ * @see https://hl7.org/fhir/R4/datatypes.html#canonical
68
+ */
69
+ export type FhirCanonical = Branded<string, 'FhirCanonical'>;
70
+ /**
71
+ * FHIR base64Binary: base64 encoded content (RFC 4648).
72
+ * Regex: `(\s*([0-9a-zA-Z\+\/\=]){4}\s*)+`
73
+ * @see https://hl7.org/fhir/R4/datatypes.html#base64Binary
74
+ */
75
+ export type FhirBase64Binary = Branded<string, 'FhirBase64Binary'>;
76
+ /**
77
+ * FHIR instant: an instant in time with at least second precision
78
+ * and always includes a timezone.
79
+ * Format: `YYYY-MM-DDThh:mm:ss.sss+zz:zz`
80
+ * Regex: `([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))`
81
+ * @see https://hl7.org/fhir/R4/datatypes.html#instant
82
+ */
83
+ export type FhirInstant = Branded<string, 'FhirInstant'>;
84
+ /**
85
+ * FHIR date: a date or partial date (year, year-month, or year-month-day).
86
+ * No timezone. No time.
87
+ * Format: `YYYY(-MM(-DD)?)?`
88
+ * Regex: `([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?`
89
+ * @see https://hl7.org/fhir/R4/datatypes.html#date
90
+ */
91
+ export type FhirDate = Branded<string, 'FhirDate'>;
92
+ /**
93
+ * FHIR dateTime: a date, date-time, or partial date with optional time and timezone.
94
+ * Format: `YYYY(-MM(-DD(Thh:mm:ss(.sss)?(Z|(+|-)hh:mm))?)?)?`
95
+ * @see https://hl7.org/fhir/R4/datatypes.html#dateTime
96
+ */
97
+ export type FhirDateTime = Branded<string, 'FhirDateTime'>;
98
+ /**
99
+ * FHIR time: a time of day with no date and no timezone.
100
+ * Format: `hh:mm:ss(.sss)?`
101
+ * Regex: `([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?`
102
+ * @see https://hl7.org/fhir/R4/datatypes.html#time
103
+ */
104
+ export type FhirTime = Branded<string, 'FhirTime'>;
105
+ /**
106
+ * FHIR code: a string that is constrained to the set of allowed values
107
+ * from a controlled vocabulary (value set).
108
+ * Regex: `[^\s]+(\s[^\s]+)*`
109
+ * @see https://hl7.org/fhir/R4/datatypes.html#code
110
+ */
111
+ export type FhirCode = Branded<string, 'FhirCode'>;
112
+ /**
113
+ * FHIR oid: an OID represented as a URI (RFC 3001).
114
+ * Format: `urn:oid:[0-2](\.(0|[1-9][0-9]*))+`
115
+ * @see https://hl7.org/fhir/R4/datatypes.html#oid
116
+ */
117
+ export type FhirOid = Branded<string, 'FhirOid'>;
118
+ /**
119
+ * FHIR id: any combination of upper- or lower-case ASCII letters,
120
+ * numerals, '-', and '.', with a length limit of 64 characters.
121
+ * Regex: `[A-Za-z0-9\-\.]{1,64}`
122
+ * @see https://hl7.org/fhir/R4/datatypes.html#id
123
+ */
124
+ export type FhirId = Branded<string, 'FhirId'>;
125
+ /**
126
+ * FHIR markdown: a FHIR string that may contain markdown syntax.
127
+ * Systems are not required to have markdown support.
128
+ * @see https://hl7.org/fhir/R4/datatypes.html#markdown
129
+ */
130
+ export type FhirMarkdown = Branded<string, 'FhirMarkdown'>;
131
+ /**
132
+ * FHIR unsignedInt: non-negative integer in the range 0..2,147,483,647.
133
+ * Regex: `[0]|([1-9][0-9]*)`
134
+ * @see https://hl7.org/fhir/R4/datatypes.html#unsignedInt
135
+ */
136
+ export type FhirUnsignedInt = Branded<number, 'FhirUnsignedInt'>;
137
+ /**
138
+ * FHIR positiveInt: positive integer in the range 1..2,147,483,647.
139
+ * Regex: `+?[1-9][0-9]*`
140
+ * @see https://hl7.org/fhir/R4/datatypes.html#positiveInt
141
+ */
142
+ export type FhirPositiveInt = Branded<number, 'FhirPositiveInt'>;
143
+ /**
144
+ * FHIR uuid: a UUID expressed as a URI (RFC 4122).
145
+ * Format: `urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}`
146
+ * @see https://hl7.org/fhir/R4/datatypes.html#uuid
147
+ */
148
+ export type FhirUuid = Branded<string, 'FhirUuid'>;
149
+ /**
150
+ * FHIR xhtml: limited XHTML content as defined in the Narrative datatype.
151
+ * @see https://hl7.org/fhir/R4/datatypes.html#xhtml
152
+ * @see https://hl7.org/fhir/R4/narrative.html
153
+ */
154
+ export type FhirXhtml = Branded<string, 'FhirXhtml'>;
155
+ /**
156
+ * Publication status of a FHIR conformance resource.
157
+ * @see https://hl7.org/fhir/R4/valueset-publication-status.html
158
+ */
159
+ export type PublicationStatus = 'draft' | 'active' | 'retired' | 'unknown';
160
+ /**
161
+ * The kind of structure being defined by a StructureDefinition.
162
+ * @see https://hl7.org/fhir/R4/valueset-structure-definition-kind.html
163
+ */
164
+ export type StructureDefinitionKind = 'primitive-type' | 'complex-type' | 'resource' | 'logical';
165
+ /**
166
+ * Whether a StructureDefinition is a specialization or a constraint.
167
+ * - `specialization`: defines a new type (e.g., Patient specializes DomainResource)
168
+ * - `constraint`: constrains an existing type (e.g., USCorePatient constrains Patient)
169
+ * @see https://hl7.org/fhir/R4/valueset-type-derivation-rule.html
170
+ */
171
+ export type TypeDerivationRule = 'specialization' | 'constraint';
172
+ /**
173
+ * The context type for an extension definition.
174
+ * @see https://hl7.org/fhir/R4/valueset-extension-context-type.html
175
+ */
176
+ export type ExtensionContextType = 'fhirpath' | 'element' | 'extension';
177
+ /**
178
+ * FHIR version identifier.
179
+ * @see https://hl7.org/fhir/R4/valueset-FHIR-version.html
180
+ */
181
+ export type FhirVersionCode = '0.01' | '0.05' | '0.06' | '0.11' | '0.0.80' | '0.0.81' | '0.0.82' | '0.4.0' | '0.5.0' | '1.0.0' | '1.0.1' | '1.0.2' | '1.1.0' | '1.4.0' | '1.6.0' | '1.8.0' | '3.0.0' | '3.0.1' | '3.0.2' | '3.3.0' | '3.5.0' | '4.0.0' | '4.0.1';
182
+ /**
183
+ * How a property is represented when serialized.
184
+ * @see https://hl7.org/fhir/R4/valueset-property-representation.html
185
+ */
186
+ export type PropertyRepresentation = 'xmlAttr' | 'xmlText' | 'typeAttr' | 'cdaText' | 'xhtml';
187
+ /**
188
+ * How slices are interpreted when evaluating an instance.
189
+ * @see https://hl7.org/fhir/R4/valueset-resource-slicing-rules.html
190
+ */
191
+ export type SlicingRules = 'closed' | 'open' | 'openAtEnd';
192
+ /**
193
+ * How an element value is interpreted when discrimination is evaluated.
194
+ * @see https://hl7.org/fhir/R4/valueset-discriminator-type.html
195
+ */
196
+ export type DiscriminatorType = 'value' | 'exists' | 'pattern' | 'type' | 'profile';
197
+ /**
198
+ * How resource references can be aggregated.
199
+ * @see https://hl7.org/fhir/R4/valueset-resource-aggregation-mode.html
200
+ */
201
+ export type AggregationMode = 'contained' | 'referenced' | 'bundled';
202
+ /**
203
+ * Whether all resource references need to be version-specific.
204
+ * @see https://hl7.org/fhir/R4/valueset-reference-version-rules.html
205
+ */
206
+ export type ReferenceVersionRules = 'either' | 'independent' | 'specific';
207
+ /**
208
+ * The severity of a constraint violation.
209
+ * @see https://hl7.org/fhir/R4/valueset-constraint-severity.html
210
+ */
211
+ export type ConstraintSeverity = 'error' | 'warning';
212
+ /**
213
+ * Indication of the degree of conformance expectations associated with a binding.
214
+ * @see https://hl7.org/fhir/R4/valueset-binding-strength.html
215
+ */
216
+ export type BindingStrength = 'required' | 'extensible' | 'preferred' | 'example';
217
+ /**
218
+ * The status of a narrative.
219
+ * @see https://hl7.org/fhir/R4/valueset-narrative-status.html
220
+ */
221
+ export type NarrativeStatus = 'generated' | 'extensions' | 'additional' | 'empty';
222
+ /**
223
+ * Base definition for all elements in a resource.
224
+ * Every element in FHIR inherits from Element.
225
+ * @see https://hl7.org/fhir/R4/element.html
226
+ */
227
+ export interface Element {
228
+ /** Unique id for inter-element referencing (0..1) */
229
+ id?: FhirString;
230
+ /** Additional content defined by implementations (0..*) */
231
+ extension?: Extension[];
232
+ }
233
+ /**
234
+ * An Extension: additional information that is not part of the basic
235
+ * definition of the resource.
236
+ * @see https://hl7.org/fhir/R4/extensibility.html#Extension
237
+ */
238
+ export interface Extension extends Element {
239
+ /** Identifies the meaning of the extension (1..1) */
240
+ url: FhirUri;
241
+ /**
242
+ * Value of extension (0..1).
243
+ *
244
+ * Choice type [x] — the actual property name in JSON will be
245
+ * `valueString`, `valueCode`, `valueBoolean`, `valueCoding`, etc.
246
+ * Allows **all** FHIR data types (~50+ types).
247
+ *
248
+ * Stage-1: represented as `unknown`; fhir-parser will handle
249
+ * concrete dispatch in Phase 2.
250
+ * @see https://hl7.org/fhir/R4/extensibility-definitions.html#Extension.value_x_
251
+ */
252
+ value?: unknown;
253
+ }
254
+ /**
255
+ * A reference to a code defined by a terminology system.
256
+ * @see https://hl7.org/fhir/R4/datatypes.html#Coding
257
+ */
258
+ export interface Coding extends Element {
259
+ /** Identity of the terminology system (0..1) */
260
+ system?: FhirUri;
261
+ /** Version of the system (0..1) */
262
+ version?: FhirString;
263
+ /** Symbol in syntax defined by the system (0..1) */
264
+ code?: FhirCode;
265
+ /** Representation defined by the system (0..1) */
266
+ display?: FhirString;
267
+ /** If this coding was chosen directly by the user (0..1) */
268
+ userSelected?: FhirBoolean;
269
+ }
270
+ /**
271
+ * A concept that may be defined by a formal reference to a terminology
272
+ * or ontology, or may be provided by text.
273
+ * @see https://hl7.org/fhir/R4/datatypes.html#CodeableConcept
274
+ */
275
+ export interface CodeableConcept extends Element {
276
+ /** Code defined by a terminology system (0..*) */
277
+ coding?: Coding[];
278
+ /** Plain text representation of the concept (0..1) */
279
+ text?: FhirString;
280
+ }
281
+ /**
282
+ * An identifier intended for computation (e.g., MRN, NPI).
283
+ * @see https://hl7.org/fhir/R4/datatypes.html#Identifier
284
+ */
285
+ export interface Identifier extends Element {
286
+ /** usual | official | temp | secondary | old (0..1) */
287
+ use?: FhirCode;
288
+ /** Description of identifier (0..1) */
289
+ type?: CodeableConcept;
290
+ /** The namespace for the identifier value (0..1) */
291
+ system?: FhirUri;
292
+ /** The value that is unique (0..1) */
293
+ value?: FhirString;
294
+ /** Time period when id is/was valid for use (0..1) */
295
+ period?: Period;
296
+ /** Organization that issued id (0..1) */
297
+ assigner?: Reference;
298
+ }
299
+ /**
300
+ * A time period defined by a start and end date/time.
301
+ * @see https://hl7.org/fhir/R4/datatypes.html#Period
302
+ */
303
+ export interface Period extends Element {
304
+ /** Starting time with inclusive boundary (0..1) */
305
+ start?: FhirDateTime;
306
+ /** End time with inclusive boundary, if not ongoing (0..1) */
307
+ end?: FhirDateTime;
308
+ }
309
+ /**
310
+ * A reference from one resource to another.
311
+ * @see https://hl7.org/fhir/R4/references.html#Reference
312
+ */
313
+ export interface Reference extends Element {
314
+ /** Literal reference, Relative, internal or absolute URL (0..1) */
315
+ reference?: FhirString;
316
+ /** Type the reference refers to (e.g., "Patient") (0..1) */
317
+ type?: FhirUri;
318
+ /** Logical reference, when literal reference is not known (0..1) */
319
+ identifier?: Identifier;
320
+ /** Text alternative for the resource (0..1) */
321
+ display?: FhirString;
322
+ }
323
+ /**
324
+ * Contact information for a person or organization.
325
+ * @see https://hl7.org/fhir/R4/metadatatypes.html#ContactDetail
326
+ */
327
+ export interface ContactDetail extends Element {
328
+ /** Name of an individual to contact (0..1) */
329
+ name?: FhirString;
330
+ /** Contact details for individual or organization (0..*) */
331
+ telecom?: ContactPoint[];
332
+ }
333
+ /**
334
+ * Details for all kinds of technology-mediated contact points.
335
+ * @see https://hl7.org/fhir/R4/datatypes.html#ContactPoint
336
+ */
337
+ export interface ContactPoint extends Element {
338
+ /** phone | fax | email | pager | url | sms | other (0..1) */
339
+ system?: FhirCode;
340
+ /** The actual contact point details (0..1) */
341
+ value?: FhirString;
342
+ /** home | work | temp | old | mobile (0..1) */
343
+ use?: FhirCode;
344
+ /** Specify preferred order of use (0..1) */
345
+ rank?: FhirPositiveInt;
346
+ /** Time period when the contact point was/is in use (0..1) */
347
+ period?: Period;
348
+ }
349
+ /**
350
+ * Specifies clinical/business/etc. context in which a conformance
351
+ * artifact is applicable.
352
+ * @see https://hl7.org/fhir/R4/metadatatypes.html#UsageContext
353
+ */
354
+ export interface UsageContext extends Element {
355
+ /** Type of context being specified (1..1) */
356
+ code: Coding;
357
+ /**
358
+ * Value that defines the context (1..1).
359
+ *
360
+ * Choice type [x] — the actual property name in JSON will be
361
+ * `valueCodeableConcept`, `valueQuantity`, `valueRange`, or `valueReference`.
362
+ * Allows: CodeableConcept | Quantity | Range | Reference.
363
+ *
364
+ * Stage-1: represented as `unknown`; fhir-parser will handle
365
+ * concrete dispatch in Phase 2.
366
+ * @see https://hl7.org/fhir/R4/metadatatypes-definitions.html#UsageContext.value_x_
367
+ */
368
+ value?: unknown;
369
+ }
370
+ /**
371
+ * A measured amount (or an amount that can potentially be measured).
372
+ * @see https://hl7.org/fhir/R4/datatypes.html#Quantity
373
+ */
374
+ export interface Quantity extends Element {
375
+ /** Numerical value (with implicit precision) (0..1) */
376
+ value?: FhirDecimal;
377
+ /** `<` | `<=` | `>=` | `>` — how to understand the value (0..1) */
378
+ comparator?: FhirCode;
379
+ /** Unit representation (0..1) */
380
+ unit?: FhirString;
381
+ /** System that defines coded unit form (0..1) */
382
+ system?: FhirUri;
383
+ /** Coded form of the unit (0..1) */
384
+ code?: FhirCode;
385
+ }
386
+ /**
387
+ * A human-readable summary of the resource conveying the essential
388
+ * clinical and business information.
389
+ * @see https://hl7.org/fhir/R4/narrative.html#Narrative
390
+ */
391
+ export interface Narrative extends Element {
392
+ /** generated | extensions | additional | empty (1..1) */
393
+ status: NarrativeStatus;
394
+ /** Limited xhtml content (1..1) */
395
+ div: FhirXhtml;
396
+ }
397
+ /**
398
+ * The metadata about a resource. This is content in the resource that is
399
+ * maintained by the infrastructure.
400
+ * @see https://hl7.org/fhir/R4/resource.html#Meta
401
+ */
402
+ export interface Meta extends Element {
403
+ /** Version specific identifier (0..1) */
404
+ versionId?: FhirId;
405
+ /** When the resource version last changed (0..1) */
406
+ lastUpdated?: FhirInstant;
407
+ /** Identifies where the resource comes from (0..1) */
408
+ source?: FhirUri;
409
+ /** Profiles this resource claims to conform to (0..*) */
410
+ profile?: FhirCanonical[];
411
+ /** Security Labels applied to this resource (0..*) */
412
+ security?: Coding[];
413
+ /** Tags applied to this resource (0..*) */
414
+ tag?: Coding[];
415
+ }
416
+ /**
417
+ * Abstract base for all FHIR resources.
418
+ * @see https://hl7.org/fhir/R4/resource.html
419
+ */
420
+ export interface Resource {
421
+ /**
422
+ * The type of the resource (1..1)
423
+ *
424
+ * This is typed as `string` rather than `FhirString` because it serves
425
+ * as a discriminator field that concrete resource interfaces narrow to
426
+ * a string literal (e.g., `'StructureDefinition'`, `'Patient'`).
427
+ * Branded types would prevent this narrowing.
428
+ */
429
+ resourceType: string;
430
+ /** Logical id of this artifact (0..1) */
431
+ id?: FhirId;
432
+ /** Metadata about the resource (0..1) */
433
+ meta?: Meta;
434
+ /** A set of rules under which this content was created (0..1) */
435
+ implicitRules?: FhirUri;
436
+ /** Language of the resource content (0..1) */
437
+ language?: FhirCode;
438
+ }
439
+ /**
440
+ * A resource that includes narrative, extensions, and contained resources.
441
+ * Most FHIR resources inherit from DomainResource.
442
+ * @see https://hl7.org/fhir/R4/domainresource.html
443
+ */
444
+ export interface DomainResource extends Resource {
445
+ /** Text summary of the resource, for human interpretation (0..1) */
446
+ text?: Narrative;
447
+ /** Contained, inline Resources (0..*) */
448
+ contained?: Resource[];
449
+ /** Additional content defined by implementations (0..*) */
450
+ extension?: Extension[];
451
+ /** Extensions that cannot be ignored (0..*) */
452
+ modifierExtension?: Extension[];
453
+ }
454
+ /**
455
+ * Base definition for all elements that are defined inside a resource,
456
+ * but not those in a data type.
457
+ * @see https://hl7.org/fhir/R4/backboneelement.html
458
+ */
459
+ export interface BackboneElement extends Element {
460
+ /** Extensions that cannot be ignored even if unrecognized (0..*) */
461
+ modifierExtension?: Extension[];
462
+ }
463
+ export {};
464
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/model/primitives.ts"],"names":[],"mappings":"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"}