From 6f2ea7b9be613a803d92631ec0b77583c4866be0 Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Wed, 21 Jul 2021 11:36:12 -0500 Subject: [PATCH 1/9] Add CDS Hooks --- content/cds_hooks.md | 110 +++++++++++++++++++++++++++++++++++++++++ layouts/cds_hooks.html | 14 ++++++ layouts/header.html | 1 + 3 files changed, 125 insertions(+) create mode 100644 content/cds_hooks.md create mode 100644 layouts/cds_hooks.html diff --git a/content/cds_hooks.md b/content/cds_hooks.md new file mode 100644 index 000000000..8bc25abee --- /dev/null +++ b/content/cds_hooks.md @@ -0,0 +1,110 @@ +--- +title: CDS Hooks +layout: cds_hooks +--- + +# CDS Hooksbeta # +------------------------------------------------------------------------ +* TOC +{:toc} + +## General ## + +### Introduction ### +The CDS Hooks (Clinical Decision Support Hooks) workflow defines a specification for external CDS Service developers to send notification cards to an electronic health record (EHR). These cards are triggered based on conditions such as the opening of a patient chart of a specified demographic(age, gender, etc.) or when a order is selected. These cards can contain information, a suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). + +### Authorization Model ### +1. Cerner must validate and register every CDS service. +2. Each client decides whether they want to allow a CDS Service on a domain-by-domain basis. +3. Each client decides which users and roles can access the CDS Service. + +### Supported Hooks ### +Currently, Cerner supports the following CDS Hooks: + +- [Patient View](https://cds-hooks.org/hooks/patient-view/) + +## CDS Service Registration ## +In order to submit a service to be registered, the following information is required: + +Name | Required | Description | Example +-------------|--------------|-------------|-------- +hook | Yes | The hook this service should be invoked on. See [Supported Hooks](#supported-hooks). | patient-view +title | Yes | The human-friendly name of this service. | Severe Condition Alerter +fhir server | Yes | The FHIR server that the service queries. | https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d +service url | Yes | The url for the service that the CDS server will call to get the service card response. | https://company.myservice.com +description | No | Further information about the service. | Sends alerts for patients above age 65 who may have a severe condition. +owner email | No | Required when scopes are provided. The email address of the owner of the service. | john.smith@company.com +tenants | No | A list of tenants where the service is enabled. | C1941 - ec2458f2-1e24-41c8-b71b-0e701af7583d, A1234 - as1558f2-1e24-44c8-b71b-0e701af787f3d +fhir scopes | No | A list of the FHIR scopes required for any FHIR calls this CDS service makes. | patient/Patient.read, patient/Encounter.read, patient/Observations.read +allowed links | No | A list of all links allowed in the response. Any links not in this list will be removed. | https://www.google.com, https://www.cerner.com +smart apps | No | A list of launch urls for any SMART applications that may be linked to in CDS service responses. | https://www.myapp.com, https://www.otherapp.org + +For more information on CDS Service attributes see the Discovery Response section [here](https://cds-hooks.hl7.org/1.0/#response). + +## CDS Service Workflow ## +When the condition in the EHR is met, the CDS Hooks Server will make a GET request to the provided service url. The service should returns an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). + +### Service Authorization ### +When Cerner's CDS Hooks server calls a service, authorization will be accomplished with a JWT token. + +1. The JWT issuer `iss` will be ```https://cds-hooks.cerner.com```. Make sure this is whitelisted as a trusted CDS Client. +2. The JWT signature should be verified by calling the Cerner Authorization well-known endpoint: ```https://authorization.cerner.com/jwk``` to get the list of JKUs and confirm the token JKU is present + + +For more information on CDS Authorization best practices, see [this page](https://cds-hooks.org/best-practices/#jwt). + +### Example Response from a CDS Service ### + + { + "cards": [ + { + "summary": "A summary of the card.", + "detail": "Additional card detail.", + "indicator": "info", + "source": { + "label": "Company", + "url": "https://company.com", + "icon": "https://company.com/company-logo.png" + }, + "links": [ + { + "label": "Webpage", + "url": "https://webpage.com", + "type": "absolute" + } + ] + }, + { + "summary": "A summary of the card.", + "detail": "Additional card detail. See https://webpage.com.", + "indicator": "critical", + "source": { + "label": "External" + }, + "links": [ + { + "label": "Webpage In Detail", + "url": "https://webpage.com", + "type": "absolute" + }, + { + "label": "Smart App", + "url": "https://smart.cerner.com/smart/eb2384f8-839e-4c6e-8b29-18e71db1a034/apps/a77a3d9a-28fe-48te-a96a-2ff09bed599a", + "type": "smart" + }, + ] + } + ] + } + +### SMART Apps ### +Some CDS services return SMART app link cards. For information on registering a SMART app, see [this page](./smart). + +_Note: Each client decides whether they want a SMART app to run on a domain-by-domain basis. An app link card will only work correctly in a domain in which the corresponding SMART app is enabled._ + +## Additional Resources ## + +- [CDS Hooks Specification](https://cds-hooks.org/) +- [Cerner Millennium FHIR API Documentation](http://fhir.cerner.com/millennium/r4/) +- [Cerner Authorization Documentation](http://fhir.cerner.com/authorization/) +- [Cerner FHIR Developers Google Group](https://groups.google.com/forum/#!forum/cerner-fhir-developers) diff --git a/layouts/cds_hooks.html b/layouts/cds_hooks.html new file mode 100644 index 000000000..4c71dccca --- /dev/null +++ b/layouts/cds_hooks.html @@ -0,0 +1,14 @@ +<%= render '/head.*' %> + + +<%= render '/header.*' %> + +
+
+ <%= yield %> +
+
+ +<%= render '/footer.*' %> + + diff --git a/layouts/header.html b/layouts/header.html index e1495e405..bb87ec006 100644 --- a/layouts/header.html +++ b/layouts/header.html @@ -19,6 +19,7 @@
  • Soarian
  • Authorization
  • SMART
  • +
  • CDS Hooks
  • From 7d704a6891535e9eb6a8cb025a714dde197e217e Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Thu, 22 Jul 2021 13:42:54 -0500 Subject: [PATCH 2/9] Add beta tag --- content/cds_hooks.md | 7 +++--- lib/resources.rb | 7 +++--- spec/lib/resources_spec.rb | 44 +++++++++++++++++++++++++++++++++----- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/content/cds_hooks.md b/content/cds_hooks.md index 8bc25abee..f989ce5e7 100644 --- a/content/cds_hooks.md +++ b/content/cds_hooks.md @@ -3,8 +3,9 @@ title: CDS Hooks layout: cds_hooks --- -# CDS Hooksbeta # +# CDS Hooks # ------------------------------------------------------------------------ +<%= beta_tag(resource: false) %> * TOC {:toc} @@ -24,7 +25,7 @@ Currently, Cerner supports the following CDS Hooks: - [Patient View](https://cds-hooks.org/hooks/patient-view/) ## CDS Service Registration ## -In order to submit a service to be registered, the following information is required: +In order to submit a service to be registered, the following information should be provided: Name | Required | Description | Example -------------|--------------|-------------|-------- @@ -48,7 +49,7 @@ When the condition in the EHR is met, the CDS Hooks Server will make a GET reque When Cerner's CDS Hooks server calls a service, authorization will be accomplished with a JWT token. 1. The JWT issuer `iss` will be ```https://cds-hooks.cerner.com```. Make sure this is whitelisted as a trusted CDS Client. -2. The JWT signature should be verified by calling the Cerner Authorization well-known endpoint: ```https://authorization.cerner.com/jwk``` to get the list of JKUs and confirm the token JKU is present +2. The JWT signature should be verified by calling the Cerner Authorization well-known endpoint: ```https://authorization.cerner.com/jwk``` to get the list of JKUs and confirm the token JKU is present. For more information on CDS Authorization best practices, see [this page](https://cds-hooks.org/best-practices/#jwt). diff --git a/lib/resources.rb b/lib/resources.rb index 9ce7bd027..8a6361f38 100644 --- a/lib/resources.rb +++ b/lib/resources.rb @@ -145,12 +145,13 @@ def disclaimer # Public: Helper method to create a tag to denote if a resource/action is still under development. # - # @param action [boolean] flag to denote if a resource action is under development. Defaults to false. + # @param action [boolean] flag to denote if a resource action or feature is under development. Defaults to false. # @param known_issues [Array] an array of known issues for the resource/action. # # @return [String] an HTML div for beta tag. - def beta_tag(action: false, known_issues: nil) - beta = "

    This Resource#{' Action' if action} is still under development.

    " + def beta_tag(resource: true, action: false, known_issues: nil) + beta = "

    This#{resource ? ' Resource' : ' feature'}" + beta += "#{' Action' if action} is still under development.

    " if known_issues beta += '

    Known Issues:

      ' diff --git a/spec/lib/resources_spec.rb b/spec/lib/resources_spec.rb index 04e961953..73b0fbae9 100644 --- a/spec/lib/resources_spec.rb +++ b/spec/lib/resources_spec.rb @@ -661,7 +661,9 @@ end context 'when parameters are passed in' do - subject(:beta_tag_parameters) { Cerner::Resources::Helpers.beta_tag(action: action, known_issues: issues) } + subject(:beta_tag_parameters) do + Cerner::Resources::Helpers.beta_tag(resource: resource, action: action, known_issues: issues) + end let(:issues) { %w[hi hello] } let(:beta_tag_div) do '
      This Resource is still under development.

      Known Issues:

      • hi
      • '\ @@ -677,8 +679,23 @@ '

        This Resource is still under development.

        ' end - it 'returns the beta_tag div for a Resource' do - expect(beta_tag_parameters).to eq(beta_tag_div) + context 'when resource is false' do + let(:resource) { false } + let(:beta_tag_div) do + '

        This feature is still under development.

        ' + end + + it 'returns the beta_tag div for a feature' do + expect(beta_tag_parameters).to eq(beta_tag_div) + end + end + + context 'when resource is true' do + let(:resource) { true } + + it 'returns the beta_tag div for a Resource' do + expect(beta_tag_parameters).to eq(beta_tag_div) + end end end @@ -688,14 +705,31 @@ '
      • hi
      • hello
    ' end - it 'returns the beta_tag div for a Resource with known issues' do - expect(beta_tag_parameters).to eq(beta_tag_div) + context 'when resource is false' do + let(:resource) { false } + let(:beta_tag_div) do + '

    This feature is still under development.

    Known Issues:

      '\ + '
    • hi
    • hello
    ' + end + + it 'returns the beta_tag div for a feature with known issues' do + expect(beta_tag_parameters).to eq(beta_tag_div) + end + end + + context 'when resource is true' do + let(:resource) { true } + + it 'returns the beta_tag div for a Resource with known issues' do + expect(beta_tag_parameters).to eq(beta_tag_div) + end end end end context 'when action is true' do let(:action) { true } + let(:resource) { true } context 'when known issues are not present' do let(:issues) { nil } From 7e761e823f0665853c81e94b8fbfb97bf150452f Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Mon, 26 Jul 2021 09:14:53 -0500 Subject: [PATCH 3/9] fix 'an order' typo --- content/cds_hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/cds_hooks.md b/content/cds_hooks.md index f989ce5e7..91436815c 100644 --- a/content/cds_hooks.md +++ b/content/cds_hooks.md @@ -12,7 +12,7 @@ layout: cds_hooks ## General ## ### Introduction ### -The CDS Hooks (Clinical Decision Support Hooks) workflow defines a specification for external CDS Service developers to send notification cards to an electronic health record (EHR). These cards are triggered based on conditions such as the opening of a patient chart of a specified demographic(age, gender, etc.) or when a order is selected. These cards can contain information, a suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). +The CDS Hooks (Clinical Decision Support Hooks) workflow defines a specification for external CDS Service developers to send notification cards to an electronic health record (EHR). These cards are triggered based on conditions such as the opening of a patient chart of a specified demographic(age, gender, etc.) or when an order is selected. These cards can contain information, a suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). ### Authorization Model ### 1. Cerner must validate and register every CDS service. From f6d822ea6e714ca5ba3db1d5e97b464eec9b9c68 Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Mon, 26 Jul 2021 15:05:33 -0500 Subject: [PATCH 4/9] Expand documentation around workflow --- content/cds_hooks.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/content/cds_hooks.md b/content/cds_hooks.md index 91436815c..6626310ce 100644 --- a/content/cds_hooks.md +++ b/content/cds_hooks.md @@ -14,6 +14,8 @@ layout: cds_hooks ### Introduction ### The CDS Hooks (Clinical Decision Support Hooks) workflow defines a specification for external CDS Service developers to send notification cards to an electronic health record (EHR). These cards are triggered based on conditions such as the opening of a patient chart of a specified demographic(age, gender, etc.) or when an order is selected. These cards can contain information, a suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). +As a CDS Service Developer, you will work with clients or on your own to create a service that will be called by the CDS Hooks Server when a condition you specify is met. To develop a service, you should first gather the information needed for clients to register your service (See [CDS Service Registration](./cds_hooks/#cds-service-registration)). Then, build your service API so that is uses correct authorization (See [Service Authorization](./cds_hooks/#service-registration)) and returns a properly formatted response (See [Service Response](./cds_hooks/#service-response)). Finally, your service should be available for the CDS Hooks Server to call on a client by client basis. + ### Authorization Model ### 1. Cerner must validate and register every CDS service. 2. Each client decides whether they want to allow a CDS Service on a domain-by-domain basis. @@ -25,25 +27,26 @@ Currently, Cerner supports the following CDS Hooks: - [Patient View](https://cds-hooks.org/hooks/patient-view/) ## CDS Service Registration ## -In order to submit a service to be registered, the following information should be provided: +In order for a service to be registered for a client, the following information must be provided first. Name | Required | Description | Example -------------|--------------|-------------|-------- -hook | Yes | The hook this service should be invoked on. See [Supported Hooks](#supported-hooks). | patient-view -title | Yes | The human-friendly name of this service. | Severe Condition Alerter -fhir server | Yes | The FHIR server that the service queries. | https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d -service url | Yes | The url for the service that the CDS server will call to get the service card response. | https://company.myservice.com -description | No | Further information about the service. | Sends alerts for patients above age 65 who may have a severe condition. -owner email | No | Required when scopes are provided. The email address of the owner of the service. | john.smith@company.com -tenants | No | A list of tenants where the service is enabled. | C1941 - ec2458f2-1e24-41c8-b71b-0e701af7583d, A1234 - as1558f2-1e24-44c8-b71b-0e701af787f3d -fhir scopes | No | A list of the FHIR scopes required for any FHIR calls this CDS service makes. | patient/Patient.read, patient/Encounter.read, patient/Observations.read -allowed links | No | A list of all links allowed in the response. Any links not in this list will be removed. | https://www.google.com, https://www.cerner.com -smart apps | No | A list of launch urls for any SMART applications that may be linked to in CDS service responses. | https://www.myapp.com, https://www.otherapp.org +hook | Yes | The hook this service should be invoked on. See [Supported Hooks](#supported-hooks). | patient-view +title | Yes | The human-friendly name of this service. | Severe Condition Alerter +trigger condition | Yes | The condition(s) under which the service is called | Female patient with age > 65 years +service url | Yes | The url for the service that the CDS server will call to get the service card response. | https://company.myservice.com/call +fhir server | Yes | The FHIR server that the service queries. | https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d +description | No | Further information about the service. | Sends alerts for patients above age 65 who may have a severe condition. +owner email | No | Required when scopes are provided. The email address of the owner of the service. | john.smith@company.com +tenants | No | A list of tenants where the service is enabled. | C1941 - ec2458f2-1e24-41c8-b71b-0e701af7583d, A1234 - as1558f2-1e24-44c8-b71b-0e701af787f3d +fhir scopes | No | A list of the FHIR scopes required for any FHIR calls this CDS service makes. | patient/Patient.read, patient/Encounter.read, patient/Observations.read +allowed links | No | A list of all links allowed in the response. Any links not in this list will be removed. | https://www.google.com, https://www.cerner.com +smart apps | No | A list of launch urls for any SMART applications that may be linked to in CDS service responses. | https://www.myapp.com, https://www.otherapp.org For more information on CDS Service attributes see the Discovery Response section [here](https://cds-hooks.hl7.org/1.0/#response). ## CDS Service Workflow ## -When the condition in the EHR is met, the CDS Hooks Server will make a GET request to the provided service url. The service should returns an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). +Once a CDS service is registered, it will be called whenever the trigger condition is met in the EHR (e.g. a chart is opened for a patient of the specified demographic). The trigger condition will notify the CDS Hooks Server, which will call the CDS Service using a JWT token and the service url (provided during Registration). The CDS Service response cards will then be displayed in the EHR as either critical notification pop-ups or non-critical notification cards in a sidebar, depending on the card indicator value. ### Service Authorization ### When Cerner's CDS Hooks server calls a service, authorization will be accomplished with a JWT token. @@ -54,7 +57,10 @@ When Cerner's CDS Hooks server calls a service, authorization will be accomplish For more information on CDS Authorization best practices, see [this page](https://cds-hooks.org/best-practices/#jwt). -### Example Response from a CDS Service ### +### Service Response ### +When the specified condition(s) in the EHR are met, the CDS Hooks Server will make a GET request to the provided service url. The CDS service should return an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). + +#### Example Response from a CDS Service #### { "cards": [ From 7b906a53c0f2e3ca95e8a3a9e2ef50bcffa8e2b1 Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Tue, 27 Jul 2021 11:01:35 -0500 Subject: [PATCH 5/9] Remove class and expand registration section --- content/cds_hooks.md | 2 +- layouts/header.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/cds_hooks.md b/content/cds_hooks.md index 6626310ce..26600153d 100644 --- a/content/cds_hooks.md +++ b/content/cds_hooks.md @@ -27,7 +27,7 @@ Currently, Cerner supports the following CDS Hooks: - [Patient View](https://cds-hooks.org/hooks/patient-view/) ## CDS Service Registration ## -In order for a service to be registered for a client, the following information must be provided first. +In order for a service to be registered for a client, the following information must be provided first. Please reach out to the [google group](https://groups.google.com/g/cerner-fhir-developers) for configuring your service for testing. Name | Required | Description | Example -------------|--------------|-------------|-------- diff --git a/layouts/header.html b/layouts/header.html index bb87ec006..cc0ada86d 100644 --- a/layouts/header.html +++ b/layouts/header.html @@ -19,7 +19,7 @@
  • Soarian
  • Authorization
  • SMART
  • -
  • CDS Hooks
  • +
  • CDS Hooks
  • From 49c923c0eb234cfe2f888a5795afc63819dc193e Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Mon, 2 Aug 2021 08:55:04 -0500 Subject: [PATCH 6/9] Update intro and HTTP action --- content/cds_hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/cds_hooks.md b/content/cds_hooks.md index 26600153d..7c4191184 100644 --- a/content/cds_hooks.md +++ b/content/cds_hooks.md @@ -12,7 +12,7 @@ layout: cds_hooks ## General ## ### Introduction ### -The CDS Hooks (Clinical Decision Support Hooks) workflow defines a specification for external CDS Service developers to send notification cards to an electronic health record (EHR). These cards are triggered based on conditions such as the opening of a patient chart of a specified demographic(age, gender, etc.) or when an order is selected. These cards can contain information, a suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). +The CDS Hooks (Clinical Decision Support Hooks) workflow provides external CDS Service developers the ability to send CDS cards to an electronic health record (EHR). The external CDS service will be triggered based on conditions such as opening a patient chart for the specified demographic(age, gender, etc.) or when an order is selected and the cards returned from the service will be presented to the user in the EHR. The cards can contain textual guidance, an actionable suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). As a CDS Service Developer, you will work with clients or on your own to create a service that will be called by the CDS Hooks Server when a condition you specify is met. To develop a service, you should first gather the information needed for clients to register your service (See [CDS Service Registration](./cds_hooks/#cds-service-registration)). Then, build your service API so that is uses correct authorization (See [Service Authorization](./cds_hooks/#service-registration)) and returns a properly formatted response (See [Service Response](./cds_hooks/#service-response)). Finally, your service should be available for the CDS Hooks Server to call on a client by client basis. @@ -58,7 +58,7 @@ When Cerner's CDS Hooks server calls a service, authorization will be accomplish For more information on CDS Authorization best practices, see [this page](https://cds-hooks.org/best-practices/#jwt). ### Service Response ### -When the specified condition(s) in the EHR are met, the CDS Hooks Server will make a GET request to the provided service url. The CDS service should return an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). +When the specified condition(s) in the EHR are met, the CDS Hooks Server will make a POST request to the provided service url. The CDS service should return an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). #### Example Response from a CDS Service #### From cad04b6feb5cf44d4cd3788114785918a902e83a Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Mon, 2 Aug 2021 12:08:52 -0500 Subject: [PATCH 7/9] Updated intro part 2 and hook version --- content/cds_hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/cds_hooks.md b/content/cds_hooks.md index 7c4191184..6a46463c4 100644 --- a/content/cds_hooks.md +++ b/content/cds_hooks.md @@ -14,7 +14,7 @@ layout: cds_hooks ### Introduction ### The CDS Hooks (Clinical Decision Support Hooks) workflow provides external CDS Service developers the ability to send CDS cards to an electronic health record (EHR). The external CDS service will be triggered based on conditions such as opening a patient chart for the specified demographic(age, gender, etc.) or when an order is selected and the cards returned from the service will be presented to the user in the EHR. The cards can contain textual guidance, an actionable suggestion for the user, or a link to launch a SMART app (See [SMART](./smart) for more information). -As a CDS Service Developer, you will work with clients or on your own to create a service that will be called by the CDS Hooks Server when a condition you specify is met. To develop a service, you should first gather the information needed for clients to register your service (See [CDS Service Registration](./cds_hooks/#cds-service-registration)). Then, build your service API so that is uses correct authorization (See [Service Authorization](./cds_hooks/#service-registration)) and returns a properly formatted response (See [Service Response](./cds_hooks/#service-response)). Finally, your service should be available for the CDS Hooks Server to call on a client by client basis. +As a CDS Service Developer, you will work with clients or on your own to create a service based on the [CDS Hooks Specification](https://cds-hooks.hl7.org/) that will be called by the CDS Hooks Server when a condition you specify is met. Your service API should be built so that it uses correct authorization (See [Service Authorization](./cds_hooks/#service-authorization)) and returns a properly formatted response (See [Service Response](./cds_hooks/#service-response)). Once you are ready to integrate your service with the EHR system you will need to request for your service to be registered (See [CDS Service Registration](./cds_hooks/#cds-service-registration)). Finally, your service should be available for the CDS Hooks Server to call on a client by client basis. ### Authorization Model ### 1. Cerner must validate and register every CDS service. @@ -24,7 +24,7 @@ As a CDS Service Developer, you will work with clients or on your own to create ### Supported Hooks ### Currently, Cerner supports the following CDS Hooks: -- [Patient View](https://cds-hooks.org/hooks/patient-view/) +- [Patient View 1.0](https://cds-hooks.org/hooks/patient-view/) ## CDS Service Registration ## In order for a service to be registered for a client, the following information must be provided first. Please reach out to the [google group](https://groups.google.com/g/cerner-fhir-developers) for configuring your service for testing. From 9077e56cf5bd8d1cbd5131b3351db1adbd6e665d Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Mon, 13 Sep 2021 16:32:22 -0500 Subject: [PATCH 8/9] Move CDS Hooks under Millennium --- content/{ => millennium}/cds_hooks.md | 0 layouts/api.html | 1 + layouts/cds_hooks.html | 27 ++++++++++++++++++++------- layouts/faq.html | 1 + layouts/header.html | 1 - layouts/millennium/overview.html | 1 + 6 files changed, 23 insertions(+), 8 deletions(-) rename content/{ => millennium}/cds_hooks.md (100%) diff --git a/content/cds_hooks.md b/content/millennium/cds_hooks.md similarity index 100% rename from content/cds_hooks.md rename to content/millennium/cds_hooks.md diff --git a/layouts/api.html b/layouts/api.html index 37c90e8ba..18e2b1e84 100644 --- a/layouts/api.html +++ b/layouts/api.html @@ -10,6 +10,7 @@

    Millennium

  • Overview
  • DSTU 2 Final (1.0.2)
  • R4 First Normative Content (4.0.0)
  • +
  • CDS Hooks
  • FAQ
  • Support
  • diff --git a/layouts/cds_hooks.html b/layouts/cds_hooks.html index 4c71dccca..77e4d29b1 100644 --- a/layouts/cds_hooks.html +++ b/layouts/cds_hooks.html @@ -1,14 +1,27 @@ <%= render '/head.*' %> - -<%= render '/header.*' %> + + <%= render '/header.*' %> -
    -
    - <%= yield %> + -
    -<%= render '/footer.*' %> +
    +
    + <%= yield %> +
    + +
    + + <%= render '/footer.*' %> diff --git a/layouts/faq.html b/layouts/faq.html index 96c3458ad..c8f78d27e 100644 --- a/layouts/faq.html +++ b/layouts/faq.html @@ -9,6 +9,7 @@

    Millennium

  • Overview
  • DSTU 2 Final (1.0.2)
  • R4 First Normative Content (4.0.0)
  • +
  • CDS Hooks
  • FAQ
  • Support
  • diff --git a/layouts/header.html b/layouts/header.html index cc0ada86d..e1495e405 100644 --- a/layouts/header.html +++ b/layouts/header.html @@ -19,7 +19,6 @@
  • Soarian
  • Authorization
  • SMART
  • -
  • CDS Hooks
  • diff --git a/layouts/millennium/overview.html b/layouts/millennium/overview.html index 41a22391f..9cbf8d9d2 100644 --- a/layouts/millennium/overview.html +++ b/layouts/millennium/overview.html @@ -9,6 +9,7 @@

    Millennium

  • Overview
  • DSTU 2 Final (1.0.2)
  • R4 First Normative Content (4.0.0)
  • +
  • CDS Hooks
  • FAQ
  • Support
  • From 55ab6c82a92ffa900c503a1df5f0de7669a96d7a Mon Sep 17 00:00:00 2001 From: "Warren, Sarah E" Date: Tue, 14 Sep 2021 14:18:21 -0500 Subject: [PATCH 9/9] Add more text --- content/millennium/cds_hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/millennium/cds_hooks.md b/content/millennium/cds_hooks.md index 6a46463c4..67474df93 100644 --- a/content/millennium/cds_hooks.md +++ b/content/millennium/cds_hooks.md @@ -58,7 +58,7 @@ When Cerner's CDS Hooks server calls a service, authorization will be accomplish For more information on CDS Authorization best practices, see [this page](https://cds-hooks.org/best-practices/#jwt). ### Service Response ### -When the specified condition(s) in the EHR are met, the CDS Hooks Server will make a POST request to the provided service url. The CDS service should return an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). +When the specified condition(s) in the EHR are met, the CDS Hooks Server will make a POST request to the provided service url. The CDS service should return an array of cards formatted according to the [CDS Service HTTP Response specification](https://cds-hooks.hl7.org/1.0/#http-response). Sizing should be taken into account: the cards will be displayed in a pop-out notification panel that spans around 1/8 of the screen width, and any text overflow will be wrapped. #### Example Response from a CDS Service #### @@ -105,7 +105,7 @@ When the specified condition(s) in the EHR are met, the CDS Hooks Server will ma } ### SMART Apps ### -Some CDS services return SMART app link cards. For information on registering a SMART app, see [this page](./smart). +CDS services can return SMART app link cards. However, the `appContext` field is not currently supported. For information on registering a SMART app, see [this page](./smart). _Note: Each client decides whether they want a SMART app to run on a domain-by-domain basis. An app link card will only work correctly in a domain in which the corresponding SMART app is enabled._