1use fhir_rs::prelude::*;
2use crate::AnyResource;
3
4#[derive(Resource, Debug, Clone, Default)]
5#[fhir(base="DomainResource")]
6pub struct DocumentReference {
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="version", min="0", max="1", summary=true, modifier=false)]
36 pub version: Option<StringDt>,
37 #[fhir(name="basedOn", min="0", max="*", summary=false, modifier=false)]
39 pub based_on: Option<Vec<Reference>>,
40 #[fhir(name="status", min="1", max="1", summary=true, modifier=true)]
42 pub status: Option<CodeDt>,
43 #[fhir(name="docStatus", min="0", max="1", summary=true, modifier=false)]
45 pub doc_status: Option<CodeDt>,
46 #[fhir(name="modality", min="0", max="*", summary=true, modifier=false)]
48 pub modality: Option<Vec<CodeableConcept>>,
49 #[fhir(name="type", min="0", max="1", summary=true, modifier=false)]
51 pub type_: Option<CodeableConcept>,
52 #[fhir(name="category", min="0", max="*", summary=true, modifier=false)]
54 pub category: Option<Vec<CodeableConcept>>,
55 #[fhir(name="subject", min="0", max="1", summary=true, modifier=false)]
57 pub subject: Option<Reference>,
58 #[fhir(name="context", min="0", max="*", summary=false, modifier=false)]
60 pub context: Option<Vec<Reference>>,
61 #[fhir(name="event", min="0", max="*", summary=false, modifier=false)]
63 pub event: Option<Vec<CodeableReference>>,
64 #[fhir(name="bodySite", min="0", max="*", summary=true, modifier=false)]
66 pub body_site: Option<Vec<CodeableReference>>,
67 #[fhir(name="facilityType", min="0", max="1", summary=false, modifier=false)]
69 pub facility_type: Option<CodeableConcept>,
70 #[fhir(name="practiceSetting", min="0", max="1", summary=false, modifier=false)]
72 pub practice_setting: Option<CodeableConcept>,
73 #[fhir(name="period", min="0", max="1", summary=true, modifier=false)]
75 pub period: Option<Period>,
76 #[fhir(name="date", min="0", max="1", summary=true, modifier=false)]
78 pub date: Option<InstantDt>,
79 #[fhir(name="author", min="0", max="*", summary=true, modifier=false)]
81 pub author: Option<Vec<Reference>>,
82 #[fhir(name="attester", min="0", max="*", summary=false, modifier=false)]
84 pub attester: Option<Vec<DocumentReferenceAttesterBackboneElement>>,
85 #[fhir(name="custodian", min="0", max="1", summary=false, modifier=false)]
87 pub custodian: Option<Reference>,
88 #[fhir(name="relatesTo", min="0", max="*", summary=true, modifier=false)]
90 pub relates_to: Option<Vec<DocumentReferenceRelatesToBackboneElement>>,
91 #[fhir(name="description", min="0", max="1", summary=true, modifier=false)]
93 pub description: Option<MarkdownDt>,
94 #[fhir(name="securityLabel", min="0", max="*", summary=true, modifier=false)]
96 pub security_label: Option<Vec<CodeableConcept>>,
97 #[fhir(name="content", min="1", max="*", summary=true, modifier=false)]
99 pub content: Option<Vec<DocumentReferenceContentBackboneElement>>,
100}
101
102#[derive(BackboneElement, Debug, Clone, Default)]
103pub struct DocumentReferenceRelatesToBackboneElement {
104 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
106 pub id: Option<String>,
107 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
109 pub extension: Option<Vec<Extension>>,
110 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
112 pub modifier_extension: Option<Vec<Extension>>,
113 #[fhir(name="code", min="1", max="1", summary=true, modifier=false)]
115 pub code: Option<CodeableConcept>,
116 #[fhir(name="target", min="1", max="1", summary=true, modifier=false)]
118 pub target: Option<Reference>,
119}
120
121#[derive(BackboneElement, Debug, Clone, Default)]
122pub struct DocumentReferenceAttesterBackboneElement {
123 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
125 pub id: Option<String>,
126 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
128 pub extension: Option<Vec<Extension>>,
129 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
131 pub modifier_extension: Option<Vec<Extension>>,
132 #[fhir(name="mode", min="1", max="1", summary=false, modifier=false)]
134 pub mode: Option<CodeableConcept>,
135 #[fhir(name="time", min="0", max="1", summary=false, modifier=false)]
137 pub time: Option<DateTimeDt>,
138 #[fhir(name="party", min="0", max="1", summary=false, modifier=false)]
140 pub party: Option<Reference>,
141}
142
143#[derive(BackboneElement, Debug, Clone, Default)]
144pub struct DocumentReferenceContentBackboneElement {
145 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
147 pub id: Option<String>,
148 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
150 pub extension: Option<Vec<Extension>>,
151 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
153 pub modifier_extension: Option<Vec<Extension>>,
154 #[fhir(name="attachment", min="1", max="1", summary=true, modifier=false)]
156 pub attachment: Option<Attachment>,
157 #[fhir(name="profile", min="0", max="*", summary=true, modifier=false)]
159 pub profile: Option<Vec<DocumentReferenceContentProfileBackboneElement>>,
160}
161
162#[derive(BackboneElement, Debug, Clone, Default)]
163pub struct DocumentReferenceContentProfileBackboneElement {
164 #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
166 pub id: Option<String>,
167 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
169 pub extension: Option<Vec<Extension>>,
170 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
172 pub modifier_extension: Option<Vec<Extension>>,
173 #[fhir(name="value", min="1", max="1", summary=true, modifier=false)]
175 pub value: Option<CanonicalDt>,
176}
177