import { cache } from 'react';

import { getAnalysisResultsForDoctor } from '@kit/doctor/services/doctor-analysis.service';
import { PageBody, PageHeader } from '@kit/ui/page';

import AnalysisView from '../../_components/analysis-view';
import { DoctorGuard } from '../../_components/doctor-guard';

async function AnalysisPage({
  params,
}: {
  params: Promise<{
    id: string;
  }>;
}) {
  const { id } = await params;
  const analysisResultDetails = await loadResult(Number(id));

  if (!analysisResultDetails) {
    return null;
  }

  return (
    <>
      <PageHeader />
      <PageBody>
        <AnalysisView
          patient={analysisResultDetails.patient}
          order={analysisResultDetails.order}
          analyses={analysisResultDetails.analysisResponse}
          feedback={analysisResultDetails.doctorFeedback}
        />
      </PageBody>
    </>
  );
}

export default DoctorGuard(AnalysisPage);
const loadResult = cache(getAnalysisResultsForDoctor);
