fhirbolt_model/generated/r5/resources/
citation.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "Indicates the mechanism used to compare versions to determine which is more current."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum CitationVersionAlgorithm {
5    String(super::super::types::String),
6    Coding(Box<super::super::types::Coding>),
7    #[default]
8    Invalid,
9}
10#[doc = "A human-readable display of key concepts to represent the citation."]
11#[derive(Debug, Clone, PartialEq)]
12pub struct CitationSummary {
13    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14    pub r#id: Option<std::string::String>,
15    #[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 managable, 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."]
16    pub r#extension: Vec<super::super::types::Extension>,
17    #[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 managable, 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)."]
18    pub r#modifier_extension: Vec<super::super::types::Extension>,
19    #[doc = "Format for display of the citation summary."]
20    pub r#style: Option<Box<super::super::types::CodeableConcept>>,
21    #[doc = "The human-readable display of the citation summary."]
22    pub r#text: super::super::types::Markdown,
23}
24#[allow(clippy::derivable_impls)]
25impl Default for CitationSummary {
26    fn default() -> Self {
27        Self {
28            r#id: Default::default(),
29            r#extension: Default::default(),
30            r#modifier_extension: Default::default(),
31            r#style: Default::default(),
32            r#text: super::super::types::Markdown {
33                id: Some("$invalid".to_string()),
34                ..Default::default()
35            },
36        }
37    }
38}
39#[doc = "The assignment to an organizing scheme."]
40#[derive(Debug, Clone, PartialEq)]
41pub struct CitationClassification {
42    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
43    pub r#id: Option<std::string::String>,
44    #[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 managable, 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."]
45    pub r#extension: Vec<super::super::types::Extension>,
46    #[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 managable, 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)."]
47    pub r#modifier_extension: Vec<super::super::types::Extension>,
48    #[doc = "The kind of classifier (e.g. publication type, keyword)."]
49    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
50    #[doc = "The specific classification value."]
51    pub r#classifier: Vec<super::super::types::CodeableConcept>,
52}
53#[allow(clippy::derivable_impls)]
54impl Default for CitationClassification {
55    fn default() -> Self {
56        Self {
57            r#id: Default::default(),
58            r#extension: Default::default(),
59            r#modifier_extension: Default::default(),
60            r#type: Default::default(),
61            r#classifier: Default::default(),
62        }
63    }
64}
65#[doc = "The state or status of the citation record paired with an effective date or period for that state."]
66#[derive(Debug, Clone, PartialEq)]
67pub struct CitationStatusDate {
68    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
69    pub r#id: Option<std::string::String>,
70    #[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 managable, 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."]
71    pub r#extension: Vec<super::super::types::Extension>,
72    #[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 managable, 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)."]
73    pub r#modifier_extension: Vec<super::super::types::Extension>,
74    #[doc = "The state or status of the citation record (that will be paired with the period)."]
75    pub r#activity: Box<super::super::types::CodeableConcept>,
76    #[doc = "Whether the status date is actual (has occurred) or expected (estimated or anticipated)."]
77    pub r#actual: Option<super::super::types::Boolean>,
78    #[doc = "When the status started and/or ended."]
79    pub r#period: Box<super::super::types::Period>,
80}
81#[allow(clippy::derivable_impls)]
82impl Default for CitationStatusDate {
83    fn default() -> Self {
84        Self {
85            r#id: Default::default(),
86            r#extension: Default::default(),
87            r#modifier_extension: Default::default(),
88            r#activity: Box::new(super::super::types::CodeableConcept {
89                id: Some("$invalid".to_string()),
90                ..Default::default()
91            }),
92            r#actual: Default::default(),
93            r#period: Box::new(super::super::types::Period {
94                id: Some("$invalid".to_string()),
95                ..Default::default()
96            }),
97        }
98    }
99}
100#[doc = "The defined version of the cited artifact."]
101#[derive(Debug, Clone, PartialEq)]
102pub struct CitationCitedArtifactVersion {
103    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
104    pub r#id: Option<std::string::String>,
105    #[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 managable, 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."]
106    pub r#extension: Vec<super::super::types::Extension>,
107    #[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 managable, 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)."]
108    pub r#modifier_extension: Vec<super::super::types::Extension>,
109    #[doc = "The version number or other version identifier."]
110    pub r#value: super::super::types::String,
111    #[doc = "Citation for the main version of the cited artifact."]
112    pub r#base_citation: Option<Box<super::super::types::Reference>>,
113}
114#[allow(clippy::derivable_impls)]
115impl Default for CitationCitedArtifactVersion {
116    fn default() -> Self {
117        Self {
118            r#id: Default::default(),
119            r#extension: Default::default(),
120            r#modifier_extension: Default::default(),
121            r#value: super::super::types::String {
122                id: Some("$invalid".to_string()),
123                ..Default::default()
124            },
125            r#base_citation: Default::default(),
126        }
127    }
128}
129#[doc = "An effective date or period, historical or future, actual or expected, for a status of the cited artifact."]
130#[derive(Debug, Clone, PartialEq)]
131pub struct CitationCitedArtifactStatusDate {
132    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
133    pub r#id: Option<std::string::String>,
134    #[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 managable, 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."]
135    pub r#extension: Vec<super::super::types::Extension>,
136    #[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 managable, 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)."]
137    pub r#modifier_extension: Vec<super::super::types::Extension>,
138    #[doc = "A definition of the status associated with a date or period."]
139    pub r#activity: Box<super::super::types::CodeableConcept>,
140    #[doc = "Either occurred or expected."]
141    pub r#actual: Option<super::super::types::Boolean>,
142    #[doc = "When the status started and/or ended."]
143    pub r#period: Box<super::super::types::Period>,
144}
145#[allow(clippy::derivable_impls)]
146impl Default for CitationCitedArtifactStatusDate {
147    fn default() -> Self {
148        Self {
149            r#id: Default::default(),
150            r#extension: Default::default(),
151            r#modifier_extension: Default::default(),
152            r#activity: Box::new(super::super::types::CodeableConcept {
153                id: Some("$invalid".to_string()),
154                ..Default::default()
155            }),
156            r#actual: Default::default(),
157            r#period: Box::new(super::super::types::Period {
158                id: Some("$invalid".to_string()),
159                ..Default::default()
160            }),
161        }
162    }
163}
164#[doc = "The title details of the article or artifact."]
165#[derive(Debug, Clone, PartialEq)]
166pub struct CitationCitedArtifactTitle {
167    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
168    pub r#id: Option<std::string::String>,
169    #[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 managable, 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."]
170    pub r#extension: Vec<super::super::types::Extension>,
171    #[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 managable, 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)."]
172    pub r#modifier_extension: Vec<super::super::types::Extension>,
173    #[doc = "Used to express the reason for or classification of the title."]
174    pub r#type: Vec<super::super::types::CodeableConcept>,
175    #[doc = "Used to express the specific language of the title."]
176    pub r#language: Option<Box<super::super::types::CodeableConcept>>,
177    #[doc = "The title of the article or artifact."]
178    pub r#text: super::super::types::Markdown,
179}
180#[allow(clippy::derivable_impls)]
181impl Default for CitationCitedArtifactTitle {
182    fn default() -> Self {
183        Self {
184            r#id: Default::default(),
185            r#extension: Default::default(),
186            r#modifier_extension: Default::default(),
187            r#type: Default::default(),
188            r#language: Default::default(),
189            r#text: super::super::types::Markdown {
190                id: Some("$invalid".to_string()),
191                ..Default::default()
192            },
193        }
194    }
195}
196#[doc = "The abstract may be used to convey article-contained abstracts, externally-created abstracts, or other descriptive summaries."]
197#[derive(Debug, Clone, PartialEq)]
198pub struct CitationCitedArtifactAbstract {
199    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
200    pub r#id: Option<std::string::String>,
201    #[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 managable, 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."]
202    pub r#extension: Vec<super::super::types::Extension>,
203    #[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 managable, 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)."]
204    pub r#modifier_extension: Vec<super::super::types::Extension>,
205    #[doc = "Used to express the reason for or classification of the abstract."]
206    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
207    #[doc = "Used to express the specific language of the abstract."]
208    pub r#language: Option<Box<super::super::types::CodeableConcept>>,
209    #[doc = "Abstract content."]
210    pub r#text: super::super::types::Markdown,
211    #[doc = "Copyright notice for the abstract."]
212    pub r#copyright: Option<super::super::types::Markdown>,
213}
214#[allow(clippy::derivable_impls)]
215impl Default for CitationCitedArtifactAbstract {
216    fn default() -> Self {
217        Self {
218            r#id: Default::default(),
219            r#extension: Default::default(),
220            r#modifier_extension: Default::default(),
221            r#type: Default::default(),
222            r#language: Default::default(),
223            r#text: super::super::types::Markdown {
224                id: Some("$invalid".to_string()),
225                ..Default::default()
226            },
227            r#copyright: Default::default(),
228        }
229    }
230}
231#[doc = "The component of the article or artifact."]
232#[derive(Debug, Clone, PartialEq)]
233pub struct CitationCitedArtifactPart {
234    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
235    pub r#id: Option<std::string::String>,
236    #[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 managable, 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 r#extension: Vec<super::super::types::Extension>,
238    #[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 managable, 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)."]
239    pub r#modifier_extension: Vec<super::super::types::Extension>,
240    #[doc = "The kind of component."]
241    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
242    #[doc = "The specification of the component."]
243    pub r#value: Option<super::super::types::String>,
244    #[doc = "The citation for the full article or artifact."]
245    pub r#base_citation: Option<Box<super::super::types::Reference>>,
246}
247#[allow(clippy::derivable_impls)]
248impl Default for CitationCitedArtifactPart {
249    fn default() -> Self {
250        Self {
251            r#id: Default::default(),
252            r#extension: Default::default(),
253            r#modifier_extension: Default::default(),
254            r#type: Default::default(),
255            r#value: Default::default(),
256            r#base_citation: Default::default(),
257        }
258    }
259}
260#[doc = "The artifact related to the cited artifact."]
261#[derive(Debug, Clone, PartialEq)]
262pub struct CitationCitedArtifactRelatesTo {
263    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
264    pub r#id: Option<std::string::String>,
265    #[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 managable, 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."]
266    pub r#extension: Vec<super::super::types::Extension>,
267    #[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 managable, 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)."]
268    pub r#modifier_extension: Vec<super::super::types::Extension>,
269    #[doc = "The type of relationship to the related artifact."]
270    pub r#type: super::super::types::Code,
271    #[doc = "Provides additional classifiers of the related artifact."]
272    pub r#classifier: Vec<super::super::types::CodeableConcept>,
273    #[doc = "A short label that can be used to reference the related artifact from elsewhere in the containing artifact, such as a footnote index."]
274    pub r#label: Option<super::super::types::String>,
275    #[doc = "A brief description of the document or knowledge resource being referenced, suitable for display to a consumer."]
276    pub r#display: Option<super::super::types::String>,
277    #[doc = "A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format."]
278    pub r#citation: Option<super::super::types::Markdown>,
279    #[doc = "The document being referenced, represented as an attachment. Do not use this element if using the resource element to provide the canonical to the related artifact."]
280    pub r#document: Option<Box<super::super::types::Attachment>>,
281    #[doc = "The related artifact, such as a library, value set, profile, or other knowledge resource."]
282    pub r#resource: Option<super::super::types::Canonical>,
283    #[doc = "The related artifact, if the artifact is not a canonical resource, or a resource reference to a canonical resource."]
284    pub r#resource_reference: Option<Box<super::super::types::Reference>>,
285}
286#[allow(clippy::derivable_impls)]
287impl Default for CitationCitedArtifactRelatesTo {
288    fn default() -> Self {
289        Self {
290            r#id: Default::default(),
291            r#extension: Default::default(),
292            r#modifier_extension: Default::default(),
293            r#type: super::super::types::Code {
294                id: Some("$invalid".to_string()),
295                ..Default::default()
296            },
297            r#classifier: Default::default(),
298            r#label: Default::default(),
299            r#display: Default::default(),
300            r#citation: Default::default(),
301            r#document: Default::default(),
302            r#resource: Default::default(),
303            r#resource_reference: Default::default(),
304        }
305    }
306}
307#[doc = "The collection the cited article or artifact is published in."]
308#[derive(Debug, Clone, PartialEq)]
309pub struct CitationCitedArtifactPublicationFormPublishedIn {
310    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
311    pub r#id: Option<std::string::String>,
312    #[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 managable, 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."]
313    pub r#extension: Vec<super::super::types::Extension>,
314    #[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 managable, 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)."]
315    pub r#modifier_extension: Vec<super::super::types::Extension>,
316    #[doc = "Kind of container (e.g. Periodical, database, or book)."]
317    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
318    #[doc = "Journal identifiers include ISSN, ISO Abbreviation and NLMuniqueID; Book identifiers include ISBN."]
319    pub r#identifier: Vec<super::super::types::Identifier>,
320    #[doc = "Name of the database or title of the book or journal."]
321    pub r#title: Option<super::super::types::String>,
322    #[doc = "Name of or resource describing the publisher."]
323    pub r#publisher: Option<Box<super::super::types::Reference>>,
324    #[doc = "Geographic location of the publisher."]
325    pub r#publisher_location: Option<super::super::types::String>,
326}
327#[allow(clippy::derivable_impls)]
328impl Default for CitationCitedArtifactPublicationFormPublishedIn {
329    fn default() -> Self {
330        Self {
331            r#id: Default::default(),
332            r#extension: Default::default(),
333            r#modifier_extension: Default::default(),
334            r#type: Default::default(),
335            r#identifier: Default::default(),
336            r#title: Default::default(),
337            r#publisher: Default::default(),
338            r#publisher_location: Default::default(),
339        }
340    }
341}
342#[doc = "If multiple, used to represent alternative forms of the article that are not separate citations."]
343#[derive(Debug, Clone, PartialEq)]
344pub struct CitationCitedArtifactPublicationForm {
345    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
346    pub r#id: Option<std::string::String>,
347    #[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 managable, 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."]
348    pub r#extension: Vec<super::super::types::Extension>,
349    #[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 managable, 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)."]
350    pub r#modifier_extension: Vec<super::super::types::Extension>,
351    #[doc = "The collection the cited article or artifact is published in."]
352    pub r#published_in: Option<CitationCitedArtifactPublicationFormPublishedIn>,
353    #[doc = "Describes the form of the medium cited. Common codes are \"Internet\" or \"Print\". The CitedMedium value set has 6 codes. The codes internet, print, and offline-digital-storage are the common codes for a typical publication form, though internet and print are more common for study citations. Three additional codes (each appending one of the primary codes with \"-without-issue\" are used for situations when a study is published both within an issue (of a periodical release as commonly done for journals) AND is published separately from the issue (as commonly done with early online publication), to represent specific identification of the publication form not associated with the issue."]
354    pub r#cited_medium: Option<Box<super::super::types::CodeableConcept>>,
355    #[doc = "Volume number of journal or other collection in which the article is published."]
356    pub r#volume: Option<super::super::types::String>,
357    #[doc = "Issue, part or supplement of journal or other collection in which the article is published."]
358    pub r#issue: Option<super::super::types::String>,
359    #[doc = "The date the article was added to the database, or the date the article was released."]
360    pub r#article_date: Option<super::super::types::DateTime>,
361    #[doc = "Text representation of the date on which the issue of the cited artifact was published."]
362    pub r#publication_date_text: Option<super::super::types::String>,
363    #[doc = "Spring, Summer, Fall/Autumn, Winter."]
364    pub r#publication_date_season: Option<super::super::types::String>,
365    #[doc = "The date the article was last revised or updated in the database."]
366    pub r#last_revision_date: Option<super::super::types::DateTime>,
367    #[doc = "The language or languages in which this form of the article is published."]
368    pub r#language: Vec<super::super::types::CodeableConcept>,
369    #[doc = "Entry number or identifier for inclusion in a database."]
370    pub r#accession_number: Option<super::super::types::String>,
371    #[doc = "Used for full display of pagination."]
372    pub r#page_string: Option<super::super::types::String>,
373    #[doc = "Used for isolated representation of first page."]
374    pub r#first_page: Option<super::super::types::String>,
375    #[doc = "Used for isolated representation of last page."]
376    pub r#last_page: Option<super::super::types::String>,
377    #[doc = "Actual or approximate number of pages or screens. Distinct from reporting the page numbers."]
378    pub r#page_count: Option<super::super::types::String>,
379    #[doc = "Copyright notice for the full article or artifact."]
380    pub r#copyright: Option<super::super::types::Markdown>,
381}
382#[allow(clippy::derivable_impls)]
383impl Default for CitationCitedArtifactPublicationForm {
384    fn default() -> Self {
385        Self {
386            r#id: Default::default(),
387            r#extension: Default::default(),
388            r#modifier_extension: Default::default(),
389            r#published_in: Default::default(),
390            r#cited_medium: Default::default(),
391            r#volume: Default::default(),
392            r#issue: Default::default(),
393            r#article_date: Default::default(),
394            r#publication_date_text: Default::default(),
395            r#publication_date_season: Default::default(),
396            r#last_revision_date: Default::default(),
397            r#language: Default::default(),
398            r#accession_number: Default::default(),
399            r#page_string: Default::default(),
400            r#first_page: Default::default(),
401            r#last_page: Default::default(),
402            r#page_count: Default::default(),
403            r#copyright: Default::default(),
404        }
405    }
406}
407#[doc = "Used for any URL for the article or artifact cited."]
408#[derive(Debug, Clone, PartialEq)]
409pub struct CitationCitedArtifactWebLocation {
410    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
411    pub r#id: Option<std::string::String>,
412    #[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 managable, 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."]
413    pub r#extension: Vec<super::super::types::Extension>,
414    #[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 managable, 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)."]
415    pub r#modifier_extension: Vec<super::super::types::Extension>,
416    #[doc = "A characterization of the object expected at the web location."]
417    pub r#classifier: Vec<super::super::types::CodeableConcept>,
418    #[doc = "The specific URL."]
419    pub r#url: Option<super::super::types::Uri>,
420}
421#[allow(clippy::derivable_impls)]
422impl Default for CitationCitedArtifactWebLocation {
423    fn default() -> Self {
424        Self {
425            r#id: Default::default(),
426            r#extension: Default::default(),
427            r#modifier_extension: Default::default(),
428            r#classifier: Default::default(),
429            r#url: Default::default(),
430        }
431    }
432}
433#[doc = "The assignment to an organizing scheme."]
434#[derive(Debug, Clone, PartialEq)]
435pub struct CitationCitedArtifactClassification {
436    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
437    pub r#id: Option<std::string::String>,
438    #[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 managable, 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."]
439    pub r#extension: Vec<super::super::types::Extension>,
440    #[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 managable, 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)."]
441    pub r#modifier_extension: Vec<super::super::types::Extension>,
442    #[doc = "The kind of classifier (e.g. publication type, keyword)."]
443    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
444    #[doc = "The specific classification value."]
445    pub r#classifier: Vec<super::super::types::CodeableConcept>,
446    #[doc = "Complex or externally created classification."]
447    pub r#artifact_assessment: Vec<super::super::types::Reference>,
448}
449#[allow(clippy::derivable_impls)]
450impl Default for CitationCitedArtifactClassification {
451    fn default() -> Self {
452        Self {
453            r#id: Default::default(),
454            r#extension: Default::default(),
455            r#modifier_extension: Default::default(),
456            r#type: Default::default(),
457            r#classifier: Default::default(),
458            r#artifact_assessment: Default::default(),
459        }
460    }
461}
462#[doc = "Contributions with accounting for time or number."]
463#[derive(Debug, Clone, PartialEq)]
464pub struct CitationCitedArtifactContributorshipEntryContributionInstance {
465    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
466    pub r#id: Option<std::string::String>,
467    #[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 managable, 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."]
468    pub r#extension: Vec<super::super::types::Extension>,
469    #[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 managable, 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)."]
470    pub r#modifier_extension: Vec<super::super::types::Extension>,
471    #[doc = "The specific contribution."]
472    pub r#type: Box<super::super::types::CodeableConcept>,
473    #[doc = "The time that the contribution was made."]
474    pub r#time: Option<super::super::types::DateTime>,
475}
476#[allow(clippy::derivable_impls)]
477impl Default for CitationCitedArtifactContributorshipEntryContributionInstance {
478    fn default() -> Self {
479        Self {
480            r#id: Default::default(),
481            r#extension: Default::default(),
482            r#modifier_extension: Default::default(),
483            r#type: Box::new(super::super::types::CodeableConcept {
484                id: Some("$invalid".to_string()),
485                ..Default::default()
486            }),
487            r#time: Default::default(),
488        }
489    }
490}
491#[doc = "An individual entity named as a contributor, for example in the author list or contributor list."]
492#[derive(Debug, Clone, PartialEq)]
493pub struct CitationCitedArtifactContributorshipEntry {
494    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
495    pub r#id: Option<std::string::String>,
496    #[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 managable, 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."]
497    pub r#extension: Vec<super::super::types::Extension>,
498    #[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 managable, 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)."]
499    pub r#modifier_extension: Vec<super::super::types::Extension>,
500    #[doc = "The identity of the individual contributor."]
501    pub r#contributor: Box<super::super::types::Reference>,
502    #[doc = "For citation styles that use initials."]
503    pub r#forename_initials: Option<super::super::types::String>,
504    #[doc = "Organization affiliated with the contributor."]
505    pub r#affiliation: Vec<super::super::types::Reference>,
506    #[doc = "This element identifies the specific nature of an individual’s contribution with respect to the cited work."]
507    pub r#contribution_type: Vec<super::super::types::CodeableConcept>,
508    #[doc = "The role of the contributor (e.g. author, editor, reviewer, funder)."]
509    pub r#role: Option<Box<super::super::types::CodeableConcept>>,
510    #[doc = "Contributions with accounting for time or number."]
511    pub r#contribution_instance: Vec<CitationCitedArtifactContributorshipEntryContributionInstance>,
512    #[doc = "Whether the contributor is the corresponding contributor for the role."]
513    pub r#corresponding_contact: Option<super::super::types::Boolean>,
514    #[doc = "Provides a numerical ranking to represent the degree of contributorship relative to other contributors, such as 1 for first author and 2 for second author."]
515    pub r#ranking_order: Option<super::super::types::PositiveInt>,
516}
517#[allow(clippy::derivable_impls)]
518impl Default for CitationCitedArtifactContributorshipEntry {
519    fn default() -> Self {
520        Self {
521            r#id: Default::default(),
522            r#extension: Default::default(),
523            r#modifier_extension: Default::default(),
524            r#contributor: Box::new(super::super::types::Reference {
525                id: Some("$invalid".to_string()),
526                ..Default::default()
527            }),
528            r#forename_initials: Default::default(),
529            r#affiliation: Default::default(),
530            r#contribution_type: Default::default(),
531            r#role: Default::default(),
532            r#contribution_instance: Default::default(),
533            r#corresponding_contact: Default::default(),
534            r#ranking_order: Default::default(),
535        }
536    }
537}
538#[doc = "Used to record a display of the author/contributor list without separate data element for each list member."]
539#[derive(Debug, Clone, PartialEq)]
540pub struct CitationCitedArtifactContributorshipSummary {
541    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
542    pub r#id: Option<std::string::String>,
543    #[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 managable, 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."]
544    pub r#extension: Vec<super::super::types::Extension>,
545    #[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 managable, 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)."]
546    pub r#modifier_extension: Vec<super::super::types::Extension>,
547    #[doc = "Used most commonly to express an author list or a contributorship statement."]
548    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
549    #[doc = "The format for the display string, such as author last name with first letter capitalized followed by forename initials."]
550    pub r#style: Option<Box<super::super::types::CodeableConcept>>,
551    #[doc = "Used to code the producer or rule for creating the display string."]
552    pub r#source: Option<Box<super::super::types::CodeableConcept>>,
553    #[doc = "The display string for the author list, contributor list, or contributorship statement."]
554    pub r#value: super::super::types::Markdown,
555}
556#[allow(clippy::derivable_impls)]
557impl Default for CitationCitedArtifactContributorshipSummary {
558    fn default() -> Self {
559        Self {
560            r#id: Default::default(),
561            r#extension: Default::default(),
562            r#modifier_extension: Default::default(),
563            r#type: Default::default(),
564            r#style: Default::default(),
565            r#source: Default::default(),
566            r#value: super::super::types::Markdown {
567                id: Some("$invalid".to_string()),
568                ..Default::default()
569            },
570        }
571    }
572}
573#[doc = "This element is used to list authors and other contributors, their contact information, specific contributions, and summary statements."]
574#[derive(Debug, Clone, PartialEq)]
575pub struct CitationCitedArtifactContributorship {
576    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
577    pub r#id: Option<std::string::String>,
578    #[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 managable, 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."]
579    pub r#extension: Vec<super::super::types::Extension>,
580    #[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 managable, 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)."]
581    pub r#modifier_extension: Vec<super::super::types::Extension>,
582    #[doc = "Indicates if the list includes all authors and/or contributors."]
583    pub r#complete: Option<super::super::types::Boolean>,
584    #[doc = "An individual entity named as a contributor, for example in the author list or contributor list."]
585    pub r#entry: Vec<CitationCitedArtifactContributorshipEntry>,
586    #[doc = "Used to record a display of the author/contributor list without separate data element for each list member."]
587    pub r#summary: Vec<CitationCitedArtifactContributorshipSummary>,
588}
589#[allow(clippy::derivable_impls)]
590impl Default for CitationCitedArtifactContributorship {
591    fn default() -> Self {
592        Self {
593            r#id: Default::default(),
594            r#extension: Default::default(),
595            r#modifier_extension: Default::default(),
596            r#complete: Default::default(),
597            r#entry: Default::default(),
598            r#summary: Default::default(),
599        }
600    }
601}
602#[doc = "The article or artifact being described."]
603#[derive(Debug, Clone, PartialEq)]
604pub struct CitationCitedArtifact {
605    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
606    pub r#id: Option<std::string::String>,
607    #[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 managable, 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."]
608    pub r#extension: Vec<super::super::types::Extension>,
609    #[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 managable, 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)."]
610    pub r#modifier_extension: Vec<super::super::types::Extension>,
611    #[doc = "A formal identifier that is used to identify the cited artifact when it is represented in other formats, or referenced in a specification, model, design or an instance."]
612    pub r#identifier: Vec<super::super::types::Identifier>,
613    #[doc = "A formal identifier that is used to identify things closely related to the cited artifact."]
614    pub r#related_identifier: Vec<super::super::types::Identifier>,
615    #[doc = "When the cited artifact was accessed."]
616    pub r#date_accessed: Option<super::super::types::DateTime>,
617    #[doc = "The defined version of the cited artifact."]
618    pub r#version: Option<CitationCitedArtifactVersion>,
619    #[doc = "The status of the cited artifact."]
620    pub r#current_state: Vec<super::super::types::CodeableConcept>,
621    #[doc = "An effective date or period, historical or future, actual or expected, for a status of the cited artifact."]
622    pub r#status_date: Vec<CitationCitedArtifactStatusDate>,
623    #[doc = "The title details of the article or artifact."]
624    pub r#title: Vec<CitationCitedArtifactTitle>,
625    #[doc = "The abstract may be used to convey article-contained abstracts, externally-created abstracts, or other descriptive summaries."]
626    pub r#abstract: Vec<CitationCitedArtifactAbstract>,
627    #[doc = "The component of the article or artifact."]
628    pub r#part: Option<CitationCitedArtifactPart>,
629    #[doc = "The artifact related to the cited artifact."]
630    pub r#relates_to: Vec<CitationCitedArtifactRelatesTo>,
631    #[doc = "If multiple, used to represent alternative forms of the article that are not separate citations."]
632    pub r#publication_form: Vec<CitationCitedArtifactPublicationForm>,
633    #[doc = "Used for any URL for the article or artifact cited."]
634    pub r#web_location: Vec<CitationCitedArtifactWebLocation>,
635    #[doc = "The assignment to an organizing scheme."]
636    pub r#classification: Vec<CitationCitedArtifactClassification>,
637    #[doc = "This element is used to list authors and other contributors, their contact information, specific contributions, and summary statements."]
638    pub r#contributorship: Option<CitationCitedArtifactContributorship>,
639    #[doc = "Any additional information or content for the article or artifact."]
640    pub r#note: Vec<super::super::types::Annotation>,
641}
642#[allow(clippy::derivable_impls)]
643impl Default for CitationCitedArtifact {
644    fn default() -> Self {
645        Self {
646            r#id: Default::default(),
647            r#extension: Default::default(),
648            r#modifier_extension: Default::default(),
649            r#identifier: Default::default(),
650            r#related_identifier: Default::default(),
651            r#date_accessed: Default::default(),
652            r#version: Default::default(),
653            r#current_state: Default::default(),
654            r#status_date: Default::default(),
655            r#title: Default::default(),
656            r#abstract: Default::default(),
657            r#part: Default::default(),
658            r#relates_to: Default::default(),
659            r#publication_form: Default::default(),
660            r#web_location: Default::default(),
661            r#classification: Default::default(),
662            r#contributorship: Default::default(),
663            r#note: Default::default(),
664        }
665    }
666}
667#[doc = "The Citation Resource enables reference to any knowledge artifact for purposes of identification and attribution. The Citation Resource supports existing reference structures and developing publication practices such as versioning, expressing complex contributorship roles, and referencing computable resources."]
668#[derive(Debug, Clone, PartialEq)]
669pub struct Citation {
670    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
671    pub r#id: Option<super::super::types::Id>,
672    #[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."]
673    pub r#meta: Option<Box<super::super::types::Meta>>,
674    #[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."]
675    pub r#implicit_rules: Option<super::super::types::Uri>,
676    #[doc = "The base language in which the resource is written."]
677    pub r#language: Option<super::super::types::Code>,
678    #[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."]
679    pub r#text: Option<Box<super::super::types::Narrative>>,
680    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning."]
681    pub r#contained: Vec<super::super::Resource>,
682    #[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 managable, 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."]
683    pub r#extension: Vec<super::super::types::Extension>,
684    #[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 managable, 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)."]
685    pub r#modifier_extension: Vec<super::super::types::Extension>,
686    #[doc = "An absolute URI that is used to identify this citation record 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 an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers."]
687    pub r#url: Option<super::super::types::Uri>,
688    #[doc = "A formal identifier that is used to identify this citation record when it is represented in other formats, or referenced in a specification, model, design or an instance."]
689    pub r#identifier: Vec<super::super::types::Identifier>,
690    #[doc = "The identifier that is used to identify this version of the citation record when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the citation record 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."]
691    pub r#version: Option<super::super::types::String>,
692    #[doc = "Indicates the mechanism used to compare versions to determine which is more current."]
693    pub r#version_algorithm: Option<CitationVersionAlgorithm>,
694    #[doc = "A natural language name identifying the citation record. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
695    pub r#name: Option<super::super::types::String>,
696    #[doc = "A short, descriptive, user-friendly title for the citation record."]
697    pub r#title: Option<super::super::types::String>,
698    #[doc = "The status of this summary. Enables tracking the life-cycle of the content."]
699    pub r#status: super::super::types::Code,
700    #[doc = "A Boolean value to indicate that this citation record is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
701    pub r#experimental: Option<super::super::types::Boolean>,
702    #[doc = "The date (and optionally time) when the citation record was last significantly changed. 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 citation record changes."]
703    pub r#date: Option<super::super::types::DateTime>,
704    #[doc = "The name of the organization or individual that published the citation record."]
705    pub r#publisher: Option<super::super::types::String>,
706    #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
707    pub r#contact: Vec<super::super::types::ContactDetail>,
708    #[doc = "A free text natural language description of the citation from a consumer's perspective."]
709    pub r#description: Option<super::super::types::Markdown>,
710    #[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 citation record instances."]
711    pub r#use_context: Vec<super::super::types::UsageContext>,
712    #[doc = "A legal or geographic region in which the citation record is intended to be used."]
713    pub r#jurisdiction: Vec<super::super::types::CodeableConcept>,
714    #[doc = "Explanation of why this citation is needed and why it has been designed as it has."]
715    pub r#purpose: Option<super::super::types::Markdown>,
716    #[doc = "Use and/or publishing restrictions for the citation record, not for the cited artifact."]
717    pub r#copyright: Option<super::super::types::Markdown>,
718    #[doc = "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')."]
719    pub r#copyright_label: Option<super::super::types::String>,
720    #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
721    pub r#approval_date: Option<super::super::types::Date>,
722    #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
723    pub r#last_review_date: Option<super::super::types::Date>,
724    #[doc = "The period during which the citation record content was or is planned to be in active use."]
725    pub r#effective_period: Option<Box<super::super::types::Period>>,
726    #[doc = "Who authored or created the citation record."]
727    pub r#author: Vec<super::super::types::ContactDetail>,
728    #[doc = "Who edited or revised the citation record."]
729    pub r#editor: Vec<super::super::types::ContactDetail>,
730    #[doc = "Who reviewed the citation record."]
731    pub r#reviewer: Vec<super::super::types::ContactDetail>,
732    #[doc = "Who endorsed the citation record."]
733    pub r#endorser: Vec<super::super::types::ContactDetail>,
734    #[doc = "A human-readable display of key concepts to represent the citation."]
735    pub r#summary: Vec<CitationSummary>,
736    #[doc = "The assignment to an organizing scheme."]
737    pub r#classification: Vec<CitationClassification>,
738    #[doc = "Used for general notes and annotations not coded elsewhere."]
739    pub r#note: Vec<super::super::types::Annotation>,
740    #[doc = "The status of the citation record."]
741    pub r#current_state: Vec<super::super::types::CodeableConcept>,
742    #[doc = "The state or status of the citation record paired with an effective date or period for that state."]
743    pub r#status_date: Vec<CitationStatusDate>,
744    #[doc = "Artifact related to the citation record."]
745    pub r#related_artifact: Vec<super::super::types::RelatedArtifact>,
746    #[doc = "The article or artifact being described."]
747    pub r#cited_artifact: Option<CitationCitedArtifact>,
748}
749#[allow(clippy::derivable_impls)]
750impl Default for Citation {
751    fn default() -> Self {
752        Self {
753            r#id: Default::default(),
754            r#meta: Default::default(),
755            r#implicit_rules: Default::default(),
756            r#language: Default::default(),
757            r#text: Default::default(),
758            r#contained: Default::default(),
759            r#extension: Default::default(),
760            r#modifier_extension: Default::default(),
761            r#url: Default::default(),
762            r#identifier: Default::default(),
763            r#version: Default::default(),
764            r#version_algorithm: Default::default(),
765            r#name: Default::default(),
766            r#title: Default::default(),
767            r#status: super::super::types::Code {
768                id: Some("$invalid".to_string()),
769                ..Default::default()
770            },
771            r#experimental: Default::default(),
772            r#date: Default::default(),
773            r#publisher: Default::default(),
774            r#contact: Default::default(),
775            r#description: Default::default(),
776            r#use_context: Default::default(),
777            r#jurisdiction: Default::default(),
778            r#purpose: Default::default(),
779            r#copyright: Default::default(),
780            r#copyright_label: Default::default(),
781            r#approval_date: Default::default(),
782            r#last_review_date: Default::default(),
783            r#effective_period: Default::default(),
784            r#author: Default::default(),
785            r#editor: Default::default(),
786            r#reviewer: Default::default(),
787            r#endorser: Default::default(),
788            r#summary: Default::default(),
789            r#classification: Default::default(),
790            r#note: Default::default(),
791            r#current_state: Default::default(),
792            r#status_date: Default::default(),
793            r#related_artifact: Default::default(),
794            r#cited_artifact: Default::default(),
795        }
796    }
797}