Skip to main content
Glama
HeadlessPrescription.tsx2.13 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import { Button, Flex, Modal, Title } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { createReference } from '@medplum/core'; import type { MedicationRequest, Patient, Resource } from '@medplum/fhirtypes'; import { Document, ResourceForm, useMedplum } from '@medplum/react'; import { useEffect, useState } from 'react'; import type { JSX } from 'react'; import { PrescriptionTable } from './PrescriptionTable'; interface HeadlessPrescriptionProps { patient: Patient; } export function HeadlessPrescription(props: HeadlessPrescriptionProps): JSX.Element { const medplum = useMedplum(); const [prescriptions, setPrescriptions] = useState<MedicationRequest[]>([]); const [opened, { open, close }] = useDisclosure(); useEffect(() => { medplum .searchResources('MedicationRequest', { patient: `Patient/${props.patient.id}`, }) .then(setPrescriptions) .catch(console.error); }, [medplum, prescriptions, props.patient.id]); const medicationRequest: MedicationRequest = { resourceType: 'MedicationRequest', status: 'draft', intent: 'original-order', subject: createReference(props.patient), }; function handlePrescriptionChange(prescription: MedicationRequest): void { console.log(prescription); } function handleCreatePrescription(prescription: Resource): void { if (prescription.resourceType !== 'MedicationRequest') { throw new Error('Invalid resource type'); } console.log(prescription); close(); } return ( <Document> <Flex justify="space-between" mb="md"> <Title>Headless Prescription Management</Title> <Button onClick={open}>Create New Prescription</Button> </Flex> <PrescriptionTable prescriptions={prescriptions} onChange={handlePrescriptionChange} /> <Modal opened={opened} onClose={close}> <ResourceForm defaultValue={medicationRequest} onSubmit={handleCreatePrescription} /> </Modal> </Document> ); }

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