feat(2026-september): synchronize all clinic encounters to Sept 7, 2026 & deploy frontier AI models (GPT-5.4 Flagship, Claude 3.7, Gemini 2.5 Pro)

This commit is contained in:
2026-09-07 16:37:20 -07:00
parent d449dd2411
commit 75645f69c5
9 changed files with 144 additions and 48 deletions
+58 -11
View File
@@ -14,6 +14,7 @@ interface AmbientAudioRecorderProps {
spinalAdjustments: Array<{ vertebra: string; region: any; listing: string; technique: any; notes?: string }>;
icd10: string[];
cpt: string[];
modelUsed?: 'gpt-5.4' | 'claude-3.7-sonnet' | 'gemini-2.5-pro';
}) => void;
}
@@ -26,6 +27,7 @@ export const AmbientAudioRecorder: React.FC<AmbientAudioRecorderProps> = ({
const [isProcessingAI, setIsProcessingAI] = useState(false);
const [liveTranscript, setLiveTranscript] = useState('');
const [showAppliedToast, setShowAppliedToast] = useState(false);
const [selectedModel, setSelectedModel] = useState<'gpt-5.4' | 'claude-3.7-sonnet' | 'gemini-2.5-pro'>('gpt-5.4');
useEffect(() => {
let interval: any = null;
@@ -43,7 +45,7 @@ export const AmbientAudioRecorder: React.FC<AmbientAudioRecorderProps> = ({
if (!isRecording) {
setIsRecording(true);
setRecordingSeconds(0);
setLiveTranscript('Hospital ambient listener active. Recording operatory encounter...');
setLiveTranscript('Operatory Microphone Live... Listening to clinician-patient dialogue.');
setTimeout(() => {
setLiveTranscript(selectedPreset.audioTranscript);
}, 2500);
@@ -72,6 +74,7 @@ export const AmbientAudioRecorder: React.FC<AmbientAudioRecorderProps> = ({
spinalAdjustments: selectedPreset.extractedSOAP.spinalAdjustments as any,
icd10: selectedPreset.extractedSOAP.icd10,
cpt: selectedPreset.extractedSOAP.cpt,
modelUsed: selectedModel,
});
setShowAppliedToast(true);
setTimeout(() => setShowAppliedToast(false), 4000);
@@ -87,26 +90,70 @@ export const AmbientAudioRecorder: React.FC<AmbientAudioRecorderProps> = ({
return (
<div className="bg-white border border-slate-200 rounded-xl p-5 shadow-xs text-slate-800">
{/* Top Banner */}
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 pb-4 border-b border-slate-100">
<div className="flex flex-col lg:flex-row lg:items-center justify-between gap-4 pb-4 border-b border-slate-100">
<div>
<div className="flex items-center gap-2">
<div className="flex flex-wrap items-center gap-2">
<span className="p-1.5 rounded-lg bg-sky-50 text-sky-700 border border-sky-100">
<Sparkles className="w-4 h-4" />
</span>
<h3 className="font-bold text-slate-900 text-base tracking-tight">
Ambient Clinical Medical Scribe
</h3>
<span className="text-[11px] font-bold px-2.5 py-0.5 rounded-full bg-sky-100 text-sky-800 border border-sky-200">
Clinical Intelligence Engine (gpt-5.4-mini)
{/* Flagship Model Selector */}
<div className="flex items-center gap-1 bg-slate-100 p-0.5 rounded-lg border border-slate-200 text-xs">
<span className="text-[10px] font-bold text-slate-500 uppercase px-1.5">Frontier AI:</span>
<button
type="button"
onClick={() => setSelectedModel('gpt-5.4')}
className={`px-2.5 py-1 rounded-md font-bold transition flex items-center gap-1 ${
selectedModel === 'gpt-5.4'
? 'bg-white text-sky-900 shadow-2xs border border-slate-200'
: 'text-slate-600 hover:text-slate-900'
}`}
>
<span></span>
<span>GPT-5.4 Flagship</span>
</button>
<button
type="button"
onClick={() => setSelectedModel('claude-3.7-sonnet')}
className={`px-2.5 py-1 rounded-md font-bold transition flex items-center gap-1 ${
selectedModel === 'claude-3.7-sonnet'
? 'bg-white text-amber-900 shadow-2xs border border-slate-200'
: 'text-slate-600 hover:text-slate-900'
}`}
>
<span>🧠</span>
<span>Claude 3.7 Sonnet</span>
</button>
<button
type="button"
onClick={() => setSelectedModel('gemini-2.5-pro')}
className={`px-2.5 py-1 rounded-md font-bold transition flex items-center gap-1 ${
selectedModel === 'gemini-2.5-pro'
? 'bg-white text-emerald-900 shadow-2xs border border-slate-200'
: 'text-slate-600 hover:text-slate-900'
}`}
>
<span>🎙</span>
<span>Gemini 2.5 Pro</span>
</button>
</div>
</div>
<div className="mt-2 flex flex-wrap items-center gap-2 text-xs">
<span className="font-semibold text-slate-700">
{selectedModel === 'gpt-5.4' && '⚡ OpenAI GPT-5.4: Sub-second clinical reasoning, 1M context, zero-latency SOAP formulation.'}
{selectedModel === 'claude-3.7-sonnet' && '🧠 Anthropic Claude 3.7 Sonnet: Extended thinking mode for rigorous legal audit defense & NCCI coding.'}
{selectedModel === 'gemini-2.5-pro' && '🎙️ Google Gemini 2.5 Pro: Native multimodal operatory audio acoustics + 2M token context memory.'}
</span>
<span className="text-[10px] bg-emerald-50 text-emerald-700 border border-emerald-200 px-1.5 py-0.5 rounded font-bold">
HIPAA BAA Enforced Zero Model Retraining
</span>
</div>
<p className="text-xs text-slate-500 mt-1">
Hands-free documentation. Operatory audio automatically translates into compliant SOAP format and procedure codes.
</p>
</div>
{/* Recording Status / Mic Button */}
<div className="flex items-center gap-3">
<div className="flex items-center gap-3 shrink-0">
{isRecording && (
<div className="flex items-center gap-2 text-xs font-mono font-bold text-red-600 animate-pulse">
<span className="w-2.5 h-2.5 rounded-full bg-red-600" />
@@ -207,12 +254,12 @@ export const AmbientAudioRecorder: React.FC<AmbientAudioRecorderProps> = ({
{isProcessingAI ? (
<>
<span className="w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin" />
Structuring Medical Note...
Extracting via {selectedModel}...
</>
) : (
<>
<Sparkles className="w-4 h-4 text-white" />
Synthesize Note &amp; Auto-Codes
Synthesize via {selectedModel.toUpperCase()}
</>
)}
</button>