1#[doc = "The actual ingredient - either a substance (simple ingredient) or another medication."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum MedicationKnowledgeIngredientItem {
5 CodeableConcept(Box<super::super::types::CodeableConcept>),
6 Reference(Box<super::super::types::Reference>),
7 #[default]
8 Invalid,
9}
10#[doc = "Indication for use that apply to the specific administration guidelines."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum MedicationKnowledgeAdministrationGuidelinesIndication {
13 CodeableConcept(Box<super::super::types::CodeableConcept>),
14 Reference(Box<super::super::types::Reference>),
15 #[default]
16 Invalid,
17}
18#[doc = "Specific characteristic that is relevant to the administration guideline (e.g. height, weight, gender)."]
19#[derive(Default, Debug, Clone, PartialEq)]
20pub enum MedicationKnowledgeAdministrationGuidelinesPatientCharacteristicsCharacteristic {
21 CodeableConcept(Box<super::super::types::CodeableConcept>),
22 Quantity(Box<super::super::types::Quantity>),
23 #[default]
24 Invalid,
25}
26#[doc = "Description of the characteristic."]
27#[derive(Default, Debug, Clone, PartialEq)]
28pub enum MedicationKnowledgeDrugCharacteristicValue {
29 CodeableConcept(Box<super::super::types::CodeableConcept>),
30 String(super::super::types::String),
31 Quantity(Box<super::super::types::Quantity>),
32 Base64Binary(super::super::types::Base64Binary),
33 #[default]
34 Invalid,
35}
36#[doc = "Associated or related knowledge about a medication."]
37#[derive(Debug, Clone, PartialEq)]
38pub struct MedicationKnowledgeRelatedMedicationKnowledge {
39 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
40 pub r#id: Option<std::string::String>,
41 #[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."]
42 pub r#extension: Vec<super::super::types::Extension>,
43 #[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)."]
44 pub r#modifier_extension: Vec<super::super::types::Extension>,
45 #[doc = "The category of the associated medication knowledge reference."]
46 pub r#type: Box<super::super::types::CodeableConcept>,
47 #[doc = "Associated documentation about the associated medication knowledge."]
48 pub r#reference: Vec<super::super::types::Reference>,
49}
50#[allow(clippy::derivable_impls)]
51impl Default for MedicationKnowledgeRelatedMedicationKnowledge {
52 fn default() -> Self {
53 Self {
54 r#id: Default::default(),
55 r#extension: Default::default(),
56 r#modifier_extension: Default::default(),
57 r#type: Box::new(super::super::types::CodeableConcept {
58 id: Some("$invalid".to_string()),
59 ..Default::default()
60 }),
61 r#reference: Default::default(),
62 }
63 }
64}
65#[doc = "Associated documentation about the medication."]
66#[derive(Debug, Clone, PartialEq)]
67pub struct MedicationKnowledgeMonograph {
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 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."]
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 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)."]
73 pub r#modifier_extension: Vec<super::super::types::Extension>,
74 #[doc = "The category of documentation about the medication. (e.g. professional monograph, patient education monograph)."]
75 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
76 #[doc = "Associated documentation about the medication."]
77 pub r#source: Option<Box<super::super::types::Reference>>,
78}
79#[allow(clippy::derivable_impls)]
80impl Default for MedicationKnowledgeMonograph {
81 fn default() -> Self {
82 Self {
83 r#id: Default::default(),
84 r#extension: Default::default(),
85 r#modifier_extension: Default::default(),
86 r#type: Default::default(),
87 r#source: Default::default(),
88 }
89 }
90}
91#[doc = "Identifies a particular constituent of interest in the product."]
92#[derive(Debug, Clone, PartialEq)]
93pub struct MedicationKnowledgeIngredient {
94 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
95 pub r#id: Option<std::string::String>,
96 #[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."]
97 pub r#extension: Vec<super::super::types::Extension>,
98 #[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)."]
99 pub r#modifier_extension: Vec<super::super::types::Extension>,
100 #[doc = "The actual ingredient - either a substance (simple ingredient) or another medication."]
101 pub r#item: MedicationKnowledgeIngredientItem,
102 #[doc = "Indication of whether this ingredient affects the therapeutic action of the drug."]
103 pub r#is_active: Option<super::super::types::Boolean>,
104 #[doc = "Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet."]
105 pub r#strength: Option<Box<super::super::types::Ratio>>,
106}
107#[allow(clippy::derivable_impls)]
108impl Default for MedicationKnowledgeIngredient {
109 fn default() -> Self {
110 Self {
111 r#id: Default::default(),
112 r#extension: Default::default(),
113 r#modifier_extension: Default::default(),
114 r#item: Default::default(),
115 r#is_active: Default::default(),
116 r#strength: Default::default(),
117 }
118 }
119}
120#[doc = "The price of the medication."]
121#[derive(Debug, Clone, PartialEq)]
122pub struct MedicationKnowledgeCost {
123 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
124 pub r#id: Option<std::string::String>,
125 #[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."]
126 pub r#extension: Vec<super::super::types::Extension>,
127 #[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)."]
128 pub r#modifier_extension: Vec<super::super::types::Extension>,
129 #[doc = "The category of the cost information. For example, manufacturers' cost, patient cost, claim reimbursement cost, actual acquisition cost."]
130 pub r#type: Box<super::super::types::CodeableConcept>,
131 #[doc = "The source or owner that assigns the price to the medication."]
132 pub r#source: Option<super::super::types::String>,
133 #[doc = "The price of the medication."]
134 pub r#cost: Box<super::super::types::Money>,
135}
136#[allow(clippy::derivable_impls)]
137impl Default for MedicationKnowledgeCost {
138 fn default() -> Self {
139 Self {
140 r#id: Default::default(),
141 r#extension: Default::default(),
142 r#modifier_extension: Default::default(),
143 r#type: Box::new(super::super::types::CodeableConcept {
144 id: Some("$invalid".to_string()),
145 ..Default::default()
146 }),
147 r#source: Default::default(),
148 r#cost: Box::new(super::super::types::Money {
149 id: Some("$invalid".to_string()),
150 ..Default::default()
151 }),
152 }
153 }
154}
155#[doc = "The program under which the medication is reviewed."]
156#[derive(Debug, Clone, PartialEq)]
157pub struct MedicationKnowledgeMonitoringProgram {
158 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
159 pub r#id: Option<std::string::String>,
160 #[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."]
161 pub r#extension: Vec<super::super::types::Extension>,
162 #[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)."]
163 pub r#modifier_extension: Vec<super::super::types::Extension>,
164 #[doc = "Type of program under which the medication is monitored."]
165 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
166 #[doc = "Name of the reviewing program."]
167 pub r#name: Option<super::super::types::String>,
168}
169#[allow(clippy::derivable_impls)]
170impl Default for MedicationKnowledgeMonitoringProgram {
171 fn default() -> Self {
172 Self {
173 r#id: Default::default(),
174 r#extension: Default::default(),
175 r#modifier_extension: Default::default(),
176 r#type: Default::default(),
177 r#name: Default::default(),
178 }
179 }
180}
181#[doc = "Dosage for the medication for the specific guidelines."]
182#[derive(Debug, Clone, PartialEq)]
183pub struct MedicationKnowledgeAdministrationGuidelinesDosage {
184 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
185 pub r#id: Option<std::string::String>,
186 #[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."]
187 pub r#extension: Vec<super::super::types::Extension>,
188 #[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)."]
189 pub r#modifier_extension: Vec<super::super::types::Extension>,
190 #[doc = "The type of dosage (for example, prophylaxis, maintenance, therapeutic, etc.)."]
191 pub r#type: Box<super::super::types::CodeableConcept>,
192 #[doc = "Dosage for the medication for the specific guidelines."]
193 pub r#dosage: Vec<super::super::types::Dosage>,
194}
195#[allow(clippy::derivable_impls)]
196impl Default for MedicationKnowledgeAdministrationGuidelinesDosage {
197 fn default() -> Self {
198 Self {
199 r#id: Default::default(),
200 r#extension: Default::default(),
201 r#modifier_extension: Default::default(),
202 r#type: Box::new(super::super::types::CodeableConcept {
203 id: Some("$invalid".to_string()),
204 ..Default::default()
205 }),
206 r#dosage: Default::default(),
207 }
208 }
209}
210#[doc = "Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.)."]
211#[derive(Debug, Clone, PartialEq)]
212pub struct MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics {
213 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
214 pub r#id: Option<std::string::String>,
215 #[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."]
216 pub r#extension: Vec<super::super::types::Extension>,
217 #[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)."]
218 pub r#modifier_extension: Vec<super::super::types::Extension>,
219 #[doc = "Specific characteristic that is relevant to the administration guideline (e.g. height, weight, gender)."]
220 pub r#characteristic:
221 MedicationKnowledgeAdministrationGuidelinesPatientCharacteristicsCharacteristic,
222 #[doc = "The specific characteristic (e.g. height, weight, gender, etc.)."]
223 pub r#value: Vec<super::super::types::String>,
224}
225#[allow(clippy::derivable_impls)]
226impl Default for MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics {
227 fn default() -> Self {
228 Self {
229 r#id: Default::default(),
230 r#extension: Default::default(),
231 r#modifier_extension: Default::default(),
232 r#characteristic: Default::default(),
233 r#value: Default::default(),
234 }
235 }
236}
237#[doc = "Guidelines for the administration of the medication."]
238#[derive(Debug, Clone, PartialEq)]
239pub struct MedicationKnowledgeAdministrationGuidelines {
240 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
241 pub r#id: Option<std::string::String>,
242 #[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."]
243 pub r#extension: Vec<super::super::types::Extension>,
244 #[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)."]
245 pub r#modifier_extension: Vec<super::super::types::Extension>,
246 #[doc = "Dosage for the medication for the specific guidelines."]
247 pub r#dosage: Vec<MedicationKnowledgeAdministrationGuidelinesDosage>,
248 #[doc = "Indication for use that apply to the specific administration guidelines."]
249 pub r#indication: Option<MedicationKnowledgeAdministrationGuidelinesIndication>,
250 #[doc = "Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.)."]
251 pub r#patient_characteristics:
252 Vec<MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics>,
253}
254#[allow(clippy::derivable_impls)]
255impl Default for MedicationKnowledgeAdministrationGuidelines {
256 fn default() -> Self {
257 Self {
258 r#id: Default::default(),
259 r#extension: Default::default(),
260 r#modifier_extension: Default::default(),
261 r#dosage: Default::default(),
262 r#indication: Default::default(),
263 r#patient_characteristics: Default::default(),
264 }
265 }
266}
267#[doc = "Categorization of the medication within a formulary or classification system."]
268#[derive(Debug, Clone, PartialEq)]
269pub struct MedicationKnowledgeMedicineClassification {
270 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
271 pub r#id: Option<std::string::String>,
272 #[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."]
273 pub r#extension: Vec<super::super::types::Extension>,
274 #[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)."]
275 pub r#modifier_extension: Vec<super::super::types::Extension>,
276 #[doc = "The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification)."]
277 pub r#type: Box<super::super::types::CodeableConcept>,
278 #[doc = "Specific category assigned to the medication (e.g. anti-infective, anti-hypertensive, antibiotic, etc.)."]
279 pub r#classification: Vec<super::super::types::CodeableConcept>,
280}
281#[allow(clippy::derivable_impls)]
282impl Default for MedicationKnowledgeMedicineClassification {
283 fn default() -> Self {
284 Self {
285 r#id: Default::default(),
286 r#extension: Default::default(),
287 r#modifier_extension: Default::default(),
288 r#type: Box::new(super::super::types::CodeableConcept {
289 id: Some("$invalid".to_string()),
290 ..Default::default()
291 }),
292 r#classification: Default::default(),
293 }
294 }
295}
296#[doc = "Information that only applies to packages (not products)."]
297#[derive(Debug, Clone, PartialEq)]
298pub struct MedicationKnowledgePackaging {
299 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
300 pub r#id: Option<std::string::String>,
301 #[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."]
302 pub r#extension: Vec<super::super::types::Extension>,
303 #[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)."]
304 pub r#modifier_extension: Vec<super::super::types::Extension>,
305 #[doc = "A code that defines the specific type of packaging that the medication can be found in (e.g. blister sleeve, tube, bottle)."]
306 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
307 #[doc = "The number of product units the package would contain if fully loaded."]
308 pub r#quantity: Option<Box<super::super::types::Quantity>>,
309}
310#[allow(clippy::derivable_impls)]
311impl Default for MedicationKnowledgePackaging {
312 fn default() -> Self {
313 Self {
314 r#id: Default::default(),
315 r#extension: Default::default(),
316 r#modifier_extension: Default::default(),
317 r#type: Default::default(),
318 r#quantity: Default::default(),
319 }
320 }
321}
322#[doc = "Specifies descriptive properties of the medicine, such as color, shape, imprints, etc."]
323#[derive(Debug, Clone, PartialEq)]
324pub struct MedicationKnowledgeDrugCharacteristic {
325 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
326 pub r#id: Option<std::string::String>,
327 #[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."]
328 pub r#extension: Vec<super::super::types::Extension>,
329 #[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)."]
330 pub r#modifier_extension: Vec<super::super::types::Extension>,
331 #[doc = "A code specifying which characteristic of the medicine is being described (for example, colour, shape, imprint)."]
332 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
333 #[doc = "Description of the characteristic."]
334 pub r#value: Option<MedicationKnowledgeDrugCharacteristicValue>,
335}
336#[allow(clippy::derivable_impls)]
337impl Default for MedicationKnowledgeDrugCharacteristic {
338 fn default() -> Self {
339 Self {
340 r#id: Default::default(),
341 r#extension: Default::default(),
342 r#modifier_extension: Default::default(),
343 r#type: Default::default(),
344 r#value: Default::default(),
345 }
346 }
347}
348#[doc = "Specifies if changes are allowed when dispensing a medication from a regulatory perspective."]
349#[derive(Debug, Clone, PartialEq)]
350pub struct MedicationKnowledgeRegulatorySubstitution {
351 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
352 pub r#id: Option<std::string::String>,
353 #[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."]
354 pub r#extension: Vec<super::super::types::Extension>,
355 #[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)."]
356 pub r#modifier_extension: Vec<super::super::types::Extension>,
357 #[doc = "Specifies the type of substitution allowed."]
358 pub r#type: Box<super::super::types::CodeableConcept>,
359 #[doc = "Specifies if regulation allows for changes in the medication when dispensing."]
360 pub r#allowed: super::super::types::Boolean,
361}
362#[allow(clippy::derivable_impls)]
363impl Default for MedicationKnowledgeRegulatorySubstitution {
364 fn default() -> Self {
365 Self {
366 r#id: Default::default(),
367 r#extension: Default::default(),
368 r#modifier_extension: Default::default(),
369 r#type: Box::new(super::super::types::CodeableConcept {
370 id: Some("$invalid".to_string()),
371 ..Default::default()
372 }),
373 r#allowed: super::super::types::Boolean {
374 id: Some("$invalid".to_string()),
375 ..Default::default()
376 },
377 }
378 }
379}
380#[doc = "Specifies the schedule of a medication in jurisdiction."]
381#[derive(Debug, Clone, PartialEq)]
382pub struct MedicationKnowledgeRegulatorySchedule {
383 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
384 pub r#id: Option<std::string::String>,
385 #[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."]
386 pub r#extension: Vec<super::super::types::Extension>,
387 #[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)."]
388 pub r#modifier_extension: Vec<super::super::types::Extension>,
389 #[doc = "Specifies the specific drug schedule."]
390 pub r#schedule: Box<super::super::types::CodeableConcept>,
391}
392#[allow(clippy::derivable_impls)]
393impl Default for MedicationKnowledgeRegulatorySchedule {
394 fn default() -> Self {
395 Self {
396 r#id: Default::default(),
397 r#extension: Default::default(),
398 r#modifier_extension: Default::default(),
399 r#schedule: Box::new(super::super::types::CodeableConcept {
400 id: Some("$invalid".to_string()),
401 ..Default::default()
402 }),
403 }
404 }
405}
406#[doc = "The maximum number of units of the medication that can be dispensed in a period."]
407#[derive(Debug, Clone, PartialEq)]
408pub struct MedicationKnowledgeRegulatoryMaxDispense {
409 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
410 pub r#id: Option<std::string::String>,
411 #[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."]
412 pub r#extension: Vec<super::super::types::Extension>,
413 #[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)."]
414 pub r#modifier_extension: Vec<super::super::types::Extension>,
415 #[doc = "The maximum number of units of the medication that can be dispensed."]
416 pub r#quantity: Box<super::super::types::Quantity>,
417 #[doc = "The period that applies to the maximum number of units."]
418 pub r#period: Option<Box<super::super::types::Duration>>,
419}
420#[allow(clippy::derivable_impls)]
421impl Default for MedicationKnowledgeRegulatoryMaxDispense {
422 fn default() -> Self {
423 Self {
424 r#id: Default::default(),
425 r#extension: Default::default(),
426 r#modifier_extension: Default::default(),
427 r#quantity: Box::new(super::super::types::Quantity {
428 id: Some("$invalid".to_string()),
429 ..Default::default()
430 }),
431 r#period: Default::default(),
432 }
433 }
434}
435#[doc = "Regulatory information about a medication."]
436#[derive(Debug, Clone, PartialEq)]
437pub struct MedicationKnowledgeRegulatory {
438 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
439 pub r#id: Option<std::string::String>,
440 #[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."]
441 pub r#extension: Vec<super::super::types::Extension>,
442 #[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)."]
443 pub r#modifier_extension: Vec<super::super::types::Extension>,
444 #[doc = "The authority that is specifying the regulations."]
445 pub r#regulatory_authority: Box<super::super::types::Reference>,
446 #[doc = "Specifies if changes are allowed when dispensing a medication from a regulatory perspective."]
447 pub r#substitution: Vec<MedicationKnowledgeRegulatorySubstitution>,
448 #[doc = "Specifies the schedule of a medication in jurisdiction."]
449 pub r#schedule: Vec<MedicationKnowledgeRegulatorySchedule>,
450 #[doc = "The maximum number of units of the medication that can be dispensed in a period."]
451 pub r#max_dispense: Option<MedicationKnowledgeRegulatoryMaxDispense>,
452}
453#[allow(clippy::derivable_impls)]
454impl Default for MedicationKnowledgeRegulatory {
455 fn default() -> Self {
456 Self {
457 r#id: Default::default(),
458 r#extension: Default::default(),
459 r#modifier_extension: Default::default(),
460 r#regulatory_authority: Box::new(super::super::types::Reference {
461 id: Some("$invalid".to_string()),
462 ..Default::default()
463 }),
464 r#substitution: Default::default(),
465 r#schedule: Default::default(),
466 r#max_dispense: Default::default(),
467 }
468 }
469}
470#[doc = "The time course of drug absorption, distribution, metabolism and excretion of a medication from the body."]
471#[derive(Debug, Clone, PartialEq)]
472pub struct MedicationKnowledgeKinetics {
473 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
474 pub r#id: Option<std::string::String>,
475 #[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."]
476 pub r#extension: Vec<super::super::types::Extension>,
477 #[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)."]
478 pub r#modifier_extension: Vec<super::super::types::Extension>,
479 #[doc = "The drug concentration measured at certain discrete points in time."]
480 pub r#area_under_curve: Vec<super::super::types::Quantity>,
481 #[doc = "The median lethal dose of a drug."]
482 pub r#lethal_dose_50: Vec<super::super::types::Quantity>,
483 #[doc = "The time required for any specified property (e.g., the concentration of a substance in the body) to decrease by half."]
484 pub r#half_life_period: Option<Box<super::super::types::Duration>>,
485}
486#[allow(clippy::derivable_impls)]
487impl Default for MedicationKnowledgeKinetics {
488 fn default() -> Self {
489 Self {
490 r#id: Default::default(),
491 r#extension: Default::default(),
492 r#modifier_extension: Default::default(),
493 r#area_under_curve: Default::default(),
494 r#lethal_dose_50: Default::default(),
495 r#half_life_period: Default::default(),
496 }
497 }
498}
499#[doc = "Information about a medication that is used to support knowledge."]
500#[derive(Debug, Clone, PartialEq)]
501pub struct MedicationKnowledge {
502 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
503 pub r#id: Option<super::super::types::Id>,
504 #[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."]
505 pub r#meta: Option<Box<super::super::types::Meta>>,
506 #[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."]
507 pub r#implicit_rules: Option<super::super::types::Uri>,
508 #[doc = "The base language in which the resource is written."]
509 pub r#language: Option<super::super::types::Code>,
510 #[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."]
511 pub r#text: Option<Box<super::super::types::Narrative>>,
512 #[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."]
513 pub r#contained: Vec<super::super::Resource>,
514 #[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."]
515 pub r#extension: Vec<super::super::types::Extension>,
516 #[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)."]
517 pub r#modifier_extension: Vec<super::super::types::Extension>,
518 #[doc = "A code that specifies this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems."]
519 pub r#code: Option<Box<super::super::types::CodeableConcept>>,
520 #[doc = "A code to indicate if the medication is in active use. The status refers to the validity about the information of the medication and not to its medicinal properties."]
521 pub r#status: Option<super::super::types::Code>,
522 #[doc = "Describes the details of the manufacturer of the medication product. This is not intended to represent the distributor of a medication product."]
523 pub r#manufacturer: Option<Box<super::super::types::Reference>>,
524 #[doc = "Describes the form of the item. Powder; tablets; capsule."]
525 pub r#dose_form: Option<Box<super::super::types::CodeableConcept>>,
526 #[doc = "Specific amount of the drug in the packaged product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.)."]
527 pub r#amount: Option<Box<super::super::types::Quantity>>,
528 #[doc = "Additional names for a medication, for example, the name(s) given to a medication in different countries. For example, acetaminophen and paracetamol or salbutamol and albuterol."]
529 pub r#synonym: Vec<super::super::types::String>,
530 #[doc = "Associated or related knowledge about a medication."]
531 pub r#related_medication_knowledge: Vec<MedicationKnowledgeRelatedMedicationKnowledge>,
532 #[doc = "Associated or related medications. For example, if the medication is a branded product (e.g. Crestor), this is the Therapeutic Moeity (e.g. Rosuvastatin) or if this is a generic medication (e.g. Rosuvastatin), this would link to a branded product (e.g. Crestor)."]
533 pub r#associated_medication: Vec<super::super::types::Reference>,
534 #[doc = "Category of the medication or product (e.g. branded product, therapeutic moeity, generic product, innovator product, etc.)."]
535 pub r#product_type: Vec<super::super::types::CodeableConcept>,
536 #[doc = "Associated documentation about the medication."]
537 pub r#monograph: Vec<MedicationKnowledgeMonograph>,
538 #[doc = "Identifies a particular constituent of interest in the product."]
539 pub r#ingredient: Vec<MedicationKnowledgeIngredient>,
540 #[doc = "The instructions for preparing the medication."]
541 pub r#preparation_instruction: Option<super::super::types::Markdown>,
542 #[doc = "The intended or approved route of administration."]
543 pub r#intended_route: Vec<super::super::types::CodeableConcept>,
544 #[doc = "The price of the medication."]
545 pub r#cost: Vec<MedicationKnowledgeCost>,
546 #[doc = "The program under which the medication is reviewed."]
547 pub r#monitoring_program: Vec<MedicationKnowledgeMonitoringProgram>,
548 #[doc = "Guidelines for the administration of the medication."]
549 pub r#administration_guidelines: Vec<MedicationKnowledgeAdministrationGuidelines>,
550 #[doc = "Categorization of the medication within a formulary or classification system."]
551 pub r#medicine_classification: Vec<MedicationKnowledgeMedicineClassification>,
552 #[doc = "Information that only applies to packages (not products)."]
553 pub r#packaging: Option<MedicationKnowledgePackaging>,
554 #[doc = "Specifies descriptive properties of the medicine, such as color, shape, imprints, etc."]
555 pub r#drug_characteristic: Vec<MedicationKnowledgeDrugCharacteristic>,
556 #[doc = "Potential clinical issue with or between medication(s) (for example, drug-drug interaction, drug-disease contraindication, drug-allergy interaction, etc.)."]
557 pub r#contraindication: Vec<super::super::types::Reference>,
558 #[doc = "Regulatory information about a medication."]
559 pub r#regulatory: Vec<MedicationKnowledgeRegulatory>,
560 #[doc = "The time course of drug absorption, distribution, metabolism and excretion of a medication from the body."]
561 pub r#kinetics: Vec<MedicationKnowledgeKinetics>,
562}
563#[allow(clippy::derivable_impls)]
564impl Default for MedicationKnowledge {
565 fn default() -> Self {
566 Self {
567 r#id: Default::default(),
568 r#meta: Default::default(),
569 r#implicit_rules: Default::default(),
570 r#language: Default::default(),
571 r#text: Default::default(),
572 r#contained: Default::default(),
573 r#extension: Default::default(),
574 r#modifier_extension: Default::default(),
575 r#code: Default::default(),
576 r#status: Default::default(),
577 r#manufacturer: Default::default(),
578 r#dose_form: Default::default(),
579 r#amount: Default::default(),
580 r#synonym: Default::default(),
581 r#related_medication_knowledge: Default::default(),
582 r#associated_medication: Default::default(),
583 r#product_type: Default::default(),
584 r#monograph: Default::default(),
585 r#ingredient: Default::default(),
586 r#preparation_instruction: Default::default(),
587 r#intended_route: Default::default(),
588 r#cost: Default::default(),
589 r#monitoring_program: Default::default(),
590 r#administration_guidelines: Default::default(),
591 r#medicine_classification: Default::default(),
592 r#packaging: Default::default(),
593 r#drug_characteristic: Default::default(),
594 r#contraindication: Default::default(),
595 r#regulatory: Default::default(),
596 r#kinetics: Default::default(),
597 }
598 }
599}