Skip to main content
Glama
ServiceRequestTimeline.tsx2.4 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import type { MedplumClient, ProfileResource } from '@medplum/core'; import { createReference } from '@medplum/core'; import type { Attachment, Group, Patient, Reference, ResourceType, ServiceRequest } from '@medplum/fhirtypes'; import type { JSX } from 'react'; import type { ResourceTimelineProps } from '../ResourceTimeline/ResourceTimeline'; import { ResourceTimeline } from '../ResourceTimeline/ResourceTimeline'; export interface ServiceRequestTimelineProps extends Pick<ResourceTimelineProps<ServiceRequest>, 'getMenu'> { readonly serviceRequest: ServiceRequest | Reference<ServiceRequest>; } export function ServiceRequestTimeline(props: ServiceRequestTimelineProps): JSX.Element { const { serviceRequest, ...rest } = props; return ( <ResourceTimeline value={serviceRequest} loadTimelineResources={async (medplum: MedplumClient, resourceType: ResourceType, id: string) => { const ref = `${resourceType}/${id}`; const _count = 100; return Promise.allSettled([ medplum.readHistory('ServiceRequest', id), medplum.search('Communication', { 'based-on': ref, _count }), medplum.search('DiagnosticReport', { 'based-on': ref, _count }), medplum.search('Media', { 'based-on': ref, _count }), medplum.search('DocumentReference', { related: ref, _count }), medplum.search('Task', { _filter: `based-on eq ${ref} or focus eq ${ref} or subject eq ${ref}`, _count }), ]); }} createCommunication={(resource: ServiceRequest, sender: ProfileResource, text: string) => ({ resourceType: 'Communication', status: 'completed', basedOn: [createReference(resource)], subject: resource.subject as Reference<Group | Patient>, sender: createReference(sender), sent: new Date().toISOString(), payload: [{ contentString: text }], })} createMedia={(resource: ServiceRequest, operator: ProfileResource, content: Attachment) => ({ resourceType: 'Media', status: 'completed', basedOn: [createReference(resource)], subject: resource.subject, operator: createReference(operator), issued: new Date().toISOString(), content, })} {...rest} /> ); }

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