arazzo: 1.0.1
info:
title: Medplum Clinical Data Query
summary: Locate a patient by name, read the Patient resource, then pull that patient's Observations.
description: >-
A US Core clinical-data read flow against the Medplum FHIR R4 backend. A
patient is located by name through a type-level search, read by id, and then
that patient's Observations (US Core vital signs and laboratory results) are
retrieved by patient reference. This follows the FHIR RESTful API search and
read interactions used to assemble a patient's clinical summary. Every step
inlines its request so the flow is self-contained.
version: 1.0.0
x-realizes-capability-ids:
- BC-2900.60
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-2900.60
capability_name: Healthcare Interoperability Operations
spec: medplum-fhir-api-openapi.yml
confidence: 0.7
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: fhirApi
url: ../openapi/medplum-fhir-api-openapi.yml
type: openapi
workflows:
- workflowId: clinical-data-query
summary: Find a patient and retrieve that patient's clinical Observations.
description: >-
Searches Patient by name, reads the matched Patient by id, and searches
Observation for that patient.
inputs:
type: object
required:
- patientName
properties:
patientName:
type: string
description: Patient name used to locate the patient.
steps:
- stepId: findPatients
description: Locate the patient by name.
operationId: search
parameters:
- name: resourceType
in: path
value: Patient
- name: name
in: query
value: $inputs.patientName
successCriteria:
- condition: $statusCode == 200
outputs:
patientId: $response.body#/entry/0/resource/id
- stepId: readPatient
description: Read the matched Patient resource by id.
operationId: readResource
parameters:
- name: resourceType
in: path
value: Patient
- name: id
in: path
value: $steps.findPatients.outputs.patientId
successCriteria:
- condition: $statusCode == 200
outputs:
patient: $response.body
- stepId: findObservations
description: Retrieve the patient's US Core Observations by patient reference.
operationId: search
parameters:
- name: resourceType
in: path
value: Observation
- name: patient
in: query
value: $steps.findPatients.outputs.patientId
successCriteria:
- condition: $statusCode == 200
outputs:
observations: $response.body
outputs:
patientId: $steps.findPatients.outputs.patientId
patient: $steps.readPatient.outputs.patient
observations: $steps.findObservations.outputs.observations
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.