1#![allow(non_snake_case)]
2#[doc = r" DO NOT EDIT THIS FILE. It is auto-generated by the FHIR Rust code generator."]
3use self::super::resources::Resource;
4use self::super::terminology;
5use haste_fhir_serialization_json;
6use haste_fhir_serialization_json::FHIRJSONDeserializer;
7use haste_reflect::{derive::Reflect, MetaValue};
8use std::io::Write;
9#[derive(
10 Clone,
11 Reflect,
12 Debug,
13 Default,
14 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16)]
17#[fhir_serialize_type = "complex"]
18#[doc = "Base definition for all elements in a resource."]
19pub struct Element {
20 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21 pub id: Option<String>,
22 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
23 pub extension: Option<Vec<Box<Extension>>>,
24}
25#[derive(
26 Clone,
27 Reflect,
28 Debug,
29 Default,
30 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
31 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
32)]
33#[fhir_serialize_type = "complex"]
34#[doc = "Base definition for all elements that are defined inside a resource - but not those in a data type."]
35pub struct BackboneElement {
36 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
37 pub id: Option<String>,
38 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
39 pub extension: Option<Vec<Box<Extension>>>,
40 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
41 pub modifierExtension: Option<Vec<Box<Extension>>>,
42}
43#[derive(
44 Clone,
45 Reflect,
46 Debug,
47 Default,
48 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
49 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
50)]
51#[fhir_serialize_type = "primitive"]
52#[doc = "A stream of bytes"]
53pub struct FHIRBase64Binary {
54 #[doc = "unique id for the element within a resource (for internal references)"]
55 pub id: Option<String>,
56 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
57 pub extension: Option<Vec<Box<Extension>>>,
58 #[doc = "The actual value"]
59 pub value: Option<String>,
60}
61#[derive(
62 Clone,
63 Reflect,
64 Debug,
65 Default,
66 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
67 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
68)]
69#[fhir_serialize_type = "primitive"]
70#[doc = "Value of \"true\" or \"false\""]
71pub struct FHIRBoolean {
72 #[doc = "unique id for the element within a resource (for internal references)"]
73 pub id: Option<String>,
74 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
75 pub extension: Option<Vec<Box<Extension>>>,
76 #[doc = "The actual value"]
77 pub value: Option<bool>,
78}
79#[derive(
80 Clone,
81 Reflect,
82 Debug,
83 Default,
84 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
85 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
86)]
87#[fhir_serialize_type = "primitive"]
88#[doc = "A URI that is a reference to a canonical URL on a FHIR resource"]
89pub struct FHIRCanonical {
90 #[doc = "unique id for the element within a resource (for internal references)"]
91 pub id: Option<String>,
92 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
93 pub extension: Option<Vec<Box<Extension>>>,
94 #[doc = "Primitive value for canonical"]
95 pub value: Option<String>,
96}
97#[derive(
98 Clone,
99 Reflect,
100 Debug,
101 Default,
102 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
103 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
104)]
105#[fhir_serialize_type = "primitive"]
106#[doc = "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents"]
107pub struct FHIRCode {
108 #[doc = "unique id for the element within a resource (for internal references)"]
109 pub id: Option<String>,
110 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
111 pub extension: Option<Vec<Box<Extension>>>,
112 #[doc = "Primitive value for code"]
113 pub value: Option<String>,
114}
115#[derive(
116 Clone,
117 Reflect,
118 Debug,
119 Default,
120 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
121 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
122)]
123#[fhir_serialize_type = "primitive"]
124#[doc = "A date or partial date (e.g. just year or year + month). There is no time zone. The format is a union of the schema types gYear, gYearMonth and date. Dates SHALL be valid dates."]
125pub struct FHIRDate {
126 #[doc = "unique id for the element within a resource (for internal references)"]
127 pub id: Option<String>,
128 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
129 pub extension: Option<Vec<Box<Extension>>>,
130 #[doc = "The actual value"]
131 pub value: Option<crate::r4::datetime::Date>,
132}
133#[derive(
134 Clone,
135 Reflect,
136 Debug,
137 Default,
138 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
139 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
140)]
141#[fhir_serialize_type = "primitive"]
142#[doc = "A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates."]
143pub struct FHIRDateTime {
144 #[doc = "unique id for the element within a resource (for internal references)"]
145 pub id: Option<String>,
146 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
147 pub extension: Option<Vec<Box<Extension>>>,
148 #[doc = "The actual value"]
149 pub value: Option<crate::r4::datetime::DateTime>,
150}
151#[derive(
152 Clone,
153 Reflect,
154 Debug,
155 Default,
156 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
157 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
158)]
159#[fhir_serialize_type = "primitive"]
160#[doc = "A rational number with implicit precision"]
161pub struct FHIRDecimal {
162 #[doc = "unique id for the element within a resource (for internal references)"]
163 pub id: Option<String>,
164 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
165 pub extension: Option<Vec<Box<Extension>>>,
166 #[doc = "The actual value"]
167 pub value: Option<f64>,
168}
169#[derive(
170 Clone,
171 Reflect,
172 Debug,
173 Default,
174 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
175 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
176)]
177#[fhir_serialize_type = "primitive"]
178#[doc = "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive."]
179pub struct FHIRId {
180 #[doc = "unique id for the element within a resource (for internal references)"]
181 pub id: Option<String>,
182 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
183 pub extension: Option<Vec<Box<Extension>>>,
184 #[doc = "Primitive value for id"]
185 pub value: Option<String>,
186}
187#[derive(
188 Clone,
189 Reflect,
190 Debug,
191 Default,
192 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
193 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
194)]
195#[fhir_serialize_type = "primitive"]
196#[doc = "An instant in time - known at least to the second"]
197pub struct FHIRInstant {
198 #[doc = "unique id for the element within a resource (for internal references)"]
199 pub id: Option<String>,
200 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
201 pub extension: Option<Vec<Box<Extension>>>,
202 #[doc = "The actual value"]
203 pub value: Option<crate::r4::datetime::Instant>,
204}
205#[derive(
206 Clone,
207 Reflect,
208 Debug,
209 Default,
210 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
211 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
212)]
213#[fhir_serialize_type = "primitive"]
214#[doc = "A whole number"]
215pub struct FHIRInteger {
216 #[doc = "unique id for the element within a resource (for internal references)"]
217 pub id: Option<String>,
218 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
219 pub extension: Option<Vec<Box<Extension>>>,
220 #[doc = "The actual value"]
221 pub value: Option<i64>,
222}
223#[derive(
224 Clone,
225 Reflect,
226 Debug,
227 Default,
228 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
229 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
230)]
231#[fhir_serialize_type = "primitive"]
232#[doc = "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine"]
233pub struct FHIRMarkdown {
234 #[doc = "unique id for the element within a resource (for internal references)"]
235 pub id: Option<String>,
236 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
237 pub extension: Option<Vec<Box<Extension>>>,
238 #[doc = "Primitive value for markdown"]
239 pub value: Option<String>,
240}
241#[derive(
242 Clone,
243 Reflect,
244 Debug,
245 Default,
246 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
247 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
248)]
249#[fhir_serialize_type = "primitive"]
250#[doc = "An OID represented as a URI"]
251pub struct FHIROid {
252 #[doc = "unique id for the element within a resource (for internal references)"]
253 pub id: Option<String>,
254 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
255 pub extension: Option<Vec<Box<Extension>>>,
256 #[doc = "Primitive value for oid"]
257 pub value: Option<String>,
258}
259#[derive(
260 Clone,
261 Reflect,
262 Debug,
263 Default,
264 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
265 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
266)]
267#[fhir_serialize_type = "primitive"]
268#[doc = "An integer with a value that is positive (e.g. >0)"]
269pub struct FHIRPositiveInt {
270 #[doc = "unique id for the element within a resource (for internal references)"]
271 pub id: Option<String>,
272 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
273 pub extension: Option<Vec<Box<Extension>>>,
274 #[doc = "Primitive value for positiveInt"]
275 pub value: Option<u64>,
276}
277#[derive(
278 Clone,
279 Reflect,
280 Debug,
281 Default,
282 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
283 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
284)]
285#[fhir_serialize_type = "primitive"]
286#[doc = "A sequence of Unicode characters"]
287pub struct FHIRString {
288 #[doc = "unique id for the element within a resource (for internal references)"]
289 pub id: Option<String>,
290 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
291 pub extension: Option<Vec<Box<Extension>>>,
292 #[doc = "The actual value"]
293 pub value: Option<String>,
294}
295#[derive(
296 Clone,
297 Reflect,
298 Debug,
299 Default,
300 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
301 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
302)]
303#[fhir_serialize_type = "primitive"]
304#[doc = "A time during the day, with no date specified"]
305pub struct FHIRTime {
306 #[doc = "unique id for the element within a resource (for internal references)"]
307 pub id: Option<String>,
308 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
309 pub extension: Option<Vec<Box<Extension>>>,
310 #[doc = "The actual value"]
311 pub value: Option<crate::r4::datetime::Time>,
312}
313#[derive(
314 Clone,
315 Reflect,
316 Debug,
317 Default,
318 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
319 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
320)]
321#[fhir_serialize_type = "primitive"]
322#[doc = "An integer with a value that is not negative (e.g. >= 0)"]
323pub struct FHIRUnsignedInt {
324 #[doc = "unique id for the element within a resource (for internal references)"]
325 pub id: Option<String>,
326 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
327 pub extension: Option<Vec<Box<Extension>>>,
328 #[doc = "Primitive value for unsignedInt"]
329 pub value: Option<u64>,
330}
331#[derive(
332 Clone,
333 Reflect,
334 Debug,
335 Default,
336 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
337 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
338)]
339#[fhir_serialize_type = "primitive"]
340#[doc = "String of characters used to identify a name or a resource"]
341pub struct FHIRUri {
342 #[doc = "unique id for the element within a resource (for internal references)"]
343 pub id: Option<String>,
344 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
345 pub extension: Option<Vec<Box<Extension>>>,
346 #[doc = "The actual value"]
347 pub value: Option<String>,
348}
349#[derive(
350 Clone,
351 Reflect,
352 Debug,
353 Default,
354 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
355 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
356)]
357#[fhir_serialize_type = "primitive"]
358#[doc = "A URI that is a literal reference"]
359pub struct FHIRUrl {
360 #[doc = "unique id for the element within a resource (for internal references)"]
361 pub id: Option<String>,
362 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
363 pub extension: Option<Vec<Box<Extension>>>,
364 #[doc = "Primitive value for url"]
365 pub value: Option<String>,
366}
367#[derive(
368 Clone,
369 Reflect,
370 Debug,
371 Default,
372 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
373 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
374)]
375#[fhir_serialize_type = "primitive"]
376#[doc = "A UUID, represented as a URI"]
377pub struct FHIRUuid {
378 #[doc = "unique id for the element within a resource (for internal references)"]
379 pub id: Option<String>,
380 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
381 pub extension: Option<Vec<Box<Extension>>>,
382 #[doc = "Primitive value for uuid"]
383 pub value: Option<String>,
384}
385#[derive(
386 Clone,
387 Reflect,
388 Debug,
389 Default,
390 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
391 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
392)]
393#[fhir_serialize_type = "primitive"]
394#[doc = "XHTML"]
395pub struct FHIRXhtml {
396 #[doc = "unique id for the element within a resource (for internal references)"]
397 pub id: Option<String>,
398 #[cardinality(max = 0usize)]
399 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
400 pub extension: Option<Vec<Box<Extension>>>,
401 #[doc = "Actual xhtml"]
402 pub value: String,
403}
404#[derive(
405 Clone,
406 Reflect,
407 Debug,
408 Default,
409 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
410 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
411)]
412#[fhir_serialize_type = "complex"]
413#[doc = "An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world."]
414pub struct Address {
415 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
416 pub id: Option<String>,
417 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
418 pub extension: Option<Vec<Box<Extension>>>,
419 #[rename_field = "use"]
420 #[primitive]
421 #[doc = "The purpose of this address."]
422 pub use_: Option<Box<terminology::AddressUse>>,
423 #[rename_field = "type"]
424 #[primitive]
425 #[doc = "Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both."]
426 pub type_: Option<Box<terminology::AddressType>>,
427 #[primitive]
428 #[doc = "Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts."]
429 pub text: Option<Box<FHIRString>>,
430 #[primitive]
431 #[doc = "This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information."]
432 pub line: Option<Vec<Box<FHIRString>>>,
433 #[primitive]
434 #[doc = "The name of the city, town, suburb, village or other community or delivery center."]
435 pub city: Option<Box<FHIRString>>,
436 #[primitive]
437 #[doc = "The name of the administrative area (county)."]
438 pub district: Option<Box<FHIRString>>,
439 #[primitive]
440 #[doc = "Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes)."]
441 pub state: Option<Box<FHIRString>>,
442 #[primitive]
443 #[doc = "A postal code designating a region defined by the postal service."]
444 pub postalCode: Option<Box<FHIRString>>,
445 #[primitive]
446 #[doc = "Country - a nation as commonly understood or generally accepted."]
447 pub country: Option<Box<FHIRString>>,
448 #[doc = "Time period when address was/is in use."]
449 pub period: Option<Box<Period>>,
450}
451#[derive(
452 Clone,
453 Reflect,
454 Debug,
455 Default,
456 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
457 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
458)]
459#[fhir_serialize_type = "complex"]
460#[doc = "A duration of time during which an organism (or a process) has existed."]
461pub struct Age {
462 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
463 pub id: Option<String>,
464 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
465 pub extension: Option<Vec<Box<Extension>>>,
466 #[primitive]
467 #[doc = "The value of the measured amount. The value includes an implicit precision in the presentation of the value."]
468 pub value: Option<Box<FHIRDecimal>>,
469 #[primitive]
470 #[doc = "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value."]
471 pub comparator: Option<Box<terminology::QuantityComparator>>,
472 #[primitive]
473 #[doc = "A human-readable form of the unit."]
474 pub unit: Option<Box<FHIRString>>,
475 #[primitive]
476 #[doc = "The identification of the system that provides the coded form of the unit."]
477 pub system: Option<Box<FHIRUri>>,
478 #[primitive]
479 #[doc = "A computer processable form of the unit in some unit representation system."]
480 pub code: Option<Box<FHIRCode>>,
481}
482#[derive(
483 Clone,
484 Reflect,
485 Debug,
486 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
487 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
488)]
489#[fhir_serialize_type = "typechoice"]
490#[type_choice_field_name = "author"]
491pub enum AnnotationAuthorTypeChoice {
492 # [reference (targets = ["Practitioner" , "Patient" , "RelatedPerson" , "Organization"])]
493 Reference(Box<Reference>),
494 String(Box<FHIRString>),
495}
496impl Default for AnnotationAuthorTypeChoice {
497 fn default() -> Self {
498 AnnotationAuthorTypeChoice::Reference(Box::new(Default::default()))
499 }
500}
501#[derive(
502 Clone,
503 Reflect,
504 Debug,
505 Default,
506 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
507 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
508)]
509#[fhir_serialize_type = "complex"]
510#[doc = "A text note which also contains information about who made the statement and when."]
511pub struct Annotation {
512 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
513 pub id: Option<String>,
514 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
515 pub extension: Option<Vec<Box<Extension>>>,
516 # [type_choice_variants (complex = ["authorReference"] , primitive = ["authorString"])]
517 #[doc = "The individual responsible for making the annotation."]
518 pub author: Option<AnnotationAuthorTypeChoice>,
519 #[primitive]
520 #[doc = "Indicates when this particular annotation was made."]
521 pub time: Option<Box<FHIRDateTime>>,
522 #[primitive]
523 #[doc = "The text of the annotation in markdown format."]
524 pub text: Box<FHIRMarkdown>,
525}
526#[derive(
527 Clone,
528 Reflect,
529 Debug,
530 Default,
531 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
532 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
533)]
534#[fhir_serialize_type = "complex"]
535#[doc = "For referring to data content defined in other formats."]
536pub struct Attachment {
537 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
538 pub id: Option<String>,
539 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
540 pub extension: Option<Vec<Box<Extension>>>,
541 #[primitive]
542 #[doc = "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate."]
543 pub contentType: Option<Box<FHIRCode>>,
544 #[primitive]
545 #[doc = "The human language of the content. The value can be any valid value according to BCP 47."]
546 pub language: Option<Box<FHIRCode>>,
547 #[primitive]
548 #[doc = "The actual data of the attachment - a sequence of bytes, base64 encoded."]
549 pub data: Option<Box<FHIRBase64Binary>>,
550 #[primitive]
551 #[doc = "A location where the data can be accessed."]
552 pub url: Option<Box<FHIRUrl>>,
553 #[primitive]
554 #[doc = "The number of bytes of data that make up this attachment (before base64 encoding, if that is done)."]
555 pub size: Option<Box<FHIRUnsignedInt>>,
556 #[primitive]
557 #[doc = "The calculated hash of the data using SHA-1. Represented using base64."]
558 pub hash: Option<Box<FHIRBase64Binary>>,
559 #[primitive]
560 #[doc = "A label or set of text to display in place of the data."]
561 pub title: Option<Box<FHIRString>>,
562 #[primitive]
563 #[doc = "The date that the attachment was first created."]
564 pub creation: Option<Box<FHIRDateTime>>,
565}
566#[derive(
567 Clone,
568 Reflect,
569 Debug,
570 Default,
571 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
572 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
573)]
574#[fhir_serialize_type = "complex"]
575#[doc = "A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text."]
576pub struct CodeableConcept {
577 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
578 pub id: Option<String>,
579 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
580 pub extension: Option<Vec<Box<Extension>>>,
581 #[doc = "A reference to a code defined by a terminology system."]
582 pub coding: Option<Vec<Box<Coding>>>,
583 #[primitive]
584 #[doc = "A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user."]
585 pub text: Option<Box<FHIRString>>,
586}
587#[derive(
588 Clone,
589 Reflect,
590 Debug,
591 Default,
592 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
593 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
594)]
595#[fhir_serialize_type = "complex"]
596#[doc = "A reference to a code defined by a terminology system."]
597pub struct Coding {
598 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
599 pub id: Option<String>,
600 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
601 pub extension: Option<Vec<Box<Extension>>>,
602 #[primitive]
603 #[doc = "The identification of the code system that defines the meaning of the symbol in the code."]
604 pub system: Option<Box<FHIRUri>>,
605 #[primitive]
606 #[doc = "The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged."]
607 pub version: Option<Box<FHIRString>>,
608 #[primitive]
609 #[doc = "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination)."]
610 pub code: Option<Box<FHIRCode>>,
611 #[primitive]
612 #[doc = "A representation of the meaning of the code in the system, following the rules of the system."]
613 pub display: Option<Box<FHIRString>>,
614 #[primitive]
615 #[doc = "Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays)."]
616 pub userSelected: Option<Box<FHIRBoolean>>,
617}
618#[derive(
619 Clone,
620 Reflect,
621 Debug,
622 Default,
623 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
624 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
625)]
626#[fhir_serialize_type = "complex"]
627#[doc = "Specifies contact information for a person or organization."]
628pub struct ContactDetail {
629 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
630 pub id: Option<String>,
631 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
632 pub extension: Option<Vec<Box<Extension>>>,
633 #[primitive]
634 #[doc = "The name of an individual to contact."]
635 pub name: Option<Box<FHIRString>>,
636 #[doc = "The contact details for the individual (if a name was provided) or the organization."]
637 pub telecom: Option<Vec<Box<ContactPoint>>>,
638}
639#[derive(
640 Clone,
641 Reflect,
642 Debug,
643 Default,
644 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
645 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
646)]
647#[fhir_serialize_type = "complex"]
648#[doc = "Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc."]
649pub struct ContactPoint {
650 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
651 pub id: Option<String>,
652 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
653 pub extension: Option<Vec<Box<Extension>>>,
654 #[primitive]
655 #[doc = "Telecommunications form for contact point - what communications system is required to make use of the contact."]
656 pub system: Option<Box<terminology::ContactPointSystem>>,
657 #[primitive]
658 #[doc = "The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address)."]
659 pub value: Option<Box<FHIRString>>,
660 #[rename_field = "use"]
661 #[primitive]
662 #[doc = "Identifies the purpose for the contact point."]
663 pub use_: Option<Box<terminology::ContactPointUse>>,
664 #[primitive]
665 #[doc = "Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values."]
666 pub rank: Option<Box<FHIRPositiveInt>>,
667 #[doc = "Time period when the contact point was/is in use."]
668 pub period: Option<Box<Period>>,
669}
670#[derive(
671 Clone,
672 Reflect,
673 Debug,
674 Default,
675 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
676 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
677)]
678#[fhir_serialize_type = "complex"]
679#[doc = "A contributor to the content of a knowledge asset, including authors, editors, reviewers, and endorsers."]
680pub struct Contributor {
681 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
682 pub id: Option<String>,
683 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
684 pub extension: Option<Vec<Box<Extension>>>,
685 #[rename_field = "type"]
686 #[primitive]
687 #[doc = "The type of contributor."]
688 pub type_: Box<terminology::ContributorType>,
689 #[primitive]
690 #[doc = "The name of the individual or organization responsible for the contribution."]
691 pub name: Box<FHIRString>,
692 #[doc = "Contact details to assist a user in finding and communicating with the contributor."]
693 pub contact: Option<Vec<Box<ContactDetail>>>,
694}
695#[derive(
696 Clone,
697 Reflect,
698 Debug,
699 Default,
700 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
701 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
702)]
703#[fhir_serialize_type = "complex"]
704#[doc = "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies."]
705pub struct Count {
706 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
707 pub id: Option<String>,
708 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
709 pub extension: Option<Vec<Box<Extension>>>,
710 #[primitive]
711 #[doc = "The value of the measured amount. The value includes an implicit precision in the presentation of the value."]
712 pub value: Option<Box<FHIRDecimal>>,
713 #[primitive]
714 #[doc = "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value."]
715 pub comparator: Option<Box<terminology::QuantityComparator>>,
716 #[primitive]
717 #[doc = "A human-readable form of the unit."]
718 pub unit: Option<Box<FHIRString>>,
719 #[primitive]
720 #[doc = "The identification of the system that provides the coded form of the unit."]
721 pub system: Option<Box<FHIRUri>>,
722 #[primitive]
723 #[doc = "A computer processable form of the unit in some unit representation system."]
724 pub code: Option<Box<FHIRCode>>,
725}
726#[derive(
727 Clone,
728 Reflect,
729 Debug,
730 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
731 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
732)]
733#[fhir_serialize_type = "typechoice"]
734#[type_choice_field_name = "subject"]
735pub enum DataRequirementSubjectTypeChoice {
736 CodeableConcept(Box<CodeableConcept>),
737 # [reference (targets = ["Group"])]
738 Reference(Box<Reference>),
739}
740impl Default for DataRequirementSubjectTypeChoice {
741 fn default() -> Self {
742 DataRequirementSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
743 }
744}
745#[derive(
746 Clone,
747 Reflect,
748 Debug,
749 Default,
750 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
751 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
752)]
753#[fhir_serialize_type = "complex"]
754#[doc = "Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed."]
755pub struct DataRequirementCodeFilter {
756 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
757 pub id: Option<String>,
758 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
759 pub extension: Option<Vec<Box<Extension>>>,
760 #[primitive]
761 #[doc = "The code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolveable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept."]
762 pub path: Option<Box<FHIRString>>,
763 #[primitive]
764 #[doc = "A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept."]
765 pub searchParam: Option<Box<FHIRString>>,
766 #[primitive]
767 #[doc = "The valueset for the code filter. The valueSet and code elements are additive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset."]
768 pub valueSet: Option<Box<FHIRString>>,
769 #[doc = "The codes for the code filter. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codes."]
770 pub code: Option<Vec<Box<Coding>>>,
771}
772#[derive(
773 Clone,
774 Reflect,
775 Debug,
776 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
777 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
778)]
779#[fhir_serialize_type = "typechoice"]
780#[type_choice_field_name = "value"]
781pub enum DataRequirementDateFilterValueTypeChoice {
782 DateTime(Box<FHIRDateTime>),
783 Period(Box<Period>),
784 Duration(Box<Duration>),
785}
786impl Default for DataRequirementDateFilterValueTypeChoice {
787 fn default() -> Self {
788 DataRequirementDateFilterValueTypeChoice::DateTime(Box::new(Default::default()))
789 }
790}
791#[derive(
792 Clone,
793 Reflect,
794 Debug,
795 Default,
796 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
797 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
798)]
799#[fhir_serialize_type = "complex"]
800#[doc = "Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed."]
801pub struct DataRequirementDateFilter {
802 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
803 pub id: Option<String>,
804 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
805 pub extension: Option<Vec<Box<Extension>>>,
806 #[primitive]
807 #[doc = "The date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolveable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing."]
808 pub path: Option<Box<FHIRString>>,
809 #[primitive]
810 #[doc = "A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing."]
811 pub searchParam: Option<Box<FHIRString>>,
812 # [type_choice_variants (complex = ["valuePeriod" , "valueDuration"] , primitive = ["valueDateTime"])]
813 #[doc = "The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now."]
814 pub value: Option<DataRequirementDateFilterValueTypeChoice>,
815}
816#[derive(
817 Clone,
818 Reflect,
819 Debug,
820 Default,
821 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
822 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
823)]
824#[fhir_serialize_type = "complex"]
825#[doc = "Specifies the order of the results to be returned."]
826pub struct DataRequirementSort {
827 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
828 pub id: Option<String>,
829 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
830 pub extension: Option<Vec<Box<Extension>>>,
831 #[primitive]
832 #[doc = "The attribute of the sort. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant."]
833 pub path: Box<FHIRString>,
834 #[primitive]
835 #[doc = "The direction of the sort, ascending or descending."]
836 pub direction: Box<terminology::SortDirection>,
837}
838#[derive(
839 Clone,
840 Reflect,
841 Debug,
842 Default,
843 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
844 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
845)]
846#[fhir_serialize_type = "complex"]
847#[doc = "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data."]
848pub struct DataRequirement {
849 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
850 pub id: Option<String>,
851 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
852 pub extension: Option<Vec<Box<Extension>>>,
853 #[rename_field = "type"]
854 #[primitive]
855 #[doc = "The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile."]
856 pub type_: Box<terminology::AllTypes>,
857 #[primitive]
858 #[doc = "The profile of the required data, specified as the uri of the profile definition."]
859 pub profile: Option<Vec<Box<FHIRString>>>,
860 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
861 #[doc = "The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed."]
862 pub subject: Option<DataRequirementSubjectTypeChoice>,
863 #[primitive]
864 #[doc = "Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. \n\nThe value of mustSupport SHALL be a FHIRPath resolveable on the type of the DataRequirement. The path SHALL consist only of identifiers, constant indexers, and .resolve() (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details)."]
865 pub mustSupport: Option<Vec<Box<FHIRString>>>,
866 #[doc = "Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed."]
867 pub codeFilter: Option<Vec<DataRequirementCodeFilter>>,
868 #[doc = "Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed."]
869 pub dateFilter: Option<Vec<DataRequirementDateFilter>>,
870 #[primitive]
871 #[doc = "Specifies a maximum number of results that are required (uses the _count search parameter)."]
872 pub limit: Option<Box<FHIRPositiveInt>>,
873 #[doc = "Specifies the order of the results to be returned."]
874 pub sort: Option<Vec<DataRequirementSort>>,
875}
876#[derive(
877 Clone,
878 Reflect,
879 Debug,
880 Default,
881 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
882 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
883)]
884#[fhir_serialize_type = "complex"]
885#[doc = "A length - a value with a unit that is a physical distance."]
886pub struct Distance {
887 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
888 pub id: Option<String>,
889 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
890 pub extension: Option<Vec<Box<Extension>>>,
891 #[primitive]
892 #[doc = "The value of the measured amount. The value includes an implicit precision in the presentation of the value."]
893 pub value: Option<Box<FHIRDecimal>>,
894 #[primitive]
895 #[doc = "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value."]
896 pub comparator: Option<Box<terminology::QuantityComparator>>,
897 #[primitive]
898 #[doc = "A human-readable form of the unit."]
899 pub unit: Option<Box<FHIRString>>,
900 #[primitive]
901 #[doc = "The identification of the system that provides the coded form of the unit."]
902 pub system: Option<Box<FHIRUri>>,
903 #[primitive]
904 #[doc = "A computer processable form of the unit in some unit representation system."]
905 pub code: Option<Box<FHIRCode>>,
906}
907#[derive(
908 Clone,
909 Reflect,
910 Debug,
911 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
912 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
913)]
914#[fhir_serialize_type = "typechoice"]
915#[type_choice_field_name = "asNeeded"]
916pub enum DosageAsNeededTypeChoice {
917 Boolean(Box<FHIRBoolean>),
918 CodeableConcept(Box<CodeableConcept>),
919}
920impl Default for DosageAsNeededTypeChoice {
921 fn default() -> Self {
922 DosageAsNeededTypeChoice::Boolean(Box::new(Default::default()))
923 }
924}
925#[derive(
926 Clone,
927 Reflect,
928 Debug,
929 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
930 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
931)]
932#[fhir_serialize_type = "typechoice"]
933#[type_choice_field_name = "dose"]
934pub enum DosageDoseAndRateDoseTypeChoice {
935 Range(Box<Range>),
936 Quantity(Box<Quantity>),
937}
938impl Default for DosageDoseAndRateDoseTypeChoice {
939 fn default() -> Self {
940 DosageDoseAndRateDoseTypeChoice::Range(Box::new(Default::default()))
941 }
942}
943#[derive(
944 Clone,
945 Reflect,
946 Debug,
947 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
948 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
949)]
950#[fhir_serialize_type = "typechoice"]
951#[type_choice_field_name = "rate"]
952pub enum DosageDoseAndRateRateTypeChoice {
953 Ratio(Box<Ratio>),
954 Range(Box<Range>),
955 Quantity(Box<Quantity>),
956}
957impl Default for DosageDoseAndRateRateTypeChoice {
958 fn default() -> Self {
959 DosageDoseAndRateRateTypeChoice::Ratio(Box::new(Default::default()))
960 }
961}
962#[derive(
963 Clone,
964 Reflect,
965 Debug,
966 Default,
967 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
968 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
969)]
970#[fhir_serialize_type = "complex"]
971#[doc = "The amount of medication administered."]
972pub struct DosageDoseAndRate {
973 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
974 pub id: Option<String>,
975 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
976 pub extension: Option<Vec<Box<Extension>>>,
977 #[rename_field = "type"]
978 #[doc = "The kind of dose or rate specified, for example, ordered or calculated."]
979 pub type_: Option<Box<CodeableConcept>>,
980 # [type_choice_variants (complex = ["doseRange" , "doseQuantity"] , primitive = [])]
981 #[doc = "Amount of medication per dose."]
982 pub dose: Option<DosageDoseAndRateDoseTypeChoice>,
983 # [type_choice_variants (complex = ["rateRatio" , "rateRange" , "rateQuantity"] , primitive = [])]
984 #[doc = "Amount of medication per unit of time."]
985 pub rate: Option<DosageDoseAndRateRateTypeChoice>,
986}
987#[derive(
988 Clone,
989 Reflect,
990 Debug,
991 Default,
992 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
993 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
994)]
995#[fhir_serialize_type = "complex"]
996#[doc = "Indicates how the medication is/was taken or should be taken by the patient."]
997pub struct Dosage {
998 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
999 pub id: Option<String>,
1000 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1001 pub extension: Option<Vec<Box<Extension>>>,
1002 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
1003 pub modifierExtension: Option<Vec<Box<Extension>>>,
1004 #[primitive]
1005 #[doc = "Indicates the order in which the dosage instructions should be applied or interpreted."]
1006 pub sequence: Option<Box<FHIRInteger>>,
1007 #[primitive]
1008 #[doc = "Free text dosage instructions e.g. SIG."]
1009 pub text: Option<Box<FHIRString>>,
1010 #[doc = "Supplemental instructions to the patient on how to take the medication (e.g. \"with meals\" or\"take half to one hour before food\") or warnings for the patient about the medication (e.g. \"may cause drowsiness\" or \"avoid exposure of skin to direct sunlight or sunlamps\")."]
1011 pub additionalInstruction: Option<Vec<Box<CodeableConcept>>>,
1012 #[primitive]
1013 #[doc = "Instructions in terms that are understood by the patient or consumer."]
1014 pub patientInstruction: Option<Box<FHIRString>>,
1015 #[doc = "When medication should be administered."]
1016 pub timing: Option<Box<Timing>>,
1017 # [type_choice_variants (complex = ["asNeededCodeableConcept"] , primitive = ["asNeededBoolean"])]
1018 #[doc = "Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept)."]
1019 pub asNeeded: Option<DosageAsNeededTypeChoice>,
1020 #[doc = "Body site to administer to."]
1021 pub site: Option<Box<CodeableConcept>>,
1022 #[doc = "How drug should enter body."]
1023 pub route: Option<Box<CodeableConcept>>,
1024 #[doc = "Technique for administering medication."]
1025 pub method: Option<Box<CodeableConcept>>,
1026 #[doc = "The amount of medication administered."]
1027 pub doseAndRate: Option<Vec<DosageDoseAndRate>>,
1028 #[doc = "Upper limit on medication per unit of time."]
1029 pub maxDosePerPeriod: Option<Box<Ratio>>,
1030 #[doc = "Upper limit on medication per administration."]
1031 pub maxDosePerAdministration: Option<Box<Quantity>>,
1032 #[doc = "Upper limit on medication per lifetime of the patient."]
1033 pub maxDosePerLifetime: Option<Box<Quantity>>,
1034}
1035#[derive(
1036 Clone,
1037 Reflect,
1038 Debug,
1039 Default,
1040 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1041 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1042)]
1043#[fhir_serialize_type = "complex"]
1044#[doc = "A length of time."]
1045pub struct Duration {
1046 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1047 pub id: Option<String>,
1048 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1049 pub extension: Option<Vec<Box<Extension>>>,
1050 #[primitive]
1051 #[doc = "The value of the measured amount. The value includes an implicit precision in the presentation of the value."]
1052 pub value: Option<Box<FHIRDecimal>>,
1053 #[primitive]
1054 #[doc = "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value."]
1055 pub comparator: Option<Box<terminology::QuantityComparator>>,
1056 #[primitive]
1057 #[doc = "A human-readable form of the unit."]
1058 pub unit: Option<Box<FHIRString>>,
1059 #[primitive]
1060 #[doc = "The identification of the system that provides the coded form of the unit."]
1061 pub system: Option<Box<FHIRUri>>,
1062 #[primitive]
1063 #[doc = "A computer processable form of the unit in some unit representation system."]
1064 pub code: Option<Box<FHIRCode>>,
1065}
1066#[derive(
1067 Clone,
1068 Reflect,
1069 Debug,
1070 Default,
1071 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1072 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1073)]
1074#[fhir_serialize_type = "complex"]
1075#[doc = "Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices."]
1076pub struct ElementDefinitionSlicingDiscriminator {
1077 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1078 pub id: Option<String>,
1079 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1080 pub extension: Option<Vec<Box<Extension>>>,
1081 #[rename_field = "type"]
1082 #[primitive]
1083 #[doc = "How the element value is interpreted when discrimination is evaluated."]
1084 pub type_: Box<terminology::DiscriminatorType>,
1085 #[primitive]
1086 #[doc = "A FHIRPath expression, using [the simple subset of FHIRPath](fhirpath.html#simple), that is used to identify the element on which discrimination is based."]
1087 pub path: Box<FHIRString>,
1088}
1089#[derive(
1090 Clone,
1091 Reflect,
1092 Debug,
1093 Default,
1094 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1095 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1096)]
1097#[fhir_serialize_type = "complex"]
1098#[doc = "Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set)."]
1099pub struct ElementDefinitionSlicing {
1100 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1101 pub id: Option<String>,
1102 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1103 pub extension: Option<Vec<Box<Extension>>>,
1104 #[doc = "Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices."]
1105 pub discriminator: Option<Vec<ElementDefinitionSlicingDiscriminator>>,
1106 #[primitive]
1107 #[doc = "A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated."]
1108 pub description: Option<Box<FHIRString>>,
1109 #[primitive]
1110 #[doc = "If the matching elements have to occur in the same order as defined in the profile."]
1111 pub ordered: Option<Box<FHIRBoolean>>,
1112 #[primitive]
1113 #[doc = "Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end."]
1114 pub rules: Box<terminology::ResourceSlicingRules>,
1115}
1116#[derive(
1117 Clone,
1118 Reflect,
1119 Debug,
1120 Default,
1121 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1122 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1123)]
1124#[fhir_serialize_type = "complex"]
1125#[doc = "Information about the base definition of the element, provided to make it unnecessary for tools to trace the deviation of the element through the derived and related profiles. When the element definition is not the original definition of an element - i.g. either in a constraint on another type, or for elements from a super type in a snap shot - then the information in provided in the element definition may be different to the base definition. On the original definition of the element, it will be same."]
1126pub struct ElementDefinitionBase {
1127 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1128 pub id: Option<String>,
1129 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1130 pub extension: Option<Vec<Box<Extension>>>,
1131 #[primitive]
1132 #[doc = "The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [StructureDefinition](structuredefinition.html#) without a StructureDefinition.base."]
1133 pub path: Box<FHIRString>,
1134 #[primitive]
1135 #[doc = "Minimum cardinality of the base element identified by the path."]
1136 pub min: Box<FHIRUnsignedInt>,
1137 #[primitive]
1138 #[doc = "Maximum cardinality of the base element identified by the path."]
1139 pub max: Box<FHIRString>,
1140}
1141#[derive(
1142 Clone,
1143 Reflect,
1144 Debug,
1145 Default,
1146 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1147 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1148)]
1149#[fhir_serialize_type = "complex"]
1150#[doc = "The data type or resource that the value of this element is permitted to be."]
1151pub struct ElementDefinitionType {
1152 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1153 pub id: Option<String>,
1154 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1155 pub extension: Option<Vec<Box<Extension>>>,
1156 #[primitive]
1157 #[doc = "URL of Data type or Resource that is a(or the) type used for this element. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. \"string\" is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models."]
1158 pub code: Box<FHIRUri>,
1159 #[primitive]
1160 #[doc = "Identifies a profile structure or implementation Guide that applies to the datatype this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the type SHALL conform to at least one profile defined in the implementation guide."]
1161 pub profile: Option<Vec<Box<FHIRString>>>,
1162 #[primitive]
1163 #[doc = "Used when the type is \"Reference\" or \"canonical\", and identifies a profile structure or implementation Guide that applies to the target of the reference this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide."]
1164 pub targetProfile: Option<Vec<Box<FHIRString>>>,
1165 #[primitive]
1166 #[doc = "If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle."]
1167 pub aggregation: Option<Vec<Box<terminology::ResourceAggregationMode>>>,
1168 #[primitive]
1169 #[doc = "Whether this reference needs to be version specific or version independent, or whether either can be used."]
1170 pub versioning: Option<Box<terminology::ReferenceVersionRules>>,
1171}
1172#[derive(
1173 Clone,
1174 Reflect,
1175 Debug,
1176 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1177 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1178)]
1179#[fhir_serialize_type = "typechoice"]
1180#[type_choice_field_name = "defaultValue"]
1181pub enum ElementDefinitionDefaultValueTypeChoice {
1182 Base64Binary(Box<FHIRBase64Binary>),
1183 Boolean(Box<FHIRBoolean>),
1184 Canonical(Box<FHIRString>),
1185 Code(Box<FHIRCode>),
1186 Date(Box<FHIRDate>),
1187 DateTime(Box<FHIRDateTime>),
1188 Decimal(Box<FHIRDecimal>),
1189 Id(Box<FHIRId>),
1190 Instant(Box<FHIRInstant>),
1191 Integer(Box<FHIRInteger>),
1192 Markdown(Box<FHIRMarkdown>),
1193 Oid(Box<FHIROid>),
1194 PositiveInt(Box<FHIRPositiveInt>),
1195 String(Box<FHIRString>),
1196 Time(Box<FHIRTime>),
1197 UnsignedInt(Box<FHIRUnsignedInt>),
1198 Uri(Box<FHIRUri>),
1199 Url(Box<FHIRUrl>),
1200 Uuid(Box<FHIRUuid>),
1201 Address(Box<Address>),
1202 Age(Box<Age>),
1203 Annotation(Box<Annotation>),
1204 Attachment(Box<Attachment>),
1205 CodeableConcept(Box<CodeableConcept>),
1206 Coding(Box<Coding>),
1207 ContactPoint(Box<ContactPoint>),
1208 Count(Box<Count>),
1209 Distance(Box<Distance>),
1210 Duration(Box<Duration>),
1211 HumanName(Box<HumanName>),
1212 Identifier(Box<Identifier>),
1213 Money(Box<Money>),
1214 Period(Box<Period>),
1215 Quantity(Box<Quantity>),
1216 Range(Box<Range>),
1217 Ratio(Box<Ratio>),
1218 Reference(Box<Reference>),
1219 SampledData(Box<SampledData>),
1220 Signature(Box<Signature>),
1221 Timing(Box<Timing>),
1222 ContactDetail(Box<ContactDetail>),
1223 Contributor(Box<Contributor>),
1224 DataRequirement(Box<DataRequirement>),
1225 Expression(Box<Expression>),
1226 ParameterDefinition(Box<ParameterDefinition>),
1227 RelatedArtifact(Box<RelatedArtifact>),
1228 TriggerDefinition(Box<TriggerDefinition>),
1229 UsageContext(Box<UsageContext>),
1230 Dosage(Box<Dosage>),
1231 Meta(Box<Meta>),
1232}
1233impl Default for ElementDefinitionDefaultValueTypeChoice {
1234 fn default() -> Self {
1235 ElementDefinitionDefaultValueTypeChoice::Base64Binary(Box::new(Default::default()))
1236 }
1237}
1238#[derive(
1239 Clone,
1240 Reflect,
1241 Debug,
1242 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1243 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1244)]
1245#[fhir_serialize_type = "typechoice"]
1246#[type_choice_field_name = "fixed"]
1247pub enum ElementDefinitionFixedTypeChoice {
1248 Base64Binary(Box<FHIRBase64Binary>),
1249 Boolean(Box<FHIRBoolean>),
1250 Canonical(Box<FHIRString>),
1251 Code(Box<FHIRCode>),
1252 Date(Box<FHIRDate>),
1253 DateTime(Box<FHIRDateTime>),
1254 Decimal(Box<FHIRDecimal>),
1255 Id(Box<FHIRId>),
1256 Instant(Box<FHIRInstant>),
1257 Integer(Box<FHIRInteger>),
1258 Markdown(Box<FHIRMarkdown>),
1259 Oid(Box<FHIROid>),
1260 PositiveInt(Box<FHIRPositiveInt>),
1261 String(Box<FHIRString>),
1262 Time(Box<FHIRTime>),
1263 UnsignedInt(Box<FHIRUnsignedInt>),
1264 Uri(Box<FHIRUri>),
1265 Url(Box<FHIRUrl>),
1266 Uuid(Box<FHIRUuid>),
1267 Address(Box<Address>),
1268 Age(Box<Age>),
1269 Annotation(Box<Annotation>),
1270 Attachment(Box<Attachment>),
1271 CodeableConcept(Box<CodeableConcept>),
1272 Coding(Box<Coding>),
1273 ContactPoint(Box<ContactPoint>),
1274 Count(Box<Count>),
1275 Distance(Box<Distance>),
1276 Duration(Box<Duration>),
1277 HumanName(Box<HumanName>),
1278 Identifier(Box<Identifier>),
1279 Money(Box<Money>),
1280 Period(Box<Period>),
1281 Quantity(Box<Quantity>),
1282 Range(Box<Range>),
1283 Ratio(Box<Ratio>),
1284 Reference(Box<Reference>),
1285 SampledData(Box<SampledData>),
1286 Signature(Box<Signature>),
1287 Timing(Box<Timing>),
1288 ContactDetail(Box<ContactDetail>),
1289 Contributor(Box<Contributor>),
1290 DataRequirement(Box<DataRequirement>),
1291 Expression(Box<Expression>),
1292 ParameterDefinition(Box<ParameterDefinition>),
1293 RelatedArtifact(Box<RelatedArtifact>),
1294 TriggerDefinition(Box<TriggerDefinition>),
1295 UsageContext(Box<UsageContext>),
1296 Dosage(Box<Dosage>),
1297 Meta(Box<Meta>),
1298}
1299impl Default for ElementDefinitionFixedTypeChoice {
1300 fn default() -> Self {
1301 ElementDefinitionFixedTypeChoice::Base64Binary(Box::new(Default::default()))
1302 }
1303}
1304#[derive(
1305 Clone,
1306 Reflect,
1307 Debug,
1308 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1309 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1310)]
1311#[fhir_serialize_type = "typechoice"]
1312#[type_choice_field_name = "pattern"]
1313pub enum ElementDefinitionPatternTypeChoice {
1314 Base64Binary(Box<FHIRBase64Binary>),
1315 Boolean(Box<FHIRBoolean>),
1316 Canonical(Box<FHIRString>),
1317 Code(Box<FHIRCode>),
1318 Date(Box<FHIRDate>),
1319 DateTime(Box<FHIRDateTime>),
1320 Decimal(Box<FHIRDecimal>),
1321 Id(Box<FHIRId>),
1322 Instant(Box<FHIRInstant>),
1323 Integer(Box<FHIRInteger>),
1324 Markdown(Box<FHIRMarkdown>),
1325 Oid(Box<FHIROid>),
1326 PositiveInt(Box<FHIRPositiveInt>),
1327 String(Box<FHIRString>),
1328 Time(Box<FHIRTime>),
1329 UnsignedInt(Box<FHIRUnsignedInt>),
1330 Uri(Box<FHIRUri>),
1331 Url(Box<FHIRUrl>),
1332 Uuid(Box<FHIRUuid>),
1333 Address(Box<Address>),
1334 Age(Box<Age>),
1335 Annotation(Box<Annotation>),
1336 Attachment(Box<Attachment>),
1337 CodeableConcept(Box<CodeableConcept>),
1338 Coding(Box<Coding>),
1339 ContactPoint(Box<ContactPoint>),
1340 Count(Box<Count>),
1341 Distance(Box<Distance>),
1342 Duration(Box<Duration>),
1343 HumanName(Box<HumanName>),
1344 Identifier(Box<Identifier>),
1345 Money(Box<Money>),
1346 Period(Box<Period>),
1347 Quantity(Box<Quantity>),
1348 Range(Box<Range>),
1349 Ratio(Box<Ratio>),
1350 Reference(Box<Reference>),
1351 SampledData(Box<SampledData>),
1352 Signature(Box<Signature>),
1353 Timing(Box<Timing>),
1354 ContactDetail(Box<ContactDetail>),
1355 Contributor(Box<Contributor>),
1356 DataRequirement(Box<DataRequirement>),
1357 Expression(Box<Expression>),
1358 ParameterDefinition(Box<ParameterDefinition>),
1359 RelatedArtifact(Box<RelatedArtifact>),
1360 TriggerDefinition(Box<TriggerDefinition>),
1361 UsageContext(Box<UsageContext>),
1362 Dosage(Box<Dosage>),
1363 Meta(Box<Meta>),
1364}
1365impl Default for ElementDefinitionPatternTypeChoice {
1366 fn default() -> Self {
1367 ElementDefinitionPatternTypeChoice::Base64Binary(Box::new(Default::default()))
1368 }
1369}
1370#[derive(
1371 Clone,
1372 Reflect,
1373 Debug,
1374 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1375 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1376)]
1377#[fhir_serialize_type = "typechoice"]
1378#[type_choice_field_name = "value"]
1379pub enum ElementDefinitionExampleValueTypeChoice {
1380 Base64Binary(Box<FHIRBase64Binary>),
1381 Boolean(Box<FHIRBoolean>),
1382 Canonical(Box<FHIRString>),
1383 Code(Box<FHIRCode>),
1384 Date(Box<FHIRDate>),
1385 DateTime(Box<FHIRDateTime>),
1386 Decimal(Box<FHIRDecimal>),
1387 Id(Box<FHIRId>),
1388 Instant(Box<FHIRInstant>),
1389 Integer(Box<FHIRInteger>),
1390 Markdown(Box<FHIRMarkdown>),
1391 Oid(Box<FHIROid>),
1392 PositiveInt(Box<FHIRPositiveInt>),
1393 String(Box<FHIRString>),
1394 Time(Box<FHIRTime>),
1395 UnsignedInt(Box<FHIRUnsignedInt>),
1396 Uri(Box<FHIRUri>),
1397 Url(Box<FHIRUrl>),
1398 Uuid(Box<FHIRUuid>),
1399 Address(Box<Address>),
1400 Age(Box<Age>),
1401 Annotation(Box<Annotation>),
1402 Attachment(Box<Attachment>),
1403 CodeableConcept(Box<CodeableConcept>),
1404 Coding(Box<Coding>),
1405 ContactPoint(Box<ContactPoint>),
1406 Count(Box<Count>),
1407 Distance(Box<Distance>),
1408 Duration(Box<Duration>),
1409 HumanName(Box<HumanName>),
1410 Identifier(Box<Identifier>),
1411 Money(Box<Money>),
1412 Period(Box<Period>),
1413 Quantity(Box<Quantity>),
1414 Range(Box<Range>),
1415 Ratio(Box<Ratio>),
1416 Reference(Box<Reference>),
1417 SampledData(Box<SampledData>),
1418 Signature(Box<Signature>),
1419 Timing(Box<Timing>),
1420 ContactDetail(Box<ContactDetail>),
1421 Contributor(Box<Contributor>),
1422 DataRequirement(Box<DataRequirement>),
1423 Expression(Box<Expression>),
1424 ParameterDefinition(Box<ParameterDefinition>),
1425 RelatedArtifact(Box<RelatedArtifact>),
1426 TriggerDefinition(Box<TriggerDefinition>),
1427 UsageContext(Box<UsageContext>),
1428 Dosage(Box<Dosage>),
1429 Meta(Box<Meta>),
1430}
1431impl Default for ElementDefinitionExampleValueTypeChoice {
1432 fn default() -> Self {
1433 ElementDefinitionExampleValueTypeChoice::Base64Binary(Box::new(Default::default()))
1434 }
1435}
1436#[derive(
1437 Clone,
1438 Reflect,
1439 Debug,
1440 Default,
1441 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1442 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1443)]
1444#[fhir_serialize_type = "complex"]
1445#[doc = "A sample value for this element demonstrating the type of information that would typically be found in the element."]
1446pub struct ElementDefinitionExample {
1447 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1448 pub id: Option<String>,
1449 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1450 pub extension: Option<Vec<Box<Extension>>>,
1451 #[primitive]
1452 #[doc = "Describes the purpose of this example amoung the set of examples."]
1453 pub label: Box<FHIRString>,
1454 # [type_choice_variants (complex = ["valueAddress" , "valueAge" , "valueAnnotation" , "valueAttachment" , "valueCodeableConcept" , "valueCoding" , "valueContactPoint" , "valueCount" , "valueDistance" , "valueDuration" , "valueHumanName" , "valueIdentifier" , "valueMoney" , "valuePeriod" , "valueQuantity" , "valueRange" , "valueRatio" , "valueReference" , "valueSampledData" , "valueSignature" , "valueTiming" , "valueContactDetail" , "valueContributor" , "valueDataRequirement" , "valueExpression" , "valueParameterDefinition" , "valueRelatedArtifact" , "valueTriggerDefinition" , "valueUsageContext" , "valueDosage" , "valueMeta"] , primitive = ["valueBase64Binary" , "valueBoolean" , "valueCanonical" , "valueCode" , "valueDate" , "valueDateTime" , "valueDecimal" , "valueId" , "valueInstant" , "valueInteger" , "valueMarkdown" , "valueOid" , "valuePositiveInt" , "valueString" , "valueTime" , "valueUnsignedInt" , "valueUri" , "valueUrl" , "valueUuid"])]
1455 #[doc = "The actual value for the element, which must be one of the types allowed for this element."]
1456 pub value: ElementDefinitionExampleValueTypeChoice,
1457}
1458#[derive(
1459 Clone,
1460 Reflect,
1461 Debug,
1462 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1463 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1464)]
1465#[fhir_serialize_type = "typechoice"]
1466#[type_choice_field_name = "minValue"]
1467pub enum ElementDefinitionMinValueTypeChoice {
1468 Date(Box<FHIRDate>),
1469 DateTime(Box<FHIRDateTime>),
1470 Instant(Box<FHIRInstant>),
1471 Time(Box<FHIRTime>),
1472 Decimal(Box<FHIRDecimal>),
1473 Integer(Box<FHIRInteger>),
1474 PositiveInt(Box<FHIRPositiveInt>),
1475 UnsignedInt(Box<FHIRUnsignedInt>),
1476 Quantity(Box<Quantity>),
1477}
1478impl Default for ElementDefinitionMinValueTypeChoice {
1479 fn default() -> Self {
1480 ElementDefinitionMinValueTypeChoice::Date(Box::new(Default::default()))
1481 }
1482}
1483#[derive(
1484 Clone,
1485 Reflect,
1486 Debug,
1487 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1488 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1489)]
1490#[fhir_serialize_type = "typechoice"]
1491#[type_choice_field_name = "maxValue"]
1492pub enum ElementDefinitionMaxValueTypeChoice {
1493 Date(Box<FHIRDate>),
1494 DateTime(Box<FHIRDateTime>),
1495 Instant(Box<FHIRInstant>),
1496 Time(Box<FHIRTime>),
1497 Decimal(Box<FHIRDecimal>),
1498 Integer(Box<FHIRInteger>),
1499 PositiveInt(Box<FHIRPositiveInt>),
1500 UnsignedInt(Box<FHIRUnsignedInt>),
1501 Quantity(Box<Quantity>),
1502}
1503impl Default for ElementDefinitionMaxValueTypeChoice {
1504 fn default() -> Self {
1505 ElementDefinitionMaxValueTypeChoice::Date(Box::new(Default::default()))
1506 }
1507}
1508#[derive(
1509 Clone,
1510 Reflect,
1511 Debug,
1512 Default,
1513 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1514 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1515)]
1516#[fhir_serialize_type = "complex"]
1517#[doc = "Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance."]
1518pub struct ElementDefinitionConstraint {
1519 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1520 pub id: Option<String>,
1521 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1522 pub extension: Option<Vec<Box<Extension>>>,
1523 #[primitive]
1524 #[doc = "Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality."]
1525 pub key: Box<FHIRId>,
1526 #[primitive]
1527 #[doc = "Description of why this constraint is necessary or appropriate."]
1528 pub requirements: Option<Box<FHIRString>>,
1529 #[primitive]
1530 #[doc = "Identifies the impact constraint violation has on the conformance of the instance."]
1531 pub severity: Box<terminology::ConstraintSeverity>,
1532 #[primitive]
1533 #[doc = "Text that can be used to describe the constraint in messages identifying that the constraint has been violated."]
1534 pub human: Box<FHIRString>,
1535 #[primitive]
1536 #[doc = "A [FHIRPath](fhirpath.html) expression of constraint that can be executed to see if this constraint is met."]
1537 pub expression: Option<Box<FHIRString>>,
1538 #[primitive]
1539 #[doc = "An XPath expression of constraint that can be executed to see if this constraint is met."]
1540 pub xpath: Option<Box<FHIRString>>,
1541 #[primitive]
1542 #[doc = "A reference to the original source of the constraint, for traceability purposes."]
1543 pub source: Option<Box<FHIRString>>,
1544}
1545#[derive(
1546 Clone,
1547 Reflect,
1548 Debug,
1549 Default,
1550 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1551 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1552)]
1553#[fhir_serialize_type = "complex"]
1554#[doc = "Binds to a value set if this element is coded (code, Coding, CodeableConcept, Quantity), or the data types (string, uri)."]
1555pub struct ElementDefinitionBinding {
1556 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1557 pub id: Option<String>,
1558 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1559 pub extension: Option<Vec<Box<Extension>>>,
1560 #[primitive]
1561 #[doc = "Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances."]
1562 pub strength: Box<terminology::BindingStrength>,
1563 #[primitive]
1564 #[doc = "Describes the intended use of this particular set of codes."]
1565 pub description: Option<Box<FHIRString>>,
1566 #[primitive]
1567 #[doc = "Refers to the value set that identifies the set of codes the binding refers to."]
1568 pub valueSet: Option<Box<FHIRString>>,
1569}
1570#[derive(
1571 Clone,
1572 Reflect,
1573 Debug,
1574 Default,
1575 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1576 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1577)]
1578#[fhir_serialize_type = "complex"]
1579#[doc = "Identifies a concept from an external specification that roughly corresponds to this element."]
1580pub struct ElementDefinitionMapping {
1581 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1582 pub id: Option<String>,
1583 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1584 pub extension: Option<Vec<Box<Extension>>>,
1585 #[primitive]
1586 #[doc = "An internal reference to the definition of a mapping."]
1587 pub identity: Box<FHIRId>,
1588 #[primitive]
1589 #[doc = "Identifies the computable language in which mapping.map is expressed."]
1590 pub language: Option<Box<FHIRCode>>,
1591 #[primitive]
1592 #[doc = "Expresses what part of the target specification corresponds to this element."]
1593 pub map: Box<FHIRString>,
1594 #[primitive]
1595 #[doc = "Comments that provide information about the mapping or its use."]
1596 pub comment: Option<Box<FHIRString>>,
1597}
1598#[derive(
1599 Clone,
1600 Reflect,
1601 Debug,
1602 Default,
1603 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1604 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1605)]
1606#[fhir_serialize_type = "complex"]
1607#[doc = "Captures constraints on each element within the resource, profile, or extension."]
1608pub struct ElementDefinition {
1609 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1610 pub id: Option<String>,
1611 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1612 pub extension: Option<Vec<Box<Extension>>>,
1613 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
1614 pub modifierExtension: Option<Vec<Box<Extension>>>,
1615 #[primitive]
1616 #[doc = "The path identifies the element and is expressed as a \".\"-separated list of ancestor elements, beginning with the name of the resource or extension."]
1617 pub path: Box<FHIRString>,
1618 #[primitive]
1619 #[doc = "Codes that define how this element is represented in instances, when the deviation varies from the normal case."]
1620 pub representation: Option<Vec<Box<terminology::PropertyRepresentation>>>,
1621 #[primitive]
1622 #[doc = "The name of this element definition slice, when slicing is working. The name must be a token with no dots or spaces. This is a unique name referring to a specific set of constraints applied to this element, used to provide a name to different slices of the same element."]
1623 pub sliceName: Option<Box<FHIRString>>,
1624 #[primitive]
1625 #[doc = "If true, indicates that this slice definition is constraining a slice definition with the same name in an inherited profile. If false, the slice is not overriding any slice in an inherited profile. If missing, the slice might or might not be overriding a slice in an inherited profile, depending on the sliceName."]
1626 pub sliceIsConstraining: Option<Box<FHIRBoolean>>,
1627 #[primitive]
1628 #[doc = "A single preferred label which is the text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form."]
1629 pub label: Option<Box<FHIRString>>,
1630 #[doc = "A code that has the same meaning as the element in a particular terminology."]
1631 pub code: Option<Vec<Box<Coding>>>,
1632 #[doc = "Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set)."]
1633 pub slicing: Option<ElementDefinitionSlicing>,
1634 #[primitive]
1635 #[doc = "A concise description of what this element means (e.g. for use in autogenerated summaries)."]
1636 pub short: Option<Box<FHIRString>>,
1637 #[primitive]
1638 #[doc = "Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. (Note: The text you are reading is specified in ElementDefinition.definition)."]
1639 pub definition: Option<Box<FHIRMarkdown>>,
1640 #[primitive]
1641 #[doc = "Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. (Note: The text you are reading is specified in ElementDefinition.comment)."]
1642 pub comment: Option<Box<FHIRMarkdown>>,
1643 #[primitive]
1644 #[doc = "This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element."]
1645 pub requirements: Option<Box<FHIRMarkdown>>,
1646 #[primitive]
1647 #[doc = "Identifies additional names by which this element might also be known."]
1648 pub alias: Option<Vec<Box<FHIRString>>>,
1649 #[primitive]
1650 #[doc = "The minimum number of times this element SHALL appear in the instance."]
1651 pub min: Option<Box<FHIRUnsignedInt>>,
1652 #[primitive]
1653 #[doc = "The maximum number of times this element is permitted to appear in the instance."]
1654 pub max: Option<Box<FHIRString>>,
1655 #[doc = "Information about the base definition of the element, provided to make it unnecessary for tools to trace the deviation of the element through the derived and related profiles. When the element definition is not the original definition of an element - i.g. either in a constraint on another type, or for elements from a super type in a snap shot - then the information in provided in the element definition may be different to the base definition. On the original definition of the element, it will be same."]
1656 pub base: Option<ElementDefinitionBase>,
1657 #[primitive]
1658 #[doc = "Identifies an element defined elsewhere in the definition whose content rules should be applied to the current element. ContentReferences bring across all the rules that are in the ElementDefinition for the element, including definitions, cardinality constraints, bindings, invariants etc."]
1659 pub contentReference: Option<Box<FHIRUri>>,
1660 #[rename_field = "type"]
1661 #[doc = "The data type or resource that the value of this element is permitted to be."]
1662 pub type_: Option<Vec<ElementDefinitionType>>,
1663 # [type_choice_variants (complex = ["defaultValueAddress" , "defaultValueAge" , "defaultValueAnnotation" , "defaultValueAttachment" , "defaultValueCodeableConcept" , "defaultValueCoding" , "defaultValueContactPoint" , "defaultValueCount" , "defaultValueDistance" , "defaultValueDuration" , "defaultValueHumanName" , "defaultValueIdentifier" , "defaultValueMoney" , "defaultValuePeriod" , "defaultValueQuantity" , "defaultValueRange" , "defaultValueRatio" , "defaultValueReference" , "defaultValueSampledData" , "defaultValueSignature" , "defaultValueTiming" , "defaultValueContactDetail" , "defaultValueContributor" , "defaultValueDataRequirement" , "defaultValueExpression" , "defaultValueParameterDefinition" , "defaultValueRelatedArtifact" , "defaultValueTriggerDefinition" , "defaultValueUsageContext" , "defaultValueDosage" , "defaultValueMeta"] , primitive = ["defaultValueBase64Binary" , "defaultValueBoolean" , "defaultValueCanonical" , "defaultValueCode" , "defaultValueDate" , "defaultValueDateTime" , "defaultValueDecimal" , "defaultValueId" , "defaultValueInstant" , "defaultValueInteger" , "defaultValueMarkdown" , "defaultValueOid" , "defaultValuePositiveInt" , "defaultValueString" , "defaultValueTime" , "defaultValueUnsignedInt" , "defaultValueUri" , "defaultValueUrl" , "defaultValueUuid"])]
1664 #[doc = "The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false')."]
1665 pub defaultValue: Option<ElementDefinitionDefaultValueTypeChoice>,
1666 #[primitive]
1667 #[doc = "The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing')."]
1668 pub meaningWhenMissing: Option<Box<FHIRMarkdown>>,
1669 #[primitive]
1670 #[doc = "If present, indicates that the order of the repeating element has meaning and describes what that meaning is. If absent, it means that the order of the element has no meaning."]
1671 pub orderMeaning: Option<Box<FHIRString>>,
1672 # [type_choice_variants (complex = ["fixedAddress" , "fixedAge" , "fixedAnnotation" , "fixedAttachment" , "fixedCodeableConcept" , "fixedCoding" , "fixedContactPoint" , "fixedCount" , "fixedDistance" , "fixedDuration" , "fixedHumanName" , "fixedIdentifier" , "fixedMoney" , "fixedPeriod" , "fixedQuantity" , "fixedRange" , "fixedRatio" , "fixedReference" , "fixedSampledData" , "fixedSignature" , "fixedTiming" , "fixedContactDetail" , "fixedContributor" , "fixedDataRequirement" , "fixedExpression" , "fixedParameterDefinition" , "fixedRelatedArtifact" , "fixedTriggerDefinition" , "fixedUsageContext" , "fixedDosage" , "fixedMeta"] , primitive = ["fixedBase64Binary" , "fixedBoolean" , "fixedCanonical" , "fixedCode" , "fixedDate" , "fixedDateTime" , "fixedDecimal" , "fixedId" , "fixedInstant" , "fixedInteger" , "fixedMarkdown" , "fixedOid" , "fixedPositiveInt" , "fixedString" , "fixedTime" , "fixedUnsignedInt" , "fixedUri" , "fixedUrl" , "fixedUuid"])]
1673 #[doc = "Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing."]
1674 pub fixed: Option<ElementDefinitionFixedTypeChoice>,
1675 # [type_choice_variants (complex = ["patternAddress" , "patternAge" , "patternAnnotation" , "patternAttachment" , "patternCodeableConcept" , "patternCoding" , "patternContactPoint" , "patternCount" , "patternDistance" , "patternDuration" , "patternHumanName" , "patternIdentifier" , "patternMoney" , "patternPeriod" , "patternQuantity" , "patternRange" , "patternRatio" , "patternReference" , "patternSampledData" , "patternSignature" , "patternTiming" , "patternContactDetail" , "patternContributor" , "patternDataRequirement" , "patternExpression" , "patternParameterDefinition" , "patternRelatedArtifact" , "patternTriggerDefinition" , "patternUsageContext" , "patternDosage" , "patternMeta"] , primitive = ["patternBase64Binary" , "patternBoolean" , "patternCanonical" , "patternCode" , "patternDate" , "patternDateTime" , "patternDecimal" , "patternId" , "patternInstant" , "patternInteger" , "patternMarkdown" , "patternOid" , "patternPositiveInt" , "patternString" , "patternTime" , "patternUnsignedInt" , "patternUri" , "patternUrl" , "patternUuid"])]
1676 #[doc = "Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. \n\nWhen pattern[x] is used to constrain a primitive, it means that the value provided in the pattern[x] must match the instance value exactly.\n\nWhen pattern[x] is used to constrain an array, it means that each element provided in the pattern[x] array must (recursively) match at least one element from the instance array.\n\nWhen pattern[x] is used to constrain a complex object, it means that each property in the pattern must be present in the complex object, and its value must recursively match -- i.e.,\n\n1. If primitive: it must match exactly the pattern value\n2. If a complex object: it must match (recursively) the pattern value\n3. If an array: it must match (recursively) the pattern value."]
1677 pub pattern: Option<ElementDefinitionPatternTypeChoice>,
1678 #[doc = "A sample value for this element demonstrating the type of information that would typically be found in the element."]
1679 pub example: Option<Vec<ElementDefinitionExample>>,
1680 # [type_choice_variants (complex = ["minValueQuantity"] , primitive = ["minValueDate" , "minValueDateTime" , "minValueInstant" , "minValueTime" , "minValueDecimal" , "minValueInteger" , "minValuePositiveInt" , "minValueUnsignedInt"])]
1681 #[doc = "The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity."]
1682 pub minValue: Option<ElementDefinitionMinValueTypeChoice>,
1683 # [type_choice_variants (complex = ["maxValueQuantity"] , primitive = ["maxValueDate" , "maxValueDateTime" , "maxValueInstant" , "maxValueTime" , "maxValueDecimal" , "maxValueInteger" , "maxValuePositiveInt" , "maxValueUnsignedInt"])]
1684 #[doc = "The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity."]
1685 pub maxValue: Option<ElementDefinitionMaxValueTypeChoice>,
1686 #[primitive]
1687 #[doc = "Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element."]
1688 pub maxLength: Option<Box<FHIRInteger>>,
1689 #[primitive]
1690 #[doc = "A reference to an invariant that may make additional statements about the cardinality or value in the instance."]
1691 pub condition: Option<Vec<Box<FHIRId>>>,
1692 #[doc = "Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance."]
1693 pub constraint: Option<Vec<ElementDefinitionConstraint>>,
1694 #[primitive]
1695 #[doc = "If true, implementations that produce or consume resources SHALL provide \"support\" for the element in some meaningful way. If false, the element may be ignored and not supported. If false, whether to populate or use the data element in any way is at the discretion of the implementation."]
1696 pub mustSupport: Option<Box<FHIRBoolean>>,
1697 #[primitive]
1698 #[doc = "If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system."]
1699 pub isModifier: Option<Box<FHIRBoolean>>,
1700 #[primitive]
1701 #[doc = "Explains how that element affects the interpretation of the resource or element that contains it."]
1702 pub isModifierReason: Option<Box<FHIRString>>,
1703 #[primitive]
1704 #[doc = "Whether the element should be included if a client requests a search with the parameter _summary=true."]
1705 pub isSummary: Option<Box<FHIRBoolean>>,
1706 #[doc = "Binds to a value set if this element is coded (code, Coding, CodeableConcept, Quantity), or the data types (string, uri)."]
1707 pub binding: Option<ElementDefinitionBinding>,
1708 #[doc = "Identifies a concept from an external specification that roughly corresponds to this element."]
1709 pub mapping: Option<Vec<ElementDefinitionMapping>>,
1710}
1711#[derive(
1712 Clone,
1713 Reflect,
1714 Debug,
1715 Default,
1716 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1717 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1718)]
1719#[fhir_serialize_type = "complex"]
1720#[doc = "A expression that is evaluated in a specified context and returns a value. The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used."]
1721pub struct Expression {
1722 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1723 pub id: Option<String>,
1724 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1725 pub extension: Option<Vec<Box<Extension>>>,
1726 #[primitive]
1727 #[doc = "A brief, natural language description of the condition that effectively communicates the intended semantics."]
1728 pub description: Option<Box<FHIRString>>,
1729 #[primitive]
1730 #[doc = "A short name assigned to the expression to allow for multiple reuse of the expression in the context where it is defined."]
1731 pub name: Option<Box<FHIRId>>,
1732 #[primitive]
1733 #[doc = "The media type of the language for the expression."]
1734 pub language: Box<FHIRCode>,
1735 #[primitive]
1736 #[doc = "An expression in the specified language that returns a value."]
1737 pub expression: Option<Box<FHIRString>>,
1738 #[primitive]
1739 #[doc = "A URI that defines where the expression is found."]
1740 pub reference: Option<Box<FHIRUri>>,
1741}
1742#[derive(
1743 Clone,
1744 Reflect,
1745 Debug,
1746 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1747 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1748)]
1749#[fhir_serialize_type = "typechoice"]
1750#[type_choice_field_name = "value"]
1751pub enum ExtensionValueTypeChoice {
1752 Base64Binary(Box<FHIRBase64Binary>),
1753 Boolean(Box<FHIRBoolean>),
1754 Canonical(Box<FHIRString>),
1755 Code(Box<FHIRCode>),
1756 Date(Box<FHIRDate>),
1757 DateTime(Box<FHIRDateTime>),
1758 Decimal(Box<FHIRDecimal>),
1759 Id(Box<FHIRId>),
1760 Instant(Box<FHIRInstant>),
1761 Integer(Box<FHIRInteger>),
1762 Markdown(Box<FHIRMarkdown>),
1763 Oid(Box<FHIROid>),
1764 PositiveInt(Box<FHIRPositiveInt>),
1765 String(Box<FHIRString>),
1766 Time(Box<FHIRTime>),
1767 UnsignedInt(Box<FHIRUnsignedInt>),
1768 Uri(Box<FHIRUri>),
1769 Url(Box<FHIRUrl>),
1770 Uuid(Box<FHIRUuid>),
1771 Address(Box<Address>),
1772 Age(Box<Age>),
1773 Annotation(Box<Annotation>),
1774 Attachment(Box<Attachment>),
1775 CodeableConcept(Box<CodeableConcept>),
1776 Coding(Box<Coding>),
1777 ContactPoint(Box<ContactPoint>),
1778 Count(Box<Count>),
1779 Distance(Box<Distance>),
1780 Duration(Box<Duration>),
1781 HumanName(Box<HumanName>),
1782 Identifier(Box<Identifier>),
1783 Money(Box<Money>),
1784 Period(Box<Period>),
1785 Quantity(Box<Quantity>),
1786 Range(Box<Range>),
1787 Ratio(Box<Ratio>),
1788 Reference(Box<Reference>),
1789 SampledData(Box<SampledData>),
1790 Signature(Box<Signature>),
1791 Timing(Box<Timing>),
1792 ContactDetail(Box<ContactDetail>),
1793 Contributor(Box<Contributor>),
1794 DataRequirement(Box<DataRequirement>),
1795 Expression(Box<Expression>),
1796 ParameterDefinition(Box<ParameterDefinition>),
1797 RelatedArtifact(Box<RelatedArtifact>),
1798 TriggerDefinition(Box<TriggerDefinition>),
1799 UsageContext(Box<UsageContext>),
1800 Dosage(Box<Dosage>),
1801 Meta(Box<Meta>),
1802}
1803impl Default for ExtensionValueTypeChoice {
1804 fn default() -> Self {
1805 ExtensionValueTypeChoice::Base64Binary(Box::new(Default::default()))
1806 }
1807}
1808#[derive(
1809 Clone,
1810 Reflect,
1811 Debug,
1812 Default,
1813 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1814 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1815)]
1816#[fhir_serialize_type = "complex"]
1817#[doc = "Optional Extension Element - found in all resources."]
1818pub struct Extension {
1819 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1820 pub id: Option<String>,
1821 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1822 pub extension: Option<Vec<Box<Extension>>>,
1823 #[doc = "Source of the definition for the extension code - a logical name or a URL."]
1824 pub url: String,
1825 # [type_choice_variants (complex = ["valueAddress" , "valueAge" , "valueAnnotation" , "valueAttachment" , "valueCodeableConcept" , "valueCoding" , "valueContactPoint" , "valueCount" , "valueDistance" , "valueDuration" , "valueHumanName" , "valueIdentifier" , "valueMoney" , "valuePeriod" , "valueQuantity" , "valueRange" , "valueRatio" , "valueReference" , "valueSampledData" , "valueSignature" , "valueTiming" , "valueContactDetail" , "valueContributor" , "valueDataRequirement" , "valueExpression" , "valueParameterDefinition" , "valueRelatedArtifact" , "valueTriggerDefinition" , "valueUsageContext" , "valueDosage" , "valueMeta"] , primitive = ["valueBase64Binary" , "valueBoolean" , "valueCanonical" , "valueCode" , "valueDate" , "valueDateTime" , "valueDecimal" , "valueId" , "valueInstant" , "valueInteger" , "valueMarkdown" , "valueOid" , "valuePositiveInt" , "valueString" , "valueTime" , "valueUnsignedInt" , "valueUri" , "valueUrl" , "valueUuid"])]
1826 #[doc = "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."]
1827 pub value: Option<ExtensionValueTypeChoice>,
1828}
1829#[derive(
1830 Clone,
1831 Reflect,
1832 Debug,
1833 Default,
1834 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1835 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1836)]
1837#[fhir_serialize_type = "complex"]
1838#[doc = "A human's name with the ability to identify parts and usage."]
1839pub struct HumanName {
1840 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1841 pub id: Option<String>,
1842 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1843 pub extension: Option<Vec<Box<Extension>>>,
1844 #[rename_field = "use"]
1845 #[primitive]
1846 #[doc = "Identifies the purpose for this name."]
1847 pub use_: Option<Box<terminology::NameUse>>,
1848 #[primitive]
1849 #[doc = "Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts."]
1850 pub text: Option<Box<FHIRString>>,
1851 #[primitive]
1852 #[doc = "The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father."]
1853 pub family: Option<Box<FHIRString>>,
1854 #[primitive]
1855 #[doc = "Given name."]
1856 pub given: Option<Vec<Box<FHIRString>>>,
1857 #[primitive]
1858 #[doc = "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name."]
1859 pub prefix: Option<Vec<Box<FHIRString>>>,
1860 #[primitive]
1861 #[doc = "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name."]
1862 pub suffix: Option<Vec<Box<FHIRString>>>,
1863 #[doc = "Indicates the period of time when this name was valid for the named person."]
1864 pub period: Option<Box<Period>>,
1865}
1866#[derive(
1867 Clone,
1868 Reflect,
1869 Debug,
1870 Default,
1871 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1872 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1873)]
1874#[fhir_serialize_type = "complex"]
1875#[doc = "An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers."]
1876pub struct Identifier {
1877 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1878 pub id: Option<String>,
1879 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1880 pub extension: Option<Vec<Box<Extension>>>,
1881 #[rename_field = "use"]
1882 #[primitive]
1883 #[doc = "The purpose of this identifier."]
1884 pub use_: Option<Box<terminology::IdentifierUse>>,
1885 #[rename_field = "type"]
1886 #[doc = "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose."]
1887 pub type_: Option<Box<CodeableConcept>>,
1888 #[primitive]
1889 #[doc = "Establishes the namespace for the value - that is, a URL that describes a set values that are unique."]
1890 pub system: Option<Box<FHIRUri>>,
1891 #[primitive]
1892 #[doc = "The portion of the identifier typically relevant to the user and which is unique within the context of the system."]
1893 pub value: Option<Box<FHIRString>>,
1894 #[doc = "Time period during which identifier is/was valid for use."]
1895 pub period: Option<Box<Period>>,
1896 # [reference (targets = ["Organization"])]
1897 #[doc = "Organization that issued/manages the identifier."]
1898 pub assigner: Option<Box<Reference>>,
1899}
1900#[derive(
1901 Clone,
1902 Reflect,
1903 Debug,
1904 Default,
1905 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1906 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1907)]
1908#[fhir_serialize_type = "complex"]
1909#[doc = "The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available."]
1910pub struct MarketingStatus {
1911 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1912 pub id: Option<String>,
1913 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1914 pub extension: Option<Vec<Box<Extension>>>,
1915 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
1916 pub modifierExtension: Option<Vec<Box<Extension>>>,
1917 #[doc = "The country in which the marketing authorisation has been granted shall be specified It should be specified using the ISO 3166 ‑ 1 alpha-2 code elements."]
1918 pub country: Box<CodeableConcept>,
1919 #[doc = "Where a Medicines Regulatory Agency has granted a marketing authorisation for which specific provisions within a jurisdiction apply, the jurisdiction can be specified using an appropriate controlled terminology The controlled term and the controlled term identifier shall be specified."]
1920 pub jurisdiction: Option<Box<CodeableConcept>>,
1921 #[doc = "This attribute provides information on the status of the marketing of the medicinal product See ISO/TS 20443 for more information and examples."]
1922 pub status: Box<CodeableConcept>,
1923 #[doc = "The date when the Medicinal Product is placed on the market by the Marketing Authorisation Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain."]
1924 pub dateRange: Box<Period>,
1925 #[primitive]
1926 #[doc = "The date when the Medicinal Product is placed on the market by the Marketing Authorisation Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain."]
1927 pub restoreDate: Option<Box<FHIRDateTime>>,
1928}
1929#[derive(
1930 Clone,
1931 Reflect,
1932 Debug,
1933 Default,
1934 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1935 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1936)]
1937#[fhir_serialize_type = "complex"]
1938#[doc = "The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."]
1939pub struct Meta {
1940 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1941 pub id: Option<String>,
1942 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1943 pub extension: Option<Vec<Box<Extension>>>,
1944 #[primitive]
1945 #[doc = "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted."]
1946 pub versionId: Option<Box<FHIRId>>,
1947 #[primitive]
1948 #[doc = "When the resource last changed - e.g. when the version changed."]
1949 pub lastUpdated: Option<Box<FHIRInstant>>,
1950 #[primitive]
1951 #[doc = "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc."]
1952 pub source: Option<Box<FHIRUri>>,
1953 #[primitive]
1954 #[doc = "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)."]
1955 pub profile: Option<Vec<Box<FHIRString>>>,
1956 #[doc = "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure."]
1957 pub security: Option<Vec<Box<Coding>>>,
1958 #[doc = "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource."]
1959 pub tag: Option<Vec<Box<Coding>>>,
1960}
1961#[derive(
1962 Clone,
1963 Reflect,
1964 Debug,
1965 Default,
1966 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1967 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1968)]
1969#[fhir_serialize_type = "complex"]
1970#[doc = "An amount of economic utility in some recognized currency."]
1971pub struct Money {
1972 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1973 pub id: Option<String>,
1974 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1975 pub extension: Option<Vec<Box<Extension>>>,
1976 #[primitive]
1977 #[doc = "Numerical value (with implicit precision)."]
1978 pub value: Option<Box<FHIRDecimal>>,
1979 #[primitive]
1980 #[doc = "ISO 4217 Currency Code."]
1981 pub currency: Option<Box<FHIRCode>>,
1982}
1983#[derive(
1984 Clone,
1985 Reflect,
1986 Debug,
1987 Default,
1988 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1989 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1990)]
1991#[fhir_serialize_type = "complex"]
1992#[doc = "A human-readable summary of the resource conveying the essential clinical and business information for the resource."]
1993pub struct Narrative {
1994 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1995 pub id: Option<String>,
1996 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
1997 pub extension: Option<Vec<Box<Extension>>>,
1998 #[primitive]
1999 #[doc = "The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data."]
2000 pub status: Box<terminology::NarrativeStatus>,
2001 #[primitive]
2002 #[doc = "The actual narrative content, a stripped down version of XHTML."]
2003 pub div: Box<FHIRXhtml>,
2004}
2005#[derive(
2006 Clone,
2007 Reflect,
2008 Debug,
2009 Default,
2010 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2011 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2012)]
2013#[fhir_serialize_type = "complex"]
2014#[doc = "The parameters to the module. This collection specifies both the input and output parameters. Input parameters are provided by the caller as part of the $evaluate operation. Output parameters are included in the GuidanceResponse."]
2015pub struct ParameterDefinition {
2016 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2017 pub id: Option<String>,
2018 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2019 pub extension: Option<Vec<Box<Extension>>>,
2020 #[primitive]
2021 #[doc = "The name of the parameter used to allow access to the value of the parameter in evaluation contexts."]
2022 pub name: Option<Box<FHIRCode>>,
2023 #[rename_field = "use"]
2024 #[primitive]
2025 #[doc = "Whether the parameter is input or output for the module."]
2026 pub use_: Box<terminology::OperationParameterUse>,
2027 #[primitive]
2028 #[doc = "The minimum number of times this parameter SHALL appear in the request or response."]
2029 pub min: Option<Box<FHIRInteger>>,
2030 #[primitive]
2031 #[doc = "The maximum number of times this element is permitted to appear in the request or response."]
2032 pub max: Option<Box<FHIRString>>,
2033 #[primitive]
2034 #[doc = "A brief discussion of what the parameter is for and how it is used by the module."]
2035 pub documentation: Option<Box<FHIRString>>,
2036 #[rename_field = "type"]
2037 #[primitive]
2038 #[doc = "The type of the parameter."]
2039 pub type_: Box<terminology::AllTypes>,
2040 #[primitive]
2041 #[doc = "If specified, this indicates a profile that the input data must conform to, or that the output data will conform to."]
2042 pub profile: Option<Box<FHIRString>>,
2043}
2044#[derive(
2045 Clone,
2046 Reflect,
2047 Debug,
2048 Default,
2049 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2050 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2051)]
2052#[fhir_serialize_type = "complex"]
2053#[doc = "A time period defined by a start and end date and optionally time."]
2054pub struct Period {
2055 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2056 pub id: Option<String>,
2057 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2058 pub extension: Option<Vec<Box<Extension>>>,
2059 #[primitive]
2060 #[doc = "The start of the period. The boundary is inclusive."]
2061 pub start: Option<Box<FHIRDateTime>>,
2062 #[primitive]
2063 #[doc = "The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time."]
2064 pub end: Option<Box<FHIRDateTime>>,
2065}
2066#[derive(
2067 Clone,
2068 Reflect,
2069 Debug,
2070 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2071 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2072)]
2073#[fhir_serialize_type = "typechoice"]
2074#[type_choice_field_name = "age"]
2075pub enum PopulationAgeTypeChoice {
2076 Range(Box<Range>),
2077 CodeableConcept(Box<CodeableConcept>),
2078}
2079impl Default for PopulationAgeTypeChoice {
2080 fn default() -> Self {
2081 PopulationAgeTypeChoice::Range(Box::new(Default::default()))
2082 }
2083}
2084#[derive(
2085 Clone,
2086 Reflect,
2087 Debug,
2088 Default,
2089 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2090 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2091)]
2092#[fhir_serialize_type = "complex"]
2093#[doc = "A populatioof people with some set of grouping criteria."]
2094pub struct Population {
2095 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2096 pub id: Option<String>,
2097 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2098 pub extension: Option<Vec<Box<Extension>>>,
2099 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
2100 pub modifierExtension: Option<Vec<Box<Extension>>>,
2101 # [type_choice_variants (complex = ["ageRange" , "ageCodeableConcept"] , primitive = [])]
2102 #[doc = "The age of the specific population."]
2103 pub age: Option<PopulationAgeTypeChoice>,
2104 #[doc = "The gender of the specific population."]
2105 pub gender: Option<Box<CodeableConcept>>,
2106 #[doc = "Race of the specific population."]
2107 pub race: Option<Box<CodeableConcept>>,
2108 #[doc = "The existing physiological conditions of the specific population to which this applies."]
2109 pub physiologicalCondition: Option<Box<CodeableConcept>>,
2110}
2111#[derive(
2112 Clone,
2113 Reflect,
2114 Debug,
2115 Default,
2116 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2117 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2118)]
2119#[fhir_serialize_type = "complex"]
2120#[doc = "The marketing status describes the date when a medicinal product is actually put on the market or the date as of which it is no longer available."]
2121pub struct ProdCharacteristic {
2122 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2123 pub id: Option<String>,
2124 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2125 pub extension: Option<Vec<Box<Extension>>>,
2126 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
2127 pub modifierExtension: Option<Vec<Box<Extension>>>,
2128 #[doc = "Where applicable, the height can be specified using a numerical value and its unit of measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2129 pub height: Option<Box<Quantity>>,
2130 #[doc = "Where applicable, the width can be specified using a numerical value and its unit of measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2131 pub width: Option<Box<Quantity>>,
2132 #[doc = "Where applicable, the depth can be specified using a numerical value and its unit of measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2133 pub depth: Option<Box<Quantity>>,
2134 #[doc = "Where applicable, the weight can be specified using a numerical value and its unit of measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2135 pub weight: Option<Box<Quantity>>,
2136 #[doc = "Where applicable, the nominal volume can be specified using a numerical value and its unit of measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2137 pub nominalVolume: Option<Box<Quantity>>,
2138 #[doc = "Where applicable, the external diameter can be specified using a numerical value and its unit of measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2139 pub externalDiameter: Option<Box<Quantity>>,
2140 #[primitive]
2141 #[doc = "Where applicable, the shape can be specified An appropriate controlled vocabulary shall be used The term and the term identifier shall be used."]
2142 pub shape: Option<Box<FHIRString>>,
2143 #[primitive]
2144 #[doc = "Where applicable, the color can be specified An appropriate controlled vocabulary shall be used The term and the term identifier shall be used."]
2145 pub color: Option<Vec<Box<FHIRString>>>,
2146 #[primitive]
2147 #[doc = "Where applicable, the imprint can be specified as text."]
2148 pub imprint: Option<Vec<Box<FHIRString>>>,
2149 #[doc = "Where applicable, the image can be provided The format of the image attachment shall be specified by regional implementations."]
2150 pub image: Option<Vec<Box<Attachment>>>,
2151 #[doc = "Where applicable, the scoring can be specified An appropriate controlled vocabulary shall be used The term and the term identifier shall be used."]
2152 pub scoring: Option<Box<CodeableConcept>>,
2153}
2154#[derive(
2155 Clone,
2156 Reflect,
2157 Debug,
2158 Default,
2159 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2160 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2161)]
2162#[fhir_serialize_type = "complex"]
2163#[doc = "The shelf-life and storage information for a medicinal product item or container can be described using this class."]
2164pub struct ProductShelfLife {
2165 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2166 pub id: Option<String>,
2167 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2168 pub extension: Option<Vec<Box<Extension>>>,
2169 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
2170 pub modifierExtension: Option<Vec<Box<Extension>>>,
2171 #[rename_field = "identifier"]
2172 #[doc = "Unique identifier for the packaged Medicinal Product."]
2173 pub identifier_: Option<Box<Identifier>>,
2174 #[rename_field = "type"]
2175 #[doc = "This describes the shelf life, taking into account various scenarios such as shelf life of the packaged Medicinal Product itself, shelf life after transformation where necessary and shelf life after the first opening of a bottle, etc. The shelf life type shall be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified."]
2176 pub type_: Box<CodeableConcept>,
2177 #[doc = "The shelf life time period can be specified using a numerical value for the period of time and its unit of time measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used."]
2178 pub period: Box<Quantity>,
2179 #[doc = "Special precautions for storage, if any, can be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified."]
2180 pub specialPrecautionsForStorage: Option<Vec<Box<CodeableConcept>>>,
2181}
2182#[derive(
2183 Clone,
2184 Reflect,
2185 Debug,
2186 Default,
2187 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2188 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2189)]
2190#[fhir_serialize_type = "complex"]
2191#[doc = "A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies."]
2192pub struct Quantity {
2193 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2194 pub id: Option<String>,
2195 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2196 pub extension: Option<Vec<Box<Extension>>>,
2197 #[primitive]
2198 #[doc = "The value of the measured amount. The value includes an implicit precision in the presentation of the value."]
2199 pub value: Option<Box<FHIRDecimal>>,
2200 #[primitive]
2201 #[doc = "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value."]
2202 pub comparator: Option<Box<terminology::QuantityComparator>>,
2203 #[primitive]
2204 #[doc = "A human-readable form of the unit."]
2205 pub unit: Option<Box<FHIRString>>,
2206 #[primitive]
2207 #[doc = "The identification of the system that provides the coded form of the unit."]
2208 pub system: Option<Box<FHIRUri>>,
2209 #[primitive]
2210 #[doc = "A computer processable form of the unit in some unit representation system."]
2211 pub code: Option<Box<FHIRCode>>,
2212}
2213#[derive(
2214 Clone,
2215 Reflect,
2216 Debug,
2217 Default,
2218 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2219 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2220)]
2221#[fhir_serialize_type = "complex"]
2222#[doc = "A set of ordered Quantities defined by a low and high limit."]
2223pub struct Range {
2224 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2225 pub id: Option<String>,
2226 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2227 pub extension: Option<Vec<Box<Extension>>>,
2228 #[doc = "The low limit. The boundary is inclusive."]
2229 pub low: Option<Box<Quantity>>,
2230 #[doc = "The high limit. The boundary is inclusive."]
2231 pub high: Option<Box<Quantity>>,
2232}
2233#[derive(
2234 Clone,
2235 Reflect,
2236 Debug,
2237 Default,
2238 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2239 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2240)]
2241#[fhir_serialize_type = "complex"]
2242#[doc = "A relationship of two Quantity values - expressed as a numerator and a denominator."]
2243pub struct Ratio {
2244 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2245 pub id: Option<String>,
2246 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2247 pub extension: Option<Vec<Box<Extension>>>,
2248 #[doc = "The value of the numerator."]
2249 pub numerator: Option<Box<Quantity>>,
2250 #[doc = "The value of the denominator."]
2251 pub denominator: Option<Box<Quantity>>,
2252}
2253#[derive(
2254 Clone,
2255 Reflect,
2256 Debug,
2257 Default,
2258 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2259 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2260)]
2261#[fhir_serialize_type = "complex"]
2262#[doc = "A reference from one resource to another."]
2263pub struct Reference {
2264 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2265 pub id: Option<String>,
2266 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2267 pub extension: Option<Vec<Box<Extension>>>,
2268 #[primitive]
2269 #[doc = "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources."]
2270 pub reference: Option<Box<FHIRString>>,
2271 #[rename_field = "type"]
2272 #[primitive]
2273 #[doc = "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources)."]
2274 pub type_: Option<Box<FHIRUri>>,
2275 #[rename_field = "identifier"]
2276 #[doc = "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference."]
2277 pub identifier_: Option<Box<Identifier>>,
2278 #[primitive]
2279 #[doc = "Plain text narrative that identifies the resource in addition to the resource reference."]
2280 pub display: Option<Box<FHIRString>>,
2281}
2282#[derive(
2283 Clone,
2284 Reflect,
2285 Debug,
2286 Default,
2287 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2288 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2289)]
2290#[fhir_serialize_type = "complex"]
2291#[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
2292pub struct RelatedArtifact {
2293 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2294 pub id: Option<String>,
2295 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2296 pub extension: Option<Vec<Box<Extension>>>,
2297 #[rename_field = "type"]
2298 #[primitive]
2299 #[doc = "The type of relationship to the related artifact."]
2300 pub type_: Box<terminology::RelatedArtifactType>,
2301 #[primitive]
2302 #[doc = "A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index."]
2303 pub label: Option<Box<FHIRString>>,
2304 #[primitive]
2305 #[doc = "A brief description of the document or knowledge resource being referenced, suitable for display to a consumer."]
2306 pub display: Option<Box<FHIRString>>,
2307 #[primitive]
2308 #[doc = "A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format."]
2309 pub citation: Option<Box<FHIRMarkdown>>,
2310 #[primitive]
2311 #[doc = "A url for the artifact that can be followed to access the actual content."]
2312 pub url: Option<Box<FHIRUrl>>,
2313 #[doc = "The document being referenced, represented as an attachment. This is exclusive with the resource element."]
2314 pub document: Option<Box<Attachment>>,
2315 #[primitive]
2316 #[doc = "The related resource, such as a library, value set, profile, or other knowledge resource."]
2317 pub resource: Option<Box<FHIRString>>,
2318}
2319#[derive(
2320 Clone,
2321 Reflect,
2322 Debug,
2323 Default,
2324 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2325 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2326)]
2327#[fhir_serialize_type = "complex"]
2328#[doc = "A series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data."]
2329pub struct SampledData {
2330 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2331 pub id: Option<String>,
2332 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2333 pub extension: Option<Vec<Box<Extension>>>,
2334 #[doc = "The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series."]
2335 pub origin: Box<Quantity>,
2336 #[primitive]
2337 #[doc = "The length of time between sampling times, measured in milliseconds."]
2338 pub period: Box<FHIRDecimal>,
2339 #[primitive]
2340 #[doc = "A correction factor that is applied to the sampled data points before they are added to the origin."]
2341 pub factor: Option<Box<FHIRDecimal>>,
2342 #[primitive]
2343 #[doc = "The lower limit of detection of the measured points. This is needed if any of the data points have the value \"L\" (lower than detection limit)."]
2344 pub lowerLimit: Option<Box<FHIRDecimal>>,
2345 #[primitive]
2346 #[doc = "The upper limit of detection of the measured points. This is needed if any of the data points have the value \"U\" (higher than detection limit)."]
2347 pub upperLimit: Option<Box<FHIRDecimal>>,
2348 #[primitive]
2349 #[doc = "The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once."]
2350 pub dimensions: Box<FHIRPositiveInt>,
2351 #[primitive]
2352 #[doc = "A series of data points which are decimal values separated by a single space (character u20). The special values \"E\" (error), \"L\" (below detection limit) and \"U\" (above detection limit) can also be used in place of a decimal value."]
2353 pub data: Option<Box<FHIRString>>,
2354}
2355#[derive(
2356 Clone,
2357 Reflect,
2358 Debug,
2359 Default,
2360 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2361 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2362)]
2363#[fhir_serialize_type = "complex"]
2364#[doc = "A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities."]
2365pub struct Signature {
2366 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2367 pub id: Option<String>,
2368 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2369 pub extension: Option<Vec<Box<Extension>>>,
2370 #[rename_field = "type"]
2371 #[cardinality(min = 1usize)]
2372 #[doc = "An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document."]
2373 pub type_: Vec<Box<Coding>>,
2374 #[primitive]
2375 #[doc = "When the digital signature was signed."]
2376 pub when: Box<FHIRInstant>,
2377 # [reference (targets = ["Practitioner" , "PractitionerRole" , "RelatedPerson" , "Patient" , "Device" , "Organization"])]
2378 #[doc = "A reference to an application-usable description of the identity that signed (e.g. the signature used their private key)."]
2379 pub who: Box<Reference>,
2380 # [reference (targets = ["Practitioner" , "PractitionerRole" , "RelatedPerson" , "Patient" , "Device" , "Organization"])]
2381 #[doc = "A reference to an application-usable description of the identity that is represented by the signature."]
2382 pub onBehalfOf: Option<Box<Reference>>,
2383 #[primitive]
2384 #[doc = "A mime type that indicates the technical format of the target resources signed by the signature."]
2385 pub targetFormat: Option<Box<FHIRCode>>,
2386 #[primitive]
2387 #[doc = "A mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc."]
2388 pub sigFormat: Option<Box<FHIRCode>>,
2389 #[primitive]
2390 #[doc = "The base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty."]
2391 pub data: Option<Box<FHIRBase64Binary>>,
2392}
2393#[derive(
2394 Clone,
2395 Reflect,
2396 Debug,
2397 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2398 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2399)]
2400#[fhir_serialize_type = "typechoice"]
2401#[type_choice_field_name = "amount"]
2402pub enum SubstanceAmountAmountTypeChoice {
2403 Quantity(Box<Quantity>),
2404 Range(Box<Range>),
2405 String(Box<FHIRString>),
2406}
2407impl Default for SubstanceAmountAmountTypeChoice {
2408 fn default() -> Self {
2409 SubstanceAmountAmountTypeChoice::Quantity(Box::new(Default::default()))
2410 }
2411}
2412#[derive(
2413 Clone,
2414 Reflect,
2415 Debug,
2416 Default,
2417 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2418 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2419)]
2420#[fhir_serialize_type = "complex"]
2421#[doc = "Reference range of possible or expected values."]
2422pub struct SubstanceAmountReferenceRange {
2423 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2424 pub id: Option<String>,
2425 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2426 pub extension: Option<Vec<Box<Extension>>>,
2427 #[doc = "Lower limit possible or expected."]
2428 pub lowLimit: Option<Box<Quantity>>,
2429 #[doc = "Upper limit possible or expected."]
2430 pub highLimit: Option<Box<Quantity>>,
2431}
2432#[derive(
2433 Clone,
2434 Reflect,
2435 Debug,
2436 Default,
2437 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2438 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2439)]
2440#[fhir_serialize_type = "complex"]
2441#[doc = "Chemical substances are a single substance type whose primary defining element is the molecular structure. Chemical substances shall be defined on the basis of their complete covalent molecular structure; the presence of a salt (counter-ion) and/or solvates (water, alcohols) is also captured. Purity, grade, physical form or particle size are not taken into account in the definition of a chemical substance or in the assignment of a Substance ID."]
2442pub struct SubstanceAmount {
2443 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2444 pub id: Option<String>,
2445 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2446 pub extension: Option<Vec<Box<Extension>>>,
2447 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
2448 pub modifierExtension: Option<Vec<Box<Extension>>>,
2449 # [type_choice_variants (complex = ["amountQuantity" , "amountRange"] , primitive = ["amountString"])]
2450 #[doc = "Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field."]
2451 pub amount: Option<SubstanceAmountAmountTypeChoice>,
2452 #[doc = "Most elements that require a quantitative value will also have a field called amount type. Amount type should always be specified because the actual value of the amount is often dependent on it. EXAMPLE: In capturing the actual relative amounts of substances or molecular fragments it is essential to indicate whether the amount refers to a mole ratio or weight ratio. For any given element an effort should be made to use same the amount type for all related definitional elements."]
2453 pub amountType: Option<Box<CodeableConcept>>,
2454 #[primitive]
2455 #[doc = "A textual comment on a numeric value."]
2456 pub amountText: Option<Box<FHIRString>>,
2457 #[doc = "Reference range of possible or expected values."]
2458 pub referenceRange: Option<SubstanceAmountReferenceRange>,
2459}
2460#[derive(
2461 Clone,
2462 Reflect,
2463 Debug,
2464 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2465 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2466)]
2467#[fhir_serialize_type = "typechoice"]
2468#[type_choice_field_name = "bounds"]
2469pub enum TimingRepeatBoundsTypeChoice {
2470 Duration(Box<Duration>),
2471 Range(Box<Range>),
2472 Period(Box<Period>),
2473}
2474impl Default for TimingRepeatBoundsTypeChoice {
2475 fn default() -> Self {
2476 TimingRepeatBoundsTypeChoice::Duration(Box::new(Default::default()))
2477 }
2478}
2479#[derive(
2480 Clone,
2481 Reflect,
2482 Debug,
2483 Default,
2484 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2485 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2486)]
2487#[fhir_serialize_type = "complex"]
2488#[doc = "A set of rules that describe when the event is scheduled."]
2489pub struct TimingRepeat {
2490 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2491 pub id: Option<String>,
2492 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2493 pub extension: Option<Vec<Box<Extension>>>,
2494 # [type_choice_variants (complex = ["boundsDuration" , "boundsRange" , "boundsPeriod"] , primitive = [])]
2495 #[doc = "Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule."]
2496 pub bounds: Option<TimingRepeatBoundsTypeChoice>,
2497 #[primitive]
2498 #[doc = "A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values."]
2499 pub count: Option<Box<FHIRPositiveInt>>,
2500 #[primitive]
2501 #[doc = "If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times."]
2502 pub countMax: Option<Box<FHIRPositiveInt>>,
2503 #[primitive]
2504 #[doc = "How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration."]
2505 pub duration: Option<Box<FHIRDecimal>>,
2506 #[primitive]
2507 #[doc = "If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length."]
2508 pub durationMax: Option<Box<FHIRDecimal>>,
2509 #[primitive]
2510 #[doc = "The units of time for the duration, in UCUM units."]
2511 pub durationUnit: Option<Box<terminology::UnitsOfTime>>,
2512 #[primitive]
2513 #[doc = "The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency."]
2514 pub frequency: Option<Box<FHIRPositiveInt>>,
2515 #[primitive]
2516 #[doc = "If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range."]
2517 pub frequencyMax: Option<Box<FHIRPositiveInt>>,
2518 #[primitive]
2519 #[doc = "Indicates the duration of time over which repetitions are to occur; e.g. to express \"3 times per day\", 3 would be the frequency and \"1 day\" would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length."]
2520 pub period: Option<Box<FHIRDecimal>>,
2521 #[primitive]
2522 #[doc = "If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as \"do this once every 3-5 days."]
2523 pub periodMax: Option<Box<FHIRDecimal>>,
2524 #[primitive]
2525 #[doc = "The units of time for the period in UCUM units."]
2526 pub periodUnit: Option<Box<terminology::UnitsOfTime>>,
2527 #[primitive]
2528 #[doc = "If one or more days of week is provided, then the action happens only on the specified day(s)."]
2529 pub dayOfWeek: Option<Vec<Box<terminology::DaysOfWeek>>>,
2530 #[primitive]
2531 #[doc = "Specified time of day for action to take place."]
2532 pub timeOfDay: Option<Vec<Box<FHIRTime>>>,
2533 #[primitive]
2534 #[doc = "An approximate time period during the day, potentially linked to an event of daily living that indicates when the action should occur."]
2535 pub when: Option<Vec<Box<terminology::EventTiming>>>,
2536 #[primitive]
2537 #[doc = "The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event."]
2538 pub offset: Option<Box<FHIRUnsignedInt>>,
2539}
2540#[derive(
2541 Clone,
2542 Reflect,
2543 Debug,
2544 Default,
2545 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2546 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2547)]
2548#[fhir_serialize_type = "complex"]
2549#[doc = "Specifies an event that may occur multiple times. Timing schedules are used to record when things are planned, expected or requested to occur. The most common usage is in dosage instructions for medications. They are also used when planning care of various kinds, and may be used for reporting the schedule to which past regular activities were carried out."]
2550pub struct Timing {
2551 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2552 pub id: Option<String>,
2553 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2554 pub extension: Option<Vec<Box<Extension>>>,
2555 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
2556 pub modifierExtension: Option<Vec<Box<Extension>>>,
2557 #[primitive]
2558 #[doc = "Identifies specific times when the event occurs."]
2559 pub event: Option<Vec<Box<FHIRDateTime>>>,
2560 #[doc = "A set of rules that describe when the event is scheduled."]
2561 pub repeat: Option<TimingRepeat>,
2562 #[doc = "A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code)."]
2563 pub code: Option<Box<CodeableConcept>>,
2564}
2565#[derive(
2566 Clone,
2567 Reflect,
2568 Debug,
2569 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2570 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2571)]
2572#[fhir_serialize_type = "typechoice"]
2573#[type_choice_field_name = "timing"]
2574pub enum TriggerDefinitionTimingTypeChoice {
2575 Timing(Box<Timing>),
2576 # [reference (targets = ["Schedule"])]
2577 Reference(Box<Reference>),
2578 Date(Box<FHIRDate>),
2579 DateTime(Box<FHIRDateTime>),
2580}
2581impl Default for TriggerDefinitionTimingTypeChoice {
2582 fn default() -> Self {
2583 TriggerDefinitionTimingTypeChoice::Timing(Box::new(Default::default()))
2584 }
2585}
2586#[derive(
2587 Clone,
2588 Reflect,
2589 Debug,
2590 Default,
2591 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2592 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2593)]
2594#[fhir_serialize_type = "complex"]
2595#[doc = "A description of a triggering event. Triggering events can be named events, data events, or periodic, as determined by the type element."]
2596pub struct TriggerDefinition {
2597 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2598 pub id: Option<String>,
2599 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2600 pub extension: Option<Vec<Box<Extension>>>,
2601 #[rename_field = "type"]
2602 #[primitive]
2603 #[doc = "The type of triggering event."]
2604 pub type_: Box<terminology::TriggerType>,
2605 #[primitive]
2606 #[doc = "A formal name for the event. This may be an absolute URI that identifies the event formally (e.g. from a trigger registry), or a simple relative URI that identifies the event in a local context."]
2607 pub name: Option<Box<FHIRString>>,
2608 # [type_choice_variants (complex = ["timingTiming" , "timingReference"] , primitive = ["timingDate" , "timingDateTime"])]
2609 #[doc = "The timing of the event (if this is a periodic trigger)."]
2610 pub timing: Option<TriggerDefinitionTimingTypeChoice>,
2611 #[doc = "The triggering data of the event (if this is a data trigger). If more than one data is requirement is specified, then all the data requirements must be true."]
2612 pub data: Option<Vec<Box<DataRequirement>>>,
2613 #[doc = "A boolean-valued expression that is evaluated in the context of the container of the trigger definition and returns whether or not the trigger fires."]
2614 pub condition: Option<Box<Expression>>,
2615}
2616#[derive(
2617 Clone,
2618 Reflect,
2619 Debug,
2620 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2621 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2622)]
2623#[fhir_serialize_type = "typechoice"]
2624#[type_choice_field_name = "value"]
2625pub enum UsageContextValueTypeChoice {
2626 CodeableConcept(Box<CodeableConcept>),
2627 Quantity(Box<Quantity>),
2628 Range(Box<Range>),
2629 # [reference (targets = ["PlanDefinition" , "ResearchStudy" , "InsurancePlan" , "HealthcareService" , "Group" , "Location" , "Organization"])]
2630 Reference(Box<Reference>),
2631}
2632impl Default for UsageContextValueTypeChoice {
2633 fn default() -> Self {
2634 UsageContextValueTypeChoice::CodeableConcept(Box::new(Default::default()))
2635 }
2636}
2637#[derive(
2638 Clone,
2639 Reflect,
2640 Debug,
2641 Default,
2642 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2643 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2644)]
2645#[fhir_serialize_type = "complex"]
2646#[doc = "Specifies clinical/business/etc. metadata that can be used to retrieve, index and/or categorize an artifact. This metadata can either be specific to the applicable population (e.g., age category, DRG) or the specific context of care (e.g., venue, care setting, provider of care)."]
2647pub struct UsageContext {
2648 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2649 pub id: Option<String>,
2650 #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2651 pub extension: Option<Vec<Box<Extension>>>,
2652 #[doc = "A code that identifies the type of context being specified by this usage context."]
2653 pub code: Box<Coding>,
2654 # [type_choice_variants (complex = ["valueCodeableConcept" , "valueQuantity" , "valueRange" , "valueReference"] , primitive = [])]
2655 #[doc = "A value that defines the context specified in this context of use. The interpretation of the value is defined by the code."]
2656 pub value: UsageContextValueTypeChoice,
2657}
2658#[derive(
2659 Clone,
2660 Reflect,
2661 Debug,
2662 Default,
2663 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2664 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2665)]
2666#[fhir_serialize_type = "complex"]
2667#[doc = "Common Ancestor declaration for conformance and knowledge artifact resources."]
2668pub struct MetadataResource {
2669 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
2670 pub id: Option<String>,
2671 #[doc = "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."]
2672 pub meta: Option<Box<Meta>>,
2673 #[primitive]
2674 #[doc = "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."]
2675 pub implicitRules: Option<Box<FHIRUri>>,
2676 #[primitive]
2677 #[doc = "The base language in which the resource is written."]
2678 pub language: Option<Box<FHIRCode>>,
2679 #[doc = "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety."]
2680 pub text: Option<Box<Narrative>>,
2681 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
2682 pub contained: Option<Vec<Box<Resource>>>,
2683 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
2684 pub extension: Option<Vec<Box<Extension>>>,
2685 #[doc = "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
2686 pub modifierExtension: Option<Vec<Box<Extension>>>,
2687 #[primitive]
2688 #[doc = "An absolute URI that is used to identify this metadata resource when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this metadata resource is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the metadata resource is stored on different servers."]
2689 pub url: Option<Box<FHIRUri>>,
2690 #[primitive]
2691 #[doc = "The identifier that is used to identify this version of the metadata resource when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the metadata resource author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence."]
2692 pub version: Option<Box<FHIRString>>,
2693 #[primitive]
2694 #[doc = "A natural language name identifying the metadata resource. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
2695 pub name: Option<Box<FHIRString>>,
2696 #[primitive]
2697 #[doc = "A short, descriptive, user-friendly title for the metadata resource."]
2698 pub title: Option<Box<FHIRString>>,
2699 #[primitive]
2700 #[doc = "The status of this metadata resource. Enables tracking the life-cycle of the content."]
2701 pub status: Box<terminology::PublicationStatus>,
2702 #[primitive]
2703 #[doc = "A Boolean value to indicate that this metadata resource is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
2704 pub experimental: Option<Box<FHIRBoolean>>,
2705 #[primitive]
2706 #[doc = "The date (and optionally time) when the metadata resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the metadata resource changes."]
2707 pub date: Option<Box<FHIRDateTime>>,
2708 #[primitive]
2709 #[doc = "The name of the organization or individual that published the metadata resource."]
2710 pub publisher: Option<Box<FHIRString>>,
2711 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
2712 pub contact: Option<Vec<Box<ContactDetail>>>,
2713 #[primitive]
2714 #[doc = "A free text natural language description of the metadata resource from a consumer's perspective."]
2715 pub description: Option<Box<FHIRMarkdown>>,
2716 #[doc = "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate metadata resource instances."]
2717 pub useContext: Option<Vec<Box<UsageContext>>>,
2718 #[doc = "A legal or geographic region in which the metadata resource is intended to be used."]
2719 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
2720}