Medplum · Arazzo Workflow

Medplum Clinical Data Query

Version 1.0.0

Locate a patient by name, read the Patient resource, then pull that patient's Observations.

1 workflow 1 source API 1 provider
View Spec View on GitHub HealthcareFHIROpen SourceDeveloper PlatformHIPAASMART on FHIRClinicalInteroperabilityArazzoWorkflows

Provider

medplum

Workflows

clinical-data-query
Find a patient and retrieve that patient's clinical Observations.
Searches Patient by name, reads the matched Patient by id, and searches Observation for that patient.
3 steps inputs: patientName outputs: observations, patient, patientId
1
findPatients
search
Locate the patient by name.
2
readPatient
readResource
Read the matched Patient resource by id.
3
findObservations
search
Retrieve the patient's US Core Observations by patient reference.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
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
sourceDescriptions:
- name: medplumFhir
  url: ../openapi/medplum-openapi-original.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