fhirbolt_model/generated/r4b/resources/
terminology_capabilities.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "Software that is covered by this terminology capability statement.  It is used when the statement describes the capabilities of a particular software version, independent of an installation."]
3#[derive(Debug, Clone, PartialEq)]
4pub struct TerminologyCapabilitiesSoftware {
5    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6    pub r#id: Option<std::string::String>,
7    #[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."]
8    pub r#extension: Vec<super::super::types::Extension>,
9    #[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)."]
10    pub r#modifier_extension: Vec<super::super::types::Extension>,
11    #[doc = "Name the software is known by."]
12    pub r#name: super::super::types::String,
13    #[doc = "The version identifier for the software covered by this statement."]
14    pub r#version: Option<super::super::types::String>,
15}
16#[allow(clippy::derivable_impls)]
17impl Default for TerminologyCapabilitiesSoftware {
18    fn default() -> Self {
19        Self {
20            r#id: Default::default(),
21            r#extension: Default::default(),
22            r#modifier_extension: Default::default(),
23            r#name: super::super::types::String {
24                id: Some("$invalid".to_string()),
25                ..Default::default()
26            },
27            r#version: Default::default(),
28        }
29    }
30}
31#[doc = "Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program."]
32#[derive(Debug, Clone, PartialEq)]
33pub struct TerminologyCapabilitiesImplementation {
34    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
35    pub r#id: Option<std::string::String>,
36    #[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."]
37    pub r#extension: Vec<super::super::types::Extension>,
38    #[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)."]
39    pub r#modifier_extension: Vec<super::super::types::Extension>,
40    #[doc = "Information about the specific installation that this terminology capability statement relates to."]
41    pub r#description: super::super::types::String,
42    #[doc = "An absolute base URL for the implementation."]
43    pub r#url: Option<super::super::types::Url>,
44}
45#[allow(clippy::derivable_impls)]
46impl Default for TerminologyCapabilitiesImplementation {
47    fn default() -> Self {
48        Self {
49            r#id: Default::default(),
50            r#extension: Default::default(),
51            r#modifier_extension: Default::default(),
52            r#description: super::super::types::String {
53                id: Some("$invalid".to_string()),
54                ..Default::default()
55            },
56            r#url: Default::default(),
57        }
58    }
59}
60#[doc = "Filter Properties supported."]
61#[derive(Debug, Clone, PartialEq)]
62pub struct TerminologyCapabilitiesCodeSystemVersionFilter {
63    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
64    pub r#id: Option<std::string::String>,
65    #[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."]
66    pub r#extension: Vec<super::super::types::Extension>,
67    #[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)."]
68    pub r#modifier_extension: Vec<super::super::types::Extension>,
69    #[doc = "Code of the property supported."]
70    pub r#code: super::super::types::Code,
71    #[doc = "Operations supported for the property."]
72    pub r#op: Vec<super::super::types::Code>,
73}
74#[allow(clippy::derivable_impls)]
75impl Default for TerminologyCapabilitiesCodeSystemVersionFilter {
76    fn default() -> Self {
77        Self {
78            r#id: Default::default(),
79            r#extension: Default::default(),
80            r#modifier_extension: Default::default(),
81            r#code: super::super::types::Code {
82                id: Some("$invalid".to_string()),
83                ..Default::default()
84            },
85            r#op: Default::default(),
86        }
87    }
88}
89#[doc = "For the code system, a list of versions that are supported by the server."]
90#[derive(Debug, Clone, PartialEq)]
91pub struct TerminologyCapabilitiesCodeSystemVersion {
92    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
93    pub r#id: Option<std::string::String>,
94    #[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."]
95    pub r#extension: Vec<super::super::types::Extension>,
96    #[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)."]
97    pub r#modifier_extension: Vec<super::super::types::Extension>,
98    #[doc = "For version-less code systems, there should be a single version with no identifier."]
99    pub r#code: Option<super::super::types::String>,
100    #[doc = "If this is the default version for this code system."]
101    pub r#is_default: Option<super::super::types::Boolean>,
102    #[doc = "If the compositional grammar defined by the code system is supported."]
103    pub r#compositional: Option<super::super::types::Boolean>,
104    #[doc = "Language Displays supported."]
105    pub r#language: Vec<super::super::types::Code>,
106    #[doc = "Filter Properties supported."]
107    pub r#filter: Vec<TerminologyCapabilitiesCodeSystemVersionFilter>,
108    #[doc = "Properties supported for $lookup."]
109    pub r#property: Vec<super::super::types::Code>,
110}
111#[allow(clippy::derivable_impls)]
112impl Default for TerminologyCapabilitiesCodeSystemVersion {
113    fn default() -> Self {
114        Self {
115            r#id: Default::default(),
116            r#extension: Default::default(),
117            r#modifier_extension: Default::default(),
118            r#code: Default::default(),
119            r#is_default: Default::default(),
120            r#compositional: Default::default(),
121            r#language: Default::default(),
122            r#filter: Default::default(),
123            r#property: Default::default(),
124        }
125    }
126}
127#[doc = "Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource."]
128#[derive(Debug, Clone, PartialEq)]
129pub struct TerminologyCapabilitiesCodeSystem {
130    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
131    pub r#id: Option<std::string::String>,
132    #[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."]
133    pub r#extension: Vec<super::super::types::Extension>,
134    #[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)."]
135    pub r#modifier_extension: Vec<super::super::types::Extension>,
136    #[doc = "URI for the Code System."]
137    pub r#uri: Option<super::super::types::Canonical>,
138    #[doc = "For the code system, a list of versions that are supported by the server."]
139    pub r#version: Vec<TerminologyCapabilitiesCodeSystemVersion>,
140    #[doc = "True if subsumption is supported for this version of the code system."]
141    pub r#subsumption: Option<super::super::types::Boolean>,
142}
143#[allow(clippy::derivable_impls)]
144impl Default for TerminologyCapabilitiesCodeSystem {
145    fn default() -> Self {
146        Self {
147            r#id: Default::default(),
148            r#extension: Default::default(),
149            r#modifier_extension: Default::default(),
150            r#uri: Default::default(),
151            r#version: Default::default(),
152            r#subsumption: Default::default(),
153        }
154    }
155}
156#[doc = "Supported expansion parameter."]
157#[derive(Debug, Clone, PartialEq)]
158pub struct TerminologyCapabilitiesExpansionParameter {
159    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
160    pub r#id: Option<std::string::String>,
161    #[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."]
162    pub r#extension: Vec<super::super::types::Extension>,
163    #[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)."]
164    pub r#modifier_extension: Vec<super::super::types::Extension>,
165    #[doc = "Expansion Parameter name."]
166    pub r#name: super::super::types::Code,
167    #[doc = "Description of support for parameter."]
168    pub r#documentation: Option<super::super::types::String>,
169}
170#[allow(clippy::derivable_impls)]
171impl Default for TerminologyCapabilitiesExpansionParameter {
172    fn default() -> Self {
173        Self {
174            r#id: Default::default(),
175            r#extension: Default::default(),
176            r#modifier_extension: Default::default(),
177            r#name: super::super::types::Code {
178                id: Some("$invalid".to_string()),
179                ..Default::default()
180            },
181            r#documentation: Default::default(),
182        }
183    }
184}
185#[doc = "Information about the [ValueSet/$expand](https://hl7.org/FHIR/valueset-operation-expand.html)) operation."]
186#[derive(Debug, Clone, PartialEq)]
187pub struct TerminologyCapabilitiesExpansion {
188    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
189    pub r#id: Option<std::string::String>,
190    #[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."]
191    pub r#extension: Vec<super::super::types::Extension>,
192    #[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)."]
193    pub r#modifier_extension: Vec<super::super::types::Extension>,
194    #[doc = "Whether the server can return nested value sets."]
195    pub r#hierarchical: Option<super::super::types::Boolean>,
196    #[doc = "Whether the server supports paging on expansion."]
197    pub r#paging: Option<super::super::types::Boolean>,
198    #[doc = "Allow request for incomplete expansions?"]
199    pub r#incomplete: Option<super::super::types::Boolean>,
200    #[doc = "Supported expansion parameter."]
201    pub r#parameter: Vec<TerminologyCapabilitiesExpansionParameter>,
202    #[doc = "Documentation about text searching works."]
203    pub r#text_filter: Option<super::super::types::Markdown>,
204}
205#[allow(clippy::derivable_impls)]
206impl Default for TerminologyCapabilitiesExpansion {
207    fn default() -> Self {
208        Self {
209            r#id: Default::default(),
210            r#extension: Default::default(),
211            r#modifier_extension: Default::default(),
212            r#hierarchical: Default::default(),
213            r#paging: Default::default(),
214            r#incomplete: Default::default(),
215            r#parameter: Default::default(),
216            r#text_filter: Default::default(),
217        }
218    }
219}
220#[doc = "Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation."]
221#[derive(Debug, Clone, PartialEq)]
222pub struct TerminologyCapabilitiesValidateCode {
223    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
224    pub r#id: Option<std::string::String>,
225    #[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."]
226    pub r#extension: Vec<super::super::types::Extension>,
227    #[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)."]
228    pub r#modifier_extension: Vec<super::super::types::Extension>,
229    #[doc = "Whether translations are validated."]
230    pub r#translations: super::super::types::Boolean,
231}
232#[allow(clippy::derivable_impls)]
233impl Default for TerminologyCapabilitiesValidateCode {
234    fn default() -> Self {
235        Self {
236            r#id: Default::default(),
237            r#extension: Default::default(),
238            r#modifier_extension: Default::default(),
239            r#translations: super::super::types::Boolean {
240                id: Some("$invalid".to_string()),
241                ..Default::default()
242            },
243        }
244    }
245}
246#[doc = "Information about the [ConceptMap/$translate](https://hl7.org/FHIR/conceptmap-operation-translate.html)) operation."]
247#[derive(Debug, Clone, PartialEq)]
248pub struct TerminologyCapabilitiesTranslation {
249    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
250    pub r#id: Option<std::string::String>,
251    #[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."]
252    pub r#extension: Vec<super::super::types::Extension>,
253    #[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)."]
254    pub r#modifier_extension: Vec<super::super::types::Extension>,
255    #[doc = "Whether the client must identify the map."]
256    pub r#needs_map: super::super::types::Boolean,
257}
258#[allow(clippy::derivable_impls)]
259impl Default for TerminologyCapabilitiesTranslation {
260    fn default() -> Self {
261        Self {
262            r#id: Default::default(),
263            r#extension: Default::default(),
264            r#modifier_extension: Default::default(),
265            r#needs_map: super::super::types::Boolean {
266                id: Some("$invalid".to_string()),
267                ..Default::default()
268            },
269        }
270    }
271}
272#[doc = "Whether the $closure operation is supported."]
273#[derive(Debug, Clone, PartialEq)]
274pub struct TerminologyCapabilitiesClosure {
275    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
276    pub r#id: Option<std::string::String>,
277    #[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."]
278    pub r#extension: Vec<super::super::types::Extension>,
279    #[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)."]
280    pub r#modifier_extension: Vec<super::super::types::Extension>,
281    #[doc = "If cross-system closure is supported."]
282    pub r#translation: Option<super::super::types::Boolean>,
283}
284#[allow(clippy::derivable_impls)]
285impl Default for TerminologyCapabilitiesClosure {
286    fn default() -> Self {
287        Self {
288            r#id: Default::default(),
289            r#extension: Default::default(),
290            r#modifier_extension: Default::default(),
291            r#translation: Default::default(),
292        }
293    }
294}
295#[doc = "A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation."]
296#[derive(Debug, Clone, PartialEq)]
297pub struct TerminologyCapabilities {
298    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
299    pub r#id: Option<super::super::types::Id>,
300    #[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."]
301    pub r#meta: Option<Box<super::super::types::Meta>>,
302    #[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."]
303    pub r#implicit_rules: Option<super::super::types::Uri>,
304    #[doc = "The base language in which the resource is written."]
305    pub r#language: Option<super::super::types::Code>,
306    #[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."]
307    pub r#text: Option<Box<super::super::types::Narrative>>,
308    #[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."]
309    pub r#contained: Vec<super::super::Resource>,
310    #[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."]
311    pub r#extension: Vec<super::super::types::Extension>,
312    #[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)."]
313    pub r#modifier_extension: Vec<super::super::types::Extension>,
314    #[doc = "An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers."]
315    pub r#url: Option<super::super::types::Uri>,
316    #[doc = "The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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."]
317    pub r#version: Option<super::super::types::String>,
318    #[doc = "A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
319    pub r#name: Option<super::super::types::String>,
320    #[doc = "A short, descriptive, user-friendly title for the terminology capabilities."]
321    pub r#title: Option<super::super::types::String>,
322    #[doc = "The status of this terminology capabilities. Enables tracking the life-cycle of the content."]
323    pub r#status: super::super::types::Code,
324    #[doc = "A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
325    pub r#experimental: Option<super::super::types::Boolean>,
326    #[doc = "The date  (and optionally time) when the terminology capabilities 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 terminology capabilities changes."]
327    pub r#date: super::super::types::DateTime,
328    #[doc = "The name of the organization or individual that published the terminology capabilities."]
329    pub r#publisher: Option<super::super::types::String>,
330    #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
331    pub r#contact: Vec<super::super::types::ContactDetail>,
332    #[doc = "A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP."]
333    pub r#description: Option<super::super::types::Markdown>,
334    #[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 terminology capabilities instances."]
335    pub r#use_context: Vec<super::super::types::UsageContext>,
336    #[doc = "A legal or geographic region in which the terminology capabilities is intended to be used."]
337    pub r#jurisdiction: Vec<super::super::types::CodeableConcept>,
338    #[doc = "Explanation of why this terminology capabilities is needed and why it has been designed as it has."]
339    pub r#purpose: Option<super::super::types::Markdown>,
340    #[doc = "A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities."]
341    pub r#copyright: Option<super::super::types::Markdown>,
342    #[doc = "The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase)."]
343    pub r#kind: super::super::types::Code,
344    #[doc = "Software that is covered by this terminology capability statement.  It is used when the statement describes the capabilities of a particular software version, independent of an installation."]
345    pub r#software: Option<TerminologyCapabilitiesSoftware>,
346    #[doc = "Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program."]
347    pub r#implementation: Option<TerminologyCapabilitiesImplementation>,
348    #[doc = "Whether the server supports lockedDate."]
349    pub r#locked_date: Option<super::super::types::Boolean>,
350    #[doc = "Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource."]
351    pub r#code_system: Vec<TerminologyCapabilitiesCodeSystem>,
352    #[doc = "Information about the [ValueSet/$expand](https://hl7.org/FHIR/valueset-operation-expand.html)) operation."]
353    pub r#expansion: Option<TerminologyCapabilitiesExpansion>,
354    #[doc = "The degree to which the server supports the code search parameter on ValueSet, if it is supported."]
355    pub r#code_search: Option<super::super::types::Code>,
356    #[doc = "Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation."]
357    pub r#validate_code: Option<TerminologyCapabilitiesValidateCode>,
358    #[doc = "Information about the [ConceptMap/$translate](https://hl7.org/FHIR/conceptmap-operation-translate.html)) operation."]
359    pub r#translation: Option<TerminologyCapabilitiesTranslation>,
360    #[doc = "Whether the $closure operation is supported."]
361    pub r#closure: Option<TerminologyCapabilitiesClosure>,
362}
363#[allow(clippy::derivable_impls)]
364impl Default for TerminologyCapabilities {
365    fn default() -> Self {
366        Self {
367            r#id: Default::default(),
368            r#meta: Default::default(),
369            r#implicit_rules: Default::default(),
370            r#language: Default::default(),
371            r#text: Default::default(),
372            r#contained: Default::default(),
373            r#extension: Default::default(),
374            r#modifier_extension: Default::default(),
375            r#url: Default::default(),
376            r#version: Default::default(),
377            r#name: Default::default(),
378            r#title: Default::default(),
379            r#status: super::super::types::Code {
380                id: Some("$invalid".to_string()),
381                ..Default::default()
382            },
383            r#experimental: Default::default(),
384            r#date: super::super::types::DateTime {
385                id: Some("$invalid".to_string()),
386                ..Default::default()
387            },
388            r#publisher: Default::default(),
389            r#contact: Default::default(),
390            r#description: Default::default(),
391            r#use_context: Default::default(),
392            r#jurisdiction: Default::default(),
393            r#purpose: Default::default(),
394            r#copyright: Default::default(),
395            r#kind: super::super::types::Code {
396                id: Some("$invalid".to_string()),
397                ..Default::default()
398            },
399            r#software: Default::default(),
400            r#implementation: Default::default(),
401            r#locked_date: Default::default(),
402            r#code_system: Default::default(),
403            r#expansion: Default::default(),
404            r#code_search: Default::default(),
405            r#validate_code: Default::default(),
406            r#translation: Default::default(),
407            r#closure: Default::default(),
408        }
409    }
410}