---
title: "Create Lab Report Parser Job"
method: POST
path: "/lab_report/v1/parser/job"
tags: ["lab_report"]
---

# Create Lab Report Parser Job

`POST /lab_report/v1/parser/job`

Creates a parse job, uploads the file(s) to provider, persists the job row,
and starts the ParseLabReport. Returns a generated job_id.

## Response `200`

Successful Response

- ParsingJob
  - `id` string, uuid, required
  - `status` 'upload_pending' | 'started' | 'completed' | 'failed', required — ℹ️ This enum is non-exhaustive.
  - `failure_reason` 'invalid_input' | 'low_quality' | 'not_english' | 'too_many_pages' | 'processing_error' — Machine-readable failure reasons for parsing jobs. ℹ️ This enum is non-exhaustive.
  - `data` ParsedLabReportData
    - `metadata` ResultMetadata, required
      - `patient_first_name` string, nullable
      - `patient_last_name` string, nullable
      - `dob` string, nullable
      - `gender` 'male' | 'female' | 'other' — ℹ️ This enum is non-exhaustive.
      - `lab_name` string, nullable
      - `date_reported` string, nullable
      - `date_collected` string, nullable
      - `specimen_number` string, nullable
    - `results` LabReportResult[], required
      - `test_name` string, required
      - `value` string, required
      - `sample_type` 'urine' | 'serum_plasma_blood' | 'capillary_blood' | 'stool' | 'saliva' | 'other' | 'unknown' — ℹ️ This enum is non-exhaustive.
      - `measurement_kind` 'direct' | 'calculated' | 'ratio' | 'unknown' — ℹ️ This enum is non-exhaustive.
      - `type` 'numeric' | 'range' | 'comment' | 'boolean' | 'duration' | 'percentage' | 'ratio' — ℹ️ This enum is non-exhaustive.
      - `units` string, nullable
      - `max_reference_range` number, nullable
      - `min_reference_range` number, nullable
      - `source_panel_name` string, nullable
      - `sensitivity` 'sensitive' | 'insensitive' | 'unknown' — ℹ️ This enum is non-exhaustive.
      - `loinc_matches` LoincMatch[], nullable
        - `loinc_code` string, required
        - `loinc_name` string, required
        - `display_name` string
        - `aliases` string[]
        - `confidence_score` number, required
      - `loinc_match_status` 'auto_match' | 'needs_review' | 'no_match', nullable — ℹ️ This enum is non-exhaustive.
      - `interpretation` 'normal' | 'abnormal' | 'critical' | 'unknown' — ℹ️ This enum is non-exhaustive.
      - `is_above_max_range` boolean, nullable
      - `is_below_min_range` boolean, nullable
  - `needs_human_review` boolean, required
  - `is_reviewed` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/tryvital/apis/junction-api.md) · [All operations](https://skmtc.net/tryvital/apis/junction-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tryvital/junction-api/revisions/034402e2bbe3/schema)
