pH Atlas — VBA Script
Executive-level PowerPoint generator (17 slides)
How to use
Generate the full executive deck in PowerPoint
- Download the
.basfile below or copy the script to clipboard. - Open PowerPoint and press Alt + F11 to open the VBA Editor.
- In the VBA Editor: File → Import File… and select the downloaded
PHAtlas_Deck.bas. - Press Ctrl + G to open the Immediate Window.
- Type
CreatePHAtlasDeckand press Enter. - A 17-slide executive deck will be generated automatically.
36,544 chars · 17 slides
Option Explicit
' ============================================================================
' pH Atlas — Executive-Level Presentation Generator (Updated)
' Run CreatePHAtlasDeck() in the PowerPoint VBA Editor (Alt+F11 -> Immediate Window)
' Late-binding version — no references required.
'
' Integrates all current app features:
' - 13 body sites across 6 systems
' - 38 peer-reviewed sources (Library)
' - Interactive pH Checker with electrolyte/organ impacts & disease patterns
' - AI-powered pH Interpreter
' - Quiz (Challenge mode + AI Tutor)
' - Community notes (questions, insights, references)
' - History tracking with charts, weekly summary, and CSV export
' - Citrate/bicarbonate buffering context per site
' ============================================================================
' ---- Brand palette ----
Private Const CLR_BG As Long = 15921906 ' #F4F8F9 light medical white
Private Const CLR_DARK As Long = 2500134 ' #262626 near-black
Private Const CLR_TEAL As Long = 5964801 ' #5B9B96 muted teal
Private Const CLR_ACCENT As Long = 13340159 ' #7FCBC4 light teal
Private Const CLR_MUTED As Long = 8421504 ' #808080 mid gray
Private Const CLR_WHITE As Long = 16777215
Private Const CLR_EMER As Long = 51200 ' emerald
Private Const CLR_AMBER As Long = 39423 ' amber
Private Const CLR_ROSE As Long = 255 ' rose
Private Const CLR_BLUE As Long = 13369344 ' #7CA8DC soft blue
Private Const CLR_PURPLE As Long = 13369599 ' #8B7FD4 soft purple
' ---- Enum constants (late binding) ----
Private Const msoTrue As Long = -1
Private Const msoFalse As Long = 0
Private Const msoAlignLeft As Long = 1
Private Const msoAlignCenter As Long = 2
Private Const msoAlignRight As Long = 3
Private Const msoTextOrientationHorizontal As Long = 1
Private Const msoShapeRectangle As Long = 1
Private Const msoShapeRoundedRectangle As Long = 5
Private Const ppLayoutBlank As Long = 12
Private Const ppSlideSizeOnScreen16x9 As Long = 15
' ---- Entry point ----
Public Sub CreatePHAtlasDeck()
Dim prs As Object
Set prs = Application.Presentations.Add(msoTrue)
' Use 16:9
prs.PageSetup.SlideSize = ppSlideSizeOnScreen16x9
prs.PageSetup.SlideWidth = 960
prs.PageSetup.SlideHeight = 540
Slide_Title prs
Slide_Agenda prs
Slide_ExecutiveSummary prs
Slide_Problem prs
Slide_Solution prs
Slide_PlatformFeatures prs
Slide_ClinicalData prs
Slide_SystemMap prs
Slide_CheckerFlow prs
Slide_ElectrolyteImpacts prs
Slide_AIInterpreter prs
Slide_QuizCommunity prs
Slide_HistoryTracking prs
Slide_MarketPosition prs
Slide_Roadmap prs
Slide_NextSteps prs
Slide_ThankYou prs
MsgBox "pH Atlas executive deck generated: " & prs.Slides.Count & " slides.", vbInformation, "pH Atlas"
End Sub
' =========================================================================
' Helper: add a slide with a clean background
' =========================================================================
Private Function NewSlide(ByVal prs As Object, ByVal layout As Long) As Object
Dim sld As Object
Set sld = prs.Slides.Add(prs.Slides.Count + 1, layout)
sld.Layout = ppLayoutBlank
sld.FollowMasterBackground = msoFalse
sld.Background.Fill.ForeColor.RGB = CLR_BG
Set NewSlide = sld
End Function
Private Sub AddBar(ByVal sld As Object, ByVal Left As Single, ByVal Top As Single, ByVal Width As Single, ByVal Height As Single, ByVal color As Long)
Dim shp As Object
Set shp = sld.Shapes.AddShape(msoShapeRectangle, Left, Top, Width, Height)
shp.Fill.ForeColor.RGB = color
shp.Line.Visible = msoFalse
shp.Shadow.Visible = msoFalse
End Sub
Private Sub AddText(ByVal sld As Object, ByVal Left As Single, ByVal Top As Single, ByVal Width As Single, ByVal Height As Single, _
ByVal text As String, ByVal fontSize As Single, ByVal color As Long, ByVal bold As Boolean, _
Optional ByVal align As Long = msoAlignLeft, Optional ByVal fontName As String = "Calibri")
Dim shp As Object
Set shp = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, Left, Top, Width, Height)
shp.TextFrame.WordWrap = msoTrue
shp.TextFrame.MarginLeft = 0
shp.TextFrame.MarginRight = 0
shp.TextFrame.MarginTop = 0
shp.TextFrame.MarginBottom = 0
With shp.TextFrame.TextRange
.text = text
.Font.Size = fontSize
.Font.Color.RGB = color
.Font.bold = bold
.Font.name = fontName
.ParagraphFormat.Alignment = align
End With
End Sub
Private Sub AddTitleBar(ByVal sld As Object, ByVal title As String, ByVal subtitle As String)
AddBar sld, 0, 0, 960, 6, CLR_TEAL
AddText sld, 60, 36, 840, 36, title, 26, CLR_DARK, True
If Len(subtitle) > 0 Then
AddText sld, 60, 78, 840, 28, subtitle, 13, CLR_MUTED, False
End If
AddBar sld, 60, 72, 40, 2, CLR_ACCENT
End Sub
Private Sub AddFooter(ByVal sld As Object, ByVal pageNum As Integer)
AddText sld, 60, 510, 400, 20, "pH Atlas · Executive Brief · Educational use only", 8, CLR_MUTED, False
AddText sld, 820, 510, 80, 20, CStr(pageNum), 8, CLR_MUTED, False, msoAlignRight
End Sub
Private Sub AddCard(ByVal sld As Object, ByVal Left As Single, ByVal Top As Single, ByVal Width As Single, ByVal Height As Single, _
ByVal heading As String, ByVal body As String, Optional ByVal accentColor As Long = CLR_TEAL)
Dim shp As Object
Set shp = sld.Shapes.AddShape(msoShapeRoundedRectangle, Left, Top, Width, Height)
shp.Fill.ForeColor.RGB = CLR_WHITE
shp.Line.ForeColor.RGB = RGB(226, 232, 240)
shp.Line.Weight = 1
shp.Adjustments(1) = 0.04
shp.Shadow.Visible = msoTrue
shp.Shadow.Size = 3
shp.Shadow.OffsetX = 0
shp.Shadow.OffsetY = 1
shp.Shadow.Transparency = 0.7
Dim bar As Object
Set bar = sld.Shapes.AddShape(msoShapeRoundedRectangle, Left, Top, 4, Height)
bar.Fill.ForeColor.RGB = accentColor
bar.Line.Visible = msoFalse
bar.Adjustments(1) = 0.5
AddText sld, Left + 16, Top + 12, Width - 28, 24, heading, 12, CLR_DARK, True
AddText sld, Left + 16, Top + 40, Width - 28, Height - 52, body, 10, CLR_MUTED, False
End Sub
Private Sub AddStatBox(ByVal sld As Object, ByVal Left As Single, ByVal Top As Single, ByVal Width As Single, ByVal Height As Single, _
ByVal number As String, ByVal label As String, Optional ByVal accentColor As Long = CLR_TEAL)
Dim shp As Object
Set shp = sld.Shapes.AddShape(msoShapeRoundedRectangle, Left, Top, Width, Height)
shp.Fill.ForeColor.RGB = CLR_WHITE
shp.Line.ForeColor.RGB = RGB(226, 232, 240)
shp.Line.Weight = 1
shp.Adjustments(1) = 0.06
shp.Shadow.Visible = msoTrue
shp.Shadow.Size = 3
shp.Shadow.OffsetX = 0
shp.Shadow.OffsetY = 1
shp.Shadow.Transparency = 0.7
AddBar sld, Left, Top, Width, 3, accentColor
AddText sld, Left, Top + 18, Width, 36, number, 28, accentColor, True, msoAlignCenter
AddText sld, Left, Top + 56, Width, 20, label, 9, CLR_MUTED, False, msoAlignCenter
End Sub
' =========================================================================
' SLIDE 1 — Title
' =========================================================================
Private Sub Slide_Title(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
sld.Background.Fill.ForeColor.RGB = CLR_BG
AddBar sld, 0, 0, 960, 540, CLR_BG
AddBar sld, 0, 0, 340, 540, CLR_TEAL
AddText sld, 60, 230, 260, 40, "pH", 72, CLR_WHITE, True, msoAlignLeft
AddText sld, 60, 310, 260, 30, "ATLAS", 28, CLR_ACCENT, True, msoAlignLeft
AddText sld, 60, 350, 260, 20, "Clinical Reference Platform", 11, CLR_WHITE, False
AddText sld, 400, 150, 500, 30, "EXECUTIVE BRIEF", 11, CLR_TEAL, True
AddText sld, 400, 190, 500, 60, "pH Atlas", 44, CLR_DARK, True
AddText sld, 400, 260, 500, 60, "A community-friendly map of pH across the human body.", 16, CLR_MUTED, False
AddText sld, 400, 330, 500, 40, "13 body sites · 6 systems · 38 sources · AI interpreter · Quiz · Community", 10, CLR_MUTED, False
AddBar sld, 400, 410, 60, 3, CLR_ACCENT
AddText sld, 400, 426, 500, 20, "Prepared for Executive Review", 10, CLR_MUTED, False
AddFooter sld, 1
End Sub
' =========================================================================
' SLIDE 2 — Agenda
' =========================================================================
Private Sub Slide_Agenda(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Agenda", "What we'll cover today"
Dim items As Variant
items = Array( _
"01 Executive Summary", _
"02 The Problem", _
"03 Our Solution", _
"04 Platform Features", _
"05 Clinical Data Foundation", _
"06 System Map & Checker", _
"07 Electrolyte & Organ Impacts", _
"08 AI Interpreter & Quiz", _
"09 History & Community", _
"10 Market Positioning & Roadmap")
Dim i As Integer
Dim y As Single
For i = 0 To UBound(items)
y = 130 + i * 36
AddText sld, 80, y, 600, 28, items(i), 13, CLR_DARK, False
AddBar sld, 80, y + 26, 180, 1, RGB(226, 232, 240)
Next i
AddFooter sld, 2
End Sub
' =========================================================================
' SLIDE 3 — Executive Summary
' =========================================================================
Private Sub Slide_ExecutiveSummary(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Executive Summary", "pH Atlas at a glance"
' Top stats row
AddStatBox sld, 60, 120, 200, 90, "13", "Body sites mapped", CLR_TEAL
AddStatBox sld, 280, 120, 200, 90, "6", "Body systems covered", CLR_ACCENT
AddStatBox sld, 500, 120, 200, 90, "38", "Peer-reviewed sources", CLR_BLUE
AddStatBox sld, 720, 120, 180, 90, "AI", "pH interpreter", CLR_PURPLE
AddCard sld, 60, 230, 410, 130, "What", _
"A web-based clinical reference platform that maps physiological pH values across every major body system onto a single interactive spectrum — with an AI interpreter, interactive checker, quiz, and community knowledge base.", CLR_TEAL
AddCard sld, 490, 230, 410, 130, "Why", _
"pH values are scattered across dozens of disconnected references. pH Atlas consolidates them into one accessible, community-friendly interface — lowering the barrier to understanding acid-base health.", CLR_ACCENT
AddCard sld, 60, 380, 410, 110, "Who", _
"Designed for health-curious individuals, students, and clinicians who want a fast, reliable pH reference — with clear guidance to seek professional interpretation.", CLR_TEAL
AddCard sld, 490, 380, 410, 110, "Impact", _
"Multi-site pH coverage differentiates from ABG-only tools. Electrolyte/organ impact panels and buffering context per site provide depth no single-reference tool offers.", CLR_ACCENT
AddFooter sld, 3
End Sub
' =========================================================================
' SLIDE 4 — The Problem
' =========================================================================
Private Sub Slide_Problem(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "The Problem", "pH information is fragmented and inaccessible"
AddCard sld, 60, 130, 410, 110, "Scattered References", _
"Normal pH ranges live in dozens of textbooks, journal articles, and clinical guidelines — each covering one body site or system, with no single source of truth.", CLR_ROSE
AddCard sld, 490, 130, 410, 110, "ABG-Only Tools", _
"Existing pH calculators focus almost exclusively on arterial blood gas. Vaginal, skin, urine, CSF, and reproductive tract pH have no accessible interactive reference.", CLR_AMBER
AddCard sld, 60, 260, 410, 110, "No Interpretation Layer", _
"Even when a reference range is found, there is no guidance on what an out-of-range value means — electrolyte shifts, organ impacts, disease patterns, or buffering context.", CLR_ROSE
AddCard sld, 490, 260, 410, 110, "No Tracking or Community", _
"No tool lets a user save readings over time, ask an AI about a result, test their knowledge, or share insights with peers studying the same material.", CLR_AMBER
AddCard sld, 60, 390, 840, 90, "The Gap", _
"There is no single, accessible place to look up what a normal pH range is for different parts of the body — or what a reading outside that range might mean in context.", CLR_TEAL
AddFooter sld, 4
End Sub
' =========================================================================
' SLIDE 5 — Our Solution
' =========================================================================
Private Sub Slide_Solution(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Our Solution", "One spectrum, every body site, plain-language context"
AddCard sld, 60, 130, 280, 160, "Unified Spectrum", _
"All 13 body sites mapped onto a single pH 0-14 color spectrum. Users see at a glance where every fluid falls — from stomach acid (1.5) to pancreatic fluid (8.3).", CLR_TEAL
AddCard sld, 360, 130, 280, 160, "Interactive Checker", _
"Enter a measured pH value for any site. The checker places it on the spectrum, flags in-range or out-of-range, and generates recommended clinical checks and disease pattern suggestions.", CLR_ACCENT
AddCard sld, 660, 130, 240, 160, "AI Interpreter", _
"A conversational AI assistant interprets any reading in plain language — describing what it means, what to watch for, and when to seek clinical evaluation.", CLR_PURPLE
AddCard sld, 60, 310, 280, 160, "Quiz & Community", _
"A gamified quiz (Challenge + AI Tutor) reinforces learning. A community board lets users share questions, insights, and references with peers.", CLR_BLUE
AddCard sld, 360, 310, 280, 160, "History & Export", _
"Save readings to a personal log with progress summaries, weekly trend charts, and CSV export. Track pH over time across multiple body sites and systems.", CLR_TEAL
AddCard sld, 660, 310, 240, 160, "Sourced & Safe", _
"Every range is sourced from 38 peer-reviewed references. Every result points toward consulting a qualified clinician. Educational use only — not a diagnostic tool.", CLR_ACCENT
AddFooter sld, 5
End Sub
' =========================================================================
' SLIDE 6 — Platform Features
' =========================================================================
Private Sub Slide_PlatformFeatures(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Platform Features", "Six integrated modules on one platform"
' Two columns of three cards
AddCard sld, 60, 130, 410, 110, "1 · pH Atlas (Reference)", _
"Full pH 0-14 spectrum with 13 body sites across 6 systems. Signals tab flags acidic/alkaline shifts. Library tab curates 38 peer-reviewed sources organized by topic.", CLR_TEAL
AddCard sld, 490, 130, 410, 110, "2 · Interactive Checker", _
"Select a body site, enter a pH value, and get instant classification. Result slip shows recommended checks, disease patterns, electrolyte impacts, and buffering context.", CLR_ACCENT
AddCard sld, 60, 260, 410, 110, "3 · AI Interpreter", _
"Chat-based assistant powered by the ph_interpreter agent. Describe any reading in natural language and receive a markdown-rendered clinical interpretation with abnormal-finding flags.", CLR_PURPLE
AddCard sld, 490, 260, 410, 110, "4 · Quiz (Challenge + AI Tutor)", _
"Gamified multiple-choice trivia tests knowledge of body-site pH ranges. AI Tutor mode generates custom quiz questions by system. Tracks score and streak across sessions.", CLR_BLUE
AddCard sld, 60, 390, 410, 110, "5 · History & Tracking", _
"Save readings to a personal log. Progress summary dashboard, weekly trend summary, daily submission chart. Search, filter by system, and export all records to CSV.", CLR_TEAL
AddCard sld, 490, 390, 410, 110, "6 · Community", _
"Post questions, insights, and references. Tag posts by topic. Browse peer contributions. Users can edit and delete their own posts. Public read, authenticated write.", CLR_ACCENT
AddFooter sld, 6
End Sub
' =========================================================================
' SLIDE 7 — Clinical Data Foundation
' =========================================================================
Private Sub Slide_ClinicalData(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Clinical Data Foundation", "13 sites · 6 systems · 38 sources"
AddStatBox sld, 60, 120, 200, 80, "13", "Body sites", CLR_TEAL
AddStatBox sld, 280, 120, 200, 80, "6", "Body systems", CLR_ACCENT
AddStatBox sld, 500, 120, 200, 80, "38", "Peer-reviewed sources", CLR_BLUE
AddStatBox sld, 720, 120, 180, 80, "9", "Spectrum color stops", CLR_PURPLE
AddText sld, 60, 220, 840, 24, "Body sites covered:", 12, CLR_DARK, True
Dim sites As Variant
sites = Array( _
"Arterial blood (7.35-7.45)", _
"Venous blood (7.30-7.35)", _
"Stomach / gastric (1.5-3.5)", _
"Skin surface (4.7-5.7)", _
"Saliva (6.2-7.6)", _
"Small intestine (7.5-8.0)", _
"Colon (5.5-7.0)", _
"Urine (4.5-8.0)", _
"Cerebrospinal fluid (7.3-7.5)", _
"Vaginal (3.8-4.5)", _
"Cervical mucus (6.4-8.0)", _
"Uterine cavity (7.5-7.8)", _
"Semen (7.2-8.0)")
Dim i As Integer
Dim col As Integer
Dim row As Integer
Dim x As Single
Dim y As Single
For i = 0 To UBound(sites)
col = i Mod 3
row = i \ 3
x = 60 + col * 300
y = 250 + row * 36
AddBar sld, x, y, 3, 16, CLR_TEAL
AddText sld, x + 10, y, 280, 18, sites(i), 10, CLR_MUTED, False
Next i
AddText sld, 60, 460, 840, 20, "Every range sourced from peer-reviewed literature. Buffering context (citrate/bicarbonate) provided per site where clinically relevant.", 9, CLR_MUTED, False
AddFooter sld, 7
End Sub
' =========================================================================
' SLIDE 8 — System Map
' =========================================================================
Private Sub Slide_SystemMap(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "System Map", "6 body systems mapped on the pH spectrum"
Dim systems As Variant
Dim colors As Variant
systems = Array( _
Array("Circulatory", "Arterial blood 7.35-7.45 · Venous blood 7.30-7.35 · Myocardial (ischemic) ~6.5-7.0"), _
Array("Digestive", "Stomach 1.5-3.5 · Small intestine 7.5-8.0 · Colon 5.5-7.0 · Saliva 6.2-7.6"), _
Array("Nervous", "Cerebrospinal fluid 7.3-7.5 · Brain tissue ~7.1-7.2"), _
Array("Integumentary", "Skin surface 4.7-5.7 (acid mantle)"), _
Array("Renal / Urinary", "Urine 4.5-8.0 (wide compensatory range)"), _
Array("Reproductive", "Vaginal 3.8-4.5 · Cervical mucus 6.4-8.0 · Uterine 7.5-7.8 · Semen 7.2-8.0"))
colors = Array(CLR_TEAL, CLR_ACCENT, CLR_BLUE, CLR_PURPLE, CLR_EMER, CLR_AMBER)
Dim i As Integer
Dim y As Single
For i = 0 To UBound(systems)
y = 120 + i * 62
Dim shp As Object
Set shp = sld.Shapes.AddShape(msoShapeRoundedRectangle, 60, y, 840, 50)
shp.Fill.ForeColor.RGB = CLR_WHITE
shp.Line.ForeColor.RGB = RGB(226, 232, 240)
shp.Line.Weight = 1
shp.Adjustments(1) = 0.08
shp.Shadow.Visible = msoTrue
shp.Shadow.Size = 2
shp.Shadow.OffsetX = 0
shp.Shadow.OffsetY = 1
shp.Shadow.Transparency = 0.7
AddBar sld, 60, y, 4, 50, colors(i)
AddText sld, 80, y + 8, 200, 20, systems(i)(0), 12, CLR_DARK, True
AddText sld, 80, y + 28, 800, 18, systems(i)(1), 9, CLR_MUTED, False
Next i
AddFooter sld, 8
End Sub
' =========================================================================
' SLIDE 9 — Interactive Checker Flow
' =========================================================================
Private Sub Slide_CheckerFlow(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Interactive Checker", "From measured value to clinical context in one click"
' Flow steps
Dim steps As Variant
steps = Array( _
"1. Select body site (13 options)", _
"2. Enter measured pH (0-14)", _
"3. Run — spectrum shows position", _
"4. In-range or out-of-range flag", _
"5. Recommended clinical checks", _
"6. Disease pattern suggestions", _
"7. Electrolyte & organ impacts", _
"8. Buffering context (citrate/bicarb)")
Dim i As Integer
Dim y As Single
For i = 0 To UBound(steps)
y = 130 + i * 42
AddBar sld, 60, y, 3, 20, CLR_TEAL
AddText sld, 75, y, 500, 20, steps(i), 11, CLR_DARK, False
Next i
' Right side — example result
AddCard sld, 520, 130, 380, 340, "Example: Arterial blood pH 7.28", _
"Status: OUT OF RANGE (acidemia)" & vbCrLf & vbCrLf & _
"Recommended checks:" & vbCrLf & _
"• Consider metabolic or respiratory acidosis" & vbCrLf & _
"• Review kidney function, lung status" & vbCrLf & _
"• Check recent medications" & vbCrLf & vbCrLf & _
"Disease patterns:" & vbCrLf & _
"• DKA, lactic acidosis" & vbCrLf & _
"• COPD, hypoventilation" & vbCrLf & _
"• Renal failure with acid retention" & vbCrLf & vbCrLf & _
"Always interpret with a clinician.", CLR_ROSE
AddFooter sld, 9
End Sub
' =========================================================================
' SLIDE 10 — Electrolyte & Organ Impacts
' =========================================================================
Private Sub Slide_ElectrolyteImpacts(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Electrolyte & Organ Impacts", "What an out-of-range pH means downstream"
AddCard sld, 60, 130, 410, 180, "Acidemia (Blood pH < 7.35)", _
"Electrolytes:" & vbCrLf & _
"• H+ enters cells -> K+ out -> hyperkalemia risk" & vbCrLf & _
"• HCO3- consumed as buffer -> serum HCO3- falls" & vbCrLf & _
"• Chloride rises -> elevated anion gap" & vbCrLf & vbCrLf & _
"Organs:" & vbCrLf & _
"• Heart: reduced contractility, arrhythmia risk" & vbCrLf & _
"• Brain: confusion, lethargy, coma in severe cases" & vbCrLf & _
"• Lungs: compensatory hyperventilation (Kussmaul)", CLR_ROSE
AddCard sld, 490, 130, 410, 180, "Alkalemia (Blood pH > 7.45)", _
"Electrolytes:" & vbCrLf & _
"• H+ leaves cells -> K+ in -> hypokalemia risk" & vbCrLf & _
"• Ca2+ binds albumin -> ionized Ca2+ falls (tetany)" & vbCrLf & _
"• Phosphate shifts into cells -> hypophosphatemia" & vbCrLf & vbCrLf & _
"Organs:" & vbCrLf & _
"• Heart: coronary vasospasm, arrhythmia" & vbCrLf & _
"• Brain: vasoconstriction, seizures, tetany" & vbCrLf & _
"• Lungs: compensatory hypoventilation", CLR_AMBER
AddCard sld, 60, 330, 410, 160, "Site-Specific Impacts", _
"Every body site has its own electrolyte and organ impact profile:" & vbCrLf & _
"• Urine < 4.5: uric acid stones, K+ wasting" & vbCrLf & _
"• Urine > 8.0: calcium phosphate stones, UTI risk" & vbCrLf & _
"• Skin > 5.7: barrier dysfunction, eczema" & vbCrLf & _
"• Vaginal > 4.5: bacterial vaginosis, trichomoniasis" & vbCrLf & _
"• Stomach > 3.5: hypochlorhydria, H. pylori risk", CLR_TEAL
AddCard sld, 490, 330, 410, 160, "Buffering Context", _
"Citrate/bicarbonate buffering notes per site:" & vbCrLf & _
"• Blood: sodium bicarb/citrate for diagnosed acidosis" & vbCrLf & _
"• Urine: potassium citrate for stone prevention" & vbCrLf & _
"• Stomach: not used (acid is deliberate)" & vbCrLf & _
"• Skin: topical, not oral" & vbCrLf & _
"• Saliva: local calcium/phosphate, not ingested", CLR_ACCENT
AddFooter sld, 10
End Sub
' =========================================================================
' SLIDE 11 — AI Interpreter
' =========================================================================
Private Sub Slide_AIInterpreter(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "AI pH Interpreter", "Conversational clinical interpretation"
AddCard sld, 60, 130, 410, 160, "How It Works", _
"Powered by the ph_interpreter agent. Users describe a reading in natural language — e.g. 'Arterial blood pH 7.28' — and receive a markdown-rendered interpretation covering what the value means, what to watch for, and when to seek clinical evaluation.", CLR_PURPLE
AddCard sld, 490, 130, 410, 160, "Key Capabilities", _
"• Interprets any of the 13 body sites" & vbCrLf & _
"• Flags abnormal findings automatically" & vbCrLf & _
"• Provides plain-language explanations" & vbCrLf & _
"• References saved history readings" & vbCrLf & _
"• Always recommends clinical follow-up", CLR_BLUE
' Mock conversation
Dim chatShp As Object
Set chatShp = sld.Shapes.AddShape(msoShapeRoundedRectangle, 60, 310, 840, 180)
chatShp.Fill.ForeColor.RGB = CLR_WHITE
chatShp.Line.ForeColor.RGB = RGB(226, 232, 240)
chatShp.Line.Weight = 1
chatShp.Adjustments(1) = 0.03
chatShp.Shadow.Visible = msoTrue
chatShp.Shadow.Size = 2
chatShp.Shadow.OffsetX = 0
chatShp.Shadow.OffsetY = 1
chatShp.Shadow.Transparency = 0.7
AddText sld, 80, 322, 200, 18, "User:", 10, CLR_MUTED, True
AddText sld, 80, 340, 800, 20, """Arterial blood pH 7.28 — what does this mean?""", 11, CLR_DARK, False
AddText sld, 80, 366, 200, 18, "Interpreter:", 10, CLR_MUTED, True
AddText sld, 80, 384, 800, 100, "pH 7.28 is below the arterial blood reference range (7.35-7.45), indicating acidemia. This suggests metabolic or respiratory acidosis — DKA, lactic acidosis, COPD, or renal failure are common causes. Hyperkalemia risk is elevated. This requires same-day clinical evaluation with a full blood gas panel, electrolytes, and metabolic workup.", 10, CLR_TEAL, False
AddFooter sld, 11
End Sub
' =========================================================================
' SLIDE 12 — Quiz & Community
' =========================================================================
Private Sub Slide_QuizCommunity(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Quiz & Community", "Learning reinforcement and peer knowledge sharing"
AddCard sld, 60, 130, 410, 340, "Quiz — Challenge + AI Tutor", _
"Two modes for different learning styles:" & vbCrLf & vbCrLf & _
"Challenge Mode:" & vbCrLf & _
"• Gamified multiple-choice trivia" & vbCrLf & _
"• Randomized questions from 13 body sites" & vbCrLf & _
"• Score and streak tracking" & vbCrLf & _
"• Instant feedback on each answer" & vbCrLf & vbCrLf & _
"AI Tutor Mode:" & vbCrLf & _
"• Conversational quiz powered by ph_quiz agent" & vbCrLf & _
"• Generates custom questions by system" & vbCrLf & _
"• Adapts to user responses" & vbCrLf & _
"• 'Quiz me on the circulatory system'", CLR_BLUE
AddCard sld, 490, 130, 410, 340, "Community — Notes Board", _
"A shared knowledge base for pH Atlas users:" & vbCrLf & vbCrLf & _
"Post Types:" & vbCrLf & _
"• Questions — ask the community" & vbCrLf & _
"• Insights — share a clinical observation" & vbCrLf & _
"• References — link a useful source" & vbCrLf & vbCrLf & _
"Features:" & vbCrLf & _
"• Tag posts by topic (blood, diabetes, skin)" & vbCrLf & _
"• Author attribution" & vbCrLf & _
"• Edit and delete your own posts" & vbCrLf & _
"• Public read, authenticated write" & vbCrLf & _
"• Browse and learn from peer contributions", CLR_ACCENT
AddFooter sld, 12
End Sub
' =========================================================================
' SLIDE 13 — History & Tracking
' =========================================================================
Private Sub Slide_HistoryTracking(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "History & Tracking", "Save readings, visualize trends, export data"
AddCard sld, 60, 130, 280, 160, "Reading Log", _
"Save pH readings to a personal log with site, value, date, and notes. Each reading is automatically classified as in-range or out-of-range against its site-specific reference.", CLR_TEAL
AddCard sld, 360, 130, 280, 160, "Progress Summary", _
"Dashboard cards show total readings, weekly count, in-range percentage, critical count, average pH, and most-tracked site — all at a glance.", CLR_ACCENT
AddCard sld, 660, 130, 240, 160, "Weekly Summary", _
"Per-site weekly averages with trend direction (improving or declining) and a line chart showing readings against normal range bands.", CLR_BLUE
AddCard sld, 60, 310, 280, 160, "Submission Trends", _
"Daily submission trend chart visualizes reading frequency over time — helping users see engagement patterns and consistency.", CLR_PURPLE
AddCard sld, 360, 310, 280, 160, "Search & Filter", _
"Filter by site name, body system, or date range. Find any reading in seconds across a growing personal log of hundreds of entries.", CLR_TEAL
AddCard sld, 660, 310, 240, 160, "CSV Export", _
"Export all readings (not just filtered) to a CSV spreadsheet with date, site, system, pH, status, and notes — for clinical visits or personal records.", CLR_ACCENT
AddFooter sld, 13
End Sub
' =========================================================================
' SLIDE 14 — Market Positioning
' =========================================================================
Private Sub Slide_MarketPosition(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Market Positioning", "Multi-site pH Atlas — not just another ABG calculator"
AddText sld, 60, 120, 840, 24, "How we differ from existing tools:", 13, CLR_DARK, True
Dim competitors As Variant
competitors = Array( _
Array("MDCalc", "ABG-focused calculators", "13 body sites, not just arterial blood"), _
Array("LITFL", "Reference articles per topic", "Interactive spectrum + AI interpreter"), _
Array("MedSchool / Study Apps", "Static flashcards", "Live checker + quiz + community"), _
Array("Lab Reference Apps", "One-page range tables", "Electrolyte/organ impacts + buffering"))
Dim i As Integer
Dim y As Single
For i = 0 To UBound(competitors)
y = 160 + i * 62
Dim shp As Object
Set shp = sld.Shapes.AddShape(msoShapeRoundedRectangle, 60, y, 840, 50)
shp.Fill.ForeColor.RGB = CLR_WHITE
shp.Line.ForeColor.RGB = RGB(226, 232, 240)
shp.Line.Weight = 1
shp.Adjustments(1) = 0.08
shp.Shadow.Visible = msoTrue
shp.Shadow.Size = 2
shp.Shadow.OffsetX = 0
shp.Shadow.OffsetY = 1
shp.Shadow.Transparency = 0.7
AddText sld, 80, y + 8, 200, 20, competitors(i)(0), 11, CLR_DARK, True
AddText sld, 80, y + 28, 300, 18, competitors(i)(1), 9, CLR_MUTED, False
AddBar sld, 400, y + 8, 3, 34, CLR_TEAL
AddText sld, 415, y + 8, 460, 36, competitors(i)(2), 10, CLR_TEAL, False
Next i
AddText sld, 60, 430, 840, 20, "Only tool covering all 13 body sites with AI interpretation, quiz, community, and history tracking.", 10, CLR_DARK, True
AddFooter sld, 14
End Sub
' =========================================================================
' SLIDE 15 — Roadmap
' =========================================================================
Private Sub Slide_Roadmap(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Roadmap", "What's next for pH Atlas"
AddCard sld, 60, 130, 280, 180, "Near Term", _
"• Mobile app (iOS + Android)" & vbCrLf & _
"• Push notifications for abnormal readings" & vbCrLf & _
"• Weekly email report for admins" & vbCrLf & _
"• Expanded quiz question bank", CLR_TEAL
AddCard sld, 360, 130, 280, 180, "Mid Term", _
"• Additional body sites (bile, pancreatic, tears)" & vbCrLf & _
"• Trend analysis across multiple sites" & vbCrLf & _
"• Community voting / upvoting" & vbCrLf & _
"• Saved interpretation history", CLR_ACCENT
AddCard sld, 660, 130, 240, 180, "Long Term", _
"• Integration with EHR / lab systems" & vbCrLf & _
"• Multi-language support" & vbCrLf & _
"• Clinician-verified content track" & vbCrLf & _
"• API for educational partners", CLR_BLUE
AddCard sld, 60, 330, 840, 140, "Guiding Principles", _
"Every range stays sourced from peer-reviewed literature. Every result points toward consulting a qualified clinician. The platform remains community-friendly and accessible — a learning reference, not a diagnostic tool. Growth comes from breadth (more body sites) and depth (more clinical context per site), not from replacing professional medical advice.", CLR_PURPLE
AddFooter sld, 15
End Sub
' =========================================================================
' SLIDE 16 — Next Steps
' =========================================================================
Private Sub Slide_NextSteps(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
AddTitleBar sld, "Next Steps", "Immediate actions"
AddCard sld, 60, 130, 410, 170, "Product", _
"• Publish mobile app to App Store and Google Play" & vbCrLf & _
"• Run app scan against store guidelines" & vbCrLf & _
"• Instrument checker_used and quiz_session_started events" & vbCrLf & _
"• SEO-optimize Atlas page for 'clinical pH reference'", CLR_TEAL
AddCard sld, 490, 130, 410, 170, "Growth", _
"• Engage medical education communities (Reddit, Discord)" & vbCrLf & _
"• Share the 38-source Library page as a standalone resource" & vbCrLf & _
"• Short-form video demos (TikTok / Reels)" & vbCrLf & _
"• Target 500 weekly visitors in 60 days", CLR_ACCENT
AddCard sld, 60, 320, 410, 160, "Clinical", _
"• Audit all reference ranges against latest literature" & vbCrLf & _
"• Verify no verbatim content from competitors" & vbCrLf & _
"• Maintain original mnemonics and quiz content" & vbCrLf & _
"• Ensure all disclaimers are prominent", CLR_BLUE
AddCard sld, 490, 320, 410, 160, "Infrastructure", _
"• Connect custom domain (clinicalphatlas.com)" & vbCrLf & _
"• Unlink old domain (elite-pure-ph-pulse.com)" & vbCrLf & _
"• Verify RLS on all entities" & vbCrLf & _
"• Test weekly report workflow", CLR_PURPLE
AddFooter sld, 16
End Sub
' =========================================================================
' SLIDE 17 — Thank You
' =========================================================================
Private Sub Slide_ThankYou(prs As Object)
Dim sld As Object
Set sld = NewSlide(prs, ppLayoutBlank)
sld.Background.Fill.ForeColor.RGB = CLR_BG
AddBar sld, 0, 0, 960, 540, CLR_BG
AddBar sld, 0, 0, 960, 6, CLR_TEAL
AddText sld, 60, 180, 840, 50, "Thank You", 44, CLR_DARK, True, msoAlignCenter
AddBar sld, 430, 240, 100, 3, CLR_ACCENT
AddText sld, 60, 270, 840, 30, "pH Atlas — A community-friendly map of pH across the human body.", 16, CLR_MUTED, False, msoAlignCenter
AddText sld, 60, 340, 840, 20, "13 body sites · 6 systems · 38 sources · AI interpreter · Quiz · Community", 11, CLR_TEAL, False, msoAlignCenter
AddText sld, 60, 420, 840, 20, "Educational use only. Always interpret real readings alongside your clinician.", 9, CLR_MUTED, False, msoAlignCenter
AddFooter sld, 17
End Sub
Translate