Skip to main content
Glama
ConditionModal.tsx2.84 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import { CodeableConceptInput, Form, SubmitButton } from '@medplum/react'; import { Group, Stack } from '@mantine/core'; import { useCallback, useState } from 'react'; import type { JSX } from 'react'; import { addProfileToResource, createReference, HTTP_HL7_ORG, HTTP_TERMINOLOGY_HL7_ORG } from '@medplum/core'; import type { CodeableConcept, Condition, Encounter, Patient } from '@medplum/fhirtypes'; import { showErrorNotification } from '../../utils/notifications'; export interface ConditionDialogProps { readonly patient: Patient; readonly encounter: Encounter; readonly onSubmit: (condition: Condition) => void; } export default function ConditionModal(props: ConditionDialogProps): JSX.Element { const { patient, encounter, onSubmit } = props; const [diagnosis, setDiagnosis] = useState<CodeableConcept | undefined>(); const [clinicalStatus, setClinicalStatus] = useState<CodeableConcept | undefined>(); const handleSubmit = useCallback(() => { if (!diagnosis) { showErrorNotification('Please select a diagnosis'); return; } const updatedCondition: Condition = addProfileToResource( { resourceType: 'Condition', category: [ { coding: [ { system: HTTP_TERMINOLOGY_HL7_ORG + '/CodeSystem/condition-category', code: 'problem-list-item', display: 'Problem List Item', }, ], text: 'Problem List Item', }, ], subject: createReference(patient), encounter: encounter && createReference(encounter), code: { coding: diagnosis.coding ? [...diagnosis.coding] : [], }, clinicalStatus, }, HTTP_HL7_ORG + '/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns' ); onSubmit(updatedCondition); }, [patient, encounter, diagnosis, clinicalStatus, onSubmit]); return ( <Form onSubmit={handleSubmit}> <Stack> <CodeableConceptInput binding="http://hl7.org/fhir/sid/icd-10-cm/vs" label="ICD-10 Code" name="diagnosis" path="Condition.code" required onChange={(diagnosis) => setDiagnosis(diagnosis)} /> <CodeableConceptInput name="clinicalStatus" label="Status" path="Condition.clinicalStatus" binding={HTTP_HL7_ORG + '/fhir/ValueSet/condition-clinical'} onChange={(clinicalStatus) => setClinicalStatus(clinicalStatus)} required /> <Group justify="flex-end" gap={4} mt="md"> <SubmitButton>Save</SubmitButton> </Group> </Stack> </Form> ); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/medplum/medplum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server