This acts as a web-based CGM (Continuous Glucose Monitor) to allow multiple caregivers to remotely view a patient's glucose data in real time. The server reads a MongoDB which is intended to be data from a physical CGM, where it sends new SGV (sensor glucose values) as the data becomes available. The data is then displayed graphically and blood glucose values are predicted 0.5 hours ahead using an autoregressive second order model. Alarms are generated for high and low values, which can be cleared by any watcher of the data.
Community maintained fork of the original cgm-remote-monitor.
Clone this repo then install dependencies into the root of the project:
$ npm install
The data being uploaded from the server to the client is from a MongoDB server such as mongolab. In order to access the database, the appropriate credentials need to be filled into the JSON file in the root directory. SGV data from the database is assumed to have the following fields: date, sgv. Once all that is ready, just host your web app on your service of choice.
The easiest way to update your version of cgm-remote-monitor to our latest recommended version is to use the update my fork tool. It even gives out stars if you are up to date.
Try the what is my mongo string tool to get a good idea of your
mongo string. You can copy and paste the text in the gray box into your
MONGO_CONNECTION environment variable.
Use the autoconfigure tool to sync an uploader to your config.
VARIABLE (default) - description
MONGO_CONNECTION- Your mongo uri, for example:
ENABLE- Used to enable optional features, currently supports:
API_SECRET- A secret passphrase that must be at least 12 characters long, required to enable
PUT; also required for the Care Portal
260) - must be set using mg/dl units; the high BG outside the target range that is considered urgent
180) - must be set using mg/dl units; the top of the target range, also used to draw the line on the chart
80) - must be set using mg/dl units; the bottom of the target range, also used to draw the line on the chart
55) - must be set using mg/dl units; the low BG outside the target range that is considered urgent
BG_* ENV's are set, otherwise
predict) - currently 2 alarm types are supported, and can be used independently or combined. The
simplealarm type only compares the current BG to
BG_thresholds above, the
predictalarm type uses highly tuned formula that forecasts where the BG is going based on it's trend.
predictDOES NOT currently use any of the
PUSHOVER_API_TOKEN- Used to enable pushover notifications for Care Portal treatments, this token is specific to the application you create from in Pushover
PUSHOVER_USER_KEY- Your Pushover user key, can be found in the top left of the Pushover site
mg/dl) - Choices:
mmol. Setting to
mmolputs the entire server into
mmolmode by default, no further settings needed.
entries) - The collection used to store SGV, MBG, and CAL records from your CGM device
treatments) -The collection used to store treatments entered in the Care Portal, see the
ENABLEenv var above
devicestatus) - The collection used to store device status information such as uploader battery
1337) - The port that the node.js application will listen on.
SSL_KEY- Path to your ssl key file, so that ssl(https) can be enabled directly in node.js
SSL_CERT- Path to your ssl cert file, so that ssl(https) can be enabled directly in node.js
SSL_CA- Path to your ssl ca file, so that ssl(https) can be enabled directly in node.js
Easy to emulate on the commandline:
echo 'MONGO_CONNECTION="mongodb://sally:firstname.lastname@example.org:99999/nightscout"' >> my.env
From now on you can run using
$ env $(cat my.env) PORT=1337 node server.js
Your hosting provider probably has a way to set these through their GUI.
Optionally, use Vagrant with the
setup.sh to install OS and node packages to
a virtual machine.
host$ vagrant up host$ vagrant ssh vm$ setup.sh
The setup script will install OS packages then run
The Vagrant VM serves to your host machine only on 192.168.33.10, you can access the web interface on http://192.168.33.10:1337
cgm-remote-monitor - web app to broadcast cgm readings Copyright (C) 2015 The Nightscout Foundation, http://www.nightscoutfoundation.org. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.