1use fhir_rs::prelude::*;
2use crate::AnyResource;
3
4#[derive(Resource, Debug, Clone, Default)]
5#[fhir(base="DomainResource")]
6pub struct ServiceRequest {
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="requisition", min="0", max="1", summary=true, modifier=false)]
48 pub requisition: Option<Identifier>,
49 #[fhir(name="status", min="1", 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="category", min="0", max="*", summary=true, modifier=false)]
57 pub category: Option<Vec<CodeableConcept>>,
58 #[fhir(name="priority", min="0", max="1", summary=true, modifier=false)]
60 pub priority: Option<CodeDt>,
61 #[fhir(name="doNotPerform", min="0", max="1", summary=true, modifier=true)]
63 pub do_not_perform: Option<BooleanDt>,
64 #[fhir(name="code", min="0", max="1", summary=true, modifier=false)]
66 pub code: Option<CodeableReference>,
67 #[fhir(name="orderDetail", min="0", max="*", summary=true, modifier=false)]
69 pub order_detail: Option<Vec<ServiceRequestOrderDetailBackboneElement>>,
70 #[fhir(name="quantity", min="0", max="1", summary=true, modifier=false)]
72 pub quantity: Option<Range>,
73 #[fhir(name="subject", min="1", max="1", summary=true, modifier=false)]
75 pub subject: Option<Reference>,
76 #[fhir(name="focus", min="0", max="*", summary=true, modifier=false)]
78 pub focus: Option<Vec<Reference>>,
79 #[fhir(name="encounter", min="0", max="1", summary=true, modifier=false)]
81 pub encounter: Option<Reference>,
82 #[fhir(name="occurrence", min="0", max="1", summary=true, modifier=false)]
84 pub occurrence: Option<Timing>,
85 #[fhir(name="asNeeded", min="0", max="1", summary=true, modifier=false)]
87 pub as_needed: Option<CodeableConcept>,
88 #[fhir(name="authoredOn", min="0", max="1", summary=true, modifier=false)]
90 pub authored_on: Option<DateTimeDt>,
91 #[fhir(name="requester", min="0", max="1", summary=true, modifier=false)]
93 pub requester: Option<Reference>,
94 #[fhir(name="performerType", min="0", max="1", summary=true, modifier=false)]
96 pub performer_type: Option<CodeableConcept>,
97 #[fhir(name="performer", min="0", max="*", summary=true, modifier=false)]
99 pub performer: Option<Vec<Reference>>,
100 #[fhir(name="location", min="0", max="*", summary=true, modifier=false)]
102 pub location: Option<Vec<CodeableReference>>,
103 #[fhir(name="reason", min="0", max="*", summary=true, modifier=false)]
105 pub reason: Option<Vec<CodeableReference>>,
106 #[fhir(name="insurance", min="0", max="*", summary=false, modifier=false)]
108 pub insurance: Option<Vec<Reference>>,
109 #[fhir(name="supportingInfo", min="0", max="*", summary=false, modifier=false)]
111 pub supporting_info: Option<Vec<CodeableReference>>,
112 #[fhir(name="specimen", min="0", max="*", summary=true, modifier=false)]
114 pub specimen: Option<Vec<Reference>>,
115 #[fhir(name="bodySite", min="0", max="*", summary=true, modifier=false)]
117 pub body_site: Option<Vec<CodeableConcept>>,
118 #[fhir(name="bodyStructure", min="0", max="1", summary=true, modifier=false)]
120 pub body_structure: Option<Reference>,
121 #[fhir(name="note", min="0", max="*", summary=false, modifier=false)]
123 pub note: Option<Vec<Annotation>>,
124 #[fhir(name="patientInstruction", min="0", max="*", summary=false, modifier=false)]
126 pub patient_instruction: Option<Vec<ServiceRequestPatientInstructionBackboneElement>>,
127 #[fhir(name="relevantHistory", min="0", max="*", summary=false, modifier=false)]
129 pub relevant_history: Option<Vec<Reference>>,
130}
131
132#[derive(BackboneElement, Debug, Clone, Default)]
133pub struct ServiceRequestOrderDetailBackboneElement {
134 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
136 pub id: Option<String>,
137 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
139 pub extension: Option<Vec<Extension>>,
140 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
142 pub modifier_extension: Option<Vec<Extension>>,
143 #[fhir(name="parameterFocus", min="0", max="1", summary=false, modifier=false)]
145 pub parameter_focus: Option<CodeableReference>,
146 #[fhir(name="parameter", min="1", max="*", summary=true, modifier=false)]
148 pub parameter: Option<Vec<ServiceRequestOrderDetailParameterBackboneElement>>,
149}
150
151#[derive(BackboneElement, Debug, Clone, Default)]
152pub struct ServiceRequestOrderDetailParameterBackboneElement {
153 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
155 pub id: Option<String>,
156 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
158 pub extension: Option<Vec<Extension>>,
159 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
161 pub modifier_extension: Option<Vec<Extension>>,
162 #[fhir(name="code", min="1", max="1", summary=true, modifier=false)]
164 pub code: Option<CodeableConcept>,
165 #[fhir(name="value", min="1", max="1", summary=true, modifier=false)]
167 pub value: Option<Period>,
168}
169
170#[derive(BackboneElement, Debug, Clone, Default)]
171pub struct ServiceRequestPatientInstructionBackboneElement {
172 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
174 pub id: Option<String>,
175 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
177 pub extension: Option<Vec<Extension>>,
178 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
180 pub modifier_extension: Option<Vec<Extension>>,
181 #[fhir(name="instruction", min="0", max="1", summary=true, modifier=false)]
183 pub instruction: Option<Reference>,
184}
185