update readme
do Ward table missing critical clinical columns
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
const STALE_MS = 2 * 60 * 60 * 1000
|
||||
const CRITICAL_STALE_MS = 4 * 60 * 60 * 1000
|
||||
|
||||
export function formatLengthOfStay(admittedAt, asOf = new Date()) {
|
||||
if (!admittedAt) return '—'
|
||||
const start = new Date(admittedAt).getTime()
|
||||
if (Number.isNaN(start)) return '—'
|
||||
|
||||
const diffMs = Math.max(0, asOf.getTime() - start)
|
||||
const days = Math.floor(diffMs / (24 * 60 * 60 * 1000))
|
||||
if (days >= 1) return `${days}d`
|
||||
const hours = Math.floor(diffMs / (60 * 60 * 1000))
|
||||
if (hours >= 1) return `${hours}h`
|
||||
return '<1h'
|
||||
}
|
||||
|
||||
export function observationStaleness(lastObservationAt, status, asOf = new Date()) {
|
||||
if (status && status !== 'Active') return null
|
||||
if (!lastObservationAt) return 'missing'
|
||||
|
||||
const ageMs = asOf.getTime() - new Date(lastObservationAt).getTime()
|
||||
if (ageMs > CRITICAL_STALE_MS) return 'critical'
|
||||
if (ageMs > STALE_MS) return 'stale'
|
||||
return 'fresh'
|
||||
}
|
||||
|
||||
export function formatLastObservation(lastObservationAt) {
|
||||
if (!lastObservationAt) return 'No vitals'
|
||||
return new Date(lastObservationAt).toLocaleString([], {
|
||||
month: 'short',
|
||||
day: 'numeric',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
})
|
||||
}
|
||||
|
||||
export function stalenessClass(level) {
|
||||
if (level === 'critical') return 'text-red-600 dark:text-red-400'
|
||||
if (level === 'stale') return 'text-amber-600 dark:text-amber-400'
|
||||
if (level === 'missing') return 'text-gray-400 dark:text-gray-500'
|
||||
return 'text-gray-700 dark:text-gray-300'
|
||||
}
|
||||
|
||||
export function formatGcsClassification(classification) {
|
||||
if (!classification) return ''
|
||||
const map = {
|
||||
MILD: 'Mild',
|
||||
MODERATE: 'Mod',
|
||||
SEVERE: 'Severe',
|
||||
}
|
||||
return map[classification] ?? classification
|
||||
}
|
||||
|
||||
export function patientRoom(patient) {
|
||||
return patient.roomBed ?? patient.room ?? '—'
|
||||
}
|
||||
Reference in New Issue
Block a user