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
//! Runtime context for an authorized SMART session.
//!
//! When the authorization server issues an access token, it may
//! include launch-context claims that bind the token to a specific
//! Patient, Encounter, or `fhirUser`. The [`LaunchContext`] carries
//! those bindings at request time so the authorize() decision can
//! enforce `patient/...` scopes correctly.
use ;
/// What the caller is trying to do.
///
/// SMART v1 collapses CRUD onto two verbs: `read` covers GET
/// (single-read + search); `write` covers POST/PUT/PATCH/DELETE.
/// SMART v2 splits these further (c/r/u/d/s/$); we'll add finer
/// actions when v2 scopes ship.
/// Runtime context for an authorized SMART session.
///
/// Populated from the SMART claims on the issued access token. All
/// fields are optional: a `system/...` token carries no patient
/// context; a standalone-launch token without `launch/patient`
/// carries no patient binding either.