blood-sugar-management
כיצד ליצור לוח בקרה מותאם למעקב אחר נתונים ב-Time
Table of Contents
למה לבנות לוח דשינט פתוח?
ניהול סוג 1 סוכרת עם OpenAPS (מערכת Pancreas מלאכותית מערכת מערכת) ההתקנה מייצרת זרם קבוע של נתונים - ערכי גלוקוז בדם, אינסולין על הסיפון, רמות המאגר, מצב סוללה, ותחששות מערכתיות. Off-the-shelf לעתים קרובות חסר גמישות להציג את המידע הזה בדיוק כפי שאתה צריך אותו, במיוחד כאשר אתה רוצה לקשור מספר מדדים בתצוגת יחיד, לוח נתונים מותאם אישית, נותן אבטחה מלאה, לחץ דם, דרך תדירות, אתה ממשיך להשתמש בתדירות גבוהה, לחץ דם, לחץ דם, אתה ממשיך, לחץ דם, לחץ דם, לחץ דם, לחץ דם, לחץ על פני זמן, לחץ דם, לחץ דם, לחץ דם, לחץ דם, כולל, אתה ממשיך תהליך זה, אתה ממשיך, לחץ על פני מערכת, לחץ על פני מערכת, לחץ דם, לחץ דם, לחץ דם, לחץ דם קבוע, לחץ דם, באופן קבוע, לחץ דם, באופן קבוע, כדי להתאים את מערכת, כדי לשחזר את מערכת, לחץ דם, באופן קבוע, באופן קבוע, באופן קבוע, באופן קבוע, אתה יכול להיות קבוע, לחץ דם קבוע, כדי לשחזר את הממשק של זמן רב, לחץ דם, כדי לפתח את מערכת, כדי לשחזר את מערכת, כדי לפתח את מערכת, כדי לשחזר את מערכת, לחץ דם קבוע, כדי לשחזר את
כלים קיימים רבים כמו Nightscout מציעים בסיס של פונקציונליות, אבל הם עשויים לא לחשוף כל נקודת נתונים גולמית אכפת לך, או שהם מכריחים אותך לתוך עיצוב חזותי מסוים.ממד מותאם אישית מאפשר לך למחוץ אלמנטים מיותרים להתמקד במה שחשוב לך ביותר.לדוגמה, אתה יכול להדגיש חץ מגמה ומספרי IOB בפונטים גדולים עבור הצצה מהירה, תוך מתן גרפים מפורטים לניתוח עמוק יותר הוא מטרה טבעית זה הופך להיות חלק של ניהול יומיומי שלך.
מידע פתוחAPS
לפני כתיבת כל קוד, עליך לדעת היכן הנתונים של OpenAPS שלך חיים.המערכת פועלת על Raspberry Pi (או מחשב חד-board דומה) ביצוע אלגוריתם סגור שמתקשר עם צג גלוקוז מתמשך (CGM) ומשאבת אינסולין.
- (ב) ויקרא (ב) ויקרא:2 ויקרא: כ- 5 דקות מה-CGM (למשל, Dexcom, Medtronic).
- (ב) [15] ,9 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0 System StatusveFLT:1) - מצב לולאה (abled / Disabled), סוללה משאבה, נפח המאגר וגיל החיישן.
- (ב) ,0) ,לאמארט וטעויות (FLT:1) - מחוץ לטווח BG, סוללה נמוכה, תקלות תקשורת.
OpenAPS מאחסנת את הנתונים האלה באופן מקומי בקבצי JSON (למשל, FLT:0;0 (FLT:1) וגם חושפת אותם באמצעות ממשק API מובנה ברשת המקומית של ה-Cyrig.The API הוא השיטה המועדפת עבור לוחות נתונים בזמן אמת, כי הוא מאפשר גישה מאובטחת, מבוססת בקשה ללא נגיעה ישירה למערכת הקבצים:0S Openpoint ל-AP, במיוחד לרישום נתונים מרובים של משתמשים.
טעות נפוצה אחת היא להניח שהמידע תמיד יהיה זמין בזמן אמת.למעשה, משדר CGM עשוי לאבד באופן זמני חיבור, המשאבה עלולה לא להכיר פקודה, או את Raspberry Pi עשוי לברוח מהזיכרון.הלוח המחוונים שלך חייב לטפל בכל המקרים האלה בחסד.תמיד לאמת את הפעמים של הדגימות ולדחיית קריאה מסולפת.
טכנולוגיה Stack
לוח המחוונים שלך יהיה יישום אינטרנט פועל בשרת או פלטפורמת ענן.הערימה האופיינית כוללת:
- (FLT:0) BackendveFLT:1) - שרת קל משקל (Node.js, Python Flask, or Go) אשר דורשות נוקשות OpenAPS ו אופציונלית caches נתונים.
- (ב) (ב) ,0) ,(FrontendendveFLT:1) - יישום חד-עמודי שנבנה עם תגובה, Vue.js, או JavaScript.
- (FLT:0) ויזואליזציה של נתונים 1 (FLT:1) - ספרייה כגון Chart.js, D3.js, או ApexCharts עבור גרף מגמות BG ומשלוח אינסולין.
- (הופנה מהדף LT:0) עדכונים בזמן אמת (Real-Time-TimesFLT:1) הושגו באמצעות סקר תקופתי (שלב ראשון) או חיבורי WebSocket מתמשכים.
- (FLT:0) VitveFLT:1) - VPS, Raspberry Pi (local), או פלטפורמה ללא שרת (למשל, Vercel, Netlify) עם תמיכה WebSocket.
אם אתה מעדיף להימנע בבניית החזר מלא, אתה יכול לארח את המחוונים לחלוטין על השקיה עצמה באמצעות גנרטור אתר סטטי שמביא נתונים ישירות מ- API של ה- rig (CORS חייב להיות מופעל) בחר את הגישה כי הטוב ביותר להתאים את דרישות האבטחה של הרשת שלך ואת רמת הנוחות האישית. מפתחים רבים מתחילים עם סקרים ולאחר מכן לעבור ל- WebSockets עבור מהירויות מופחתות.
מגמה הולכת וגוברת היא לשלב את לוח המחוונים עם מסד נתונים של זמן כגון InfluxDB או TimescaleDB.זה נותן לך את היכולת לבלוט רחוק אחורה בזמן (שבועות או חודשים) תוך עדיין מציע עדכונים חיים.ה backend יכול לקבץ נקודות נתונים עדכניות לתוך מסד הנתונים לשרת שאילתות היסטוריות ממנו, צמצום העומס על ה- OpenAPS הקפדה זה חשוב במיוחד אם אתה רוצה ניתוח רטרוספקטיבי או קצה עם הנתונים שלך.
שלב 1: גישה ל-OpenAPS נתונים באמצעות API
ה-OpenAPS KEITS מקשיב לבקשות HTTP על פורט 8080 כברירת מחדל.כדי להביא נתונים גלוקוז, התקשרה:2 [התגובה מכילה מערך של קוראי BG האחרונים עם זמניים וכיוונים אופנתיים. בדומה, תאריך 3:3 מחזיר את הסטטוס של לולאה הנוכחית, IOB, רמת סוללות ועוד. Test נקודות אלה עם כלים כגון LTF:4 אומן כדי לאשר את זמני ה-S לעדכון בדרך כלל, בדרך כלל, משתמשים ב-זמנית של זמן קצר יותר.
אם השקייה שלך עומדת מאחורי חומת אש או שאתה צריך גישה מרחוק, לשקול באמצעות מנהרה בטוחה (למשל, ngrok) או VPN.לעולם אל תחשוף את ה- API של OpenAPS ישירות לאינטרנט הציבורי ללא אימות. עבור הפקות, ליישם שרת Proxy אשר מוסיף מפתח API, תוקף בקשות, ו-Trottles תנועה למניעת שימוש לרעה.You יכול גם להשתמש שרת VPN על גבי Raspberry עצמו, ומאפשר חיבורים מוצפנים רק כדי לתקן את הנוחות.
שיקול נוסף הוא השיעור שבו אתה סקר את ה- API.השקה הפתוחה יכולה להתמודד עם כמה בקשות לשנייה, אבל פטיש קבוע עשוי להפריע לאלגוריתם הלולאה. מרווחת סקר בטוחה היא כל 5 עד 10 שניות.אם אתה צריך עדכונים מהירים יותר, השתמש ב-WebSockets במקום, אשר דוחף נתונים רק כאשר עדכונים קשיחים רבים ניתן להגדיר כדי פולטים הודעת גלוקוז חדשה בכל פעם, הוא נותן נתונים על ידי איסוף נתונים על ידי חומרים.
שלב 2: עיצוב לוח הדשינט
התחל עם מסגרת חוט שמציבה את המדד הקריטי ביותר - גלוקוז בדם הנוכחי - בחלק העליון או במרכז. הפריסות לוחיות נפוצות עבור ניטור סוכרת כוללים:
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) ,2 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [15] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
השתמש במסגרות CSS רצופות כמו Bootstrap או Tailwind CSS כדי להבטיח את לוח המחוונים עובד על מסכים ניידים - משתמשים מאני רוצה להסתכל על זה מהטלפון שלהם.חשב באמצעות ספרייה ספציפית לוחמת כגון FLT:0GridStack.jsphFLT:1 כדי לאפשר הפריסה של גרגור-and-drop מותאם אישית, המאפשר לך לסדר מחדש עדיפויות כמו שינוי.
נגישות היא קריטית. השתמש בתכניות צבע גבוהות עדיין ניתנות להבחין עבור משתמשים עיוורי צבעים (ללא להסתמך על אדום / ירוק לבד) הוסף תוויות טקסט ליד אינדיקטורים צבע.חשב באמצעות מצב אפל לצפייה בשעות הלילה.מקם את המידע החשוב ביותר שבו הוא תופס את העין הראשון - בדרך כלל את הבלט העליון עבור שפות ימין לשמאל.
שלב 3: בניית קו ה-Backend proxy (Optional but המומלצת)
Proxy אחורי מוסיף שכבת אבטחה וגרד.לדוגמה, שרת Node.js Express יכול:
- נתוני Fetch OpenAPS כל 5 שניות (או מהר כמו עדכוני השקיה).
- לאחסן את המדינה האחרונה בזיכרון כדי להפחית את העומס על השקיה ולספק תשובות מיידיות לחזית.
- (ב) ,5 ,5 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- הוסף כותרות וקצב הגבלת.
הנה צומת מינימלי של Node.js snippet באמצעות ההרחבה 7:
const express = require('express');
const fetch = require('node-fetch');
const app = express();
let cache = {};
setInterval(async () => {
const res = await fetch('http://openaps-rig:8080/api/v1/status.json');
cache.status = await res.json();
}, 5000);
app.get('/api/status', (req, res) => res.json(cache.status));
app.listen(3000);
גישה זו גם מאפשרת לך לאסוף נתונים ממגוון רחב של חומרים אם יש לך מערכת לחסוך או לפקח על הלולאה של אדם אחר. עבור אבטחה נוספת, ליישם אימות מבוסס JWT על נקודות התור. אתה יכול גם לשלב כאב פשוט בתוך memory כי מאחסן את 24 השעות האחרונות של נתונים כך החזית יכול לבקש טווחים היסטוריים ללא פגיעה שוב ושוב.
בעת כתיבת הפרוקסי, שימו לב לטיפול בשגיאות.אם השקיה אינה ניתנת להשגה, ה- Proxy צריך להחזיר גרסה מצופה (או 503) במקום להתרסק. Log all שגיאות לקובץ או שירות ניטור. ייתכן גם רוצה לחשוף נקודת סיום בדיקת בריאות כי כלי ניטור אחרים (כמו UptimeRobot) יכולים לעיין ב- Proxy וב- rig הם חיים.
שלב 4: יישום מראש עם עדכון בזמן אמת
השתמש בספריית JavaScript המודרנית לניהול רכיבי המדינה ו-Render ביעילות.React.com הוא בחירה פופולרית בגלל שיטות מחזור החיים שלה ו- s. צור רכיב 9FLT המכנה את החזרת כל 5 שניות (FLT:10 עם FLT:11 עם קיבולת מחזור חיים ועדכונים על המדינה. for True-time Experience, החל מחיבור WebSock - הן ללא ספק תמיכה ב- Python, והן ב-Sock for the firstsive for a key to access for a briefives for a web-Tamsive for a Mediterranean Support for avitives, with a webSock for avitives, with a webSock for aTM, with a Moderntime to the Year and the Year and the Year for a WebSock for a WebSock for a Moderntime to the Year and the Year (בשיתוף פעולה עם תכונות נוספות, with a Moderntime Experiencesivesives) ו-Sock for a Moderntime Experiencesive for True-Sock for Truetime Experiences, with a WebSock for True-Sock for a WebSock for a WebSock for a WebSock for a Moderntime Experiences, with a WebSock for a
(ב) ,התקנה:0) [=(((התשובה: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
אל תשכחו להתמודד עם נתונים חסרים בחסד – להראות אזהרה "נתונים מבדימים" אם הקריאה האחרונה היא מעל 10 דקות.ליישם מחדש לוגיקה אם WebSocket טיפות, ותמיד להציג את הזמן של העדכון האחרון מוצלח. השתמש בספין טעינה במהלך הסימון הראשוני, ולהציג הודעת שגיאה ברורה אם ה backend הוא בלתי אפשרי.
שלב 5: חלוקת אפשרויות וקידום
יש לך מספר מטרות של פריסה מעשית:
- (FLT:0) , Raspberry PiveFLT:1 - להפעיל את השרת לוח המחוונים על אותו Pi כמו OpenAPS. זה הפשוט והפרטי ביותר. Access זה באמצעות IP מקומי כמו FLT:15 להיות מודע כי הפעלת גם OpenAPS וגם שרת לוח המחוונים על אותו Pi יכול למתוח את החומרה אם אתה מוסיף תכונות רבות מדי.
- (FLT:0Cloud VPS (DigitalOcean, AWS, Linode)FLT:1 - השתמש בטיפת אובונטו מינימלית, להתקין Node.js או Python, ולהפעיל את האפליקציה מאחורי Proxy הפוכה (Nginx) עם SSL.זה מאפשר לך להציג את לוח המחוונים מכל מקום, אך דורש קשיחות אבטחה (קיר, כשל 2ban, HTTPS).
- (FLT:0) פלטפורמות ללא שירות (Vercel, Netlify, Cloudflare Workers)OVAFLT:1 - טוב עבור חזית סטטית, אבל הם נאבקים עם חיבורים מתמשכים של WebSocket.You תצטרך להסתמך על סקרים וגיבוי נפרד עבור איסוף נתונים.You יכול גם להשתמש בעובדי Cloudflare עם אובייקטים ניתנים לטיפוח WebSocket, אבל זה מוסיף מורכבות.
לגישה מרחוק ללא IP ציבורי, שקול להשתמש בשכבה אימות (HTTP בסיסי או מבוסס אסימונים) כדי למנוע צפייה בלתי מורשית. לחלופין, להגדיר VPN מאובטח למקלט המקומי שלך.Pair זה עם שכבת אימות (HTTP בסיסית או מבוסס אסימונים) כדי למנוע צפייה בלתי מורשית. לחלופין, להגדיר VPN WireGuard המקומי לרשת הביתית שלך.
אם תבחר לארח בענן, להיות מודע לתקנות HIPAA או GDPR אם אתה מטפל בנתונים בריאותיים.לפחות, להצפין נתונים במעבר (TLS) ובמנוחה (במסד נתונים מוצפנים) שקול מדיניות שמירת נתונים: ייתכן שלא תצטרך לאחסן יותר מכמה שבועות של קריאה היסטורית בשרת ענן.
שיטות עבודה הטובות ביותר עבור ניטור נתונים סוכרת
לוח המחוונים שלך ישמש לקבלת החלטות קריטיות בחיים, כך שאמינות ודיוק הם חיוניים.
- (FLT:0) RedundancyFLT:1 - אם לוח המחוונים נכשל, המשתמש צריך עדיין לקבל התראות ממקבל CGM או משאבה.לעולם אל תסמכו רק על לוח המחוונים מותאם אישית עבור אזעקה.הלוחם צריך לשמש כלי משלים, לא מערכת התראה ראשונית.
- (FLT:0) אימות נתונים תקפים FLT:1 - לדחות קריאה עם ערכים בלתי אפשריים (למשל, BG < 20 מ"ג / dL או > 600 מ"ג / dL) מציג אזהרה אם הנתונים נראים מושחתים.
- (FLT:0) זמן טיפול ב-OpenAPS פעמיםTLT:1) - השתמש ב- UTC לאחסון ו להמיר את הזמן המקומי של המשתמש בחזית. OpenAPS פעמיםtamps הם בדרך כלל UTC.
- (FLT:0) AccessibilityFLT:1) - השתמש בצבעים גבוהים, גופנים גדולים, ואזהרות קול אופציונליות (באמצעות Web Audio API) עבור נמוך קריטי.
- (FLT:0)LogingFLT:1) - נתונים היסטוריים שיאים עבור סקירה מאוחרת יותר (למשל, CSV יצוא) מסד נתונים של זמן כמו InfluxDB יכול להיות מחובר לניתוח וניתוח טרנד ארוך טווח. להגדיר גיבויים יומיים אוטומטיים של מסד הנתונים.
בדוק את לוח המחוונים שלך בתנאים אמיתיים: מה קורה כאשר השקיה חוזרת? מה אם המשאבה יוצאת אינסולין? - לחדד את התרחישים האלה כדי להבטיח את החניכים להתאושש ללא התערבות ידנית.דרישות בדיקת בריאות הטמעה שניתן לעקוב אחריהם באופן חיצוני. להפעיל את המחוונים למשך שבוע לפני שאמון בו לשימוש קריטי.
תכונות מתקדמות לשקול
לאחר שיש לך לוח מחוונים בסיסי רץ, לשקול הוספת שיפורים אלה:
- (FLT:0) קווי המתאר של ההרחבה 1:1 - השתמש בתוקפנות ליניארית פשוטה על קריאת BG העבר כדי לתכנן את 30 הדקות הבאות.יותר משתמשים מתקדמים יכולים לשלב מודלים של למידת מכונה באמצעות מיקרו-שירות נפרד.
- (FLT:0) הודעות קוליות של ההרחבה 1:1) - משלבות את סינתזה דיבור של הדפדפן כדי לקרוא את ה- BG הנוכחית ו- IOB כל 10 דקות, אשר מסייע במהלך פעילות גופנית.
- (FLT:0) Remote controlFLT:1 - בזהירות קיצונית, אתה יכול להוסיף כפתורים כדי לעורר בזקים זמניים או אזהרות נחירות באמצעות ממשק API OpenAPS. זה דורש אימות קפדני ודיאלוג אישור כדי למנוע שינויים מקריים.
- (FLT:0) תמיכת משתמשי משתמשים ב-Multi-user SupportFLT:1 - מאפשר למטפלים להציג את לוח המחוונים מהמכשירים שלהם עם הרשאות שונות (למשל, לקריאה בלבד להורים, שליטה מלאה למשתמש הראשי).
כל אחד מהתכונות הללו מוסיף מורכבות וסיכון פוטנציאלי.תמיד לבדוק בסביבה בטוחה (למשל, שימוש בנתונים היסטוריים או בשקיקה הפועלת ב"מצב מוגן" אך בטוח) לפני שתלוי בהם לשימוש יומיומי. שקול באמצעות דגלים תכונה כדי לגלגל יכולות חדשות בהדרגה.
בעיות נפוצות
במהלך הפיתוח, אתה יכול להיתקל כמה בעיות נפוצות.כאן פתרונות:
- (FLT:0) נתונים שאינם מעדכנים את ההרחבה של רשת בודקת בין שרת המחוונים לבין הקפדה.בדוק כי ה- API OpenAPS מגיב על ידי ייבוש נקודת הקצה ישירות.לוודא שהראשים של קוריס נקבעים אם הם מבצעים בקשות צולבות.בדוק כללי חומת אש וכי נמל ה- 8080 של הקפדה הוא נגיש.
- (FLT:0) אזהרות נתונים מהנתונים של LT:1 - אם קריאה היא מבוגרת יותר מאשר לצפות, להגדיל את המרווח המסקר או להפחית את cache TTL. גם לאשר כי מכשיר CGM מועבר כראוי.
- (FLT:0WebSocket DissFLT:1) - יישום מחדש אוטומטי עם backoff אקספוננציאלי. לבדוק הגדרות Proxy או כללי חומת אש אשר עשויים להוריד חיבורים של idle. השתמש בפינגים ברמה של WebSocket כל 30 שניות.
- (FLT:0) צ'ארטס לא הופך את ה- 1FLT) - אימות מבנה הנתונים של JSON. השתמש בגליוני קונסולה כדי לבדוק את הנתונים לפני העברתו לספרייה המרשימה.להבטיח כי פעמים הדגימות הן בפורמט שהספרייה מצפה (למשל, מילימטרים עבור Chart.js).
הוסף כניסה ל-Backend וגם לחזית כדי ללכוד תנאי שגיאה.חשב הגדרת שירות ניטור כמו UptimeRobot עבור המחוונים עצמם. ליצור דף פשוט "בריאות" המעדיש את כל המיקומים הידועים (הקשים, עדכון נתונים אחרון, סטטוס WebSocket) כך שתוכל לאבחן במהירות בעיות.המשך סביבת פיתוח נפרדת מייצור לשינויים בבטיחות.
מסקנה
לוח המחוונים של OpenAPS הוא יותר מאשר פעילות טכנית - זה כלי שיכול לשפר את האמון שלך ואת איכות החיים על ידי הצבת נתונים הניתנים לפעולה בקצות שלך: להביא נקודת קצה ולהציג גרף אחד. ואז זה יכול לשפר את הביטחון שלך ואת איכות החיים על ידי הוספת יותר מדדים, התראות, וזיקוקציה חזותית. השילוב של נתונים פתוחים של OpenAPS וטכנולוגיות אינטרנט מודרניות נותן לך מחוונים ללא תקדים כדי ליצור משוב אמין, אבל אתה יכול פשוט לקבל את האפשרות של טיפול מיידי, אבל כדי לקבל את האפשרות של טיפול מיידי, אבל בטוח יותר, אבל אתה יכול להיות בטוח, אבל זה יכול להיות בטוח יותר, עם תכונות אבטחה קפדנית, אבל כדי להבטיח את האפשרות שלך.