1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//! ImmunizationEvaluation
//!
//! URL: http://hl7.org/fhir/StructureDefinition/ImmunizationEvaluation
//!
//! Version: 5.0.0
//!
//! ImmunizationEvaluation Resource: Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those recommendations.
//!
//! FHIR: <https://build.fhir.org/>
//!
//! UML: <https://build.fhir.org/uml.html>
// Allow unused crate::r5::types as types;
#![allow(unused_imports)]
use crate::r5::types;
use ::serde::{Deserialize, Serialize};
use fhir_derive_macros::Validate;
/// ImmunizationEvaluation describes a comparison of an immunization event
/// against published recommendations to determine if the administration is
/// "valid" in relation to those recommendations. It captures whether a given
/// dose counts toward a vaccine series and, if not, the reason why. This
/// resource is typically produced by clinical decision support systems that
/// assess a patient's immunization history against a schedule.
///
/// Clinically, an evaluation is generated by comparing a single recorded
/// immunization event against an authoritative vaccination schedule (such as
/// one published by a national or regional immunization advisory body) to
/// determine the dose's status, its position within a series, and whether it
/// counts toward completing that series. This supports use cases such as
/// forecasting future doses, reconciling immunization histories, and
/// generating official immunization records or certificates. Unlike a
/// recommendation for future care, an ImmunizationEvaluation is a
/// retrospective assessment of a dose that has already been administered.
///
/// Related resources: the evaluated dose is referenced from an
/// `Immunization` resource, the subject is typically a
/// [`Patient`](crate::r5::resources::patient::Patient), and coded values such
/// as the target disease and dose status use
/// [`CodeableConcept`](crate::r5::types::CodeableConcept). See also the
/// related `ImmunizationRecommendation` resource, which is forward-looking
/// rather than retrospective.
///
/// # Examples
///
/// ```
/// use fhir::r5::resources::immunization_evaluation::ImmunizationEvaluation;
///
/// let value = ImmunizationEvaluation::default();
/// let json = ::serde_json::to_value(&value).unwrap();
/// let back: ImmunizationEvaluation = ::serde_json::from_value(json).unwrap();
/// assert_eq!(value, back);
/// ```
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ImmunizationEvaluation {
/// Logical id of this artifact
pub id: Option<types::String>,
/// Metadata about the resource
pub meta: Option<types::Meta>,
/// A set of rules under which this content was created
pub implicit_rules: Option<types::Uri>,
/// Language of the resource content
pub language: Option<types::Code>,
/// Text summary of the resource, for human interpretation
pub text: Option<types::Narrative>,
/// Contained, inline Resources
pub contained: Option<Vec<::serde_json::Value>>,
/// Additional content defined by implementations
pub extension: Option<Vec<types::Extension>>,
/// Extensions that cannot be ignored
pub modifier_extension: Option<Vec<types::Extension>>,
/// Business identifier
pub identifier: Option<Vec<types::Identifier>>,
/// The workflow status of this evaluation, either completed or entered-in-error.
pub status: types::Code,
/// Reference to the [`Patient`](crate::r5::resources::patient::Patient) whose immunization history is being evaluated.
pub patient: types::Reference,
/// Date evaluation was performed
pub date: Option<types::DateTime>,
/// Reference to the organization or body responsible for publishing the recommendations used in this evaluation.
pub authority: Option<types::Reference>,
/// The vaccine-preventable disease whose recommendation schedule this evaluation was assessed against.
pub target_disease: types::CodeableConcept,
/// Reference to the specific `Immunization` event being evaluated.
pub immunization_event: types::Reference,
/// Whether the dose counts as valid, invalid, or another status relative to the published recommendations.
pub dose_status: types::CodeableConcept,
/// Reason why the doese is considered valid, invalid or some other status
pub dose_status_reason: Option<Vec<types::CodeableConcept>>,
/// Evaluation notes
pub description: Option<types::Markdown>,
/// Name of vaccine series
pub series: Option<types::String>,
/// Dose number within series
pub dose_number: Option<types::String>,
/// Recommended number of doses for immunity
pub series_doses: Option<types::String>,
}
#[cfg(test)]
mod tests {
use super::*;
type T = ImmunizationEvaluation;
#[test]
fn test_default() {
let _ = T::default();
}
#[test]
fn test_serde_round_trip() {
let value = T::default();
let json = ::serde_json::to_value(&value).expect("to_value");
let back: T = ::serde_json::from_value(json).expect("from_value");
assert_eq!(value, back);
}
}