Orion Health Observation API

Operations on Observation resources (vitals, labs, etc.)

OpenAPI Specification

orion-observation-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Orion Health FHIR Alerts Observation API
  description: The Orion Health FHIR API provides standards-based access to healthcare data using the HL7 FHIR (Fast Healthcare Interoperability Resources) specification. It enables healthcare organizations to read, search, create, and update clinical resources including patients, encounters, observations, conditions, medications, allergies, procedures, diagnostic reports, and care plans. The API conforms to FHIR R4 (v4.0.1) and supports both JSON and XML representations.
  version: 1.0.0
  contact:
    name: Orion Health API Support
    email: apisupport@orionhealth.com
    url: https://www.orionhealth.com/support
  license:
    name: Proprietary
    url: https://www.orionhealth.com/terms-of-service
  termsOfService: https://www.orionhealth.com/terms-of-service
servers:
- url: https://api.orionhealth.com/fhir
  description: Production FHIR Server
- url: https://sandbox.orionhealth.com/fhir
  description: Sandbox FHIR Server
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Observation
  description: Operations on Observation resources (vitals, labs, etc.)
paths:
  /Observation:
    get:
      operationId: searchObservations
      summary: Orion Health Search for observations
      description: Search for Observation resources including vital signs, laboratory results, imaging findings, and other clinical measurements.
      tags:
      - Observation
      parameters:
      - $ref: '#/components/parameters/FhirFormat'
      - $ref: '#/components/parameters/FhirCount'
      - $ref: '#/components/parameters/FhirOffset'
      - name: patient
        in: query
        description: Reference to the patient
        schema:
          type: string
      - name: category
        in: query
        description: Observation category (e.g., vital-signs, laboratory)
        schema:
          type: string
      - name: code
        in: query
        description: LOINC or SNOMED code for the observation
        schema:
          type: string
      - name: date
        in: query
        description: Observation date or date range
        schema:
          type: string
      - name: status
        in: query
        description: Observation status
        schema:
          type: string
          enum:
          - registered
          - preliminary
          - final
          - amended
          - corrected
          - cancelled
          - entered-in-error
          - unknown
      responses:
        '200':
          description: Bundle of matching Observation resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createObservation
      summary: Orion Health Create a new observation
      description: Create a new Observation resource.
      tags:
      - Observation
      requestBody:
        required: true
        content:
          application/fhir+json:
            schema:
              $ref: '#/components/schemas/Observation'
      responses:
        '201':
          description: Observation resource created successfully
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Observation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /Observation/{id}:
    get:
      operationId: getObservation
      summary: Orion Health Read an observation by ID
      description: Retrieve a specific Observation resource by its logical ID.
      tags:
      - Observation
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      - $ref: '#/components/parameters/FhirFormat'
      responses:
        '200':
          description: Observation resource
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Observation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Coding:
      type: object
      properties:
        system:
          type: string
          format: uri
        code:
          type: string
        display:
          type: string
    Observation:
      type: object
      properties:
        resourceType:
          type: string
          const: Observation
        id:
          type: string
        status:
          type: string
          enum:
          - registered
          - preliminary
          - final
          - amended
          - corrected
          - cancelled
          - entered-in-error
          - unknown
        category:
          type: array
          items:
            $ref: '#/components/schemas/CodeableConcept'
        code:
          $ref: '#/components/schemas/CodeableConcept'
        subject:
          $ref: '#/components/schemas/Reference'
        effectiveDateTime:
          type: string
          format: date-time
        valueQuantity:
          $ref: '#/components/schemas/Quantity'
        valueString:
          type: string
        valueCodeableConcept:
          $ref: '#/components/schemas/CodeableConcept'
        interpretation:
          type: array
          items:
            $ref: '#/components/schemas/CodeableConcept'
        referenceRange:
          type: array
          items:
            type: object
            properties:
              low:
                $ref: '#/components/schemas/Quantity'
              high:
                $ref: '#/components/schemas/Quantity'
              text:
                type: string
    OperationOutcome:
      type: object
      properties:
        resourceType:
          type: string
          const: OperationOutcome
        issue:
          type: array
          items:
            type: object
            properties:
              severity:
                type: string
                enum:
                - fatal
                - error
                - warning
                - information
              code:
                type: string
              diagnostics:
                type: string
              details:
                $ref: '#/components/schemas/CodeableConcept'
    CodeableConcept:
      type: object
      properties:
        coding:
          type: array
          items:
            $ref: '#/components/schemas/Coding'
        text:
          type: string
    Bundle:
      type: object
      properties:
        resourceType:
          type: string
          const: Bundle
        type:
          type: string
          enum:
          - searchset
          - batch-response
          - history
        total:
          type: integer
          description: Total number of matching results
        link:
          type: array
          items:
            type: object
            properties:
              relation:
                type: string
                enum:
                - self
                - next
                - previous
                - first
                - last
              url:
                type: string
                format: uri
        entry:
          type: array
          items:
            type: object
            properties:
              fullUrl:
                type: string
                format: uri
              resource:
                $ref: '#/components/schemas/Resource'
              search:
                type: object
                properties:
                  mode:
                    type: string
                    enum:
                    - match
                    - include
                    - outcome
    Quantity:
      type: object
      properties:
        value:
          type: number
        unit:
          type: string
        system:
          type: string
          format: uri
        code:
          type: string
    Resource:
      type: object
      properties:
        resourceType:
          type: string
          description: Type of FHIR resource
        id:
          type: string
          description: Logical ID of the resource
        meta:
          type: object
          properties:
            versionId:
              type: string
            lastUpdated:
              type: string
              format: date-time
            profile:
              type: array
              items:
                type: string
                format: uri
    Reference:
      type: object
      properties:
        reference:
          type: string
        display:
          type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/OperationOutcome'
    BadRequest:
      description: Invalid request parameters
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/OperationOutcome'
    UnprocessableEntity:
      description: Resource failed validation
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/OperationOutcome'
    Unauthorized:
      description: Authentication required or token expired
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/OperationOutcome'
  parameters:
    FhirCount:
      name: _count
      in: query
      description: Maximum number of results per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    FhirFormat:
      name: _format
      in: query
      description: Response format
      schema:
        type: string
        enum:
        - application/fhir+json
        - application/fhir+xml
    FhirOffset:
      name: _offset
      in: query
      description: Starting offset for paging
      schema:
        type: integer
        minimum: 0
        default: 0
    ResourceId:
      name: id
      in: path
      required: true
      description: Logical ID of the FHIR resource
      schema:
        type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization using SMART on FHIR
      flows:
        authorizationCode:
          authorizationUrl: https://auth.orionhealth.com/oauth2/authorize
          tokenUrl: https://auth.orionhealth.com/oauth2/token
          scopes:
            patient/*.read: Read access to all patient data
            patient/*.write: Write access to all patient data
            patient/Patient.read: Read access to Patient resources
            patient/Observation.read: Read access to Observation resources
            patient/Condition.read: Read access to Condition resources
            patient/MedicationRequest.read: Read access to MedicationRequest resources
            launch: Launch context
            openid: OpenID Connect
            fhirUser: FHIR user identity
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT