fhirbolt_model/generated/r5/resources/
medication_knowledge.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "The price or representation of the cost (for example, Band A, Band B or $, $$) of the medication."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum MedicationKnowledgeCostCost {
5    Money(Box<super::super::types::Money>),
6    CodeableConcept(Box<super::super::types::CodeableConcept>),
7    #[default]
8    Invalid,
9}
10#[doc = "The specific characteristic (e.g. height, weight, gender, etc.)."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristicValue {
13    CodeableConcept(Box<super::super::types::CodeableConcept>),
14    Quantity(Box<super::super::types::Quantity>),
15    Range(Box<super::super::types::Range>),
16    #[default]
17    Invalid,
18}
19#[doc = "Either a textual source of the classification or a reference to an online source."]
20#[derive(Default, Debug, Clone, PartialEq)]
21pub enum MedicationKnowledgeMedicineClassificationSource {
22    String(super::super::types::String),
23    Uri(super::super::types::Uri),
24    #[default]
25    Invalid,
26}
27#[doc = "Value associated to the setting. E.g., 40° – 50°F for temperature."]
28#[derive(Default, Debug, Clone, PartialEq)]
29pub enum MedicationKnowledgeStorageGuidelineEnvironmentalSettingValue {
30    Quantity(Box<super::super::types::Quantity>),
31    Range(Box<super::super::types::Range>),
32    CodeableConcept(Box<super::super::types::CodeableConcept>),
33    #[default]
34    Invalid,
35}
36#[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 but can also be expressed a quantity when the denominator is assumed to be 1 tablet."]
37#[derive(Default, Debug, Clone, PartialEq)]
38pub enum MedicationKnowledgeDefinitionalIngredientStrength {
39    Ratio(Box<super::super::types::Ratio>),
40    CodeableConcept(Box<super::super::types::CodeableConcept>),
41    Quantity(Box<super::super::types::Quantity>),
42    #[default]
43    Invalid,
44}
45#[doc = "Description of the characteristic."]
46#[derive(Default, Debug, Clone, PartialEq)]
47pub enum MedicationKnowledgeDefinitionalDrugCharacteristicValue {
48    CodeableConcept(Box<super::super::types::CodeableConcept>),
49    String(super::super::types::String),
50    Quantity(Box<super::super::types::Quantity>),
51    Base64Binary(super::super::types::Base64Binary),
52    Attachment(Box<super::super::types::Attachment>),
53    #[default]
54    Invalid,
55}
56#[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."]
57#[derive(Debug, Clone, PartialEq)]
58pub struct MedicationKnowledgeRelatedMedicationKnowledge {
59    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
60    pub r#id: Option<std::string::String>,
61    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
62    pub r#extension: Vec<super::super::types::Extension>,
63    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
64    pub r#modifier_extension: Vec<super::super::types::Extension>,
65    #[doc = "The category of the associated medication knowledge reference."]
66    pub r#type: Box<super::super::types::CodeableConcept>,
67    #[doc = "Associated documentation about the associated medication knowledge."]
68    pub r#reference: Vec<super::super::types::Reference>,
69}
70#[allow(clippy::derivable_impls)]
71impl Default for MedicationKnowledgeRelatedMedicationKnowledge {
72    fn default() -> Self {
73        Self {
74            r#id: Default::default(),
75            r#extension: Default::default(),
76            r#modifier_extension: Default::default(),
77            r#type: Box::new(super::super::types::CodeableConcept {
78                id: Some("$invalid".to_string()),
79                ..Default::default()
80            }),
81            r#reference: Default::default(),
82        }
83    }
84}
85#[doc = "Associated documentation about the medication."]
86#[derive(Debug, Clone, PartialEq)]
87pub struct MedicationKnowledgeMonograph {
88    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
89    pub r#id: Option<std::string::String>,
90    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
91    pub r#extension: Vec<super::super::types::Extension>,
92    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
93    pub r#modifier_extension: Vec<super::super::types::Extension>,
94    #[doc = "The category of documentation about the medication. (e.g. professional monograph, patient education monograph)."]
95    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
96    #[doc = "Associated documentation about the medication."]
97    pub r#source: Option<Box<super::super::types::Reference>>,
98}
99#[allow(clippy::derivable_impls)]
100impl Default for MedicationKnowledgeMonograph {
101    fn default() -> Self {
102        Self {
103            r#id: Default::default(),
104            r#extension: Default::default(),
105            r#modifier_extension: Default::default(),
106            r#type: Default::default(),
107            r#source: Default::default(),
108        }
109    }
110}
111#[doc = "The price of the medication."]
112#[derive(Debug, Clone, PartialEq)]
113pub struct MedicationKnowledgeCost {
114    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
115    pub r#id: Option<std::string::String>,
116    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
117    pub r#extension: Vec<super::super::types::Extension>,
118    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
119    pub r#modifier_extension: Vec<super::super::types::Extension>,
120    #[doc = "The date range for which the cost information of the medication is effective."]
121    pub r#effective_date: Vec<super::super::types::Period>,
122    #[doc = "The category of the cost information.  For example, manufacturers' cost, patient cost, claim reimbursement cost, actual acquisition cost."]
123    pub r#type: Box<super::super::types::CodeableConcept>,
124    #[doc = "The source or owner that assigns the price to the medication."]
125    pub r#source: Option<super::super::types::String>,
126    #[doc = "The price or representation of the cost (for example, Band A, Band B or $, $$) of the medication."]
127    pub r#cost: MedicationKnowledgeCostCost,
128}
129#[allow(clippy::derivable_impls)]
130impl Default for MedicationKnowledgeCost {
131    fn default() -> Self {
132        Self {
133            r#id: Default::default(),
134            r#extension: Default::default(),
135            r#modifier_extension: Default::default(),
136            r#effective_date: Default::default(),
137            r#type: Box::new(super::super::types::CodeableConcept {
138                id: Some("$invalid".to_string()),
139                ..Default::default()
140            }),
141            r#source: Default::default(),
142            r#cost: Default::default(),
143        }
144    }
145}
146#[doc = "The program under which the medication is reviewed."]
147#[derive(Debug, Clone, PartialEq)]
148pub struct MedicationKnowledgeMonitoringProgram {
149    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
150    pub r#id: Option<std::string::String>,
151    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
152    pub r#extension: Vec<super::super::types::Extension>,
153    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
154    pub r#modifier_extension: Vec<super::super::types::Extension>,
155    #[doc = "Type of program under which the medication is monitored."]
156    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
157    #[doc = "Name of the reviewing program."]
158    pub r#name: Option<super::super::types::String>,
159}
160#[allow(clippy::derivable_impls)]
161impl Default for MedicationKnowledgeMonitoringProgram {
162    fn default() -> Self {
163        Self {
164            r#id: Default::default(),
165            r#extension: Default::default(),
166            r#modifier_extension: Default::default(),
167            r#type: Default::default(),
168            r#name: Default::default(),
169        }
170    }
171}
172#[doc = "Dosage for the medication for the specific guidelines."]
173#[derive(Debug, Clone, PartialEq)]
174pub struct MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage {
175    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
176    pub r#id: Option<std::string::String>,
177    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
178    pub r#extension: Vec<super::super::types::Extension>,
179    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
180    pub r#modifier_extension: Vec<super::super::types::Extension>,
181    #[doc = "The type or category of dosage for a given medication (for example, prophylaxis, maintenance, therapeutic, etc.)."]
182    pub r#type: Box<super::super::types::CodeableConcept>,
183    #[doc = "Dosage for the medication for the specific guidelines."]
184    pub r#dosage: Vec<super::super::types::Dosage>,
185}
186#[allow(clippy::derivable_impls)]
187impl Default for MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage {
188    fn default() -> Self {
189        Self {
190            r#id: Default::default(),
191            r#extension: Default::default(),
192            r#modifier_extension: Default::default(),
193            r#type: Box::new(super::super::types::CodeableConcept {
194                id: Some("$invalid".to_string()),
195                ..Default::default()
196            }),
197            r#dosage: Default::default(),
198        }
199    }
200}
201#[doc = "Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.)."]
202#[derive(Debug, Clone, PartialEq)]
203pub struct MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristic {
204    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
205    pub r#id: Option<std::string::String>,
206    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
207    pub r#extension: Vec<super::super::types::Extension>,
208    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
209    pub r#modifier_extension: Vec<super::super::types::Extension>,
210    #[doc = "The categorization of the specific characteristic that is relevant to the administration guideline (e.g. height, weight, gender)."]
211    pub r#type: Box<super::super::types::CodeableConcept>,
212    #[doc = "The specific characteristic (e.g. height, weight, gender, etc.)."]
213    pub r#value:
214        Option<MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristicValue>,
215}
216#[allow(clippy::derivable_impls)]
217impl Default for MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristic {
218    fn default() -> Self {
219        Self {
220            r#id: Default::default(),
221            r#extension: Default::default(),
222            r#modifier_extension: Default::default(),
223            r#type: Box::new(super::super::types::CodeableConcept {
224                id: Some("$invalid".to_string()),
225                ..Default::default()
226            }),
227            r#value: Default::default(),
228        }
229    }
230}
231#[doc = "The guidelines for the dosage of the medication for the indication."]
232#[derive(Debug, Clone, PartialEq)]
233pub struct MedicationKnowledgeIndicationGuidelineDosingGuideline {
234    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
235    pub r#id: Option<std::string::String>,
236    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
237    pub r#extension: Vec<super::super::types::Extension>,
238    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
239    pub r#modifier_extension: Vec<super::super::types::Extension>,
240    #[doc = "The overall intention of the treatment, for example, prophylactic, supporative, curative, etc."]
241    pub r#treatment_intent: Option<Box<super::super::types::CodeableConcept>>,
242    #[doc = "Dosage for the medication for the specific guidelines."]
243    pub r#dosage: Vec<MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage>,
244    #[doc = "The type of the treatment that the guideline applies to, for example, long term therapy, first line treatment, etc."]
245    pub r#administration_treatment: Option<Box<super::super::types::CodeableConcept>>,
246    #[doc = "Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.)."]
247    pub r#patient_characteristic:
248        Vec<MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristic>,
249}
250#[allow(clippy::derivable_impls)]
251impl Default for MedicationKnowledgeIndicationGuidelineDosingGuideline {
252    fn default() -> Self {
253        Self {
254            r#id: Default::default(),
255            r#extension: Default::default(),
256            r#modifier_extension: Default::default(),
257            r#treatment_intent: Default::default(),
258            r#dosage: Default::default(),
259            r#administration_treatment: Default::default(),
260            r#patient_characteristic: Default::default(),
261        }
262    }
263}
264#[doc = "Guidelines or protocols that are applicable for the administration of the medication based on indication."]
265#[derive(Debug, Clone, PartialEq)]
266pub struct MedicationKnowledgeIndicationGuideline {
267    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
268    pub r#id: Option<std::string::String>,
269    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
270    pub r#extension: Vec<super::super::types::Extension>,
271    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
272    pub r#modifier_extension: Vec<super::super::types::Extension>,
273    #[doc = "Indication or reason for use of the medication that applies to the specific administration guideline."]
274    pub r#indication: Vec<super::super::types::CodeableReference>,
275    #[doc = "The guidelines for the dosage of the medication for the indication."]
276    pub r#dosing_guideline: Vec<MedicationKnowledgeIndicationGuidelineDosingGuideline>,
277}
278#[allow(clippy::derivable_impls)]
279impl Default for MedicationKnowledgeIndicationGuideline {
280    fn default() -> Self {
281        Self {
282            r#id: Default::default(),
283            r#extension: Default::default(),
284            r#modifier_extension: Default::default(),
285            r#indication: Default::default(),
286            r#dosing_guideline: Default::default(),
287        }
288    }
289}
290#[doc = "Categorization of the medication within a formulary or classification system."]
291#[derive(Debug, Clone, PartialEq)]
292pub struct MedicationKnowledgeMedicineClassification {
293    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
294    pub r#id: Option<std::string::String>,
295    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
296    pub r#extension: Vec<super::super::types::Extension>,
297    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
298    pub r#modifier_extension: Vec<super::super::types::Extension>,
299    #[doc = "The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification)."]
300    pub r#type: Box<super::super::types::CodeableConcept>,
301    #[doc = "Either a textual source of the classification or a reference to an online source."]
302    pub r#source: Option<MedicationKnowledgeMedicineClassificationSource>,
303    #[doc = "Specific category assigned to the medication (e.g. anti-infective, anti-hypertensive, antibiotic, etc.)."]
304    pub r#classification: Vec<super::super::types::CodeableConcept>,
305}
306#[allow(clippy::derivable_impls)]
307impl Default for MedicationKnowledgeMedicineClassification {
308    fn default() -> Self {
309        Self {
310            r#id: Default::default(),
311            r#extension: Default::default(),
312            r#modifier_extension: Default::default(),
313            r#type: Box::new(super::super::types::CodeableConcept {
314                id: Some("$invalid".to_string()),
315                ..Default::default()
316            }),
317            r#source: Default::default(),
318            r#classification: Default::default(),
319        }
320    }
321}
322#[doc = "Information that only applies to packages (not products)."]
323#[derive(Debug, Clone, PartialEq)]
324pub struct MedicationKnowledgePackaging {
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
330    pub r#modifier_extension: Vec<super::super::types::Extension>,
331    #[doc = "The cost of the packaged medication."]
332    pub r#cost: Vec<MedicationKnowledgeCost>,
333    #[doc = "A reference to a PackagedProductDefinition that provides the details of the product that is in the packaging and is being priced."]
334    pub r#packaged_product: Option<Box<super::super::types::Reference>>,
335}
336#[allow(clippy::derivable_impls)]
337impl Default for MedicationKnowledgePackaging {
338    fn default() -> Self {
339        Self {
340            r#id: Default::default(),
341            r#extension: Default::default(),
342            r#modifier_extension: Default::default(),
343            r#cost: Default::default(),
344            r#packaged_product: Default::default(),
345        }
346    }
347}
348#[doc = "Describes a setting/value on the environment for the adequate storage of the medication and other substances.  Environment settings may involve temperature, humidity, or exposure to light."]
349#[derive(Debug, Clone, PartialEq)]
350pub struct MedicationKnowledgeStorageGuidelineEnvironmentalSetting {
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
356    pub r#modifier_extension: Vec<super::super::types::Extension>,
357    #[doc = "Identifies the category or type of setting (e.g., type of location, temperature, humidity)."]
358    pub r#type: Box<super::super::types::CodeableConcept>,
359    #[doc = "Value associated to the setting. E.g., 40° – 50°F for temperature."]
360    pub r#value: MedicationKnowledgeStorageGuidelineEnvironmentalSettingValue,
361}
362#[allow(clippy::derivable_impls)]
363impl Default for MedicationKnowledgeStorageGuidelineEnvironmentalSetting {
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#value: Default::default(),
374        }
375    }
376}
377#[doc = "Information on how the medication should be stored, for example, refrigeration temperatures and length of stability at a given temperature."]
378#[derive(Debug, Clone, PartialEq)]
379pub struct MedicationKnowledgeStorageGuideline {
380    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
381    pub r#id: Option<std::string::String>,
382    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
383    pub r#extension: Vec<super::super::types::Extension>,
384    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
385    pub r#modifier_extension: Vec<super::super::types::Extension>,
386    #[doc = "Reference to additional information about the storage guidelines."]
387    pub r#reference: Option<super::super::types::Uri>,
388    #[doc = "Additional notes about the storage."]
389    pub r#note: Vec<super::super::types::Annotation>,
390    #[doc = "Duration that the medication remains stable if the environmentalSetting is respected."]
391    pub r#stability_duration: Option<Box<super::super::types::Duration>>,
392    #[doc = "Describes a setting/value on the environment for the adequate storage of the medication and other substances.  Environment settings may involve temperature, humidity, or exposure to light."]
393    pub r#environmental_setting: Vec<MedicationKnowledgeStorageGuidelineEnvironmentalSetting>,
394}
395#[allow(clippy::derivable_impls)]
396impl Default for MedicationKnowledgeStorageGuideline {
397    fn default() -> Self {
398        Self {
399            r#id: Default::default(),
400            r#extension: Default::default(),
401            r#modifier_extension: Default::default(),
402            r#reference: Default::default(),
403            r#note: Default::default(),
404            r#stability_duration: Default::default(),
405            r#environmental_setting: Default::default(),
406        }
407    }
408}
409#[doc = "Specifies if changes are allowed when dispensing a medication from a regulatory perspective."]
410#[derive(Debug, Clone, PartialEq)]
411pub struct MedicationKnowledgeRegulatorySubstitution {
412    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
413    pub r#id: Option<std::string::String>,
414    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
415    pub r#extension: Vec<super::super::types::Extension>,
416    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
417    pub r#modifier_extension: Vec<super::super::types::Extension>,
418    #[doc = "Specifies the type of substitution allowed."]
419    pub r#type: Box<super::super::types::CodeableConcept>,
420    #[doc = "Specifies if regulation allows for changes in the medication when dispensing."]
421    pub r#allowed: super::super::types::Boolean,
422}
423#[allow(clippy::derivable_impls)]
424impl Default for MedicationKnowledgeRegulatorySubstitution {
425    fn default() -> Self {
426        Self {
427            r#id: Default::default(),
428            r#extension: Default::default(),
429            r#modifier_extension: Default::default(),
430            r#type: Box::new(super::super::types::CodeableConcept {
431                id: Some("$invalid".to_string()),
432                ..Default::default()
433            }),
434            r#allowed: super::super::types::Boolean {
435                id: Some("$invalid".to_string()),
436                ..Default::default()
437            },
438        }
439    }
440}
441#[doc = "The maximum number of units of the medication that can be dispensed in a period."]
442#[derive(Debug, Clone, PartialEq)]
443pub struct MedicationKnowledgeRegulatoryMaxDispense {
444    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
445    pub r#id: Option<std::string::String>,
446    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
447    pub r#extension: Vec<super::super::types::Extension>,
448    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
449    pub r#modifier_extension: Vec<super::super::types::Extension>,
450    #[doc = "The maximum number of units of the medication that can be dispensed."]
451    pub r#quantity: Box<super::super::types::Quantity>,
452    #[doc = "The period that applies to the maximum number of units."]
453    pub r#period: Option<Box<super::super::types::Duration>>,
454}
455#[allow(clippy::derivable_impls)]
456impl Default for MedicationKnowledgeRegulatoryMaxDispense {
457    fn default() -> Self {
458        Self {
459            r#id: Default::default(),
460            r#extension: Default::default(),
461            r#modifier_extension: Default::default(),
462            r#quantity: Box::new(super::super::types::Quantity {
463                id: Some("$invalid".to_string()),
464                ..Default::default()
465            }),
466            r#period: Default::default(),
467        }
468    }
469}
470#[doc = "Regulatory information about a medication."]
471#[derive(Debug, Clone, PartialEq)]
472pub struct MedicationKnowledgeRegulatory {
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
478    pub r#modifier_extension: Vec<super::super::types::Extension>,
479    #[doc = "The authority that is specifying the regulations."]
480    pub r#regulatory_authority: Box<super::super::types::Reference>,
481    #[doc = "Specifies if changes are allowed when dispensing a medication from a regulatory perspective."]
482    pub r#substitution: Vec<MedicationKnowledgeRegulatorySubstitution>,
483    #[doc = "Specifies the schedule of a medication in jurisdiction."]
484    pub r#schedule: Vec<super::super::types::CodeableConcept>,
485    #[doc = "The maximum number of units of the medication that can be dispensed in a period."]
486    pub r#max_dispense: Option<MedicationKnowledgeRegulatoryMaxDispense>,
487}
488#[allow(clippy::derivable_impls)]
489impl Default for MedicationKnowledgeRegulatory {
490    fn default() -> Self {
491        Self {
492            r#id: Default::default(),
493            r#extension: Default::default(),
494            r#modifier_extension: Default::default(),
495            r#regulatory_authority: Box::new(super::super::types::Reference {
496                id: Some("$invalid".to_string()),
497                ..Default::default()
498            }),
499            r#substitution: Default::default(),
500            r#schedule: Default::default(),
501            r#max_dispense: Default::default(),
502        }
503    }
504}
505#[doc = "Identifies a particular constituent of interest in the product."]
506#[derive(Debug, Clone, PartialEq)]
507pub struct MedicationKnowledgeDefinitionalIngredient {
508    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
509    pub r#id: Option<std::string::String>,
510    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
511    pub r#extension: Vec<super::super::types::Extension>,
512    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
513    pub r#modifier_extension: Vec<super::super::types::Extension>,
514    #[doc = "A reference to the resource that provides information about the ingredient."]
515    pub r#item: Box<super::super::types::CodeableReference>,
516    #[doc = "Indication of whether this ingredient affects the therapeutic action of the drug."]
517    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
518    #[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 but can also be expressed a quantity when the denominator is assumed to be 1 tablet."]
519    pub r#strength: Option<MedicationKnowledgeDefinitionalIngredientStrength>,
520}
521#[allow(clippy::derivable_impls)]
522impl Default for MedicationKnowledgeDefinitionalIngredient {
523    fn default() -> Self {
524        Self {
525            r#id: Default::default(),
526            r#extension: Default::default(),
527            r#modifier_extension: Default::default(),
528            r#item: Box::new(super::super::types::CodeableReference {
529                id: Some("$invalid".to_string()),
530                ..Default::default()
531            }),
532            r#type: Default::default(),
533            r#strength: Default::default(),
534        }
535    }
536}
537#[doc = "Specifies descriptive properties of the medicine, such as color, shape, imprints, etc."]
538#[derive(Debug, Clone, PartialEq)]
539pub struct MedicationKnowledgeDefinitionalDrugCharacteristic {
540    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
541    pub r#id: Option<std::string::String>,
542    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
543    pub r#extension: Vec<super::super::types::Extension>,
544    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
545    pub r#modifier_extension: Vec<super::super::types::Extension>,
546    #[doc = "A code specifying which characteristic of the medicine is being described (for example, colour, shape, imprint)."]
547    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
548    #[doc = "Description of the characteristic."]
549    pub r#value: Option<MedicationKnowledgeDefinitionalDrugCharacteristicValue>,
550}
551#[allow(clippy::derivable_impls)]
552impl Default for MedicationKnowledgeDefinitionalDrugCharacteristic {
553    fn default() -> Self {
554        Self {
555            r#id: Default::default(),
556            r#extension: Default::default(),
557            r#modifier_extension: Default::default(),
558            r#type: Default::default(),
559            r#value: Default::default(),
560        }
561    }
562}
563#[doc = "Along with the link to a Medicinal Product Definition resource, this information provides common definitional elements that are needed to understand the specific medication that is being described."]
564#[derive(Debug, Clone, PartialEq)]
565pub struct MedicationKnowledgeDefinitional {
566    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
567    pub r#id: Option<std::string::String>,
568    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
569    pub r#extension: Vec<super::super::types::Extension>,
570    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
571    pub r#modifier_extension: Vec<super::super::types::Extension>,
572    #[doc = "Associated definitions for this medication."]
573    pub r#definition: Vec<super::super::types::Reference>,
574    #[doc = "Describes the form of the item.  Powder; tablets; capsule."]
575    pub r#dose_form: Option<Box<super::super::types::CodeableConcept>>,
576    #[doc = "The intended or approved route of administration."]
577    pub r#intended_route: Vec<super::super::types::CodeableConcept>,
578    #[doc = "Identifies a particular constituent of interest in the product."]
579    pub r#ingredient: Vec<MedicationKnowledgeDefinitionalIngredient>,
580    #[doc = "Specifies descriptive properties of the medicine, such as color, shape, imprints, etc."]
581    pub r#drug_characteristic: Vec<MedicationKnowledgeDefinitionalDrugCharacteristic>,
582}
583#[allow(clippy::derivable_impls)]
584impl Default for MedicationKnowledgeDefinitional {
585    fn default() -> Self {
586        Self {
587            r#id: Default::default(),
588            r#extension: Default::default(),
589            r#modifier_extension: Default::default(),
590            r#definition: Default::default(),
591            r#dose_form: Default::default(),
592            r#intended_route: Default::default(),
593            r#ingredient: Default::default(),
594            r#drug_characteristic: Default::default(),
595        }
596    }
597}
598#[doc = "Information about a medication that is used to support knowledge."]
599#[derive(Debug, Clone, PartialEq)]
600pub struct MedicationKnowledge {
601    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
602    pub r#id: Option<super::super::types::Id>,
603    #[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."]
604    pub r#meta: Option<Box<super::super::types::Meta>>,
605    #[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."]
606    pub r#implicit_rules: Option<super::super::types::Uri>,
607    #[doc = "The base language in which the resource is written."]
608    pub r#language: Option<super::super::types::Code>,
609    #[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."]
610    pub r#text: Option<Box<super::super::types::Narrative>>,
611    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning."]
612    pub r#contained: Vec<super::super::Resource>,
613    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
614    pub r#extension: Vec<super::super::types::Extension>,
615    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
616    pub r#modifier_extension: Vec<super::super::types::Extension>,
617    #[doc = "Business identifier for this medication."]
618    pub r#identifier: Vec<super::super::types::Identifier>,
619    #[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."]
620    pub r#code: Option<Box<super::super::types::CodeableConcept>>,
621    #[doc = "A code to indicate if the medication referred to by this MedicationKnowledge is in active use within the drug database or inventory system. The status refers to the validity about the information of the medication and not to its medicinal properties."]
622    pub r#status: Option<super::super::types::Code>,
623    #[doc = "The creator or owner of the knowledge or information about the medication."]
624    pub r#author: Option<Box<super::super::types::Reference>>,
625    #[doc = "Lists the jurisdictions that this medication knowledge was written for."]
626    pub r#intended_jurisdiction: Vec<super::super::types::CodeableConcept>,
627    #[doc = "All of the 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."]
628    pub r#name: Vec<super::super::types::String>,
629    #[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."]
630    pub r#related_medication_knowledge: Vec<MedicationKnowledgeRelatedMedicationKnowledge>,
631    #[doc = "Links to associated medications that could be prescribed, dispensed or administered."]
632    pub r#associated_medication: Vec<super::super::types::Reference>,
633    #[doc = "Category of the medication or product (e.g. branded product, therapeutic moeity, generic product, innovator product, etc.)."]
634    pub r#product_type: Vec<super::super::types::CodeableConcept>,
635    #[doc = "Associated documentation about the medication."]
636    pub r#monograph: Vec<MedicationKnowledgeMonograph>,
637    #[doc = "The instructions for preparing the medication."]
638    pub r#preparation_instruction: Option<super::super::types::Markdown>,
639    #[doc = "The price of the medication."]
640    pub r#cost: Vec<MedicationKnowledgeCost>,
641    #[doc = "The program under which the medication is reviewed."]
642    pub r#monitoring_program: Vec<MedicationKnowledgeMonitoringProgram>,
643    #[doc = "Guidelines or protocols that are applicable for the administration of the medication based on indication."]
644    pub r#indication_guideline: Vec<MedicationKnowledgeIndicationGuideline>,
645    #[doc = "Categorization of the medication within a formulary or classification system."]
646    pub r#medicine_classification: Vec<MedicationKnowledgeMedicineClassification>,
647    #[doc = "Information that only applies to packages (not products)."]
648    pub r#packaging: Vec<MedicationKnowledgePackaging>,
649    #[doc = "Potential clinical issue with or between medication(s) (for example, drug-drug interaction, drug-disease contraindication, drug-allergy interaction, etc.)."]
650    pub r#clinical_use_issue: Vec<super::super::types::Reference>,
651    #[doc = "Information on how the medication should be stored, for example, refrigeration temperatures and length of stability at a given temperature."]
652    pub r#storage_guideline: Vec<MedicationKnowledgeStorageGuideline>,
653    #[doc = "Regulatory information about a medication."]
654    pub r#regulatory: Vec<MedicationKnowledgeRegulatory>,
655    #[doc = "Along with the link to a Medicinal Product Definition resource, this information provides common definitional elements that are needed to understand the specific medication that is being described."]
656    pub r#definitional: Option<MedicationKnowledgeDefinitional>,
657}
658#[allow(clippy::derivable_impls)]
659impl Default for MedicationKnowledge {
660    fn default() -> Self {
661        Self {
662            r#id: Default::default(),
663            r#meta: Default::default(),
664            r#implicit_rules: Default::default(),
665            r#language: Default::default(),
666            r#text: Default::default(),
667            r#contained: Default::default(),
668            r#extension: Default::default(),
669            r#modifier_extension: Default::default(),
670            r#identifier: Default::default(),
671            r#code: Default::default(),
672            r#status: Default::default(),
673            r#author: Default::default(),
674            r#intended_jurisdiction: Default::default(),
675            r#name: Default::default(),
676            r#related_medication_knowledge: Default::default(),
677            r#associated_medication: Default::default(),
678            r#product_type: Default::default(),
679            r#monograph: Default::default(),
680            r#preparation_instruction: Default::default(),
681            r#cost: Default::default(),
682            r#monitoring_program: Default::default(),
683            r#indication_guideline: Default::default(),
684            r#medicine_classification: Default::default(),
685            r#packaging: Default::default(),
686            r#clinical_use_issue: Default::default(),
687            r#storage_guideline: Default::default(),
688            r#regulatory: Default::default(),
689            r#definitional: Default::default(),
690        }
691    }
692}