fhir_resource_r5/resource/
service_request.rs

1use fhir_rs::prelude::*;
2use crate::AnyResource;
3
4#[derive(Resource, Debug, Clone, Default)]
5#[fhir(base="DomainResource")]
6pub struct ServiceRequest {
7    /// Logical id of this artifact
8    #[fhir(name="id", min="0", max="1", summary=true, modifier=false)]
9    pub id: Option<Id>,
10    /// Metadata about the resource
11    #[fhir(name="meta", min="0", max="1", summary=true, modifier=false)]
12    pub meta: Option<Meta>,
13    /// A set of rules under which this content was created
14    #[fhir(name="implicitRules", min="0", max="1", summary=true, modifier=true)]
15    pub implicit_rules: Option<UriDt>,
16    /// Language of the resource content
17    #[fhir(name="language", min="0", max="1", summary=false, modifier=false)]
18    pub language: Option<CodeDt>,
19    /// Text summary of the resource, for human interpretation
20    #[fhir(name="text", min="0", max="1", summary=false, modifier=false)]
21    pub text: Option<Narrative>,
22    /// Contained, inline Resources
23    #[fhir(name="contained", min="0", max="*", summary=false, modifier=false)]
24    pub contained: Option<Vec<AnyResource>>,
25    /// Additional content defined by implementations
26    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
27    pub extension: Option<Vec<Extension>>,
28    /// Extensions that cannot be ignored
29    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
30    pub modifier_extension: Option<Vec<Extension>>,
31    /// Identifiers assigned to this order
32    #[fhir(name="identifier", min="0", max="*", summary=true, modifier=false)]
33    pub identifier: Option<Vec<Identifier>>,
34    /// Instantiates FHIR protocol or definition
35    #[fhir(name="instantiatesCanonical", min="0", max="*", summary=true, modifier=false)]
36    pub instantiates_canonical: Option<Vec<CanonicalDt>>,
37    /// Instantiates external protocol or definition
38    #[fhir(name="instantiatesUri", min="0", max="*", summary=true, modifier=false)]
39    pub instantiates_uri: Option<Vec<UriDt>>,
40    /// What request fulfills
41    #[fhir(name="basedOn", min="0", max="*", summary=true, modifier=false)]
42    pub based_on: Option<Vec<Reference>>,
43    /// What request replaces
44    #[fhir(name="replaces", min="0", max="*", summary=true, modifier=false)]
45    pub replaces: Option<Vec<Reference>>,
46    /// Composite Request ID
47    #[fhir(name="requisition", min="0", max="1", summary=true, modifier=false)]
48    pub requisition: Option<Identifier>,
49    /// draft | active | on-hold | revoked | completed | entered-in-error | unknown
50    #[fhir(name="status", min="1", max="1", summary=true, modifier=true)]
51    pub status: Option<CodeDt>,
52    /// proposal | plan | directive | order +
53    #[fhir(name="intent", min="1", max="1", summary=true, modifier=true)]
54    pub intent: Option<CodeDt>,
55    /// Classification of service
56    #[fhir(name="category", min="0", max="*", summary=true, modifier=false)]
57    pub category: Option<Vec<CodeableConcept>>,
58    /// routine | urgent | asap | stat
59    #[fhir(name="priority", min="0", max="1", summary=true, modifier=false)]
60    pub priority: Option<CodeDt>,
61    /// True if service/procedure should not be performed
62    #[fhir(name="doNotPerform", min="0", max="1", summary=true, modifier=true)]
63    pub do_not_perform: Option<BooleanDt>,
64    /// What is being requested/ordered
65    #[fhir(name="code", min="0", max="1", summary=true, modifier=false)]
66    pub code: Option<CodeableReference>,
67    /// Additional order information
68    #[fhir(name="orderDetail", min="0", max="*", summary=true, modifier=false)]
69    pub order_detail: Option<Vec<ServiceRequestOrderDetailBackboneElement>>,
70    /// Service amount
71    #[fhir(name="quantity", min="0", max="1", summary=true, modifier=false)]
72    pub quantity: Option<Range>,
73    /// Individual or Entity the service is ordered for
74    #[fhir(name="subject", min="1", max="1", summary=true, modifier=false)]
75    pub subject: Option<Reference>,
76    /// What the service request is about, when it is not about the subject of record
77    #[fhir(name="focus", min="0", max="*", summary=true, modifier=false)]
78    pub focus: Option<Vec<Reference>>,
79    /// Encounter in which the request was created
80    #[fhir(name="encounter", min="0", max="1", summary=true, modifier=false)]
81    pub encounter: Option<Reference>,
82    /// When service should occur
83    #[fhir(name="occurrence", min="0", max="1", summary=true, modifier=false)]
84    pub occurrence: Option<Timing>,
85    /// Preconditions for service
86    #[fhir(name="asNeeded", min="0", max="1", summary=true, modifier=false)]
87    pub as_needed: Option<CodeableConcept>,
88    /// Date request signed
89    #[fhir(name="authoredOn", min="0", max="1", summary=true, modifier=false)]
90    pub authored_on: Option<DateTimeDt>,
91    /// Who/what is requesting service
92    #[fhir(name="requester", min="0", max="1", summary=true, modifier=false)]
93    pub requester: Option<Reference>,
94    /// Performer role
95    #[fhir(name="performerType", min="0", max="1", summary=true, modifier=false)]
96    pub performer_type: Option<CodeableConcept>,
97    /// Requested performer
98    #[fhir(name="performer", min="0", max="*", summary=true, modifier=false)]
99    pub performer: Option<Vec<Reference>>,
100    /// Requested location
101    #[fhir(name="location", min="0", max="*", summary=true, modifier=false)]
102    pub location: Option<Vec<CodeableReference>>,
103    /// Explanation/Justification for procedure or service
104    #[fhir(name="reason", min="0", max="*", summary=true, modifier=false)]
105    pub reason: Option<Vec<CodeableReference>>,
106    /// Associated insurance coverage
107    #[fhir(name="insurance", min="0", max="*", summary=false, modifier=false)]
108    pub insurance: Option<Vec<Reference>>,
109    /// Additional clinical information
110    #[fhir(name="supportingInfo", min="0", max="*", summary=false, modifier=false)]
111    pub supporting_info: Option<Vec<CodeableReference>>,
112    /// Procedure Samples
113    #[fhir(name="specimen", min="0", max="*", summary=true, modifier=false)]
114    pub specimen: Option<Vec<Reference>>,
115    /// Coded location on Body
116    #[fhir(name="bodySite", min="0", max="*", summary=true, modifier=false)]
117    pub body_site: Option<Vec<CodeableConcept>>,
118    /// BodyStructure-based location on the body
119    #[fhir(name="bodyStructure", min="0", max="1", summary=true, modifier=false)]
120    pub body_structure: Option<Reference>,
121    /// Comments
122    #[fhir(name="note", min="0", max="*", summary=false, modifier=false)]
123    pub note: Option<Vec<Annotation>>,
124    /// Patient or consumer-oriented instructions
125    #[fhir(name="patientInstruction", min="0", max="*", summary=false, modifier=false)]
126    pub patient_instruction: Option<Vec<ServiceRequestPatientInstructionBackboneElement>>,
127    /// Request provenance
128    #[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    /// Unique id for inter-element referencing
135    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
136    pub id: Option<String>,
137    /// Additional content defined by implementations
138    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
139    pub extension: Option<Vec<Extension>>,
140    /// Extensions that cannot be ignored even if unrecognized
141    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
142    pub modifier_extension: Option<Vec<Extension>>,
143    /// The context of the order details by reference
144    #[fhir(name="parameterFocus", min="0", max="1", summary=false, modifier=false)]
145    pub parameter_focus: Option<CodeableReference>,
146    /// The parameter details for the service being requested
147    #[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    /// Unique id for inter-element referencing
154    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
155    pub id: Option<String>,
156    /// Additional content defined by implementations
157    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
158    pub extension: Option<Vec<Extension>>,
159    /// Extensions that cannot be ignored even if unrecognized
160    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
161    pub modifier_extension: Option<Vec<Extension>>,
162    /// The detail of the order being requested
163    #[fhir(name="code", min="1", max="1", summary=true, modifier=false)]
164    pub code: Option<CodeableConcept>,
165    /// The value for the order detail
166    #[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    /// Unique id for inter-element referencing
173    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
174    pub id: Option<String>,
175    /// Additional content defined by implementations
176    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
177    pub extension: Option<Vec<Extension>>,
178    /// Extensions that cannot be ignored even if unrecognized
179    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
180    pub modifier_extension: Option<Vec<Extension>>,
181    /// Patient or consumer-oriented instructions
182    #[fhir(name="instruction", min="0", max="1", summary=true, modifier=false)]
183    pub instruction: Option<Reference>,
184}
185