1use fhir_rs::prelude::*;
2use crate::AnyResource;
3
4#[derive(Resource, Debug, Clone, Default)]
5#[fhir(base="DomainResource")]
6pub struct DeviceRequest {
7 #[fhir(name="id", min="0", max="1", summary=true, modifier=false)]
9 pub id: Option<Id>,
10 #[fhir(name="meta", min="0", max="1", summary=true, modifier=false)]
12 pub meta: Option<Meta>,
13 #[fhir(name="implicitRules", min="0", max="1", summary=true, modifier=true)]
15 pub implicit_rules: Option<UriDt>,
16 #[fhir(name="language", min="0", max="1", summary=false, modifier=false)]
18 pub language: Option<CodeDt>,
19 #[fhir(name="text", min="0", max="1", summary=false, modifier=false)]
21 pub text: Option<Narrative>,
22 #[fhir(name="contained", min="0", max="*", summary=false, modifier=false)]
24 pub contained: Option<Vec<AnyResource>>,
25 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
27 pub extension: Option<Vec<Extension>>,
28 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
30 pub modifier_extension: Option<Vec<Extension>>,
31 #[fhir(name="identifier", min="0", max="*", summary=true, modifier=false)]
33 pub identifier: Option<Vec<Identifier>>,
34 #[fhir(name="instantiatesCanonical", min="0", max="*", summary=true, modifier=false)]
36 pub instantiates_canonical: Option<Vec<CanonicalDt>>,
37 #[fhir(name="instantiatesUri", min="0", max="*", summary=true, modifier=false)]
39 pub instantiates_uri: Option<Vec<UriDt>>,
40 #[fhir(name="basedOn", min="0", max="*", summary=true, modifier=false)]
42 pub based_on: Option<Vec<Reference>>,
43 #[fhir(name="replaces", min="0", max="*", summary=true, modifier=false)]
45 pub replaces: Option<Vec<Reference>>,
46 #[fhir(name="groupIdentifier", min="0", max="1", summary=true, modifier=false)]
48 pub group_identifier: Option<Identifier>,
49 #[fhir(name="status", min="0", max="1", summary=true, modifier=true)]
51 pub status: Option<CodeDt>,
52 #[fhir(name="intent", min="1", max="1", summary=true, modifier=true)]
54 pub intent: Option<CodeDt>,
55 #[fhir(name="priority", min="0", max="1", summary=true, modifier=false)]
57 pub priority: Option<CodeDt>,
58 #[fhir(name="doNotPerform", min="0", max="1", summary=true, modifier=true)]
60 pub do_not_perform: Option<BooleanDt>,
61 #[fhir(name="code", min="1", max="1", summary=true, modifier=false)]
63 pub code: Option<CodeableReference>,
64 #[fhir(name="quantity", min="0", max="1", summary=false, modifier=false)]
66 pub quantity: Option<IntegerDt>,
67 #[fhir(name="parameter", min="0", max="*", summary=false, modifier=false)]
69 pub parameter: Option<Vec<DeviceRequestParameterBackboneElement>>,
70 #[fhir(name="subject", min="1", max="1", summary=true, modifier=false)]
72 pub subject: Option<Reference>,
73 #[fhir(name="encounter", min="0", max="1", summary=true, modifier=false)]
75 pub encounter: Option<Reference>,
76 #[fhir(name="occurrence", min="0", max="1", summary=true, modifier=false)]
78 pub occurrence: Option<Timing>,
79 #[fhir(name="authoredOn", min="0", max="1", summary=true, modifier=false)]
81 pub authored_on: Option<DateTimeDt>,
82 #[fhir(name="requester", min="0", max="1", summary=true, modifier=false)]
84 pub requester: Option<Reference>,
85 #[fhir(name="performer", min="0", max="1", summary=true, modifier=false)]
87 pub performer: Option<CodeableReference>,
88 #[fhir(name="reason", min="0", max="*", summary=true, modifier=false)]
90 pub reason: Option<Vec<CodeableReference>>,
91 #[fhir(name="asNeeded", min="0", max="1", summary=false, modifier=false)]
93 pub as_needed: Option<BooleanDt>,
94 #[fhir(name="asNeededFor", min="0", max="1", summary=false, modifier=false)]
96 pub as_needed_for: Option<CodeableConcept>,
97 #[fhir(name="insurance", min="0", max="*", summary=false, modifier=false)]
99 pub insurance: Option<Vec<Reference>>,
100 #[fhir(name="supportingInfo", min="0", max="*", summary=false, modifier=false)]
102 pub supporting_info: Option<Vec<Reference>>,
103 #[fhir(name="note", min="0", max="*", summary=false, modifier=false)]
105 pub note: Option<Vec<Annotation>>,
106 #[fhir(name="relevantHistory", min="0", max="*", summary=false, modifier=false)]
108 pub relevant_history: Option<Vec<Reference>>,
109}
110
111#[derive(BackboneElement, Debug, Clone, Default)]
112pub struct DeviceRequestParameterBackboneElement {
113 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
115 pub id: Option<String>,
116 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
118 pub extension: Option<Vec<Extension>>,
119 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
121 pub modifier_extension: Option<Vec<Extension>>,
122 #[fhir(name="code", min="0", max="1", summary=false, modifier=false)]
124 pub code: Option<CodeableConcept>,
125 #[fhir(name="value", min="0", max="1", summary=false, modifier=false)]
127 pub value: Option<BooleanDt>,
128}
129