curl --request GET \
--url '{{BASE_URL}}/lab_report/v1/parser/job/<job_id>' \
--header 'accept: application/json' \
--header 'x-vital-api-key: YOUR_API_KEY'
from junction import Junction
from junction.environment import JunctionEnvironment
client = Junction(
api_key="YOUR_API_KEY",
environment=JunctionEnvironment.SANDBOX,
)
data = client.lab_report.parser_get_job("<job_id>")
import { JunctionClient, JunctionEnvironment } from "@junction-api/sdk";
const client = new JunctionClient({
apiKey: "YOUR_API_KEY",
environment: JunctionEnvironment.Sandbox,
});
const data = await client.labReport.parserGetJob({ jobId: "<job_id>" });
import com.junction.api.Junction;
import com.junction.api.core.Environment;
Junction client = Junction.builder()
.apiKey("YOUR_API_KEY")
.environment(Environment.SANDBOX)
.build();
var data = client.labReport().parserGetJob("<job_id>");
import (
"context"
junction "github.com/junction-api/junction-go"
"github.com/junction-api/junction-go/client"
"github.com/junction-api/junction-go/option"
)
c := client.NewClient(
option.WithApiKey("YOUR_API_KEY"),
option.WithBaseURL(junction.Environments.Sandbox),
)
response, err := c.LabReport.ParserGetJob(context.TODO(), &junction.ParserGetJobLabReportRequest{
JobId: "<job_id>",
})
if err != nil {
return err
}
fmt.Printf("Status: %s\n", response.Status)
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"data": {
"metadata": {
"patient_first_name": "John",
"patient_last_name": "Doe",
"dob": "1990-05-15",
"lab_name": "Quest Diagnostics",
"date_reported": "2024-01-15",
"date_collected": "2024-01-14",
"specimen_number": "SP123456"
},
"results": [
{
"test_name": "Glucose",
"value": "95",
"type": "numeric",
"units": "mg/dL",
"min_reference_range": 70,
"max_reference_range": 100,
"interpretation": "normal",
"is_above_max_range": false,
"is_below_min_range": false,
"loinc_matches": [
{
"loinc_code": "2345-7",
"loinc_name": "Glucose [Mass/volume] in Serum or Plasma",
"display_name": "Glucose [Mass/volume] in Serum or Plasma",
"aliases": ["Blood Sugar", "Fasting Glucose"],
"confidence_score": 0.95
}
]
},
{
"test_name": "Hemoglobin A1c",
"value": "5.4",
"type": "numeric",
"units": "%",
"min_reference_range": 4.0,
"max_reference_range": 5.6,
"interpretation": "normal",
"is_above_max_range": false,
"is_below_min_range": false,
"loinc_matches": [
{
"loinc_code": "4548-4",
"loinc_name": "Hemoglobin A1c/Hemoglobin.total in Blood",
"display_name": "Hemoglobin A1c/Hemoglobin.total in Blood",
"aliases": ["HbA1c", "Glycated Hemoglobin"],
"confidence_score": 0.98
}
]
}
]
},
"needs_human_review": false,
"is_reviewed": false
}
Lab Report Parsing
Get Lab Report Parser Job
Retrieve lab report parser job via the Junction API. Requires authentication with your team API key.
GET
/
lab_report
/
v1
/
parser
/
job
/
{job_id}
curl --request GET \
--url '{{BASE_URL}}/lab_report/v1/parser/job/<job_id>' \
--header 'accept: application/json' \
--header 'x-vital-api-key: YOUR_API_KEY'
from junction import Junction
from junction.environment import JunctionEnvironment
client = Junction(
api_key="YOUR_API_KEY",
environment=JunctionEnvironment.SANDBOX,
)
data = client.lab_report.parser_get_job("<job_id>")
import { JunctionClient, JunctionEnvironment } from "@junction-api/sdk";
const client = new JunctionClient({
apiKey: "YOUR_API_KEY",
environment: JunctionEnvironment.Sandbox,
});
const data = await client.labReport.parserGetJob({ jobId: "<job_id>" });
import com.junction.api.Junction;
import com.junction.api.core.Environment;
Junction client = Junction.builder()
.apiKey("YOUR_API_KEY")
.environment(Environment.SANDBOX)
.build();
var data = client.labReport().parserGetJob("<job_id>");
import (
"context"
junction "github.com/junction-api/junction-go"
"github.com/junction-api/junction-go/client"
"github.com/junction-api/junction-go/option"
)
c := client.NewClient(
option.WithApiKey("YOUR_API_KEY"),
option.WithBaseURL(junction.Environments.Sandbox),
)
response, err := c.LabReport.ParserGetJob(context.TODO(), &junction.ParserGetJobLabReportRequest{
JobId: "<job_id>",
})
if err != nil {
return err
}
fmt.Printf("Status: %s\n", response.Status)
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"data": {
"metadata": {
"patient_first_name": "John",
"patient_last_name": "Doe",
"dob": "1990-05-15",
"lab_name": "Quest Diagnostics",
"date_reported": "2024-01-15",
"date_collected": "2024-01-14",
"specimen_number": "SP123456"
},
"results": [
{
"test_name": "Glucose",
"value": "95",
"type": "numeric",
"units": "mg/dL",
"min_reference_range": 70,
"max_reference_range": 100,
"interpretation": "normal",
"is_above_max_range": false,
"is_below_min_range": false,
"loinc_matches": [
{
"loinc_code": "2345-7",
"loinc_name": "Glucose [Mass/volume] in Serum or Plasma",
"display_name": "Glucose [Mass/volume] in Serum or Plasma",
"aliases": ["Blood Sugar", "Fasting Glucose"],
"confidence_score": 0.95
}
]
},
{
"test_name": "Hemoglobin A1c",
"value": "5.4",
"type": "numeric",
"units": "%",
"min_reference_range": 4.0,
"max_reference_range": 5.6,
"interpretation": "normal",
"is_above_max_range": false,
"is_below_min_range": false,
"loinc_matches": [
{
"loinc_code": "4548-4",
"loinc_name": "Hemoglobin A1c/Hemoglobin.total in Blood",
"display_name": "Hemoglobin A1c/Hemoglobin.total in Blood",
"aliases": ["HbA1c", "Glycated Hemoglobin"],
"confidence_score": 0.98
}
]
}
]
},
"needs_human_review": false,
"is_reviewed": false
}
Retrieve the status and results of a lab report parsing job. When the job status is
completed, the data field will contain the extracted lab results with LOINC matches.
Job Status Values:
upload_pending- Job created, waiting for file uploadstarted- File uploaded, parsing in progresscompleted- Parsing complete, results available indatafailed- Parsing failed
curl --request GET \
--url '{{BASE_URL}}/lab_report/v1/parser/job/<job_id>' \
--header 'accept: application/json' \
--header 'x-vital-api-key: YOUR_API_KEY'
from junction import Junction
from junction.environment import JunctionEnvironment
client = Junction(
api_key="YOUR_API_KEY",
environment=JunctionEnvironment.SANDBOX,
)
data = client.lab_report.parser_get_job("<job_id>")
import { JunctionClient, JunctionEnvironment } from "@junction-api/sdk";
const client = new JunctionClient({
apiKey: "YOUR_API_KEY",
environment: JunctionEnvironment.Sandbox,
});
const data = await client.labReport.parserGetJob({ jobId: "<job_id>" });
import com.junction.api.Junction;
import com.junction.api.core.Environment;
Junction client = Junction.builder()
.apiKey("YOUR_API_KEY")
.environment(Environment.SANDBOX)
.build();
var data = client.labReport().parserGetJob("<job_id>");
import (
"context"
junction "github.com/junction-api/junction-go"
"github.com/junction-api/junction-go/client"
"github.com/junction-api/junction-go/option"
)
c := client.NewClient(
option.WithApiKey("YOUR_API_KEY"),
option.WithBaseURL(junction.Environments.Sandbox),
)
response, err := c.LabReport.ParserGetJob(context.TODO(), &junction.ParserGetJobLabReportRequest{
JobId: "<job_id>",
})
if err != nil {
return err
}
fmt.Printf("Status: %s\n", response.Status)
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"data": {
"metadata": {
"patient_first_name": "John",
"patient_last_name": "Doe",
"dob": "1990-05-15",
"lab_name": "Quest Diagnostics",
"date_reported": "2024-01-15",
"date_collected": "2024-01-14",
"specimen_number": "SP123456"
},
"results": [
{
"test_name": "Glucose",
"value": "95",
"type": "numeric",
"units": "mg/dL",
"min_reference_range": 70,
"max_reference_range": 100,
"interpretation": "normal",
"is_above_max_range": false,
"is_below_min_range": false,
"loinc_matches": [
{
"loinc_code": "2345-7",
"loinc_name": "Glucose [Mass/volume] in Serum or Plasma",
"display_name": "Glucose [Mass/volume] in Serum or Plasma",
"aliases": ["Blood Sugar", "Fasting Glucose"],
"confidence_score": 0.95
}
]
},
{
"test_name": "Hemoglobin A1c",
"value": "5.4",
"type": "numeric",
"units": "%",
"min_reference_range": 4.0,
"max_reference_range": 5.6,
"interpretation": "normal",
"is_above_max_range": false,
"is_below_min_range": false,
"loinc_matches": [
{
"loinc_code": "4548-4",
"loinc_name": "Hemoglobin A1c/Hemoglobin.total in Blood",
"display_name": "Hemoglobin A1c/Hemoglobin.total in Blood",
"aliases": ["HbA1c", "Glycated Hemoglobin"],
"confidence_score": 0.98
}
]
}
]
},
"needs_human_review": false,
"is_reviewed": false
}
Authorizations
Vital Team API Key
Path Parameters
Response
Successful Response
ℹ️ This enum is non-exhaustive.
Available options:
upload_pending, started, completed, failed ℹ️ This enum is non-exhaustive.
Available options:
invalid_input, low_quality, not_english, too_many_pages, processing_error Show child attributes
Show child attributes
Was this page helpful?
⌘I