// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors
// SPDX-License-Identifier: Apache-2.0
import { formatSearchQuery, Operator } from '@medplum/core';
import type { SearchRequest } from '@medplum/core';
import type { Patient } from '@medplum/fhirtypes';
import { SearchControl } from '@medplum/react';
import type { JSX } from 'react';
import { useNavigate } from 'react-router';
interface PatientObservationsProps {
patient: Patient;
}
export function PatientObservations(props: PatientObservationsProps): JSX.Element {
const navigate = useNavigate();
const search: SearchRequest = {
resourceType: 'Observation',
filters: [
{ code: 'patient', operator: Operator.EQUALS, value: `Patient/${props.patient.id}` },
{ code: 'category', operator: Operator.EQUALS, value: 'sdoh' },
],
fields: ['code', 'value[x]'],
};
return (
<SearchControl
search={search}
hideFilters={true}
hideToolbar={true}
onClick={(e) => navigate(`/${e.resource.resourceType}/${e.resource.id}`)?.catch(console.error)}
onChange={(e) => {
navigate(`/${search.resourceType}${formatSearchQuery(e.definition)}`)?.catch(console.error);
}}
/>
);
}