What is Beacon
Healthjump Beacon was designed to allow Healthjump customers while using their EMR the ability to create and deliver pertinent patient information in real time to the provider. From clinical alerts, billing statuses, and anything in between. Healthjump provides an information delivery structure that allows digital health vendors and others within the care continuum to self curate alerts that are to be presented to a provider at the time of visit.
Batch & Send
Once an organization has decided what alerts they want to display for each patient, the JSON objects can be batched and sent to customers S3 environment, where beacon will import and stage for alerting when the patient is presented.
Actions
Providers will have the ability to archive (request to stop presenting alert) or snooze (request to stop presenting alert until next visit). This information is made available in the source JSON Metadata object for each alert card.
JSON Configuration
Patient
This object is responsible for populating the patient header at the time the patient is being seen.
{ "clientid":"ABC123", "patientID":570, "patientName":"Colon, Rafael", "DOB":"04-02-1941", "Notification": "HIGH RISK", "beaconContent": [..Cards..]
}
- clientid : The Healthjump Practice client ID
- patientID : The EMR patient ID or MRN
- patientName : last name, firstname
- DOB : Patient DOB
- Notification : "HIGH RISK" / Null
Beacon Content
Cards
Cards are the primary communication method of delivering important information to a provider about a patient the very moment the patient is being seen. There 3 primary card types:
- Text : Basic single alert
- Table : Alert with a embedded table
- List : Alert with an embedded formatted List
Each card type can stand alone or be part of a deck. The each card type is defined as follows:
- Type : Type can be "card" or "deck"
- Reviewed": checkbox indicating whether the card was reviewed ("Should be false by default")
- Archived": Whether or not to display the card or archive it for later. ("False")
- View : show/hide to toggle if card should be displayed
- Features : Features is where we'll define card name, card color, content, etc.
- CardType :
- CardName: Main text displayed. ("History of Falls")
- CardColor : Color of card sidebar. ("Green")
- CardContent : Will be different for each card type (alert, history, etc.)
Content Type: Text
{ "type": "card", "reviewed": "False", "archived": "False", "view": "show", "features": { "cardType": "alert", "cardName": "History of Falls", "cardColor": "Green", "cardContent": { "contentType": "text", "content": "This patient has a high fall risk!" } } }
Card Content
- contentType : list (list cards will require an array of content, each object representing another item in the list)
- content : Default
- assemble card using a default format
- itemName
- itemDetail
- displayOrder : Specify order to display each item in
- assemble card using raw data
- rawData : See sample above
- itemName
- itemDetail
- displayOrder : Specify order to display each item in.
- assemble card using a default format
Content Type: Table
{ "reviewed": "False", "archived": "False", "view": "show", "features": { "cardType": "history", "cardName": "Last AWV", "cardColor": "Red", "cardContent": { "contentType": "table", "contentFormat": [ { "rowName": "Name", "rowOrder": 1 }, { "rowName": "Provider", "rowOrder": 2 }, { "rowName": "Date", "rowOrder": 3 } ], "content": [ { "Name": "Last AWV", "Provider": "N/A", "Date": "No Data Found" } ] } }
Card Content
- contentType : "table"
- contentFormat : Defines the table format
- rowName : specifying rowName will create a ROW with the key specified. specifying columnName will provide a column with a header using the specified key
- rowOrder : Sequence of row within in the table. (1,2,3)
- content : if using a table, each object represents a new column/row
Content Type: List
{ "reviewed": "False", "archived": "False", "view": "show", "features": { "cardType": "reminder", "cardName": "Chronic Obstructive Pulmonary Disease", "cardColor": "Orange", "cardContent": { "contentType": "list", "content": [ { "itemName": "J42 - Unspecified Chronic Bronchitis", "itemDetail": "Last Billed 09-28-2018 by William Funk, M.D.", "displayOrder": 1 }, { "rawData": { "icd10": "J44.9", "dxName": "Chronic Obstructive Pulmonary Disease", "billedDate": "07-10-2018", "billedBy": "Christiana Care Health Services, Inc" }, "itemName": "<icd10> - <dxName>", "itemDetail": "Last Billed <billedDate> by <billedBy>", "displayOrder": 2 } ] } } }
Decks - Optional
Decks allow the user to aggregate a set of alerts into a single card that can be expanded to show the related cards.
Deck JSON Structure
{ "type": "deck", "reviewed": "False", "archived": "False", "view": "expand",
"features": { "deckName": "Risk Suggestions", "deckColor": "Color", "deckPriority": "Medium" }, "deckContent": [...CARD (ALERT) OBJECTS...] }
Type : deck
Reviewed : Checkbox indicating whether the card was reviewed
Archived : Whether or not to display the card or archive it for later. (example : False)
View : expand, collapse
Features : Features is where we'll define card name, card color, content, etc.
Deckname : Primary deck name
DeckColor : Deck Color
Full Example
{
"clientid":"ABC123",
"patientID": 570,
"patientName": "Colon, Rafael",
"DOB": "04-02-1941",
"Notification": "HIGH RISK",
"beaconContent": [
{
"type": "card",
"reviewed": "False",
"archived": "False",
"view": "show",
"features": {
"cardType": "alert",
"cardName": "History of Falls",
"cardColor": "Green",
"cardContent": {
"contentType": "text",
"content": "This patient has a high fall risk!"
}
}
},
{
"type": "deck",
"reviewed": "False",
"archived": "False",
"view": "expand",
"features": {
"deckName": "Risk Suggestions",
"deckColor": "Color",
"deckPriority": "Medium"
},
"deckContent": [
{
"reviewed": "False",
"archived": "False",
"view": "show",
"features": {
"cardType": "reminder",
"cardName": "Chronic Obstructive Pulmonary Disease",
"cardColor": "Orange",
"cardContent": {
"contentType": "list",
"content": [
{
"itemName": "J42 - Unspecified Chronic Bronchitis",
"itemDetail": "Last Billed 09-28-2018 by William Funk, M.D.",
"displayOrder": 1
},
{
"rawData": {
"icd10": "J44.9",
"dxName": "Chronic Obstructive Pulmonary Disease",
"billedDate": "07-10-2018",
"billedBy": "Christiana Care Health Services, Inc"
},
"itemName": "<icd10> - <dxName>",
"itemDetail": "Last Billed <billedDate> by <billedBy>",
"displayOrder": 2
}
]
}
}
}
]
},
{
"type": "deck",
"reviewed": "False",
"archived": "False",
"view": "expand",
"features": {
"deckName": "Preventative Services",
"deckColor": "Color",
"deckPriority": "Medium"
},
"deckContent": [
{
"reviewed": "False",
"archived": "False",
"view": "show",
"features": {
"cardType": "history",
"cardName": "Last AWV",
"cardColor": "Red",
"cardContent": {
"contentType": "table",
"contentFormat": [
{
"rowName": "Name",
"rowOrder": 1
},
{
"rowName": "Provider",
"rowOrder": 2
},
{
"rowName": "Date",
"rowOrder": 3
}
],
"content": [
{
"Name": "Last AWV",
"Provider": "N/A",
"Date": "No Data Found"
}
]
}
}
}
]
}
]
}
Uploading
While there are a few ways to provide Healthjump with the JSON data described above, the simplest way is to upload the data as a json file to S3. The json file should be structured as:
{ "clientid":"ABC123",
"patientID": 123, "patientName": "Halpert, Jim", "DOB": "10-01-1978", "beaconContent": beaconContent [...] } , { "clientid":"ABC123",
"patientID": 321, "patientName": "Scott, Michael", "DOB": "03-15-1965", "Notification": "HIGH RISK", "beaconContent": beaconContent [...] } , { "clientid":"ABC123",
"patientID": 231, "patientName": "Beesly, Pamela", "DOB": "03-25-1979", "beaconContent": beaconContent [...] }
*NOTE: Every Healthjump customer is provided with a dedicated S3 bucket, access key and secret access key. If you do not know have this information please reach out to your CSM and they will be happy to assist.