1#[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}