fhir_resource_r5/resource/
device_request.rs

1use fhir_rs::prelude::*;
2use crate::AnyResource;
3
4#[derive(Resource, Debug, Clone, Default)]
5#[fhir(base="DomainResource")]
6pub struct DeviceRequest {
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    /// External Request identifier
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    /// Identifier of composite request
47    #[fhir(name="groupIdentifier", min="0", max="1", summary=true, modifier=false)]
48    pub group_identifier: Option<Identifier>,
49    /// draft | active | on-hold | revoked | completed | entered-in-error | unknown
50    #[fhir(name="status", min="0", max="1", summary=true, modifier=true)]
51    pub status: Option<CodeDt>,
52    /// proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
53    #[fhir(name="intent", min="1", max="1", summary=true, modifier=true)]
54    pub intent: Option<CodeDt>,
55    /// routine | urgent | asap | stat
56    #[fhir(name="priority", min="0", max="1", summary=true, modifier=false)]
57    pub priority: Option<CodeDt>,
58    /// True if the request is to stop or not to start using the device
59    #[fhir(name="doNotPerform", min="0", max="1", summary=true, modifier=true)]
60    pub do_not_perform: Option<BooleanDt>,
61    /// Device requested
62    #[fhir(name="code", min="1", max="1", summary=true, modifier=false)]
63    pub code: Option<CodeableReference>,
64    /// Quantity of devices to supply
65    #[fhir(name="quantity", min="0", max="1", summary=false, modifier=false)]
66    pub quantity: Option<IntegerDt>,
67    /// Device details
68    #[fhir(name="parameter", min="0", max="*", summary=false, modifier=false)]
69    pub parameter: Option<Vec<DeviceRequestParameterBackboneElement>>,
70    /// Focus of request
71    #[fhir(name="subject", min="1", max="1", summary=true, modifier=false)]
72    pub subject: Option<Reference>,
73    /// Encounter motivating request
74    #[fhir(name="encounter", min="0", max="1", summary=true, modifier=false)]
75    pub encounter: Option<Reference>,
76    /// Desired time or schedule for use
77    #[fhir(name="occurrence", min="0", max="1", summary=true, modifier=false)]
78    pub occurrence: Option<Timing>,
79    /// When recorded
80    #[fhir(name="authoredOn", min="0", max="1", summary=true, modifier=false)]
81    pub authored_on: Option<DateTimeDt>,
82    /// Who/what submitted the device request
83    #[fhir(name="requester", min="0", max="1", summary=true, modifier=false)]
84    pub requester: Option<Reference>,
85    /// Requested Filler
86    #[fhir(name="performer", min="0", max="1", summary=true, modifier=false)]
87    pub performer: Option<CodeableReference>,
88    /// Coded/Linked Reason for request
89    #[fhir(name="reason", min="0", max="*", summary=true, modifier=false)]
90    pub reason: Option<Vec<CodeableReference>>,
91    /// PRN status of request
92    #[fhir(name="asNeeded", min="0", max="1", summary=false, modifier=false)]
93    pub as_needed: Option<BooleanDt>,
94    /// Device usage reason
95    #[fhir(name="asNeededFor", min="0", max="1", summary=false, modifier=false)]
96    pub as_needed_for: Option<CodeableConcept>,
97    /// Associated insurance coverage
98    #[fhir(name="insurance", min="0", max="*", summary=false, modifier=false)]
99    pub insurance: Option<Vec<Reference>>,
100    /// Additional clinical information
101    #[fhir(name="supportingInfo", min="0", max="*", summary=false, modifier=false)]
102    pub supporting_info: Option<Vec<Reference>>,
103    /// Notes or comments
104    #[fhir(name="note", min="0", max="*", summary=false, modifier=false)]
105    pub note: Option<Vec<Annotation>>,
106    /// Request provenance
107    #[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    /// Unique id for inter-element referencing
114    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
115    pub id: Option<String>,
116    /// Additional content defined by implementations
117    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
118    pub extension: Option<Vec<Extension>>,
119    /// Extensions that cannot be ignored even if unrecognized
120    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
121    pub modifier_extension: Option<Vec<Extension>>,
122    /// Device detail
123    #[fhir(name="code", min="0", max="1", summary=false, modifier=false)]
124    pub code: Option<CodeableConcept>,
125    /// Value of detail
126    #[fhir(name="value", min="0", max="1", summary=false, modifier=false)]
127    pub value: Option<BooleanDt>,
128}
129