Cerner (Oracle Health) · Arazzo Workflow

Cerner Oracle Health SMART on FHIR Patient Retrieval

Version 1.0.0

Discover server capabilities, locate a patient, then pull the patient's conditions, encounters, and procedures.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cerner MillenniumCode ConsoleEHRElectronic Health RecordsFHIRHL7HealthcareInteroperabilityOAuth 2.0Oracle HealthPatient AccessProvider DirectorySMART on FHIRFortune 1000ArazzoWorkflows

Provider

cerner

Workflows

smart-patient-data-retrieval
Retrieve a patient's conditions, encounters, and procedures after capability discovery.
Reads the CapabilityStatement, finds the patient, then pulls Conditions, Encounters, and Procedures for that patient.
5 steps inputs: identifier, name outputs: conditions, encounters, patientId, procedures
1
discoverCapabilities
getCapabilityStatement
Fetch the FHIR CapabilityStatement to confirm supported resources and SMART launch endpoints.
2
findPatient
searchPatient
Locate the patient by name (and identifier when supplied).
3
getConditions
searchCondition
Retrieve the patient's Conditions (problem list).
4
getEncounters
searchEncounter
Retrieve the patient's Encounters.
5
getProcedures
searchProcedure
Retrieve the patient's Procedures.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Cerner Oracle Health SMART on FHIR Patient Retrieval
  summary: Discover server capabilities, locate a patient, then pull the patient's conditions, encounters, and procedures.
  description: >-
    The canonical SMART on FHIR read flow against the Cerner / Oracle Health FHIR
    R4 API. The CapabilityStatement is fetched first (the SMART App Launch
    conformance step), the patient is located by identifier or name, and the US
    Core clinical context is retrieved: Conditions (problem list), Encounters, and
    Procedures. Every step inlines its request so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: cernerFhir
  url: ../openapi/cerner-oracle-health-fhir-r4-api-openapi.yml
  type: openapi
workflows:
- workflowId: smart-patient-data-retrieval
  summary: Retrieve a patient's conditions, encounters, and procedures after capability discovery.
  description: >-
    Reads the CapabilityStatement, finds the patient, then pulls Conditions,
    Encounters, and Procedures for that patient.
  inputs:
    type: object
    required:
    - name
    properties:
      name:
        type: string
        description: Patient name to search on.
      identifier:
        type: string
        description: Optional business identifier (system|value) to disambiguate the patient match.
  steps:
  - stepId: discoverCapabilities
    description: Fetch the FHIR CapabilityStatement to confirm supported resources and SMART launch endpoints.
    operationId: getCapabilityStatement
    successCriteria:
    - condition: $statusCode == 200
  - stepId: findPatient
    description: Locate the patient by name (and identifier when supplied).
    operationId: searchPatient
    parameters:
    - name: name
      in: query
      value: $inputs.name
    - name: identifier
      in: query
      value: $inputs.identifier
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      patientId: $response.body#/entry/0/resource/id
  - stepId: getConditions
    description: Retrieve the patient's Conditions (problem list).
    operationId: searchCondition
    parameters:
    - name: patient
      in: query
      value: $steps.findPatient.outputs.patientId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      conditions: $response.body
  - stepId: getEncounters
    description: Retrieve the patient's Encounters.
    operationId: searchEncounter
    parameters:
    - name: patient
      in: query
      value: $steps.findPatient.outputs.patientId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      encounters: $response.body
  - stepId: getProcedures
    description: Retrieve the patient's Procedures.
    operationId: searchProcedure
    parameters:
    - name: patient
      in: query
      value: $steps.findPatient.outputs.patientId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      procedures: $response.body
  outputs:
    patientId: $steps.findPatient.outputs.patientId
    conditions: $steps.getConditions.outputs.conditions
    encounters: $steps.getEncounters.outputs.encounters
    procedures: $steps.getProcedures.outputs.procedures