+
+ Unified clinical picture
+
+
+ One view pulls together this morning's Grade 3 nausea, a{' '}
+ heart-rate anomaly trending about +2.3 bpm per day with resting HR{' '}
+ up 16 bpm over baseline, and declining sleep and activity versus this
+ participant's usual pattern.
+
+
+
+ Active alert
+
+ {UNIFIED_ALERT_TEXT}
+
+
+
{tabs.map((tab) => (
)}
@@ -158,13 +277,22 @@ export function PatientDetailPage({ patientId, onBack }: PatientDetailPageProps)
{activeTab === 'symptoms' && (
- {symptomsLoading ?
Loading symptoms...
: symptoms?.map((symptom) => (
-
-
{symptom.meddra_pt_term || 'Unclassified'} (Grade {symptom.severity_grade || '?'})
-
Original text: "{symptom.symptom_text}"
-
Onset: {symptom.onset_date} | Reviewed: {symptom.crc_reviewed ? 'Yes' : 'No'}
-
- ))}
+ {symptomsLoading ? (
+
Loading symptoms...
+ ) : (
+ symptoms?.map((symptom) => (
+
+
+ {symptom.meddra_pt_term || 'Unclassified'}
+ {symptom.severity_grade != null ? ` · Grade ${symptom.severity_grade}` : ''}
+
+
Patient report: “{symptom.symptom_text}”
+
+ Onset: {symptom.onset_date ?? '—'} · CRC reviewed: {symptom.crc_reviewed ? 'Yes' : 'Pending'}
+
+
+ ))
+ )}
{(!symptoms || symptoms.length === 0) && !symptomsLoading &&
No symptoms found.
}
)}
diff --git a/apps/dashboard/vite.config.ts b/apps/dashboard/vite.config.ts
index ee452d8..feadb26 100644
--- a/apps/dashboard/vite.config.ts
+++ b/apps/dashboard/vite.config.ts
@@ -1,15 +1,23 @@
-import { defineConfig } from 'vite'
+import { defineConfig, loadEnv } from 'vite'
import react from '@vitejs/plugin-react'
// https://vite.dev/config/
-export default defineConfig({
- plugins: [react()],
- server: {
- proxy: {
- '/api': {
- target: process.env.VITE_BACKEND_URL || 'http://localhost:8000',
- changeOrigin: true,
+export default defineConfig(({ mode }) => {
+ // loadEnv reads apps/dashboard/.env* so VITE_BACKEND_URL is available here
+ // (process.env alone does not load .env for this file).
+ const env = loadEnv(mode, process.cwd(), '')
+ const backendUrl =
+ env.VITE_BACKEND_URL || 'http://127.0.0.1:8001'
+
+ return {
+ plugins: [react()],
+ server: {
+ proxy: {
+ '/api': {
+ target: backendUrl,
+ changeOrigin: true,
+ },
},
},
- },
+ }
})
diff --git a/docker-compose.yml b/docker-compose.yml
index 0b45012..dd19c2d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- ./db/init.sql:/docker-entrypoint-initdb.d/01-schema.sql
- ./db/seed.sql:/docker-entrypoint-initdb.d/02-seed.sql
ports:
- - "5432:5432"
+ - "5434:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tp_admin -d trialpulse"]
interval: 5s
@@ -86,7 +86,7 @@ services:
LIVEKIT_API_SECRET: devsecret
ENVIRONMENT: development
ports:
- - "8000:8000"
+ - "8001:8000"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/health"]
interval: 10s