fhir_resource_r5/resource/
document_reference.rs

1use fhir_rs::prelude::*;
2use crate::AnyResource;
3
4#[derive(Resource, Debug, Clone, Default)]
5#[fhir(base="DomainResource")]
6pub struct DocumentReference {
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    /// Business identifiers for the document
32    #[fhir(name="identifier", min="0", max="*", summary=true, modifier=false)]
33    pub identifier: Option<Vec<Identifier>>,
34    /// An explicitly assigned identifer of a variation of the content in the DocumentReference
35    #[fhir(name="version", min="0", max="1", summary=true, modifier=false)]
36    pub version: Option<StringDt>,
37    /// Procedure that caused this media to be created
38    #[fhir(name="basedOn", min="0", max="*", summary=false, modifier=false)]
39    pub based_on: Option<Vec<Reference>>,
40    /// current | superseded | entered-in-error
41    #[fhir(name="status", min="1", max="1", summary=true, modifier=true)]
42    pub status: Option<CodeDt>,
43    /// registered | partial | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | deprecated | unknown
44    #[fhir(name="docStatus", min="0", max="1", summary=true, modifier=false)]
45    pub doc_status: Option<CodeDt>,
46    /// Imaging modality used
47    #[fhir(name="modality", min="0", max="*", summary=true, modifier=false)]
48    pub modality: Option<Vec<CodeableConcept>>,
49    /// Kind of document (LOINC if possible)
50    #[fhir(name="type", min="0", max="1", summary=true, modifier=false)]
51    pub type_: Option<CodeableConcept>,
52    /// Categorization of document
53    #[fhir(name="category", min="0", max="*", summary=true, modifier=false)]
54    pub category: Option<Vec<CodeableConcept>>,
55    /// Who/what is the subject of the document
56    #[fhir(name="subject", min="0", max="1", summary=true, modifier=false)]
57    pub subject: Option<Reference>,
58    /// Context of the document content
59    #[fhir(name="context", min="0", max="*", summary=false, modifier=false)]
60    pub context: Option<Vec<Reference>>,
61    /// Main clinical acts documented
62    #[fhir(name="event", min="0", max="*", summary=false, modifier=false)]
63    pub event: Option<Vec<CodeableReference>>,
64    /// Body part included
65    #[fhir(name="bodySite", min="0", max="*", summary=true, modifier=false)]
66    pub body_site: Option<Vec<CodeableReference>>,
67    /// Kind of facility where patient was seen
68    #[fhir(name="facilityType", min="0", max="1", summary=false, modifier=false)]
69    pub facility_type: Option<CodeableConcept>,
70    /// Additional details about where the content was created (e.g. clinical specialty)
71    #[fhir(name="practiceSetting", min="0", max="1", summary=false, modifier=false)]
72    pub practice_setting: Option<CodeableConcept>,
73    /// Time of service that is being documented
74    #[fhir(name="period", min="0", max="1", summary=true, modifier=false)]
75    pub period: Option<Period>,
76    /// When this document reference was created
77    #[fhir(name="date", min="0", max="1", summary=true, modifier=false)]
78    pub date: Option<InstantDt>,
79    /// Who and/or what authored the document
80    #[fhir(name="author", min="0", max="*", summary=true, modifier=false)]
81    pub author: Option<Vec<Reference>>,
82    /// Attests to accuracy of the document
83    #[fhir(name="attester", min="0", max="*", summary=false, modifier=false)]
84    pub attester: Option<Vec<DocumentReferenceAttesterBackboneElement>>,
85    /// Organization which maintains the document
86    #[fhir(name="custodian", min="0", max="1", summary=false, modifier=false)]
87    pub custodian: Option<Reference>,
88    /// Relationships to other documents
89    #[fhir(name="relatesTo", min="0", max="*", summary=true, modifier=false)]
90    pub relates_to: Option<Vec<DocumentReferenceRelatesToBackboneElement>>,
91    /// Human-readable description
92    #[fhir(name="description", min="0", max="1", summary=true, modifier=false)]
93    pub description: Option<MarkdownDt>,
94    /// Document security-tags
95    #[fhir(name="securityLabel", min="0", max="*", summary=true, modifier=false)]
96    pub security_label: Option<Vec<CodeableConcept>>,
97    /// Document referenced
98    #[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    /// Unique id for inter-element referencing
105    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
106    pub id: Option<String>,
107    /// Additional content defined by implementations
108    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
109    pub extension: Option<Vec<Extension>>,
110    /// Extensions that cannot be ignored even if unrecognized
111    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
112    pub modifier_extension: Option<Vec<Extension>>,
113    /// The relationship type with another document
114    #[fhir(name="code", min="1", max="1", summary=true, modifier=false)]
115    pub code: Option<CodeableConcept>,
116    /// Target of the relationship
117    #[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    /// Unique id for inter-element referencing
124    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
125    pub id: Option<String>,
126    /// Additional content defined by implementations
127    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
128    pub extension: Option<Vec<Extension>>,
129    /// Extensions that cannot be ignored even if unrecognized
130    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
131    pub modifier_extension: Option<Vec<Extension>>,
132    /// personal | professional | legal | official
133    #[fhir(name="mode", min="1", max="1", summary=false, modifier=false)]
134    pub mode: Option<CodeableConcept>,
135    /// When the document was attested
136    #[fhir(name="time", min="0", max="1", summary=false, modifier=false)]
137    pub time: Option<DateTimeDt>,
138    /// Who attested the document
139    #[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    /// Unique id for inter-element referencing
146    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
147    pub id: Option<String>,
148    /// Additional content defined by implementations
149    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
150    pub extension: Option<Vec<Extension>>,
151    /// Extensions that cannot be ignored even if unrecognized
152    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
153    pub modifier_extension: Option<Vec<Extension>>,
154    /// Where to access the document
155    #[fhir(name="attachment", min="1", max="1", summary=true, modifier=false)]
156    pub attachment: Option<Attachment>,
157    /// Content profile rules for the document
158    #[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    /// Unique id for inter-element referencing
165    #[fhir(name="id", min="0", max="1", summary=false, modifier=false)]
166    pub id: Option<String>,
167    /// Additional content defined by implementations
168    #[fhir(name="extension", min="0", max="*", summary=false, modifier=false)]
169    pub extension: Option<Vec<Extension>>,
170    /// Extensions that cannot be ignored even if unrecognized
171    #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
172    pub modifier_extension: Option<Vec<Extension>>,
173    /// Code|uri|canonical
174    #[fhir(name="value", min="1", max="1", summary=true, modifier=false)]
175    pub value: Option<CanonicalDt>,
176}
177