Particle Health · Arazzo Workflow

Particle Health Network Provider Discovery

Version 1.0.0

Register a patient, run a network query, then discover which providers and organizations hold records for that patient.

1 workflow 5 source APIs 1 provider
View Spec View on GitHub ADTC-CDACare CoordinationCarequalityClinical DataCommonWellDeltaseHealth ExchangeEHRFHIRHealth DataHealth Information ExchangeHealthcareHIEHL7HL7v2InteroperabilityMedical RecordsPatientsPharmacyQHINSurescriptsTEFCAUSCDIArazzoWorkflows

Provider

particle-health

Workflows

network-provider-discovery
Discover the providers and network participants that hold records for a patient.
Registers a patient, runs and polls a network query, reads the provider map of responding organizations, and lists network participants in the patient's state.
6 steps inputs: clientId, clientSecret, demographics, state outputs: participants, patientId, providerMap
1
authenticate
Exchange the client credentials for a bearer token used by every subsequent call.
2
registerPatient
Register the patient that the network query will resolve against.
3
launchNetworkQuery
Launch a national query so the responding organizations can be identified.
4
pollQueryStatus
Poll the query until the networks have finished responding.
5
readProviderMap
Read the provider map showing which organizations returned records for the patient.
6
listStateParticipants
List the network participants operating in the patient's state for directory context.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Particle Health Network Provider Discovery
  summary: Register a patient, run a network query, then discover which providers and organizations hold records for that patient.
  description: >-
    A care-team and provider-directory discovery flow aligned with the HL7 Da
    Vinci Payer Data Exchange (PDex) Plan-Net / provider-directory intent. The
    patient is registered and a network query is launched and polled to
    completion; once records have been gathered, the provider map is read to see
    which organizations responded, and the geographic network participants for the
    patient's state are listed. Each 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: particle-health-queries-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: authenticationApi
  url: ../openapi/particle-health-authentication-api-openapi.yml
  type: openapi
- name: networkparticipantsApi
  url: ../openapi/particle-health-networkparticipants-api-openapi.yml
  type: openapi
- name: patientsApi
  url: ../openapi/particle-health-patients-api-openapi.yml
  type: openapi
- name: providermapApi
  url: ../openapi/particle-health-providermap-api-openapi.yml
  type: openapi
- name: queriesApi
  url: ../openapi/particle-health-queries-api-openapi.yml
  type: openapi
workflows:
- workflowId: network-provider-discovery
  summary: Discover the providers and network participants that hold records for a patient.
  description: >-
    Registers a patient, runs and polls a network query, reads the provider map
    of responding organizations, and lists network participants in the patient's
    state.
  inputs:
    type: object
    required:
    - clientId
    - clientSecret
    - demographics
    - state
    properties:
      clientId:
        type: string
        description: Particle client id used to obtain a bearer token.
      clientSecret:
        type: string
        description: Particle client secret used to obtain a bearer token.
      demographics:
        type: object
        description: Patient demographic packet used to register the patient.
      state:
        type: string
        description: Two-letter US state code used to list network participants in the patient's region.
  steps:
  - stepId: authenticate
    description: Exchange the client credentials for a bearer token used by every subsequent call.
    operationId: getAuthToken
    parameters:
    - name: client_id
      in: header
      value: $inputs.clientId
    - name: client_secret
      in: header
      value: $inputs.clientSecret
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      token: $response.body#/token
  - stepId: registerPatient
    description: Register the patient that the network query will resolve against.
    operationId: submitPatient
    requestBody:
      contentType: application/json
      payload: $inputs.demographics
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      patientId: $response.body#/id
  - stepId: launchNetworkQuery
    description: Launch a national query so the responding organizations can be identified.
    operationId: createPatientQuery
    parameters:
    - name: particle_patient_id
      in: path
      value: $steps.registerPatient.outputs.patientId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: pollQueryStatus
    description: Poll the query until the networks have finished responding.
    operationId: getPatientQueryStatus
    parameters:
    - name: particle_patient_id
      in: path
      value: $steps.registerPatient.outputs.patientId
    successCriteria:
    - context: $response.body
      condition: $.status == "COMPLETE"
      type: jsonpath
  - stepId: readProviderMap
    description: Read the provider map showing which organizations returned records for the patient.
    operationId: getPatientProviderMap
    parameters:
    - name: particle_patient_id
      in: path
      value: $steps.registerPatient.outputs.patientId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      providerMap: $response.body
  - stepId: listStateParticipants
    description: List the network participants operating in the patient's state for directory context.
    operationId: searchNetworkParticipantsByState
    parameters:
    - name: state
      in: path
      value: $inputs.state
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      participants: $response.body
  outputs:
    patientId: $steps.registerPatient.outputs.patientId
    providerMap: $steps.readProviderMap.outputs.providerMap
    participants: $steps.listStateParticipants.outputs.participants

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/particle-health-network-provider-discovery-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

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.

A second provider on the same verified email joins the account you already have.