drchrono · Arazzo Workflow

drChrono Patient Registration (Upsert)

Version 1.0.0

Search for an existing patient by name and update it if found, otherwise create a new patient record.

1 workflow 1 source API 1 provider
View Spec View on GitHub EHRElectronic Health RecordsHealthcareMedical RecordsPractice ManagementHIPAAAppointmentsBillingPrescriptionsLab IntegrationFHIRSMART on FHIRUSCDIInteroperabilityWebhookAuthenticationONC CertifiedTelehealthRevenue Cycle ManagementArazzoWorkflows

Provider

drchrono

Workflows

patient-registration-upsert
Upsert a drChrono patient by name.
Searches for a patient by name and branches to update the matched patient or create a new one.
3 steps inputs: patient, patientName outputs: createdPatientId, updatedPatientId
1
findPatient
Search for an existing patient by name.
2
updatePatient
Update the matched patient record with the supplied demographics.
3
createPatient
Create a new patient when no existing record matched the name.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: drChrono Patient Registration (Upsert)
  summary: Search for an existing patient by name and update it if found, otherwise create a new patient record.
  description: >-
    A patient demographic upsert against the drChrono EHR REST API, aligning with
    USCDI patient demographic data elements. The patient is searched by name; when
    a match is found the existing patient record is updated, and when no match is
    found a new patient is created. This is the standard deduplicating intake step
    at the front of most clinical and revenue cycle integrations. Every step inlines
    its request so the flow is self-contained.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-2830
  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-2830
      capability_name: Clinical Documentation Management
      spec: drchrono-clinical-api-openapi.yml
      confidence: 0.78
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: clinicalApi
  url: ../openapi/drchrono-clinical-api-openapi.yml
  type: openapi
workflows:
- workflowId: patient-registration-upsert
  summary: Upsert a drChrono patient by name.
  description: >-
    Searches for a patient by name and branches to update the matched patient or
    create a new one.
  inputs:
    type: object
    required:
    - patientName
    - patient
    properties:
      patientName:
        type: string
        description: Patient name used to detect an existing record in the practice.
      patient:
        type: object
        description: The drChrono patient resource to create or use as the update body.
  steps:
  - stepId: findPatient
    description: Search for an existing patient by name.
    operationId: patients_list_list
    parameters:
    - name: patient
      in: query
      value: $inputs.patientName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      matchedPatientId: $response.body#/results/0/id
    onSuccess:
    - name: patientExists
      type: goto
      stepId: updatePatient
      criteria:
      - context: $response.body
        condition: $.count > 0
        type: jsonpath
    - name: patientMissing
      type: goto
      stepId: createPatient
      criteria:
      - context: $response.body
        condition: $.count == 0
        type: jsonpath
  - stepId: updatePatient
    description: Update the matched patient record with the supplied demographics.
    operationId: patients_partial_update
    parameters:
    - name: id
      in: path
      value: $steps.findPatient.outputs.matchedPatientId
    requestBody:
      contentType: application/json
      payload: $inputs.patient
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      patientId: $response.body#/id
    onSuccess:
    - name: done
      type: end
  - stepId: createPatient
    description: Create a new patient when no existing record matched the name.
    operationId: patients_create
    requestBody:
      contentType: application/json
      payload: $inputs.patient
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      patientId: $response.body#/id
  outputs:
    updatedPatientId: $steps.updatePatient.outputs.patientId
    createdPatientId: $steps.createPatient.outputs.patientId

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/drchrono-patient-registration-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.