haste_fhir_model/r4/generated/
types.rs

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}