AI Scribe Rev 2.0

Recovery Network | Clinical Scribe Beta
RECOVERY NETWORK
when anyone, anywhere, reaches out for help
Clinical Scribe  ·  Beta
Access code not recognized — please try again.
or
Demo credentials
data that heals™
AUTHENTICATING
Establishing Link
RNI Scribe Beta
INITIALIZING...
RECOVERY NETWORK

Clinical Scribe

AI-assisted behavioral health documentation — signal-informed, clinician-signed.

Therapist · DAP
MD / Psychiatrist
Case Manager
Sarah M.
37F · Day 31 · IOP · OUD/AUD
48–96 hr relapse risk
HRV
Sleep
Drift
Signal sources
of 374
Microsoft Azure Kinect · FACS Analysis
Facial Action Coding System (Ekman) — 26 muscle-level AU codes · 4 kinematic signals · session active
LIVE
Voice analysis · C-SSRS proxy
Score
Session Capture
🎙
Record
Live audio
📋
Paste
Transcript
Demo
Loaded
0:00
Confirm consent above to enable
Please confirm patient consent above
Dr. Rivera transcribing session…
or
Switch to paste mode →
Transcript has speaker labels?
CLINICIAN: / CLIENT: format
CLINICIAN: [text]   CLIENT: [text]
Synthetic transcript loaded
Generating in 3
Sarah M.'s signals are loaded
247 signals · Therapist · DAP · Demo only
Prior note (optional — enables compression comparison)
Upload prior note
.txt · or drag and drop · or paste below
prior-note.txt loaded
or paste directly
The Council synthesizing signals…
Compression scorecard
Generated
words
Prior note
words
Compression
vs transcript
Formatting
preserved
Time saved
this session
Council synthesized of 374 signals this session — Wearable (12 devices): HRV, resting HR, SpO₂, skin conductance, sleep stages, activity cadence  ·  Video (30): 26 Ekman FACS action units + 4 body kinematics via Azure Kinect  ·  Voice (240): C-SSRS–anchored phrase library — hopelessness, ideation, withdrawal, affect flattening, agitation  ·  Behavioral (92): app engagement, session attendance, sleep regularity, social isolation index, medication adherence
Generated note — Dr. Rivera
72%
Auto-filled from patient signals
Green sections trusted · Amber sections verify · Red sections require your input
3 sections need your input
Signal data — auto-trusted
Verify & edit recommended
Your words required
By signing you confirm this note accurately reflects the clinical encounter and the signal data above. Time-to-sign is logged for quality metrics.
Note signed — thank you
Beta feedback
Was this note shorter than what you'd typically write?
Did the wearable and FACS signals add clinical value?
Was your formatting preserved?
Anything else?
Feedback recorded — this shapes the next build.
© 2026 Recovery Network Inc.  ·  data that heals™
'+f.name+'
'+f.st+'
'; }).join(''); // Voice document.getElementById('voice-cssrs').textContent=p.voice.cssrs+'/6'; document.getElementById('voice-cssrs').className='voice-cssrs '+p.voice.cssCls; document.getElementById('voice-label').textContent=p.voice.lbl; document.getElementById('voice-phrases').textContent=p.voice.phrases; } // ── ROLE ───────────────────────────────────────────────── var role='therapist'; function setRole(r,el){ role=r; document.querySelectorAll('.rtab').forEach(function(t){t.classList.remove('active');}); if(el)el.classList.add('active'); renderSignals(r); var lbls={therapist:'Therapist · DAP · '+PT[r].name,md:'MD / Psychiatrist · SOAP · '+PT[r].name,cm:'Case Manager · '+PT[r].name}; document.getElementById('demo-role-lbl').textContent=lbls[r]; document.getElementById('transcript').value=''; document.getElementById('demo-loaded').style.display='none'; hideResults();cancelCd(); document.getElementById('spk-tog').checked=(r==='md'); toggleSpk(); } // ── METHOD ─────────────────────────────────────────────── var method='demo'; function setMethod(m){ method=m; ['rec','paste','demo'].forEach(function(x){ document.getElementById('mt-'+x).classList.toggle('active',x===m); var el=document.getElementById(x+'-pane'); el.style.display=(x===m)?'block':'none'; }); if(m==='demo'){ var p=PT[role]; document.getElementById('demo-ready-lbl').textContent=p.name+'\'s signals are loaded'; document.getElementById('demo-sub-lbl').textContent=p.sigs+' signals · '+{therapist:'Therapist · DAP',md:'MD / Psychiatrist',cm:'Case Manager'}[role]+' · Demo only'; var el=document.querySelector('#demo-pane > div');if(el){var c=el.cloneNode(true);c.querySelector('#demo-ready-lbl').textContent=p.name+"'s signals are loaded";c.querySelector('#demo-sub-lbl').textContent=p.sigs+' signals · '+{therapist:'Therapist · DAP',md:'MD / Psychiatrist',cm:'Case Manager'}[role]+' · Demo only';c.querySelector('button').>'+{wearable:'Wearable',facs:'FACS video',voice:'Voice analysis',session:'Session audio',clinician:'Clinician required'}[src]+''):''; var h='
'+header+'
'+srcBadge+'
'; if(dot==='r'){ // Red = editable textarea, clinician must complete var ph=scaffolds?scaffolds.join('\n'):'Your clinical judgment here…'; var uid='red_'+header.replace(/\s+/g,'_').toLowerCase(); h+=''; h+='
✎ Your words required — not pre-filled
'; redCount++; } else if(dot==='a'){ // Amber = pre-filled but editable textarea h+=''; h+='
↻ Review and edit if needed
'; } else { // Green = read-only auto-data h+='
'+(body||'')+'
'; } return h+'
'; } function nsw(p){ return '
Council Signal Record
Locked with this note
Signals active at note generation · '+p.sigs+' of 374 sources active
HRV: '+p.hrv.v+' ms ('+p.hrv.t+')  ·  Sleep: '+p.sleep.v+' ('+p.sleep.t+')  ·  Behavioral drift: '+p.drift.v+'/100 ('+p.drift.lbl+')
FACS dominant: '+p.facs[0].au+' '+p.facs[0].name+' '+p.facs[0].lvl+'%  ·  '+p.facs[1].au+' '+p.facs[1].name+' '+p.facs[1].lvl+'%
Voice C-SSRS proxy: '+p.voice.cssrs+'/6 ('+p.voice.lbl+')  ·  '+p.voice.phrases+'
72-hr relapse risk: '+p.risk.v+'% ('+p.risk.lbl+')  ·  '+p.risk.win+'
'; } function autoExpand(el){el.style.height='auto';el.style.height=el.scrollHeight+'px';} function autoExpandAll(){document.querySelectorAll('.nbody-edit,.nbody-amber').forEach(function(el){autoExpand(el);el.addEventListener('input',function(){autoExpand(this);});});} function updateCompletion(){ var edits=document.querySelectorAll('.nbody-edit'); var filled=0; edits.forEach(function(el){ var ok=el.value.trim().length>10; el.classList.toggle('filled',ok); if(ok)filled++; }); var total=edits.length; var remaining=total-filled; // base 72% auto-filled + up to 28% from clinician edits var pct=total>0?Math.round(72+(filled/total)*28):72; document.getElementById('nc-pct').textContent=pct+'%'; document.getElementById('nc-bar').style.width=pct+'%'; document.getElementById('nc-required').textContent=remaining>0?(remaining+' section'+(remaining>1?'s':'')+' need your input'):'✓ All sections complete'; document.getElementById('nc-required').style.color=remaining>0?'var(--amber)':'var(--green)'; // Enable/hint sign button document.getElementById('sign-btn').disabled=remaining>0; document.getElementById('sign-btn').style.opacity=remaining>0?'0.5':'1'; document.getElementById('sign-btn').title=remaining>0?('Complete '+remaining+' red section'+(remaining>1?'s':'')+' before signing'):'Ready to sign'; } // ── GENERATE ───────────────────────────────────────────── var tsStart=null; function generateNote(){ cancelCd(); if(method!=='demo'&&document.getElementById('transcript').value.trim().length<20)return; document.getElementById('gen-btn').disabled=true; document.getElementById('gen-state').style.display='flex'; hideResults(); setTimeout(function(){ document.getElementById('gen-state').style.display='none'; document.getElementById('gen-btn').disabled=false; renderResults(); },1800); } function renderResults(){ var prior=document.getElementById('prior-note').value.trim(); var pw=prior?cw(prior):0; var tx=method==='demo'?TX[role]:document.getElementById('transcript').value; var tw=cw(tx); var gw=GW[role]; var base=pw>0?pw:tw; // Pre-bake realistic compression in demo mode when no prior note — transcript vs note math zeros out var DEMO_PCT={therapist:38,md:34,cm:41}; var pct=method==='demo'&&pw===0?DEMO_PCT[role]:(base>0?Math.round(((base-gw)/base)*100):0); if(pct<0)pct=0; var sMin=Math.round((pct/100)*45); var sYr=Math.round((sMin*200)/60); document.getElementById('sc-gen').textContent=gw; if(pw>0){document.getElementById('sc-prior').textContent=pw;document.getElementById('sc-psub').textContent='words';} else{document.getElementById('sc-prior').innerHTML='Add above';document.getElementById('sc-psub').textContent='to compare';} document.getElementById('sc-comp').textContent=pct>0?(pct+'% shorter'):'0%'; document.getElementById('sc-comp').className='sc-val hero-v'; document.getElementById('sc-csub').textContent=pw>0?'vs your last note':'vs transcript'; document.getElementById('sc-time').textContent=sMin>0?(sMin+' min'):'—'; document.getElementById('sc-tyr').textContent=sYr>0?('~'+sYr+' hrs / yr'):''; document.getElementById('sc-sigs').textContent=PT[role].sigs; try{ document.getElementById('note-display').innerHTML=buildNote(role); }catch(e){ document.getElementById('note-display').innerHTML='
Note generation error — please try again.
'; } document.getElementById('scorecard').style.display='block'; document.getElementById('note-out').style.display='block'; document.getElementById('sign-sec').style.display='block'; document.getElementById('sign-btn').disabled=true; document.getElementById('sign-btn').style.opacity='0.5'; document.getElementById('sign-btn').title='Complete the red sections before signing'; setTimeout(function(){autoExpandAll();updateCompletion();},50); tsStart=Date.now(); setTimeout(function(){document.getElementById('scorecard').scrollIntoView({behavior:'smooth',block:'start'});},80); } function hideResults(){ ['scorecard','note-out','sign-sec','fb-sec'].forEach(function(id){document.getElementById(id).style.display='none';}); document.getElementById('sign-ok').classList.remove('show'); } function cw(t){return t.trim().split(/\s+/).filter(Boolean).length;} function copyNote(){ var t=document.getElementById('note-display').innerText||''; navigator.clipboard.writeText(t).then(function(){document.getElementById('copy-lbl').textContent='Copied!';setTimeout(function(){document.getElementById('copy-lbl').textContent='Copy note';},2000);}); } function signNote(){ document.getElementById('sign-btn').style.display='none'; document.getElementById('sign-ok').classList.add('show'); document.getElementById('fb-sec').style.display='block'; setTimeout(function(){document.getElementById('fb-sec').scrollIntoView({behavior:'smooth',block:'start'});},150); } function fb(el){el.parentElement.querySelectorAll('.fb-btn').forEach(function(b){b.classList.remove('sel');});el.classList.add('sel');} function submitFb(){ document.getElementById('fb-submit').style.display='none'; document.getElementById('fb-done').classList.add('show'); document.querySelectorAll('.fb-btn').forEach(function(b){b.disabled=true;}); document.getElementById('fb-text').disabled=true; } function handlePriorFile(input){ var file=input.files[0];if(!file)return; var reader=new FileReader(); reader.onload=function(e){ document.getElementById('prior-note').value=e.target.result; document.getElementById('prior-upload-zone').style.display='none'; document.getElementById('prior-loaded').style.display='flex'; document.getElementById('prior-loaded-name').textContent=file.name+' loaded'; }; reader.readAsText(file); } function handlePriorDrop(e){ e.preventDefault(); document.getElementById('prior-upload-zone').style.borderColor='var(--bdr)'; var file=e.dataTransfer.files[0];if(!file)return; var inp=document.getElementById('prior-file-input'); var dt=new DataTransfer();dt.items.add(file);inp.files=dt.files; handlePriorFile(inp); } function clearPriorNote(){ document.getElementById('prior-note').value=''; document.getElementById('prior-file-input').value=''; document.getElementById('prior-loaded').style.display='none'; document.getElementById('prior-upload-zone').style.display='flex'; } // ── INIT ───────────────────────────────────────────────── window.addEventListener('load',function(){ renderSignals('therapist'); setMethod('demo'); // ensure initial signal card is visible document.getElementById('signal-card').classList.add('loaded'); });