fix: finish all patient related upgrades
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { describe, it, expect } from 'vitest'
|
||||
import {
|
||||
filterMedicationsForWindow,
|
||||
formatMedicationTooltip,
|
||||
getMedicationsNearTimestamp,
|
||||
xPixelForMedicationTime,
|
||||
} from '@/composables/chartMedications'
|
||||
|
||||
const observations = [
|
||||
{ observationCode: 'HEART_RATE', value: 72, recordedAt: '2026-06-19T11:00:00Z' },
|
||||
{ observationCode: 'HEART_RATE', value: 80, recordedAt: '2026-06-19T13:00:00Z' },
|
||||
{ observationCode: 'RESP_RATE', value: 18, recordedAt: '2026-06-19T12:00:00Z' },
|
||||
]
|
||||
|
||||
const medications = [
|
||||
{
|
||||
id: '1',
|
||||
drugName: 'Metoprolol',
|
||||
dose: 5,
|
||||
doseUnit: 'mg',
|
||||
route: 'IV',
|
||||
administeredAt: '2026-06-19T12:30:00Z',
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
drugName: 'Saline',
|
||||
dose: 500,
|
||||
doseUnit: 'mL',
|
||||
route: 'IV',
|
||||
administeredAt: '2026-06-19T10:00:00Z',
|
||||
},
|
||||
]
|
||||
|
||||
describe('chartMedications', () => {
|
||||
it('filtersMedicationsToObservationWindow', () => {
|
||||
const result = filterMedicationsForWindow(observations, 'HEART_RATE', medications)
|
||||
expect(result).toHaveLength(1)
|
||||
expect(result[0].drugName).toBe('Metoprolol')
|
||||
})
|
||||
|
||||
it('formatsMedicationTooltip', () => {
|
||||
expect(formatMedicationTooltip(medications[0])).toContain('Metoprolol 5mg (IV)')
|
||||
})
|
||||
|
||||
it('findsMedicationsNearTimestamp', () => {
|
||||
const target = new Date('2026-06-19T12:35:00Z').getTime()
|
||||
const near = getMedicationsNearTimestamp(medications, target, 10 * 60 * 1000)
|
||||
expect(near).toHaveLength(1)
|
||||
})
|
||||
|
||||
it('mapsMedicationTimeToChartPixel', () => {
|
||||
const chartArea = { left: 10, right: 110, top: 0, bottom: 100, width: 100, height: 100 }
|
||||
const timestamps = ['2026-06-19T11:00:00Z', '2026-06-19T13:00:00Z']
|
||||
const x = xPixelForMedicationTime('2026-06-19T12:00:00Z', timestamps, chartArea)
|
||||
expect(x).toBe(60)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user