Protocol Cards
Protocol Card #
Protocol cards appear on the right-hand-side of a patient’s chart, and can be accessed by clicking on the Protocols filter button in the filter menu.
A Protocol card consists of three main parts:
- A title, which appears at the top in bold
- A narrative, which appears just below the title to add any additional clarifying information
- A list of recommendations, which each have a title and optionally a button that can either:
- open a new tab and navigate to another site
- insert a command into a note
Name | Type | Required | Description |
---|---|---|---|
patient_id | string | true | The id of the patient |
key | string | true | A unique identifier for the protocol card |
title | string | true | The title for the protocol card, which appears at the top in bold |
narrative | string | false | The narrative for the protocol card, which appears just below the title |
recommendations | list[Recommendation] | false | The recommendations to appear in the protocol card |
Recommendation | |||
---|---|---|---|
title | string | true | The description of the recommendation |
button | string | false | The text to appear on the button |
href | string | false | The url for the button to navigate to |
To include an command recommendation, we recommend you import the command from the commands module, instantiate the command with all the values you wish to populate, and then call .recommend(title: str = "", button: str | None)
on the command to generate the recommendation that you can append to the protocol card’s recommendations. </br> </br> For non-command recommendations, you can either use the Recommendation
class, or the .add_recommendation(title: str = "", button: str = "", href: str | None)
method on the protocol card.
Example:
from canvas_sdk.events import EventType
from canvas_sdk.protocols import BaseProtocol
from datetime import date
from canvas_sdk.effects.protocol_card import ProtocolCard, Recommendation
from canvas_sdk.commands import DiagnoseCommand
class Protocol(BaseProtocol):
RESPONDS_TO = EventType.Name(EventType.PATIENT_UPDATED)
def compute(self):
p = ProtocolCard(
patient_id=self.target,
key="testing-protocol-cards",
title="This is a ProtocolCard title",
narrative="this is the narrative",
recommendations=[Recommendation(title="this recommendation has no action, just words!")]
)
p.add_recommendation(
title="this is a recommendation", button="go here", href="https://canvasmedical.com/"
)
diagnose = DiagnoseCommand(
icd10_code="I10",
background="feeling bad for many years",
approximate_date_of_onset=date(2020, 1, 1),
today_assessment="still not great",
)
p.recommendations.append(diagnose.recommend(title="this inserts a diagnose command"))
return [p.apply()]