Help
RSS
API
Feed
Maltego
Contact
Domain > brimhalltracker.harrybartos.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-12-28
172.67.219.217
(
ClassC
)
2026-01-10
104.21.35.117
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Sat, 10 Jan 2026 09:12:20 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}X-Served-By: brimhalltracker.harrybartos.comReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sm2jHNjuXcQkj6XtTpMf13E2PK7MIQgw68gSvJChY4tOxAvRcYIPnpM3NAbWNsZ%2BDNCaCLr6C6jGOlRbRrDANWrjn7uu0u6V%2FzRj1pouFp3TG%2F%2BIvy%2FqLwFBJLxXCd5A%3D}}cf-cache-status: DYNAMICvary: accept-encodingCF-RAY: 9bbb0d534c88cf48-PDXalt-svc: h3:443; ma86400 !doctype html>html langen>head> meta charsetutf-8> meta nameviewport contentwidthdevice-width, initial-scale1> title>MedTrack/title> link hrefhttps://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css relstylesheet> link href/static/app.css relstylesheet> link relicon hrefdata:,>/head>body>script>(function(){ try{ const saved localStorage.getItem(medtrack_theme); if(saved dark){ document.body.classList.add(dark); } }catch(e){}})();/script>nav classnavbar navbar-expand-lg bg-white border-bottom> div classcontainer> a classnavbar-brand fw-semibold href/>MedTrack/a> div classd-flex flex-wrap gap-2 ms-auto align-items-center> a classbtn btn-outline-secondary btn-sm href/meds>Medications/a> a classbtn btn-outline-secondary btn-sm href/export/vitals.csv>Export Vitals CSV/a> a classbtn btn-outline-secondary btn-sm href/export/meds.csv>Export Meds CSV/a> a classbtn btn-outline-secondary btn-sm href/export/reminders.ics>Export Reminders (.ics)/a> button iddarkToggle classbtn btn-sm btn-outline-secondary typebutton titleToggle dark mode> span classmono>🌓/span> span classd-none d-md-inline>Dark/span> /button> /div> /div>/nav>main classcontainer my-3> div classcontainer> div classmb-3> div classdisplay-6 fw-semibold>MedTrack Dashboard/div> /div> div classrow g-4> !-- MED CHECKLIST --> div classcol-lg-6> div classcard p-3> h5 classmb-2>Todays Med Checklist/h5> div classsmall muted mb-2> Each medication can have multiple times per day. Mark each time-slot separately. /div> div classcard p-2 mt-2> div classfw-semibold>Bupropion XL (Wellbutrin) 300mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 08:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52885> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52885 data-slot08:00 data-medBupropion XL (Wellbutrin) 300mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Carvedilol 12.5mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 08:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52886> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52886 data-slot08:00 data-medCarvedilol 12.5mg> Mark w/ Time /button> /div> /div> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 20:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52887> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52887 data-slot20:00 data-medCarvedilol 12.5mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Entresto (sacubitril/valsartan)/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 08:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52888> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52888 data-slot08:00 data-medEntresto (sacubitril/valsartan)> Mark w/ Time /button> /div> /div> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 20:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52889> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52889 data-slot20:00 data-medEntresto (sacubitril/valsartan)> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Ondansetron ODT (Zofran) 4mg — PRN/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: PRN/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52893> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52893 data-slotPRN data-medOndansetron ODT (Zofran) 4mg — PRN> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Pantoprazole (Protonix) 40mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 07:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52884> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52884 data-slot07:00 data-medPantoprazole (Protonix) 40mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Polyethylene glycol (Miralax)/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 21:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52892> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52892 data-slot21:00 data-medPolyethylene glycol (Miralax)> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Prochlorperazine (Compazine) 10mg — PRN/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: PRN/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52894> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52894 data-slotPRN data-medProchlorperazine (Compazine) 10mg — PRN> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Spironolactone 25mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 09:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52890> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52890 data-slot09:00 data-medSpironolactone 25mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Symtuza/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 09:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52891> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52891 data-slot09:00 data-medSymtuza> Mark w/ Time /button> /div> /div> /div> /div> div classsmall muted mt-3> Slots can be words (morning/noon/evening/bedtime/PRN) or times (08:00, 20:00). /div> /div> /div> !-- VITALS + CHARTS --> div classcol-lg-6> div classcard p-3> h5 classmb-2>Vitals/h5> form methodpost action/vitals/add classrow g-2 align-items-end> div classcol-6 col-md-4> label classform-label small muted>Systolic/label> input classform-control namesystolic inputmodenumeric placeholder120> /div> div classcol-6 col-md-4> label classform-label small muted>Diastolic/label> input classform-control namediastolic inputmodenumeric placeholder80> /div> div classcol-6 col-md-4> label classform-label small muted>Pulse/label> input classform-control namepulse inputmodenumeric placeholder70> /div> div classcol-6 col-md-4> label classform-label small muted>SpO₂/label> input classform-control namespo2 inputmodenumeric placeholder98> /div> div classcol-6 col-md-4> label classform-label small muted>Weight/label> input classform-control nameweight inputmodedecimal placeholder165> /div> div classcol-12 col-md-4 d-grid> button classbtn btn-primary>Add/button> /div> /form> div classmt-4>canvas idbpChart height120>/canvas>/div> div classmt-4>canvas idotherChart height120>/canvas>/div> div classmt-4>canvas idadherenceChart height120>/canvas>/div> /div> /div> /div> !-- Mark taken with custom time --> div classmodal fade idtakeModal tabindex-1 aria-hiddentrue> div classmodal-dialog> div classmodal-content> form methodpost action/checklist/mark> div classmodal-header> h5 classmodal-title>Mark Taken (custom time)/h5> button typebutton classbtn-close data-bs-dismissmodal aria-labelClose>/button> /div> div classmodal-body> input typehidden namelog_id idtakeModalLogId value> input typehidden nameaction valuetake> div classmb-2>div classsmall muted idtakeModalLabel>/div>/div> label classform-label small muted>Time taken (HH:MM)/label> input classform-control mono nametaken_time idtakeModalTime typetime> div classform-text>Leave blank to use “now”. Use this if the dose was taken late./div> /div> div classmodal-footer> button typebutton classbtn btn-outline-secondary data-bs-dismissmodal>Cancel/button> button typesubmit classbtn btn-primary>Save/button> /div> /form> /div> /div> /div>/div> div classtext-center small muted mt-4 mb-2>Tip: add this page to your Android home screen for an “app-like” shortcut./div>/main>script srchttps://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js>/script>script src/static/chart.umd.min.js>/script>script> const chartData {diastolic: , labels: , pulse: , spo2: , systolic: , weight: }; const adherenceData {labels: 2025-12-12, 2025-12-13, 2025-12-14, 2025-12-15, 2025-12-16, 2025-12-17, 2025-12-18, 2025-12-19, 2025-12-20, 2025-12-21, 2025-12-22, 2025-12-23, 2025-12-24, 2025-12-25, 2025-12-26, 2025-12-27, 2025-12-28, 2025-12-29, 2025-12-30, 2025-12-31, 2026-01-01, 2026-01-02, 2026-01-03, 2026-01-04, 2026-01-05, 2026-01-06, 2026-01-07, 2026-01-08, 2026-01-09, 2026-01-10, late: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, missed: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 0, ontime: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, taken: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}; function cssVar(name){ return getComputedStyle(document.body).getPropertyValue(name).trim(); } function makeLineCfg(labels, series){ const grid cssVar(--grid); const text cssVar(--text); const muted cssVar(--muted); return { type: line, data: { labels, datasets: series }, options: { responsive: true, maintainAspectRatio: false, interaction: { mode: index, intersect: false }, plugins: { legend: { labels: { color: text } }, tooltip: { backgroundColor: cssVar(--card), titleColor: text, bodyColor: text, borderColor: cssVar(--border), borderWidth: 1 } }, scales: { x: { ticks: { color: muted, maxTicksLimit: 8 }, grid: { color: grid } }, y: { ticks: { color: muted }, grid: { color: grid }, beginAtZero: false } }, elements: { line: { tension: 0.35, borderWidth: 3 }, point: { radius: 2.5, hoverRadius: 4 } } } } } function makeBarCfg(labels, datasets){ const grid cssVar(--grid); const text cssVar(--text); const muted cssVar(--muted); return { type: bar, data: { labels, datasets }, options: { responsive: true, maintainAspectRatio: false, interaction: { mode: index, intersect: false }, plugins: { legend: { labels: { color: text } }, tooltip: { backgroundColor: cssVar(--card), titleColor: text, bodyColor: text, borderColor: cssVar(--border), borderWidth: 1 } }, scales: { x: { ticks: { color: muted, maxTicksLimit: 8 }, grid: { color: grid } }, y: { ticks: { color: muted }, grid: { color: grid }, beginAtZero: true } } } } } let bpChart, otherChart, adhChart; function renderCharts(){ // Destroy old charts if rerendering try{ if(bpChart) bpChart.destroy(); }catch(e){} try{ if(otherChart) otherChart.destroy(); }catch(e){} try{ if(adhChart) adhChart.destroy(); }catch(e){} const primary cssVar(--primary); const good cssVar(--good); const warn cssVar(--warn); const bad cssVar(--bad); // BP chart (nice + filled) bpChart new Chart(document.getElementById(bpChart), makeLineCfg( chartData.labels, { label: Systolic, data: chartData.systolic, borderColor: primary, backgroundColor: primary + 22, fill: true }, { label: Diastolic, data: chartData.diastolic, borderColor: good, backgroundColor: good + 22, fill: true } )); // Other chart otherChart new Chart(document.getElementById(otherChart), makeLineCfg( chartData.labels, { label: Pulse, data: chartData.pulse, borderColor: warn, backgroundColor: warn + 22, fill: true }, { label: SpO₂, data: chartData.spo2, borderColor: good, backgroundColor: good + 22, fill: true }, { label: Weight, data: chartData.weight, borderColor: primary, backgroundColor: primary + 22, fill: true } )); // Adherence chart adhChart new Chart(document.getElementById(adherenceChart), makeBarCfg( adherenceData.labels, { label: Taken, data: adherenceData.taken, stack: total, backgroundColor: good + AA }, { label: Missed, data: adherenceData.missed, stack: total, backgroundColor: bad + AA }, { label: On-time, data: adherenceData.ontime, stack: timing, backgroundColor: primary + AA }, { label: Late, data: adherenceData.late, stack: timing, backgroundColor: warn + AA } )); } // Expose rerender hook for dark mode toggle window.__medtrackRerenderCharts renderCharts; // Render once renderCharts(); // Modal wiring const takeModal document.getElementById(takeModal); if (takeModal) { takeModal.addEventListener(show.bs.modal, function (event) { const btn event.relatedTarget; const logId btn.getAttribute(data-logid); const med btn.getAttribute(data-med); const slot btn.getAttribute(data-slot); document.getElementById(takeModalLogId).value logId; document.getElementById(takeModalLabel).textContent `${med} • Slot: ${slot}`; const d new Date(); const pad (n)> String(n).padStart(2,0); document.getElementById(takeModalTime).value `${pad(d.getHours())}:${pad(d.getMinutes())}`; }); }/script>script>(function(){ const btn document.getElementById(darkToggle); if(!btn) return; function setLabel(){ const isDark document.body.classList.contains(dark); // optional: change text; keep simple } btn.addEventListener(click, function(){ document.body.classList.toggle(dark); try{ localStorage.setItem(medtrack_theme, document.body.classList.contains(dark) ? dark : light); }catch(e){} setLabel(); // If charts exist, ask them to re-render colors via reload try{ if(window.__medtrackRerenderCharts) window.__medtrackRerenderCharts(); }catch(e){} }); setLabel();})();/script>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Sat, 10 Jan 2026 09:12:21 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}X-Served-By: brimhalltracker.harrybartos.comReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sX2vfKPpzt32FSh5Uyv%2FXHPlei1aHnrSH3HAWR8ONut3lbySANtNiOJvnfAYPWnVTxqt0AZ2Q7klY8VnA8uwWPpP0xxPwQfxbvZog6UU11nyK0yV2Xw50LnsUSuKAc7g%3D}}cf-cache-status: DYNAMICvary: accept-encodingStrict-Transport-Security: max-age0; includeSubDomains; preloadCF-RAY: 9bbb0d5b0cd912b1-PDXalt-svc: h3:443; ma86400 !doctype html>html langen>head> meta charsetutf-8> meta nameviewport contentwidthdevice-width, initial-scale1> title>MedTrack/title> link hrefhttps://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css relstylesheet> link href/static/app.css relstylesheet> link relicon hrefdata:,>/head>body>script>(function(){ try{ const saved localStorage.getItem(medtrack_theme); if(saved dark){ document.body.classList.add(dark); } }catch(e){}})();/script>nav classnavbar navbar-expand-lg bg-white border-bottom> div classcontainer> a classnavbar-brand fw-semibold href/>MedTrack/a> div classd-flex flex-wrap gap-2 ms-auto align-items-center> a classbtn btn-outline-secondary btn-sm href/meds>Medications/a> a classbtn btn-outline-secondary btn-sm href/export/vitals.csv>Export Vitals CSV/a> a classbtn btn-outline-secondary btn-sm href/export/meds.csv>Export Meds CSV/a> a classbtn btn-outline-secondary btn-sm href/export/reminders.ics>Export Reminders (.ics)/a> button iddarkToggle classbtn btn-sm btn-outline-secondary typebutton titleToggle dark mode> span classmono>🌓/span> span classd-none d-md-inline>Dark/span> /button> /div> /div>/nav>main classcontainer my-3> div classcontainer> div classmb-3> div classdisplay-6 fw-semibold>MedTrack Dashboard/div> /div> div classrow g-4> !-- MED CHECKLIST --> div classcol-lg-6> div classcard p-3> h5 classmb-2>Todays Med Checklist/h5> div classsmall muted mb-2> Each medication can have multiple times per day. Mark each time-slot separately. /div> div classcard p-2 mt-2> div classfw-semibold>Bupropion XL (Wellbutrin) 300mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 08:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52885> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52885 data-slot08:00 data-medBupropion XL (Wellbutrin) 300mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Carvedilol 12.5mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 08:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52886> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52886 data-slot08:00 data-medCarvedilol 12.5mg> Mark w/ Time /button> /div> /div> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 20:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52887> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52887 data-slot20:00 data-medCarvedilol 12.5mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Entresto (sacubitril/valsartan)/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 08:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52888> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52888 data-slot08:00 data-medEntresto (sacubitril/valsartan)> Mark w/ Time /button> /div> /div> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 20:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52889> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52889 data-slot20:00 data-medEntresto (sacubitril/valsartan)> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Ondansetron ODT (Zofran) 4mg — PRN/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: PRN/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52893> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52893 data-slotPRN data-medOndansetron ODT (Zofran) 4mg — PRN> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Pantoprazole (Protonix) 40mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 07:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52884> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52884 data-slot07:00 data-medPantoprazole (Protonix) 40mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Polyethylene glycol (Miralax)/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 21:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52892> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52892 data-slot21:00 data-medPolyethylene glycol (Miralax)> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Prochlorperazine (Compazine) 10mg — PRN/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: PRN/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52894> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52894 data-slotPRN data-medProchlorperazine (Compazine) 10mg — PRN> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Spironolactone 25mg/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 09:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52890> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52890 data-slot09:00 data-medSpironolactone 25mg> Mark w/ Time /button> /div> /div> /div> /div> div classcard p-2 mt-2> div classfw-semibold>Symtuza/div> div classmt-2 d-flex flex-column gap-2> div classd-flex justify-content-between align-items-center gap-2 flex-wrap> div classsmall muted> span classmono>Slot: 09:00/span> /div> div classd-flex flex-wrap gap-2> form methodpost action/checklist/mark classm-0> input typehidden namelog_id value52891> input typehidden nameaction valuetake> button classbtn btn-sm btn-primary>Mark Taken/button> /form> button classbtn btn-sm btn-outline-secondary typebutton data-bs-togglemodal data-bs-target#takeModal data-logid52891 data-slot09:00 data-medSymtuza> Mark w/ Time /button> /div> /div> /div> /div> div classsmall muted mt-3> Slots can be words (morning/noon/evening/bedtime/PRN) or times (08:00, 20:00). /div> /div> /div> !-- VITALS + CHARTS --> div classcol-lg-6> div classcard p-3> h5 classmb-2>Vitals/h5> form methodpost action/vitals/add classrow g-2 align-items-end> div classcol-6 col-md-4> label classform-label small muted>Systolic/label> input classform-control namesystolic inputmodenumeric placeholder120> /div> div classcol-6 col-md-4> label classform-label small muted>Diastolic/label> input classform-control namediastolic inputmodenumeric placeholder80> /div> div classcol-6 col-md-4> label classform-label small muted>Pulse/label> input classform-control namepulse inputmodenumeric placeholder70> /div> div classcol-6 col-md-4> label classform-label small muted>SpO₂/label> input classform-control namespo2 inputmodenumeric placeholder98> /div> div classcol-6 col-md-4> label classform-label small muted>Weight/label> input classform-control nameweight inputmodedecimal placeholder165> /div> div classcol-12 col-md-4 d-grid> button classbtn btn-primary>Add/button> /div> /form> div classmt-4>canvas idbpChart height120>/canvas>/div> div classmt-4>canvas idotherChart height120>/canvas>/div> div classmt-4>canvas idadherenceChart height120>/canvas>/div> /div> /div> /div> !-- Mark taken with custom time --> div classmodal fade idtakeModal tabindex-1 aria-hiddentrue> div classmodal-dialog> div classmodal-content> form methodpost action/checklist/mark> div classmodal-header> h5 classmodal-title>Mark Taken (custom time)/h5> button typebutton classbtn-close data-bs-dismissmodal aria-labelClose>/button> /div> div classmodal-body> input typehidden namelog_id idtakeModalLogId value> input typehidden nameaction valuetake> div classmb-2>div classsmall muted idtakeModalLabel>/div>/div> label classform-label small muted>Time taken (HH:MM)/label> input classform-control mono nametaken_time idtakeModalTime typetime> div classform-text>Leave blank to use “now”. Use this if the dose was taken late./div> /div> div classmodal-footer> button typebutton classbtn btn-outline-secondary data-bs-dismissmodal>Cancel/button> button typesubmit classbtn btn-primary>Save/button> /div> /form> /div> /div> /div>/div> div classtext-center small muted mt-4 mb-2>Tip: add this page to your Android home screen for an “app-like” shortcut./div>/main>script srchttps://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js>/script>script src/static/chart.umd.min.js>/script>script> const chartData {diastolic: , labels: , pulse: , spo2: , systolic: , weight: }; const adherenceData {labels: 2025-12-12, 2025-12-13, 2025-12-14, 2025-12-15, 2025-12-16, 2025-12-17, 2025-12-18, 2025-12-19, 2025-12-20, 2025-12-21, 2025-12-22, 2025-12-23, 2025-12-24, 2025-12-25, 2025-12-26, 2025-12-27, 2025-12-28, 2025-12-29, 2025-12-30, 2025-12-31, 2026-01-01, 2026-01-02, 2026-01-03, 2026-01-04, 2026-01-05, 2026-01-06, 2026-01-07, 2026-01-08, 2026-01-09, 2026-01-10, late: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, missed: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 0, ontime: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, taken: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}; function cssVar(name){ return getComputedStyle(document.body).getPropertyValue(name).trim(); } function makeLineCfg(labels, series){ const grid cssVar(--grid); const text cssVar(--text); const muted cssVar(--muted); return { type: line, data: { labels, datasets: series }, options: { responsive: true, maintainAspectRatio: false, interaction: { mode: index, intersect: false }, plugins: { legend: { labels: { color: text } }, tooltip: { backgroundColor: cssVar(--card), titleColor: text, bodyColor: text, borderColor: cssVar(--border), borderWidth: 1 } }, scales: { x: { ticks: { color: muted, maxTicksLimit: 8 }, grid: { color: grid } }, y: { ticks: { color: muted }, grid: { color: grid }, beginAtZero: false } }, elements: { line: { tension: 0.35, borderWidth: 3 }, point: { radius: 2.5, hoverRadius: 4 } } } } } function makeBarCfg(labels, datasets){ const grid cssVar(--grid); const text cssVar(--text); const muted cssVar(--muted); return { type: bar, data: { labels, datasets }, options: { responsive: true, maintainAspectRatio: false, interaction: { mode: index, intersect: false }, plugins: { legend: { labels: { color: text } }, tooltip: { backgroundColor: cssVar(--card), titleColor: text, bodyColor: text, borderColor: cssVar(--border), borderWidth: 1 } }, scales: { x: { ticks: { color: muted, maxTicksLimit: 8 }, grid: { color: grid } }, y: { ticks: { color: muted }, grid: { color: grid }, beginAtZero: true } } } } } let bpChart, otherChart, adhChart; function renderCharts(){ // Destroy old charts if rerendering try{ if(bpChart) bpChart.destroy(); }catch(e){} try{ if(otherChart) otherChart.destroy(); }catch(e){} try{ if(adhChart) adhChart.destroy(); }catch(e){} const primary cssVar(--primary); const good cssVar(--good); const warn cssVar(--warn); const bad cssVar(--bad); // BP chart (nice + filled) bpChart new Chart(document.getElementById(bpChart), makeLineCfg( chartData.labels, { label: Systolic, data: chartData.systolic, borderColor: primary, backgroundColor: primary + 22, fill: true }, { label: Diastolic, data: chartData.diastolic, borderColor: good, backgroundColor: good + 22, fill: true } )); // Other chart otherChart new Chart(document.getElementById(otherChart), makeLineCfg( chartData.labels, { label: Pulse, data: chartData.pulse, borderColor: warn, backgroundColor: warn + 22, fill: true }, { label: SpO₂, data: chartData.spo2, borderColor: good, backgroundColor: good + 22, fill: true }, { label: Weight, data: chartData.weight, borderColor: primary, backgroundColor: primary + 22, fill: true } )); // Adherence chart adhChart new Chart(document.getElementById(adherenceChart), makeBarCfg( adherenceData.labels, { label: Taken, data: adherenceData.taken, stack: total, backgroundColor: good + AA }, { label: Missed, data: adherenceData.missed, stack: total, backgroundColor: bad + AA }, { label: On-time, data: adherenceData.ontime, stack: timing, backgroundColor: primary + AA }, { label: Late, data: adherenceData.late, stack: timing, backgroundColor: warn + AA } )); } // Expose rerender hook for dark mode toggle window.__medtrackRerenderCharts renderCharts; // Render once renderCharts(); // Modal wiring const takeModal document.getElementById(takeModal); if (takeModal) { takeModal.addEventListener(show.bs.modal, function (event) { const btn event.relatedTarget; const logId btn.getAttribute(data-logid); const med btn.getAttribute(data-med); const slot btn.getAttribute(data-slot); document.getElementById(takeModalLogId).value logId; document.getElementById(takeModalLabel).textContent `${med} • Slot: ${slot}`; const d new Date(); const pad (n)> String(n).padStart(2,0); document.getElementById(takeModalTime).value `${pad(d.getHours())}:${pad(d.getMinutes())}`; }); }/script>script>(function(){ const btn document.getElementById(darkToggle); if(!btn) return; function setLabel(){ const isDark document.body.classList.contains(dark); // optional: change text; keep simple } btn.addEventListener(click, function(){ document.body.classList.toggle(dark); try{ localStorage.setItem(medtrack_theme, document.body.classList.contains(dark) ? dark : light); }catch(e){} setLabel(); // If charts exist, ask them to re-render colors via reload try{ if(window.__medtrackRerenderCharts) window.__medtrackRerenderCharts(); }catch(e){} }); setLabel();})();/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]