analyse_media
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Searching the Web

elevated blood caesium level health effects reference range toxicology

Finding Sources
Finding Sources
Searching the Web

elemental cesium blood test elevated non-radioactive sources exposure significance heavy metal panel

Searching the Web

triglyceride HDL ratio insulin resistance cardiovascular risk marker

Here's a breakdown of the abnormal findings in this report, grouped by panel. This is an educational interpretation, not a diagnosis - the numbers need to be read together with symptoms, history, and a clinician's exam.

Complete Hemogram

  • Hematocrit 52.5% (ref 40-50), Total RBC 5.83 (ref 4.5-5.5), borderline-high RDW-CV 14.2% and RDW-SD 46.5 fL together suggest mild erythrocytosis (too many red cells relative to plasma volume). Common causes are dehydration/hemoconcentration, smoking, high altitude, chronic hypoxia (e.g. undiagnosed sleep apnea), or, less commonly, a primary marrow disorder like polycythemia vera. The slightly elevated RDW can also just reflect early nutrient-deficiency changes (see the low B12 below) rather than a marrow problem.
  • Lymphocyte % 40.6% (ref 20-40) is only trivially above range and is a relative percentage - it mostly reflects the proportion of white cells, not an absolute increase, and by itself is not concerning.
  • Monocyte absolute count 0.18 (ref 0.2-1.0) is marginally low - mild monocytopenia, usually incidental and not clinically significant as an isolated finding.

Diabetes

  • Average Blood Glucose 88 mg/dL is flagged only because it sits just under the lab's stated range (90-120), but a value in the 80s is actually a healthy/good glucose control result, not a concern.

Lipid Panel

This is the most clinically actionable section. LDL cholesterol 117 mg/dL, an HDL/LDL ratio of 0.37 (below the favorable >0.40 cutoff), a TRIG/HDL ratio of 3.47 (above the <3.12 cutoff), and triglycerides at 151 mg/dL (borderline-high) all point in the same direction: an atherogenic dyslipidemia pattern with a relatively low HDL compared to LDL and triglycerides. The triglyceride/HDL ratio in particular is used as a surrogate marker for insulin resistance and increased cardiovascular risk. Taken together, this profile warrants attention to diet, weight, activity, and possibly a fasting insulin/HOMA-IR or repeat lipid panel with direct HDL value.

Liver

  • Albumin 4.98 g/dL (ref 3.2-4.8) is mildly high, most often simply a reflection of hemoconcentration/mild dehydration (consistent with the elevated hematocrit/RBC above) rather than a liver problem.

Renal

  • BUN 7.8, Urea 16.69, and (on the general chemistry line, not flagged here but relevant) a low-normal creatinine of 0.7 are all at the low end. Low BUN/urea/creatinine together most commonly reflect low dietary protein intake or lower muscle mass (e.g. a vegetarian/vegan diet) rather than kidney disease - true kidney impairment shows the opposite pattern (elevated BUN/creatinine).
  • Uric acid 7.99 mg/dL (ref 4.2-7.3) is elevated - hyperuricemia. Common contributors include purine-rich diet, alcohol, obesity/insulin resistance, dehydration, or reduced renal excretion. It raises long-term risk for gout and uric acid kidney stones, and often clusters with the dyslipidemia pattern above as part of metabolic syndrome.

Toxic Elements

  • Caesium 5.16 µg/L (ref <5) is only marginally above the cutoff. Stable (non-radioactive) caesium is a common, low-toxicity environmental/dietary trace element (found in food, water, some mineral supplements); according to ATSDR's toxicological profile, exposure to stable caesium at this level is not considered a significant public health concern. This is very different from radioactive caesium (Cs-137), which is not what this panel measures. A marginal single elevation like this generally does not need urgent action, though if it persists on repeat testing, reviewing dietary/water sources is reasonable.

Vitamins

  • 25-OH Vitamin D 16.7 ng/mL (ref 30-100) indicates a clear vitamin D deficiency (levels under 20 ng/mL are generally classified as deficient). This can contribute to fatigue, muscle aches, and bone health risk over time and typically responds well to supplementation.
  • Vitamin B12 175 pg/mL (ref 197-771) is also deficient. This is worth taking seriously because B12 deficiency can cause fatigue, neuropathy (tingling/numbness), and macrocytic changes in red cells - and it may partly explain the borderline-elevated RDW seen in the hemogram above. Given the pattern with low BUN/creatinine, a low-protein/vegetarian or vegan diet or a B12 absorption issue should be considered. Confirmatory workup (e.g. methylmalonic acid or homocysteine) and supplementation are usually indicated.

Putting it together

Three broad threads emerge from this report:
  1. Mild hemoconcentration/erythrocytosis (high HCT, high RBC, high albumin) - worth checking hydration status, smoking history, oxygen saturation, and sleep pattern, and repeating the CBC to confirm.
  2. Metabolic/cardiovascular risk cluster - elevated LDL, unfavorable lipid ratios, borderline-high triglycerides, and elevated uric acid together suggest a mild atherogenic/insulin-resistant pattern worth addressing through diet, exercise, and possibly further metabolic workup.
  3. Nutritional deficiencies - vitamin D and B12 are both low, and the renal markers suggest possible low protein/animal-food intake; these are straightforward to correct with supplementation and dietary review.
The caesium and blood glucose flags are minor and likely not clinically significant on their own.
This is meant to help you understand the report, not replace a consultation - please review these results with a physician (or hematologist for the erythrocytosis pattern, and a physician/dietitian for the metabolic and nutritional findings), especially to correlate with symptoms, medication use, diet, and family history before deciding on any treatment or repeat testing.

Generate a quick reference PDF comparing your lipid ratios to cardiovascular risk thresholds

Reading File
Running Command

mkdir -p /tmp/workspace/lipid-report && ls -la /tmp/workspace/

Writing File

~/lipid-report/build_pdf.py

"""
Quick-reference PDF: Patient lipid ratios vs. cardiovascular risk thresholds.
"""
from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
from reportlab.platypus import (
    SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT

OUT = "/tmp/workspace/lipid-report/Lipid_Ratio_CV_Risk_Reference.pdf"

styles = getSampleStyleSheet()
title_style = ParagraphStyle(
    "TitleStyle", parent=styles["Title"], fontSize=18, textColor=colors.HexColor("#1a3c5e"),
    spaceAfter=4
)
sub_style = ParagraphStyle(
    "SubStyle", parent=styles["Normal"], fontSize=10, textColor=colors.HexColor("#555555"),
    spaceAfter=14
)
section_style = ParagraphStyle(
    "SectionStyle", parent=styles["Heading2"], fontSize=13, textColor=colors.HexColor("#1a3c5e"),
    spaceBefore=16, spaceAfter=6
)
body_style = ParagraphStyle(
    "BodyStyle", parent=styles["Normal"], fontSize=9.5, leading=13.5
)
note_style = ParagraphStyle(
    "NoteStyle", parent=styles["Normal"], fontSize=8.5, leading=12, textColor=colors.HexColor("#555555")
)
flag_style_bad = ParagraphStyle("flagbad", parent=styles["Normal"], fontSize=9.5, textColor=colors.HexColor("#b00020"), fontName="Helvetica-Bold")
flag_style_ok = ParagraphStyle("flagok", parent=styles["Normal"], fontSize=9.5, textColor=colors.HexColor("#1e7d32"), fontName="Helvetica-Bold")

doc = SimpleDocTemplate(
    OUT, pagesize=letter,
    topMargin=0.6*inch, bottomMargin=0.6*inch,
    leftMargin=0.6*inch, rightMargin=0.6*inch,
    title="Lipid Ratio Cardiovascular Risk Reference"
)

elements = []

elements.append(Paragraph("Lipid Ratio Quick Reference", title_style))
elements.append(Paragraph(
    "Comparing your reported lipid values/ratios against standard cardiovascular (CV) risk thresholds",
    sub_style
))
elements.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor("#1a3c5e")))
elements.append(Spacer(1, 12))

# ---- Table 1: Your values vs thresholds ----
elements.append(Paragraph("1. Your Results vs. Risk Thresholds", section_style))

data = [
    ["Measure", "Your\nValue", "Optimal /\nDesired", "Borderline", "High Risk", "Your\nCategory"],
    ["LDL Cholesterol\n(mg/dL)", "117", "<100", "100-129\n(near optimal)\n130-159\n(borderline high)", "\u2265160", "Near optimal\n(above ideal)"],
    ["Triglycerides\n(mg/dL)", "151", "<150", "150-199", "\u2265200", "Borderline\nhigh"],
    ["HDL/LDL Ratio", "0.37", ">0.40\n(favorable)", "0.30-0.40", "<0.30", "Below\nfavorable"],
    ["TG/HDL Ratio", "3.47", "<3.12", "3.12-3.5", ">3.5\n(insulin\nresistance risk)", "Borderline\nelevated"],
]

table1 = Table(data, colWidths=[1.15*inch, 0.7*inch, 1.05*inch, 1.25*inch, 1.15*inch, 1.0*inch])
table1.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a3c5e")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.3),
    ("ALIGN", (0, 0), (-1, -1), "CENTER"),
    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    ("GRID", (0, 0), (-1, -1), 0.6, colors.HexColor("#cccccc")),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f2f6fa")]),
    ("TOPPADDING", (0, 0), (-1, -1), 6),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 6),
    # Highlight "Your Value" column
    ("BACKGROUND", (1, 1), (1, -1), colors.HexColor("#fde9e9")),
    ("FONTNAME", (1, 1), (1, -1), "Helvetica-Bold"),
    # Highlight "Your Category" column
    ("BACKGROUND", (5, 1), (5, -1), colors.HexColor("#fff4e0")),
    ("FONTNAME", (0, 1), (0, -1), "Helvetica-Bold"),
]))
elements.append(table1)
elements.append(Spacer(1, 14))

# ---- Table 2: What each ratio means ----
elements.append(Paragraph("2. What Each Marker Tells You", section_style))

data2 = [
    ["Marker", "What it reflects", "Why it matters"],
    ["LDL Cholesterol",
     "\"Bad\" cholesterol carried by low-density lipoproteins.",
     "Directly drives plaque buildup in arteries (atherosclerosis). Each ~39 mg/dL reduction lowers ASCVD risk proportionally."],
    ["Triglycerides",
     "Fat circulating in blood, largely from diet and liver production.",
     "High levels (especially with low HDL) mark an atherogenic, often insulin-resistant lipid pattern."],
    ["HDL/LDL Ratio",
     "Balance between protective (HDL) and harmful (LDL) cholesterol.",
     "A LOWER ratio is worse: HDL is relatively too low or LDL too high. >0.40 is generally considered favorable."],
    ["TG/HDL Ratio",
     "Surrogate marker for insulin resistance.",
     "A HIGHER ratio signals more insulin resistance and greater cardiometabolic/CV risk; used as a low-cost alternative to HOMA-IR."],
]
table2 = Table(data2, colWidths=[1.3*inch, 2.55*inch, 2.45*inch])
table2.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a3c5e")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.3),
    ("VALIGN", (0, 0), (-1, -1), "TOP"),
    ("GRID", (0, 0), (-1, -1), 0.6, colors.HexColor("#cccccc")),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f2f6fa")]),
    ("TOPPADDING", (0, 0), (-1, -1), 6),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 6),
    ("LEFTPADDING", (0, 0), (-1, -1), 6),
    ("RIGHTPADDING", (0, 0), (-1, -1), 6),
    ("FONTNAME", (0, 1), (0, -1), "Helvetica-Bold"),
]))
elements.append(table2)
elements.append(Spacer(1, 14))

# ---- Summary box ----
elements.append(Paragraph("3. Overall Pattern", section_style))
elements.append(Paragraph(
    "All four markers point in the same direction: an <b>atherogenic dyslipidemia pattern</b> "
    "(LDL above optimal, triglycerides borderline-high, HDL relatively too low versus both LDL and "
    "triglycerides). This combination is associated with increased cardiovascular risk and often "
    "co-occurs with insulin resistance / early metabolic syndrome. None of the individual values are "
    "in the \"high risk\" tier, but all sit past the \"optimal\" cutoff, so this is a pattern worth "
    "addressing through diet, weight/activity changes, and re-testing rather than a single outlier value.",
    body_style
))
elements.append(Spacer(1, 10))

elements.append(HRFlowable(width="100%", thickness=0.75, color=colors.HexColor("#cccccc")))
elements.append(Spacer(1, 6))
elements.append(Paragraph(
    "Sources: NCEP ATP III LDL classification; TG/HDL ratio as insulin-resistance surrogate "
    "(Giannini et al.; McLaughlin et al.; multiple validation cohorts). Thresholds shown are general "
    "reference points from the literature and the reported lab's own bio-reference intervals; "
    "individual lab reference ranges can vary by method and population. This document is for "
    "educational purposes only and does not replace evaluation by a physician.",
    note_style
))

doc.build(elements)
print("PDF created at", OUT)
Running Command

cd /tmp/workspace/lipid-report && python3 build_pdf.py

Running Command

cd /tmp/workspace/lipid-report && python3 -c " import pdfplumber with pdfplumber.open('Lipid_Ratio_CV_Risk_Reference.pdf') as pdf: print('pages:', len(pdf.pages)) for p in pdf.pages: print(p.extract_text()[:300]) " ls -la /tmp/workspace/lipid-report/

PDF generated successfully - single page, clean layout. Here it is:

Lipid Ratio CV Risk Reference

PDF Document · PDF

It contains three sections:
  1. Your Results vs. Risk Thresholds - a table with your actual values (LDL 117, Triglycerides 151, HDL/LDL 0.37, TG/HDL 3.47) lined up against Optimal / Borderline / High-Risk cutoffs, with your category flagged for each.
  2. What Each Marker Tells You - plain-language explanation of what each ratio reflects and why it matters for cardiovascular risk.
  3. Overall Pattern - a summary noting that all four markers point toward a mild atherogenic dyslipidemia / insulin-resistance-leaning pattern, even though none individually falls in the "high risk" tier.
A source/disclaimer footnote is included (NCEP ATP III LDL classification, TG/HDL insulin-resistance literature) noting this is educational and not a substitute for physician review.

Similarly compare with insulin resistance risk

Searching the Web

triglyceride glucose index TyG cutoff insulin resistance risk categories

Searching the Web

TG/HDL ratio cutoff value insulin resistance high risk threshold

Searching the Web

hyperuricemia uric acid marker insulin resistance metabolic syndrome risk

Writing File

~/lipid-report/build_pdf_insulin_resistance.py

"""
Quick-reference PDF: Patient markers vs. insulin resistance (IR) risk thresholds.
"""
import math
from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
from reportlab.platypus import (
    SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle

OUT = "/tmp/workspace/lipid-report/Insulin_Resistance_Risk_Reference.pdf"

# ---- Derived calculation: TyG index = ln(TG[mg/dL] x Glucose[mg/dL] / 2) ----
TG = 151
GLUCOSE = 88
TYG = round(math.log(TG * GLUCOSE / 2), 2)  # ~8.80

styles = getSampleStyleSheet()
title_style = ParagraphStyle(
    "TitleStyle", parent=styles["Title"], fontSize=18, textColor=colors.HexColor("#1a3c5e"),
    spaceAfter=4
)
sub_style = ParagraphStyle(
    "SubStyle", parent=styles["Normal"], fontSize=10, textColor=colors.HexColor("#555555"),
    spaceAfter=14
)
section_style = ParagraphStyle(
    "SectionStyle", parent=styles["Heading2"], fontSize=13, textColor=colors.HexColor("#1a3c5e"),
    spaceBefore=16, spaceAfter=6
)
body_style = ParagraphStyle(
    "BodyStyle", parent=styles["Normal"], fontSize=9.5, leading=13.5
)
note_style = ParagraphStyle(
    "NoteStyle", parent=styles["Normal"], fontSize=8.3, leading=11.8, textColor=colors.HexColor("#555555")
)

doc = SimpleDocTemplate(
    OUT, pagesize=letter,
    topMargin=0.6*inch, bottomMargin=0.6*inch,
    leftMargin=0.6*inch, rightMargin=0.6*inch,
    title="Insulin Resistance Risk Reference"
)

elements = []

elements.append(Paragraph("Insulin Resistance Quick Reference", title_style))
elements.append(Paragraph(
    "Comparing your reported markers against standard insulin resistance (IR) risk thresholds",
    sub_style
))
elements.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor("#1a3c5e")))
elements.append(Spacer(1, 12))

# ---- Table 1: Your values vs thresholds ----
elements.append(Paragraph("1. Your Results vs. IR Risk Thresholds", section_style))

data = [
    ["Marker", "Your\nValue", "Low Risk", "Moderate Risk", "High Risk", "Your\nCategory"],
    ["TG/HDL Ratio", "3.47",
     "<2.0",
     "2.0-3.0",
     "\u22653.0-3.5\n(strong IR\npredictor)",
     "High risk\nzone"],
    [f"TyG Index*\n(calculated)", f"{TYG}",
     "<8.0",
     "8.0-8.3",
     "\u22658.3\n(T2D risk)\n\u22658.7-8.9\n(MetS risk)",
     "High risk\nzone"],
    ["Average/Fasting\nGlucose (mg/dL)", "88",
     "<100\n(normal)",
     "100-125\n(prediabetes)",
     "\u2265126\n(diabetes\nrange)",
     "Normal"],
    ["Uric Acid\n(mg/dL)", "7.99",
     "<7.0 (men)\n<6.0 (women)",
     "7.0-9.0",
     "\u22659.0\n(~5x MetS\nodds)",
     "Hyperuricemic\n(elevated)"],
]

table1 = Table(data, colWidths=[1.25*inch, 0.75*inch, 0.95*inch, 1.05*inch, 1.25*inch, 1.05*inch])
table1.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a3c5e")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.0),
    ("ALIGN", (0, 0), (-1, -1), "CENTER"),
    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    ("GRID", (0, 0), (-1, -1), 0.6, colors.HexColor("#cccccc")),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f2f6fa")]),
    ("TOPPADDING", (0, 0), (-1, -1), 6),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 6),
    ("BACKGROUND", (1, 1), (1, -1), colors.HexColor("#fde9e9")),
    ("FONTNAME", (1, 1), (1, -1), "Helvetica-Bold"),
    ("BACKGROUND", (5, 1), (5, -1), colors.HexColor("#fff4e0")),
    ("FONTNAME", (0, 1), (0, -1), "Helvetica-Bold"),
]))
elements.append(table1)
elements.append(Spacer(1, 6))
elements.append(Paragraph(
    "*TyG Index = ln(Triglycerides [mg/dL] \u00d7 Glucose [mg/dL] / 2) = ln(151 \u00d7 88 / 2) = ln(6644) \u2248 "
    f"<b>{TYG}</b>. Not a lab-reported value &mdash; calculated here from your triglycerides and glucose results.",
    note_style
))
elements.append(Spacer(1, 14))

# ---- Table 2: What each marker means ----
elements.append(Paragraph("2. What Each Marker Tells You", section_style))

data2 = [
    ["Marker", "What it reflects", "Why it matters"],
    ["TG/HDL Ratio",
     "Ratio of circulating fat (triglycerides) to protective HDL cholesterol.",
     "A simple, low-cost surrogate for insulin resistance. Ratios \u22653.0-3.5 correlate with hyperinsulinemia and roughly double the odds of insulin resistance in validation studies."],
    ["TyG Index",
     "Combines triglycerides and glucose into a single log-transformed score.",
     "Outperforms TG/HDL and rivals HOMA-IR in several cohorts for predicting insulin resistance, metabolic syndrome, and future type 2 diabetes; no insulin assay needed."],
    ["Fasting/Avg. Glucose",
     "Circulating blood sugar level.",
     "Still normal at this stage; glucose usually rises only after insulin resistance has been present for a while, so a normal value does not rule out IR."],
    ["Uric Acid",
     "Byproduct of purine metabolism, cleared by the kidneys.",
     "Insulin resistance reduces renal uric acid clearance, so elevated uric acid often accompanies (and can help flag) early metabolic dysfunction, independent of diet."],
]
table2 = Table(data2, colWidths=[1.2*inch, 2.6*inch, 2.5*inch])
table2.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a3c5e")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.3),
    ("VALIGN", (0, 0), (-1, -1), "TOP"),
    ("GRID", (0, 0), (-1, -1), 0.6, colors.HexColor("#cccccc")),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#f2f6fa")]),
    ("TOPPADDING", (0, 0), (-1, -1), 6),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 6),
    ("LEFTPADDING", (0, 0), (-1, -1), 6),
    ("RIGHTPADDING", (0, 0), (-1, -1), 6),
    ("FONTNAME", (0, 1), (0, -1), "Helvetica-Bold"),
]))
elements.append(table2)
elements.append(Spacer(1, 14))

# ---- Summary box ----
elements.append(Paragraph("3. Overall Pattern", section_style))
elements.append(Paragraph(
    "Two independent surrogate markers &mdash; the TG/HDL ratio (3.47) and the calculated TyG Index "
    f"({TYG}) &mdash; both fall in ranges associated with increased insulin resistance risk, and this is "
    "reinforced by the elevated uric acid (7.99 mg/dL), which independently tracks with early metabolic "
    "dysfunction. Glucose itself is still normal (88 mg/dL), which is expected: glucose typically stays "
    "normal in the earlier, compensated stage of insulin resistance before beta-cell function declines. "
    "Together, this pattern suggests it would be reasonable to discuss formal insulin resistance testing "
    "(fasting insulin/HOMA-IR or an oral glucose tolerance test with insulin) and lifestyle measures "
    "(weight, diet, activity) with a physician, even though standard glucose is currently normal.",
    body_style
))
elements.append(Spacer(1, 10))

elements.append(HRFlowable(width="100%", thickness=0.75, color=colors.HexColor("#cccccc")))
elements.append(Spacer(1, 6))
elements.append(Paragraph(
    "Sources: McLaughlin et al. (TG/HDL and IR, 2003); TG/HDL ratio as IR surrogate, multiple validation "
    "cohorts (MDPI 2024 review); triglyceride-glucose (TyG) index cutoffs from Spanish Vascular-Metabolic "
    "CNS cohort and Korean prospective cohort studies (metabolic syndrome cutoffs ~8.7-8.9); ADA glucose "
    "categories; hyperuricemia and metabolic syndrome association studies. Cutoffs vary by population, sex, "
    "and study; thresholds shown are general reference points from the literature, not a personalized "
    "diagnosis. This document is for educational purposes only and does not replace evaluation by a "
    "physician, including confirmatory testing such as fasting insulin or HOMA-IR.",
    note_style
))

doc.build(elements)
print("PDF created at", OUT, "| TyG =", TYG)
Running Command

cd /tmp/workspace/lipid-report && python3 build_pdf_insulin_resistance.py

Running Command

cd /tmp/workspace/lipid-report && python3 -c " import pdfplumber with pdfplumber.open('Insulin_Resistance_Risk_Reference.pdf') as pdf: print('pages:', len(pdf.pages)) print(pdf.pages[0].extract_text()[:400]) " ls -la /tmp/workspace/lipid-report/

Running Command

cd /tmp/workspace/lipid-report && python3 -c " import pdfplumber with pdfplumber.open('Insulin_Resistance_Risk_Reference.pdf') as pdf: for i,p in enumerate(pdf.pages): print('--- page', i+1, '---') print(p.extract_text()) "

Found a rendering bug - the "What Each Marker Tells You" table has overlapping text because long strings weren't wrapped in Paragraph objects. Let me check the earlier lipid PDF too and fix both.
Running Command

cd /tmp/workspace/lipid-report && python3 -c " import pdfplumber with pdfplumber.open('Lipid_Ratio_CV_Risk_Reference.pdf') as pdf: print(pdf.pages[0].extract_text()) "

Browsing Directory

~/lipid-report

Editing File

~/lipid-report/build_pdf_insulin_resistance.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/lipid-report/build_pdf_insulin_resistance.py'
Editing File

~/lipid-report/build_pdf_insulin_resistance.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/lipid-report/build_pdf_insulin_resistance.py'
Running Command

cd /tmp/workspace/lipid-report && python3 build_pdf_insulin_resistance.py

Running Command

cd /tmp/workspace/lipid-report && python3 -c " import pdfplumber with pdfplumber.open('Insulin_Resistance_Risk_Reference.pdf') as pdf: print('pages:', len(pdf.pages)) for i,p in enumerate(pdf.pages): print('--- page', i+1,'---') print(p.extract_text()) "

Text now wraps cleanly, no overlap. The PDF spans 2 pages (table + explanations on page 1, summary/sources on page 2), which is fine for a reference document.

Insulin Resistance Risk Reference

PDF Document · PDF

What's inside:
  1. Your Results vs. IR Risk Thresholds - table comparing:
    • TG/HDL Ratio: 3.47 → High-risk zone (thresholds: low <2.0, moderate 2.0-3.0, high ≥3.0-3.5)
    • TyG Index: 8.8 (calculated as ln(151 × 88 / 2), since it's not directly reported) → High-risk zone (low <8.0, moderate 8.0-8.3, high ≥8.3 for diabetes risk, ≥8.7-8.9 for metabolic syndrome risk)
    • Glucose: 88 mg/dL → Normal (ADA cutoffs: <100 normal, 100-125 prediabetes, ≥126 diabetes)
    • Uric Acid: 7.99 mg/dL → Hyperuricemic/elevated (men's cutoff 7.0, high-risk zone ≥9.0)
  2. What Each Marker Tells You - plain-language explanation of TG/HDL ratio, TyG index, glucose, and uric acid as insulin resistance signals.
  3. Overall Pattern - two independent surrogate markers (TG/HDL and TyG) both land in the high-risk range, reinforced by elevated uric acid, even though glucose itself is still normal - consistent with early/compensated insulin resistance rather than overt diabetes. Suggests it's reasonable to discuss fasting insulin/HOMA-IR testing with a physician.
Sourced from McLaughlin et al. (TG/HDL), Spanish/Korean cohort studies (TyG cutoffs), ADA glucose criteria, and hyperuricemia-metabolic syndrome literature. As before, this is educational, not a diagnosis.
This is a shared conversation. Sign in to Orris to start your own chat.