arazzo: 1.0.1
info:
title: Canvas Medical Lab Order to Results
summary: Place a laboratory order with a ServiceRequest, then retrieve the resulting DiagnosticReport and the discrete Observation results.
description: >-
A laboratory order-to-result flow against the Canvas FHIR R4 API. A
ServiceRequest is created to order the lab, the resulting DiagnosticReport is
searched for the patient, and the discrete laboratory Observations are
retrieved. This mirrors the US Core DiagnosticReport / laboratory-result
pattern. Every step inlines its request so the flow is self-contained.
version: 1.0.0
x-realizes-capability-ids:
- BC-2860.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-2860.60
capability_name: Diagnostic Results Management
spec: canvas-medical-diagnosticreport-api-openapi.yml
confidence: 0.8
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: diagnosticreportApi
url: ../openapi/canvas-medical-diagnosticreport-api-openapi.yml
type: openapi
- name: observationApi
url: ../openapi/canvas-medical-observation-api-openapi.yml
type: openapi
- name: servicerequestApi
url: ../openapi/canvas-medical-servicerequest-api-openapi.yml
type: openapi
workflows:
- workflowId: lab-order-to-results
summary: Order a lab and retrieve the resulting diagnostic report and observations.
description: >-
Creates a ServiceRequest lab order, then searches the resulting
DiagnosticReport and the laboratory Observations for the patient.
inputs:
type: object
required:
- patientId
- serviceRequest
properties:
patientId:
type: string
description: The FHIR Patient id the lab is ordered for.
serviceRequest:
type: object
description: The FHIR R4 ServiceRequest resource describing the lab order.
steps:
- stepId: orderLab
description: Create the ServiceRequest that places the laboratory order.
operationId: createServiceRequest
requestBody:
contentType: application/fhir+json
payload: $inputs.serviceRequest
successCriteria:
- condition: $statusCode == 201
outputs:
serviceRequestId: $response.body#/id
- stepId: getDiagnosticReports
description: Search for diagnostic reports produced for the patient.
operationId: searchDiagnosticReport
parameters:
- name: patient
in: query
value: $inputs.patientId
- name: category
in: query
value: LAB
successCriteria:
- condition: $statusCode == 200
outputs:
reports: $response.body
- stepId: getLabObservations
description: Retrieve the discrete laboratory Observations for the patient.
operationId: searchObservation
parameters:
- name: patient
in: query
value: $inputs.patientId
- name: category
in: query
value: laboratory
successCriteria:
- condition: $statusCode == 200
outputs:
observations: $response.body
outputs:
serviceRequestId: $steps.orderLab.outputs.serviceRequestId
reports: $steps.getDiagnosticReports.outputs.reports
observations: $steps.getLabObservations.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.