You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/specification/1.0.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,23 +44,23 @@ The response to the discovery endpoint SHALL be an object containing a list of C
44
44
45
45
Field | Description
46
46
----- | ---------
47
-
`services` | *array*. An array of **CDS Services**
47
+
`services` | *array*. An array of **CDS Services**.
48
48
49
49
Each CDS Service SHALL be described by the following attributes.
50
50
51
51
Field | Optionality | Type | Description
52
52
----- | ----- | ----- | ---------
53
53
`hook`| REQUIRED | *string* | The hook this service should be invoked on. See [Hooks](../hooks/index.md).
54
-
`title`| RECOMMENDED | *string* | The human-friendly name of this service
55
-
<nobr>`description`</nobr>| REQUIRED | *string* | The description of this service
54
+
`title`| RECOMMENDED | *string* | The human-friendly name of this service.
55
+
<nobr>`description`</nobr>| REQUIRED | *string* | The description of this service.
56
56
`id` | REQUIRED | *string* | The {id} portion of the URL to this service which is available at<br />`{baseUrl}/cds-services/{id}`
57
57
`prefetch` | OPTIONAL | *object* | An object containing key/value pairs of FHIR queries that this service is requesting that the EHR prefetch and provide on each service call. The key is a *string* that describes the type of data being requested and the value is a *string* representing the FHIR query.<br />See [Prefetch Template](#prefetch-template).
58
58
59
59
### HTTP Status Codes
60
60
61
61
Code | Description
62
62
---- | -----------
63
-
`200 OK` | A successful response
63
+
`200 OK` | A successful response.
64
64
65
65
CDS Services MAY return other HTTP statuses, specifically 4xx and 5xx HTTP error codes.
66
66
@@ -108,12 +108,12 @@ An EHR SHALL call a CDS Service by `POST`ing a JSON document to the service as d
108
108
Field | Optionality | Type | Description
109
109
----- | ----- | ----- | --------
110
110
`hook` | REQUIRED | *string* | The hook that triggered this CDS Service call. See [Hooks](../hooks/index.md).
111
-
<nobr>`hookInstance`</nobr> | REQUIRED | *string* | A UUID for this particular hook call (see more information below)
111
+
<nobr>`hookInstance`</nobr> | REQUIRED | *string* | A UUID for this particular hook call (see more information below).
112
112
`fhirServer` | OPTIONAL | *URL* | The base URL EHR's [FHIR](https://www.hl7.org/fhir/) server. If fhirAuthorization is provided, this field is REQUIRED. The scheme should be `https`
113
113
`fhirAuthorization` | OPTIONAL | *object* | A structure holding an [OAuth 2.0][OAuth 2.0] bearer access token granting the CDS Service access to FHIR resources, along with supplemental information relating to the token. See the [FHIR Resource Access](#fhir-resource-access) section for more information.
114
114
`user` | REQUIRED | *string* | The FHIR resource type + id representing the current user.<br />The type is one of: [Practitioner](https://www.hl7.org/fhir/practitioner.html), [Patient](https://www.hl7.org/fhir/patient.html), or [RelatedPerson](https://www.hl7.org/fhir/relatedperson.html).<br />For example, `Practitioner/123`
115
115
`context` | REQUIRED | *object* | Hook-specific contextual data that the CDS service will need.<br />For example, with the `patient-view` hook this will include the FHIR identifier of the [Patient](https://www.hl7.org/fhir/patient.html) being viewed. For details, see the Hooks specification page.
116
-
`prefetch` | OPTIONAL | *object* | The FHIR data that was prefetched by the EHR (see more information below)
116
+
`prefetch` | OPTIONAL | *object* | The FHIR data that was prefetched by the EHR (see more information below).
117
117
118
118
#### hookInstance
119
119
@@ -182,7 +182,7 @@ The CDS Hooks specification defines just one prefetch token:
182
182
183
183
|Variable|Meaning|
184
184
---------|--------
185
-
|`{{user}}`|The value of the `user` field from this CDS Service request (e.g. `Practitioner/123`)|
185
+
|`{{user}}`|The value of the `user` field from this CDS Service request (e.g. `Practitioner/123`).|
186
186
187
187
Individual hooks specify which of their `context` fields can be used as prefetch tokens. Only root-level fields with a primitive value within the `context` object are eligible to be used as prefetch tokens.
188
188
@@ -234,9 +234,9 @@ goal is to know, at call time:
234
234
235
235
| Key | Description |
236
236
| --- | ----------- |
237
-
|`p`| Patient demographics |
238
-
|`a1c`| Most recent Hemoglobin A1c reading for this patient |
239
-
| `u` | Information on the current user (Practitioner)
237
+
|`p`| Patient demographics.|
238
+
|`a1c`| Most recent Hemoglobin A1c reading for this patient.|
239
+
| `u` | Information on the current user (Practitioner).
240
240
241
241
#### Example prefetch response
242
242
@@ -305,7 +305,7 @@ The access token is specified in the CDS Service request via the OPTIONAL `fhirA
305
305
Field | Optionality | Type | Description
306
306
----- | ----- | ----- | -----------
307
307
`access_token` | REQUIRED | *string* | This is the [OAuth 2.0][OAuth 2.0] access token that provides access to the FHIR server.
`expires_in` | REQUIRED | *integer* | The lifetime in seconds of the access token.
310
310
`scope` | REQUIRED | *string* | The scopes the access token grants the CDS Service.
311
311
`subject` | REQUIRED | *string* | The [OAuth 2.0][OAuth 2.0] client identifier of the CDS Service, as registered with the EHR's authorization server.
@@ -353,7 +353,7 @@ Each **Card** is described by the following attributes.
353
353
Field | Optionality | Type | Description
354
354
----- | ----- | ----- | --------
355
355
`summary` | REQUIRED | *string* | One-sentence, <140-character summary message for display to the user inside of this card.
356
-
`detail` | OPTIONAL | *string* | Optional detailed information to display; if provided MUST be represented in [(GitHub Flavored) Markdown](https://github.github.com/gfm/). (For non-urgent cards, the EHR MAY hide these details until the user clicks a link like "view more details...".)
356
+
`detail` | OPTIONAL | *string* | Optional detailed information to display; if provided MUST be represented in [(GitHub Flavored) Markdown](https://github.github.com/gfm/). (For non-urgent cards, the EHR MAY hide these details until the user clicks a link like "view more details...").
357
357
`indicator` | REQUIRED | *string* | Urgency/importance of what this card conveys. Allowed values, in order of increasing urgency, are: `info`, `warning`, `critical`. The EHR MAY use this field to help make UI display decisions such as sort order or coloring.
358
358
`source` | REQUIRED | *object* | Grouping structure for the **Source** of the information displayed on this card. The source should be the primary source of guidance for the decision support the card represents.
359
359
<nobr>`suggestions`</nobr> | OPTIONAL | *array* of **Suggestions** | Allows a service to suggest a set of changes in the context of the current activity (e.g. changing the dose of the medication currently being prescribed, for the `medication-prescribe` activity). If used, the user MUST be allowed to choose no more than one suggestion.
@@ -490,7 +490,7 @@ Field | Optionality | Type | Value
490
490
----- | ----- | ----- | --------
491
491
alg | REQUIRED | *string* | The cryptographic algorithm used to sign this JWT.
492
492
kid | REQUIRED | *string* | The identifier of the key-pair used to sign this JWT. This identifier MUST be unique within the EHR's JWK Set.
493
-
typ | REQUIRED | *string* | Fixed value: `JWT`.
493
+
typ | REQUIRED | *string* | Fixed value: `JWT`
494
494
jku | OPTIONAL | *url* | The URL to the JWK Set containing the public key(s).
495
495
496
496
The JWT payload contains the following fields:
@@ -501,7 +501,7 @@ iss | REQUIRED | *string* | The URI of the issuer of this JWT. Note that the JW
501
501
aud | REQUIRED | *string* or *array of string* | The CDS Service endpoint that is being called by the EHR. (See more details below).
502
502
exp | REQUIRED | *number* | Expiration time integer for this authentication JWT, expressed in seconds since the "Epoch" (1970-01-01T00:00:00Z UTC).
503
503
iat | REQUIRED | *number* | The time at which this JWT was issued, expressed in seconds since the "Epoch" (1970-01-01T00:00:00Z UTC).
504
-
jti | REQUIRED | *string* | A nonce string value that uniquely identifies this authentication JWT (used to protect against replay attacks)
504
+
jti | REQUIRED | *string* | A nonce string value that uniquely identifies this authentication JWT (used to protect against replay attacks).
505
505
506
506
CDS Services SHOULD whitelist the `iss`, `jku` and `sub` fields to only the EHRs they trust.
0 commit comments