1use crate::prelude::*;
2
3#[derive(Resource, Debug, Clone, Default)]
4#[fhir(base="DomainResource")]
5pub struct DocumentReference {
6 #[fhir(name="id", min="0", max="1", summary=true, modifier=false, choice="")]
8 pub id: Option<Id>,
9 #[fhir(name="meta", min="0", max="1", summary=true, modifier=false, choice="")]
11 pub meta: Option<Meta>,
12 #[fhir(name="implicitRules", min="0", max="1", summary=true, modifier=true)]
14 pub implicit_rules: Option<UriDt>,
15 #[fhir(name="language", min="0", max="1", summary=false, modifier=false, choice="")]
17 pub language: Option<CodeDt>,
18 #[fhir(name="text", min="0", max="1", summary=false, modifier=false, choice="")]
20 pub text: Option<Narrative>,
21 #[fhir(name="contained", min="0", max="*", summary=false, modifier=false, choice="")]
23 pub contained: Option<Vec<AnyResource>>,
24 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
26 pub extension: Option<Vec<Extension>>,
27 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
29 pub modifier_extension: Option<Vec<Extension>>,
30 #[fhir(name="identifier", min="0", max="*", summary=true, modifier=false, choice="")]
32 pub identifier: Option<Vec<Identifier>>,
33 #[fhir(name="version", min="0", max="1", summary=true, modifier=false, choice="")]
35 pub version: Option<StringDt>,
36 #[fhir(name="basedOn", min="0", max="*", summary=false, modifier=false, choice="")]
38 pub based_on: Option<Vec<Reference>>,
39 #[fhir(name="status", min="1", max="1", summary=true, modifier=true)]
41 pub status: Option<CodeDt>,
42 #[fhir(name="docStatus", min="0", max="1", summary=true, modifier=false, choice="")]
44 pub doc_status: Option<CodeDt>,
45 #[fhir(name="modality", min="0", max="*", summary=true, modifier=false, choice="")]
47 pub modality: Option<Vec<CodeableConcept>>,
48 #[fhir(name="type", min="0", max="1", summary=true, modifier=false, choice="")]
50 pub type_: Option<CodeableConcept>,
51 #[fhir(name="category", min="0", max="*", summary=true, modifier=false, choice="")]
53 pub category: Option<Vec<CodeableConcept>>,
54 #[fhir(name="subject", min="0", max="1", summary=true, modifier=false, choice="")]
56 pub subject: Option<Reference>,
57 #[fhir(name="context", min="0", max="*", summary=false, modifier=false, choice="")]
59 pub context: Option<Vec<Reference>>,
60 #[fhir(name="event", min="0", max="*", summary=false, modifier=false, choice="")]
62 pub event: Option<Vec<CodeableReference>>,
63 #[fhir(name="bodySite", min="0", max="*", summary=true, modifier=false, choice="")]
65 pub body_site: Option<Vec<CodeableReference>>,
66 #[fhir(name="facilityType", min="0", max="1", summary=false, modifier=false, choice="")]
68 pub facility_type: Option<CodeableConcept>,
69 #[fhir(name="practiceSetting", min="0", max="1", summary=false, modifier=false, choice="")]
71 pub practice_setting: Option<CodeableConcept>,
72 #[fhir(name="period", min="0", max="1", summary=true, modifier=false, choice="")]
74 pub period: Option<Period>,
75 #[fhir(name="date", min="0", max="1", summary=true, modifier=false, choice="")]
77 pub date: Option<InstantDt>,
78 #[fhir(name="author", min="0", max="*", summary=true, modifier=false, choice="")]
80 pub author: Option<Vec<Reference>>,
81 #[fhir(name="attester", min="0", max="*", summary=false, modifier=false, choice="")]
83 pub attester: Option<Vec<DocumentReferenceAttesterBackboneElement>>,
84 #[fhir(name="custodian", min="0", max="1", summary=false, modifier=false, choice="")]
86 pub custodian: Option<Reference>,
87 #[fhir(name="relatesTo", min="0", max="*", summary=true, modifier=false, choice="")]
89 pub relates_to: Option<Vec<DocumentReferenceRelatesToBackboneElement>>,
90 #[fhir(name="description", min="0", max="1", summary=true, modifier=false, choice="")]
92 pub description: Option<MarkdownDt>,
93 #[fhir(name="securityLabel", min="0", max="*", summary=true, modifier=false, choice="")]
95 pub security_label: Option<Vec<CodeableConcept>>,
96 #[fhir(name="content", min="1", max="*", summary=true, modifier=false, choice="")]
98 pub content: Option<Vec<DocumentReferenceContentBackboneElement>>,
99}
100
101#[derive(Element, BackboneElement, Debug, Clone, Default)]
102pub struct DocumentReferenceRelatesToBackboneElement {
103 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
105 pub id: Option<String>,
106 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
108 pub extension: Option<Vec<Extension>>,
109 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
111 pub modifier_extension: Option<Vec<Extension>>,
112 #[fhir(name="code", min="1", max="1", summary=true, modifier=false, choice="")]
114 pub code: Option<CodeableConcept>,
115 #[fhir(name="target", min="1", max="1", summary=true, modifier=false, choice="")]
117 pub target: Option<Reference>,
118}
119
120#[derive(Element, BackboneElement, Debug, Clone, Default)]
121pub struct DocumentReferenceAttesterBackboneElement {
122 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
124 pub id: Option<String>,
125 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
127 pub extension: Option<Vec<Extension>>,
128 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
130 pub modifier_extension: Option<Vec<Extension>>,
131 #[fhir(name="mode", min="1", max="1", summary=false, modifier=false, choice="")]
133 pub mode: Option<CodeableConcept>,
134 #[fhir(name="time", min="0", max="1", summary=false, modifier=false, choice="")]
136 pub time: Option<DateTimeDt>,
137 #[fhir(name="party", min="0", max="1", summary=false, modifier=false, choice="")]
139 pub party: Option<Reference>,
140}
141
142#[derive(Element, BackboneElement, Debug, Clone, Default)]
143pub struct DocumentReferenceContentBackboneElement {
144 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
146 pub id: Option<String>,
147 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
149 pub extension: Option<Vec<Extension>>,
150 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
152 pub modifier_extension: Option<Vec<Extension>>,
153 #[fhir(name="attachment", min="1", max="1", summary=true, modifier=false, choice="")]
155 pub attachment: Option<Attachment>,
156 #[fhir(name="profile", min="0", max="*", summary=true, modifier=false, choice="")]
158 pub profile: Option<Vec<DocumentReferenceContentProfileBackboneElement>>,
159}
160
161#[derive(Element, BackboneElement, Debug, Clone, Default)]
162pub struct DocumentReferenceContentProfileBackboneElement {
163 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
165 pub id: Option<String>,
166 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
168 pub extension: Option<Vec<Extension>>,
169 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
171 pub modifier_extension: Option<Vec<Extension>>,
172 #[fhir(name="value", min="1", max="1", summary=true, modifier=false, choice="")]
174 pub value: Option<CanonicalDt>,
175}
176