From 6b6bf728d50fb7b6512e6f6746ce879a82eb8ba1 Mon Sep 17 00:00:00 2001 From: ifedan-ed Date: Mon, 30 Mar 2026 22:41:17 +0000 Subject: [PATCH] v13: Increase JSON limit to 10MB, client-side size check for chart review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Raise express.json limit from 1MB to 10MB — handles large chart reviews with many notes (50 full clinic notes ≈ 600KB, well within new limit) - Client-side: warn user if payload >8MB, friendly toast if >30 notes - Bump to v13.0.0 --- docker-compose.yml | 2 +- package.json | 2 +- public/js/chartReview.js | 11 +++++++++++ server.js | 9 +++++---- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e4cf972..38b1ec2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: pediatric-scribe: - image: danielonyejesi/pediatric-ai-scribe-v3:v12 + image: danielonyejesi/pediatric-ai-scribe-v3:v13 ports: - "3552:3000" env_file: diff --git a/package.json b/package.json index fb9d832..96bd719 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pediatric-ai-scribe", - "version": "12.0.0", + "version": "13.0.0", "description": "AI-powered pediatric clinical documentation platform", "main": "server.js", "scripts": { diff --git a/public/js/chartReview.js b/public/js/chartReview.js index e7523a1..13d38ed 100644 --- a/public/js/chartReview.js +++ b/public/js/chartReview.js @@ -123,6 +123,17 @@ return; } + // Warn if payload is very large (>8MB = approaching 10MB server limit) + var payloadEstimate = JSON.stringify({ visits: visits, subspecialty: subspecialty, edVisits: edVisits, labs: labs }).length; + if (payloadEstimate > 8 * 1024 * 1024) { + showToast('Notes are very large (' + Math.round(payloadEstimate / 1024 / 1024) + 'MB). Consider trimming some notes.', 'warning'); + return; + } + var totalNotes = visits.length + subspecialty.length + edVisits.length; + if (totalNotes > 30) { + showToast('Processing ' + totalNotes + ' notes — this may take a moment...', 'info'); + } + showLoading('Generating chart review...'); fetch('/api/generate-chart-review', { diff --git a/server.js b/server.js index b3b49f9..d61b75d 100644 --- a/server.js +++ b/server.js @@ -53,9 +53,10 @@ app.use(cors({ app.use(cookieParser()); // ============================================================ -// BODY LIMITS — 1mb for JSON, transcribe uses multipart (no limit here) +// BODY LIMITS — 10mb for JSON (chart review with many notes can be large), +// transcribe uses multipart (25mb limit set in multer) // ============================================================ -app.use(express.json({ limit: '1mb' })); +app.use(express.json({ limit: '10mb' })); // ============================================================ // RATE LIMITING @@ -142,7 +143,7 @@ app.get('/api/models', async (req, res) => { const { activeProvider } = require('./src/utils/ai'); app.get('/api/health', (req, res) => { res.json({ - status: 'running', version: '12.0.0', provider: activeProvider, + status: 'running', version: '13.0.0', provider: activeProvider, timestamp: new Date().toISOString(), openrouter: process.env.OPENROUTER_API_KEY ? 'configured' : 'missing', bedrock: process.env.AWS_BEDROCK_REGION ? 'configured' : 'not configured', @@ -209,7 +210,7 @@ const PORT = process.env.PORT || 3000; server.listen(PORT, () => { console.log(''); console.log('=========================================='); - console.log('🏥 PEDIATRIC AI SCRIBE v12.0'); + console.log('🏥 PEDIATRIC AI SCRIBE v13.0'); console.log('=========================================='); console.log('🌐 http://localhost:' + PORT); console.log('🤖 Provider: ' + activeProvider);