feat(MED-168): update analysis results display

This commit is contained in:
2025-09-18 16:42:12 +03:00
parent d99016aa5e
commit 54209553ec
2 changed files with 35 additions and 11 deletions

View File

@@ -60,19 +60,14 @@ const Analysis = ({
const unit = results?.unit || ''; const unit = results?.unit || '';
const normLower = results?.normLower; const normLower = results?.normLower;
const normUpper = results?.normUpper; const normUpper = results?.normUpper;
const normStatus = results?.normStatus ?? null;
const [showTooltip, setShowTooltip] = useState(false); const [showTooltip, setShowTooltip] = useState(false);
const analysisResultLevel = useMemo(() => { const analysisResultLevel = useMemo(() => {
if (!results) { if (normStatus === null) {
return null; return null;
} }
if (results.responseValue === null || results.responseValue === undefined) {
return null;
}
const normStatus = results.normStatus;
switch (normStatus) { switch (normStatus) {
case 1: case 1:
return AnalysisResultLevel.WARNING; return AnalysisResultLevel.WARNING;
@@ -82,12 +77,13 @@ const Analysis = ({
default: default:
return AnalysisResultLevel.NORMAL; return AnalysisResultLevel.NORMAL;
} }
}, [results]); }, [normStatus]);
const isCancelled = Number(results?.status) === 5; const isCancelled = Number(results?.status) === 5;
const hasNestedElements = results?.nestedElements.length > 0; const hasNestedElements = results?.nestedElements.length > 0;
const normRangeText = normLower !== null ? `${normLower} - ${normUpper || ''}` : null; const normRangeText = normLower !== null ? `${normLower} - ${normUpper || ''}` : null;
const hasTextualResponse = hasIsNegative || hasIsWithinNorm;
return ( return (
<div className="border-border rounded-lg border px-5"> <div className="border-border rounded-lg border px-5">
@@ -127,10 +123,18 @@ const Analysis = ({
{isCancelled || !results || hasNestedElements ? null : ( {isCancelled || !results || hasNestedElements ? null : (
<> <>
<div className="flex items-center gap-3 sm:ml-auto"> <div className="flex items-center gap-3 sm:ml-auto">
<div className="font-semibold">{value}</div> <div
className={cn('font-semibold', {
'text-yellow-600': hasTextualResponse && analysisResultLevel === AnalysisResultLevel.WARNING,
'text-red-600': hasTextualResponse && analysisResultLevel === AnalysisResultLevel.CRITICAL,
'text-green-600': hasTextualResponse && analysisResultLevel === AnalysisResultLevel.NORMAL,
})}
>
{value}
</div>
<div className="text-muted-foreground text-sm">{unit}</div> <div className="text-muted-foreground text-sm">{unit}</div>
</div> </div>
{!(hasIsNegative || hasIsWithinNorm) && ( {!hasTextualResponse && (
<> <>
<div className="text-muted-foreground mx-8 flex flex-col-reverse gap-2 text-center text-sm sm:block sm:gap-0"> <div className="text-muted-foreground mx-8 flex flex-col-reverse gap-2 text-center text-sm sm:block sm:gap-0">
{normRangeText} {normRangeText}

View File

@@ -139,7 +139,7 @@ const big1: AnalysisTestResponse = {
"unit": null, "unit": null,
"normLower": null, "normLower": null,
"normUpper": 2, "normUpper": 2,
"normStatus": 0, "normStatus": 2,
"responseTime": "2024-02-29T10:13:01+00:00", "responseTime": "2024-02-29T10:13:01+00:00",
"responseValue": null, "responseValue": null,
"responseValueIsNegative": null, "responseValueIsNegative": null,
@@ -150,6 +150,26 @@ const big1: AnalysisTestResponse = {
"analysisElementOriginalId": "59156-0" "analysisElementOriginalId": "59156-0"
} }
}, },
{
"analysisIdOriginal": "59156-0",
"isWaitingForResults": false,
"analysisName": "Glükoos",
"results": {
"nestedElements": [],
"unit": null,
"normLower": null,
"normUpper": 2,
"normStatus": 0,
"responseTime": "2024-02-29T10:13:01+00:00",
"responseValue": null,
"responseValueIsNegative": null,
"responseValueIsWithinNorm": true,
"normLowerIncluded": false,
"normUpperIncluded": false,
"status": "4",
"analysisElementOriginalId": "59156-0"
}
},
{ {
"analysisIdOriginal": "13955-0", "analysisIdOriginal": "13955-0",
"isWaitingForResults": false, "isWaitingForResults": false,