CDS-Hooks specification describes a “hook”-based pattern for invoking decision support from within a clinician’s EHR workflow.


Image Credit: ijmaki & AgencjaAIAC at

Clinical Decision Support (CDS) provides tailored patient-specific information to the clinician that (supposedly) makes our job easier. For CDS to be effective, it has to blend into a clinical workflow. Ideally, CDSS (Clinical Decision Support Systems) should be embedded into an EMR and should magically pop up when it is needed or when it can provide life-saving information for the patient sitting in front of you!

CDS-Hooks is an open standard

Given the massive diversity of EMR systems, how can a platform integrate with all the EMRs out there? So there is scope for (yet another) standard. CDS-Hooks is an open standard proposed for seamlessly integrating CDS service providers with the various EMR vendors. To understand the CDS-Hooks specifications, one should be familiar with two related standards: SMART and FHIR (fire).

Fast Healthcare Interoperability Resources (FHIR) is a standards framework created by the HL7, shifting focus to ease of implementation. In simple terms, FHIR makes clinical ‘resources’ available through REST. If you are not familiar with REST, it is a specification that drives most of the web APIs these days. At the risk of oversimplification, if you want the patient demographic details, you just need to access https://youremr/Patient/{patientID}

SMART on FHIR is a specification for SMART apps to leverage FHIR to integrate apps into existing EMR systems. SMART apps use FHIR for communication, OAuth for security and HTML5 for UI integration. Again at the risk of oversimplification, SMART apps can securely fit in SMART containers within any supporting EMR. Here is an example for SMART container module for OpenMRS. (By the way, OpenMRS is an open source extensible EMR platform that I wholly and truly support and contribute to.)

CDS-Hooks on SMART on FHIR is a specification to allow SMART CDS apps to send a context-specific information card to supporting EMRs (without actually embedding itself). CDS-hook is still a half-baked standard. With the stage set, I will discuss CDS-hooks in detail. We will also setup a stub for an OpenMRS module to implement CDS-Hooks for the patient-view and a CDS service for my DermBASE. Stay tuned…

Liked this? Join and meet us on Pro{DENTS}

Bell Eapen
Follow Me