Remove unused files

This commit is contained in:
2025-12-03 21:48:47 +00:00
parent bbdfc5f894
commit 0b88b3d5e5
4 changed files with 0 additions and 249 deletions

View File

@@ -1,119 +0,0 @@
/**
* Deviation List Component
*
* Tracks and manages deviations from the planned medication schedule.
* Supports adding, editing, and deleting deviations with automatic or
* manual timestamps. Each deviation can be marked as planned or actual.
*
* @author Andreas Weyer
* @license MIT
*/
import React from 'react';
import { FormTimeInput } from './ui/form-time-input';
import { FormNumericInput } from './ui/form-numeric-input';
import { Card, CardContent, CardHeader, CardTitle } from './ui/card';
import { Button } from './ui/button';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './ui/select';
import { Switch } from './ui/switch';
import { Label } from './ui/label';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './ui/tooltip';
import { X } from 'lucide-react';
const DeviationList = ({
deviations,
doseIncrement,
simulationDays,
onAddDeviation,
onRemoveDeviation,
onDeviationChange,
t
}: any) => {
return (
<Card className="bg-amber-50/50 border-amber-200">
<CardHeader>
<CardTitle>{t.deviationsFromPlan}</CardTitle>
</CardHeader>
<CardContent className="space-y-2">
{deviations.map((dev: any, index: number) => (
<div key={index} className="relative flex items-start gap-3 p-3 bg-card rounded-lg border flex-wrap">
<div className="flex items-center gap-3 flex-1 flex-wrap">
<Select
value={String(dev.dayOffset || 0)}
onValueChange={val => onDeviationChange(index, 'dayOffset', parseInt(val, 10))}
>
<SelectTrigger className="w-28">
<SelectValue />
</SelectTrigger>
<SelectContent>
{[...Array(parseInt(simulationDays, 10) || 1).keys()].map(day => (
<SelectItem key={day} value={String(day)}>
{t.day} {day + 1}
</SelectItem>
))}
</SelectContent>
</Select>
<FormTimeInput
value={dev.time}
onChange={newTime => onDeviationChange(index, 'time', newTime)}
required={true}
errorMessage={t.timeRequired || 'Time is required'}
/>
<FormNumericInput
value={dev.dose}
onChange={newDose => onDeviationChange(index, 'dose', newDose)}
increment={doseIncrement}
min={0}
unit={t.mg}
required={true}
errorMessage={t.doseRequired || 'Dose is required'}
/>
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<div className="flex items-center gap-2">
<Switch
id={`add_dose_${index}`}
checked={dev.isAdditional}
onCheckedChange={checked => onDeviationChange(index, 'isAdditional', checked)}
/>
<Label htmlFor={`add_dose_${index}`} className="text-xs whitespace-nowrap">
{t.additional}
</Label>
</div>
</TooltipTrigger>
<TooltipContent>
<p>{t.additionalTooltip}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div>
<Button
type="button"
variant="outline"
size="icon"
onClick={() => onRemoveDeviation(index)}
className="absolute top-3 right-3 text-destructive hover:bg-destructive hover:text-destructive-foreground border-destructive/30"
>
<X className="h-4 w-4" />
</Button>
</div>
))}
<Button
type="button"
onClick={onAddDeviation}
className="w-full bg-amber-500 hover:bg-amber-600 text-white"
>
{t.addDeviation}
</Button>
</CardContent>
</Card>
);
};
export default DeviationList;

View File

@@ -1,48 +0,0 @@
/**
* Dose Schedule Component
*
* Manages up to 5 daily dose time slots with time and dose amount inputs.
* Provides validation and allows empty entries for flexible scheduling.
*
* @author Andreas Weyer
* @license MIT
*/
import React from 'react';
import { FormTimeInput } from './ui/form-time-input';
import { FormNumericInput } from './ui/form-numeric-input';
import { Card, CardContent, CardHeader, CardTitle } from './ui/card';
const DoseSchedule = ({ doses, doseIncrement, onUpdateDoses, t }: any) => {
return (
<Card>
<CardHeader>
<CardTitle>{t.myPlan}</CardTitle>
</CardHeader>
<CardContent className="space-y-3">
{doses.map((dose: any, index: number) => (
<div key={index} className="flex items-center gap-3">
<FormTimeInput
value={dose.time}
onChange={newTime => onUpdateDoses(doses.map((d: any, i: number) => i === index ? {...d, time: newTime} : d))}
required={true}
errorMessage={t.timeRequired || 'Time is required'}
/>
<FormNumericInput
value={dose.dose}
onChange={newDose => onUpdateDoses(doses.map((d: any, i: number) => i === index ? {...d, dose: newDose} : d))}
increment={doseIncrement}
min={0}
unit={t.mg}
required={true}
errorMessage={t.doseRequired || 'Dose is required'}
/>
<span className="text-sm text-muted-foreground flex-1">{t[dose.label] || dose.label}</span>
</div>
))}
</CardContent>
</Card>
);
};
export default DoseSchedule;

View File

@@ -1,44 +0,0 @@
/**
* Suggestion Panel Component
*
* Displays dose correction suggestions based on deviations from the plan.
* Shows recommended time and dose adjustments with apply button.
*
* @author Andreas Weyer
* @license MIT
*/
import React from 'react';
import { Card, CardContent, CardHeader, CardTitle } from './ui/card';
import { Button } from './ui/button';
const SuggestionPanel = ({ suggestion, onApplySuggestion, t }: any) => {
if (!suggestion) return null;
return (
<Card className="bg-sky-50/50 border-l-4 border-sky-500">
<CardHeader>
<CardTitle className="text-lg">{t.whatIf}</CardTitle>
</CardHeader>
<CardContent>
{suggestion.dose ? (
<div className="space-y-3">
<p className="text-sm text-sky-800">
{t.suggestion}: <span className="font-bold">{suggestion.dose}{t.mg}</span> ({t.instead} {suggestion.originalDose}{t.mg}) {t.at} <span className="font-bold">{suggestion.time}</span>.
</p>
<Button
onClick={onApplySuggestion}
className="w-full bg-sky-600 hover:bg-sky-700"
>
{t.applySuggestion}
</Button>
</div>
) : (
<p className="text-sm text-sky-800">{suggestion.text}</p>
)}
</CardContent>
</Card>
);
};
export default SuggestionPanel;

View File

@@ -1,38 +0,0 @@
/**
* Dose Correction Suggestion Engine
*
* Generates dose correction suggestions when deviations occur from the planned
* medication schedule. Calculates required dose adjustments and optimal timing
* to maintain therapeutic concentrations.
*
* @author Andreas Weyer
* @license MIT
*/
import { timeToMinutes } from './timeUtils';
import { calculateCombinedProfile } from './calculations';
import type { DayGroup, SteadyStateConfig, PkParams } from '../constants/defaults';
interface SuggestionResult {
text?: string;
time?: string;
dose?: string;
isAdditional?: boolean;
originalDose?: string;
dayOffset?: number;
}
interface Translations {
noSuitableNextDose: string;
noSignificantCorrection: string;
}
export const generateSuggestion = (
days: DayGroup[],
steadyStateConfig: SteadyStateConfig,
pkParams: PkParams
): SuggestionResult | null => {
// Suggestion feature is deprecated in day-based system
// This function is kept for backward compatibility but returns null
return null;
};