pediatric-ai-scribe-v3/e2e/fixtures/calc-vectors.json
Daniel 253cef4792 feat(client): port final 5 Bedside panels — all 15 now run in React
Finishes Bedside parity. Neonatal, Respiratory, Ventilation, Sepsis,
and Burns replace their LegacyPanel fallbacks. All 15 vanilla
Bedside sub-modules are now real React components.

shared/clinical/fenton.ts — second, higher-accuracy Fenton table
  fentonLmsPeditools: 21 GA weeks × 2 sexes (22-42 in 1-week steps)
  ported verbatim from public/js/bedside/neonatal.js:20-37. This is
  the peditools-derived table that superseded the older hand-rounded
  version (still used by the Growth Charts calculator). Adds
  calcZNeonatal (|L|<0.001 threshold) + zToPercentileNeonatal
  (Abramowitz & Stegun erf form) so neonatal output matches the
  vanilla Bedside numbers to 3 decimal places.
  neonatalAssess() returns { gaDecimal, gaClass, bwClass,
  weightClass, expectedWeight, z, percentile, L, M, S }.

scripts/capture-calc-vectors.js + e2e/fixtures/calc-vectors.json
  Adds 8 neonatal vectors (including the 40w5d male 3070g validated
  case from the vanilla file's own comment: z = -1.42).

shared/clinical/fenton.test.ts — now covers neonatal too (110 total
vitest cases pass: 19 calculators, 21 fenton, 70 bilirubin).

client/src/pages/BedsidePanels2.tsx — five new panels
  • NeonatalPanel — GA+weight+sex inputs drive the Fenton assessment
    (gestational-age class, weight-for-GA class, birth-weight
    category, Z-score, percentile, expected M). Full NRP pathway
    cards (birth→HR<100→HR<60 escalation), NRP drug table scaled
    by weight (epi IV/IO/ETT, NS bolus, D10), and 5-element Apgar
    scorer with reassuring/moderately-depressed/severely-depressed
    guidance.
  • RespiratoryPanel — four sub-modes: Asthma (mild/moderate/
    severe with full drug tables + "when to intubate" / ABG /
    heliox clinical decision boxes), PRAM scorer (0-12),
    Westley croup scorer (0-17 with severity-tiered treatment),
    Bronchiolitis admission decision tree (age / SpO₂ / hydration
    / distress) with AAP "NOT recommended" list.
  • VentilationPanel — target SpO₂ table by population, 6-step
    escalation ladder (NC → FM → NRB → HFNC → NIV → intubation)
    with live-scaled HFNC flow (1-2 L/kg/min), BVM how-to,
    mechanical vent starting settings (TV, rate by age, PEEP,
    FiO₂, I:E), gas-exchange adjustment table, and the
    oxygenation-vs-ventilation mental model.
  • SepsisPanel — Phoenix Sepsis Criteria (JAMA 2024), red-flag
    list, age-banded workup + empirical therapy (neonate /
    infant / child abx drugs keyed to weight), SSC 2020 first-hour
    bundle (0-5 min recognize → >60 min refractory-shock
    vasoactive), and resuscitation targets.
  • BurnsPanel — full 19-region Lund-Browder age-adjusted table
    (ported verbatim), with per-region % input + live TBSA
    computation + override. Parkland formula (4 × kg × TBSA,
    8h/16h split + per-hr rates), 4-2-1 maintenance, UOP targets,
    pearl list (palm rule, no first-degree, analgesia, tetanus),
    and ABA burn-center referral criteria.

client/src/pages/BedsidePanels.tsx — dispatch extended to all 15
pills. REAL_BEDSIDE_PANELS now contains every Bedside pill id, so
the legacy-link fallback is dead code that can be pruned later.

Client tsc + vite build + 110/110 vitest tests all green.
2026-04-24 02:00:50 +02:00

1319 lines
No EOL
27 KiB
JSON

{
"generatedAt": "2026-04-23T23:54:26.721Z",
"source": "public/js/calculators.js + public/js/bedside/neonatal.js",
"bhutani": [
{
"name": "Bhutani low-end (6h)",
"inputs": {
"hours": 6,
"tsb": 5
},
"output": {
"p95": 6,
"p75": 4.5,
"p40": 3,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani high-end (120h)",
"inputs": {
"hours": 120,
"tsb": 18
},
"output": {
"p95": 19,
"p75": 16,
"p40": 13.2,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani exactly p95 at 24h",
"inputs": {
"hours": 24,
"tsb": 9.6
},
"output": {
"p95": 9.6,
"p75": 7.8,
"p40": 6.2,
"zone": "High-Risk"
}
},
{
"name": "Bhutani exactly p75 at 24h",
"inputs": {
"hours": 24,
"tsb": 7.8
},
"output": {
"p95": 9.6,
"p75": 7.8,
"p40": 6.2,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani exactly p40 at 24h",
"inputs": {
"hours": 24,
"tsb": 6.2
},
"output": {
"p95": 9.6,
"p75": 7.8,
"p40": 6.2,
"zone": "Low-Intermediate"
}
},
{
"name": "Bhutani interpolated 27h",
"inputs": {
"hours": 27,
"tsb": 9
},
"output": {
"p95": 10.399999999999999,
"p75": 8.5,
"p40": 6.7,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani interpolated 45h",
"inputs": {
"hours": 45,
"tsb": 13
},
"output": {
"p95": 14.3,
"p75": 12.1,
"p40": 9.6,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani interpolated 78h",
"inputs": {
"hours": 78,
"tsb": 16
},
"output": {
"p95": 17.7,
"p75": 15.2,
"p40": 12.399999999999999,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani low-risk 36h",
"inputs": {
"hours": 36,
"tsb": 7
},
"output": {
"p95": 12.8,
"p75": 10.6,
"p40": 8.4,
"zone": "Low-Risk"
}
},
{
"name": "Bhutani low-intermediate 36h",
"inputs": {
"hours": 36,
"tsb": 9
},
"output": {
"p95": 12.8,
"p75": 10.6,
"p40": 8.4,
"zone": "Low-Intermediate"
}
},
{
"name": "Bhutani high-intermediate 36h",
"inputs": {
"hours": 36,
"tsb": 11
},
"output": {
"p95": 12.8,
"p75": 10.6,
"p40": 8.4,
"zone": "High-Intermediate"
}
},
{
"name": "Bhutani high-risk 36h",
"inputs": {
"hours": 36,
"tsb": 15
},
"output": {
"p95": 12.8,
"p75": 10.6,
"p40": 8.4,
"zone": "High-Risk"
}
}
],
"aap": [
{
"name": "AAP 35w low-risk at 12h",
"inputs": {
"gaWeeks": 35,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 8.5,
"exchangeThreshold": 16.4,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w low-risk at 48h",
"inputs": {
"gaWeeks": 35,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 14.2,
"exchangeThreshold": 20.7,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w low-risk at 96h",
"inputs": {
"gaWeeks": 35,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 18.6,
"exchangeThreshold": 24.5,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 35w low-risk at 31.5h",
"inputs": {
"gaWeeks": 35,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 11.8,
"exchangeThreshold": 18.85,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w medium-risk at 12h",
"inputs": {
"gaWeeks": 35,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 6.9,
"exchangeThreshold": 14.6,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w medium-risk at 48h",
"inputs": {
"gaWeeks": 35,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 12.2,
"exchangeThreshold": 18.5,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w medium-risk at 96h",
"inputs": {
"gaWeeks": 35,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 16.1,
"exchangeThreshold": 21.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 35,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 10,
"exchangeThreshold": 16.95,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w low-risk at 12h",
"inputs": {
"gaWeeks": 36,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 9,
"exchangeThreshold": 17.5,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w low-risk at 48h",
"inputs": {
"gaWeeks": 36,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 14.8,
"exchangeThreshold": 21.9,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w low-risk at 96h",
"inputs": {
"gaWeeks": 36,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 19.3,
"exchangeThreshold": 25.5,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 36w low-risk at 31.5h",
"inputs": {
"gaWeeks": 36,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 12.4,
"exchangeThreshold": 20.05,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w medium-risk at 12h",
"inputs": {
"gaWeeks": 36,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 7.4,
"exchangeThreshold": 15.2,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w medium-risk at 48h",
"inputs": {
"gaWeeks": 36,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 12.8,
"exchangeThreshold": 19.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w medium-risk at 96h",
"inputs": {
"gaWeeks": 36,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 17,
"exchangeThreshold": 22.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 36w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 36,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 10.6,
"exchangeThreshold": 17.45,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 37w low-risk at 12h",
"inputs": {
"gaWeeks": 37,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 9.6,
"exchangeThreshold": 18.7,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 37w low-risk at 48h",
"inputs": {
"gaWeeks": 37,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 15.4,
"exchangeThreshold": 23.1,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 37w low-risk at 96h",
"inputs": {
"gaWeeks": 37,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 20,
"exchangeThreshold": 26.6,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 37w low-risk at 31.5h",
"inputs": {
"gaWeeks": 37,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 12.95,
"exchangeThreshold": 21.25,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 37w medium-risk at 12h",
"inputs": {
"gaWeeks": 37,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 8,
"exchangeThreshold": 15.7,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 37w medium-risk at 48h",
"inputs": {
"gaWeeks": 37,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 13.5,
"exchangeThreshold": 19.7,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 37w medium-risk at 96h",
"inputs": {
"gaWeeks": 37,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 17.9,
"exchangeThreshold": 23.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 37w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 37,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 11.2,
"exchangeThreshold": 18.05,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 38w low-risk at 12h",
"inputs": {
"gaWeeks": 38,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 10.1,
"exchangeThreshold": 19.7,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 38w low-risk at 48h",
"inputs": {
"gaWeeks": 38,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 16,
"exchangeThreshold": 24,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 38w low-risk at 96h",
"inputs": {
"gaWeeks": 38,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 20.7,
"exchangeThreshold": 27,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 38w low-risk at 31.5h",
"inputs": {
"gaWeeks": 38,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 13.5,
"exchangeThreshold": 22.25,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 38w medium-risk at 12h",
"inputs": {
"gaWeeks": 38,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 8.5,
"exchangeThreshold": 16.3,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 38w medium-risk at 48h",
"inputs": {
"gaWeeks": 38,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 14,
"exchangeThreshold": 20.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 38w medium-risk at 96h",
"inputs": {
"gaWeeks": 38,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 18.2,
"exchangeThreshold": 23.5,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 38w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 38,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 11.7,
"exchangeThreshold": 18.45,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 39w low-risk at 12h",
"inputs": {
"gaWeeks": 39,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 10.6,
"exchangeThreshold": 19.7,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 39w low-risk at 48h",
"inputs": {
"gaWeeks": 39,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 16.6,
"exchangeThreshold": 24,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 39w low-risk at 96h",
"inputs": {
"gaWeeks": 39,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 21.5,
"exchangeThreshold": 27,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 39w low-risk at 31.5h",
"inputs": {
"gaWeeks": 39,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 14.1,
"exchangeThreshold": 22.25,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 39w medium-risk at 12h",
"inputs": {
"gaWeeks": 39,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 8.5,
"exchangeThreshold": 16.3,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 39w medium-risk at 48h",
"inputs": {
"gaWeeks": 39,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 14,
"exchangeThreshold": 20.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 39w medium-risk at 96h",
"inputs": {
"gaWeeks": 39,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 18.2,
"exchangeThreshold": 23.5,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 39w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 39,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 11.7,
"exchangeThreshold": 18.45,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 40w low-risk at 12h",
"inputs": {
"gaWeeks": 40,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 11.2,
"exchangeThreshold": 19.7,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 40w low-risk at 48h",
"inputs": {
"gaWeeks": 40,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 17.2,
"exchangeThreshold": 24,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 40w low-risk at 96h",
"inputs": {
"gaWeeks": 40,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 22.3,
"exchangeThreshold": 27,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 40w low-risk at 31.5h",
"inputs": {
"gaWeeks": 40,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 14.649999999999999,
"exchangeThreshold": 22.25,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 40w medium-risk at 12h",
"inputs": {
"gaWeeks": 40,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 8.5,
"exchangeThreshold": 16.3,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 40w medium-risk at 48h",
"inputs": {
"gaWeeks": 40,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 14,
"exchangeThreshold": 20.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 40w medium-risk at 96h",
"inputs": {
"gaWeeks": 40,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 18.2,
"exchangeThreshold": 23.5,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 40w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 40,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 11.7,
"exchangeThreshold": 18.45,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 41w low-risk at 12h",
"inputs": {
"gaWeeks": 41,
"hours": 12,
"tsb": 10,
"risk": "low"
},
"output": {
"photoThreshold": 11.2,
"exchangeThreshold": 19.7,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 41w low-risk at 48h",
"inputs": {
"gaWeeks": 41,
"hours": 48,
"tsb": 15,
"risk": "low"
},
"output": {
"photoThreshold": 17.2,
"exchangeThreshold": 24,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 41w low-risk at 96h",
"inputs": {
"gaWeeks": 41,
"hours": 96,
"tsb": 18,
"risk": "low"
},
"output": {
"photoThreshold": 22.3,
"exchangeThreshold": 27,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 41w low-risk at 31.5h",
"inputs": {
"gaWeeks": 41,
"hours": 31.5,
"tsb": 13,
"risk": "low"
},
"output": {
"photoThreshold": 14.649999999999999,
"exchangeThreshold": 22.25,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 41w medium-risk at 12h",
"inputs": {
"gaWeeks": 41,
"hours": 12,
"tsb": 10,
"risk": "medium"
},
"output": {
"photoThreshold": 8.5,
"exchangeThreshold": 16.3,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 41w medium-risk at 48h",
"inputs": {
"gaWeeks": 41,
"hours": 48,
"tsb": 15,
"risk": "medium"
},
"output": {
"photoThreshold": 14,
"exchangeThreshold": 20.1,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 41w medium-risk at 96h",
"inputs": {
"gaWeeks": 41,
"hours": 96,
"tsb": 18,
"risk": "medium"
},
"output": {
"photoThreshold": 18.2,
"exchangeThreshold": 23.5,
"status": "Below Phototherapy"
}
},
{
"name": "AAP 41w medium-risk at 31.5h",
"inputs": {
"gaWeeks": 41,
"hours": 31.5,
"tsb": 13,
"risk": "medium"
},
"output": {
"photoThreshold": 11.7,
"exchangeThreshold": 18.45,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 38w low-risk at 72h TSB 19 (above exchange boundary)",
"inputs": {
"gaWeeks": 38,
"hours": 72,
"tsb": 19,
"risk": "low"
},
"output": {
"photoThreshold": 18.8,
"exchangeThreshold": 25.9,
"status": "Above Phototherapy"
}
},
{
"name": "AAP 35w medium-risk at 72h TSB 16 (above phototherapy)",
"inputs": {
"gaWeeks": 35,
"hours": 72,
"tsb": 16,
"risk": "medium"
},
"output": {
"photoThreshold": 14.6,
"exchangeThreshold": 20.1,
"status": "Above Phototherapy"
}
}
],
"fenton": [
{
"name": "Fenton male 22w at 500g",
"inputs": {
"sex": "male",
"gaWeeks": 22,
"weightGrams": 500
},
"output": {
"L": 0.21,
"M": 496,
"S": 0.17,
"z": 0.047287939204605584,
"percentile": 51.885833800698336
}
},
{
"name": "Fenton female 22w at 500g",
"inputs": {
"sex": "female",
"gaWeeks": 22,
"weightGrams": 500
},
"output": {
"L": 0.23,
"M": 474,
"S": 0.17,
"z": 0.316059190595063,
"percentile": 62.402124398294
}
},
{
"name": "Fenton male 50w at 5500g",
"inputs": {
"sex": "male",
"gaWeeks": 50,
"weightGrams": 5500
},
"output": {
"L": -0.08,
"M": 5760,
"S": 0.12,
"z": -0.38562355034470663,
"percentile": 34.988770484472916
}
},
{
"name": "Fenton female 50w at 5500g",
"inputs": {
"sex": "female",
"gaWeeks": 50,
"weightGrams": 5500
},
"output": {
"L": -0.08,
"M": 5510,
"S": 0.12,
"z": -0.015138857701463284,
"percentile": 49.39605205989605
}
},
{
"name": "Fenton male 28w at 1124g (M)",
"inputs": {
"sex": "male",
"gaWeeks": 28,
"weightGrams": 1124
},
"output": {
"L": 0.2,
"M": 1124,
"S": 0.15,
"z": 0,
"percentile": 49.999985009951
}
},
{
"name": "Fenton female 30w at 1330g (M)",
"inputs": {
"sex": "female",
"gaWeeks": 30,
"weightGrams": 1330
},
"output": {
"L": 0.19,
"M": 1330,
"S": 0.14,
"z": 0,
"percentile": 49.999985009951
}
},
{
"name": "Fenton male 33w at 2000g",
"inputs": {
"sex": "male",
"gaWeeks": 33,
"weightGrams": 2000
},
"output": {
"L": 0.135,
"M": 2012.5,
"S": 0.135,
"z": -0.04613281594088144,
"percentile": 48.160198738764876
}
},
{
"name": "Fenton female 37w at 2800g",
"inputs": {
"sex": "female",
"gaWeeks": 37,
"weightGrams": 2800
},
"output": {
"L": 0.06,
"M": 2770,
"S": 0.125,
"z": 0.08620463099375068,
"percentile": 53.43483259892393
}
},
{
"name": "Fenton male 40.5w at 3600g",
"inputs": {
"sex": "male",
"gaWeeks": 40.5,
"weightGrams": 3600
},
"output": {
"L": 0.0025000000000000005,
"M": 3602.5,
"S": 0.12,
"z": -0.005785023559079504,
"percentile": 49.76919596364795
}
},
{
"name": "Fenton male 40w at 3500g",
"inputs": {
"sex": "male",
"gaWeeks": 40,
"weightGrams": 3500
},
"output": {
"L": 0.010000000000000002,
"M": 3530,
"S": 0.12,
"z": -0.07112115197836313,
"percentile": 47.16504593912861
}
},
{
"name": "Fenton female 40w at 3200g",
"inputs": {
"sex": "female",
"gaWeeks": 40,
"weightGrams": 3200
},
"output": {
"L": 0.010000000000000002,
"M": 3340,
"S": 0.12,
"z": -0.3567569227545345,
"percentile": 36.06368591694203
}
},
{
"name": "Fenton male 36w SGA 2000g",
"inputs": {
"sex": "male",
"gaWeeks": 36,
"weightGrams": 2000
},
"output": {
"L": 0.08,
"M": 2710,
"S": 0.13,
"z": -2.3087643791484385,
"percentile": 1.0478301468925577
}
},
{
"name": "Fenton female 36w LGA 3400g",
"inputs": {
"sex": "female",
"gaWeeks": 36,
"weightGrams": 3400
},
"output": {
"L": 0.08,
"M": 2540,
"S": 0.13,
"z": 2.269534182832241,
"percentile": 98.83821062755833
}
}
],
"neonatal": [
{
"name": "Neonatal 40w5d male 3070g (validated against peditools/Epic)",
"inputs": {
"weeks": 40,
"days": 5,
"weightGrams": 3070,
"sex": "male"
},
"output": {
"gaDecimal": 40.714285714285715,
"L": 0.48469999999999996,
"M": 3723,
"S": 0.1295157142857143,
"z": -1.421550744831189,
"percentile": 7.8,
"expectedWeight": 3723
}
},
{
"name": "Neonatal 28w male 1079g (M)",
"inputs": {
"weeks": 28,
"days": 0,
"weightGrams": 1079,
"sex": "male"
},
"output": {
"gaDecimal": 28,
"L": 1.3699,
"M": 1079,
"S": 0.20777,
"z": 0,
"percentile": 50,
"expectedWeight": 1079
}
},
{
"name": "Neonatal 32w female 1681g (M)",
"inputs": {
"weeks": 32,
"days": 0,
"weightGrams": 1681,
"sex": "female"
},
"output": {
"gaDecimal": 32,
"L": 1.0122,
"M": 1681,
"S": 0.21846,
"z": 0,
"percentile": 50,
"expectedWeight": 1681
}
},
{
"name": "Neonatal 24w SGA",
"inputs": {
"weeks": 24,
"days": 0,
"weightGrams": 450,
"sex": "male"
},
"output": {
"gaDecimal": 24,
"L": 0.9128,
"M": 651,
"S": 0.16235,
"z": -1.93083045598671,
"percentile": 2.7,
"expectedWeight": 651
}
},
{
"name": "Neonatal 40w LGA 4500g",
"inputs": {
"weeks": 40,
"days": 0,
"weightGrams": 4500,
"sex": "female"
},
"output": {
"gaDecimal": 40,
"L": 0.167,
"M": 3415,
"S": 0.14649,
"z": 1.9274676858691357,
"percentile": 97.3,
"expectedWeight": 3415
}
},
{
"name": "Neonatal 34w3d female 2000g",
"inputs": {
"weeks": 34,
"days": 3,
"weightGrams": 2000,
"sex": "female"
},
"output": {
"gaDecimal": 34.42857142857143,
"L": 0.671185714285714,
"M": 2227.142857142858,
"S": 0.18829285714285712,
"z": -0.5511666089022185,
"percentile": 29.1,
"expectedWeight": 2227
}
},
{
"name": "Neonatal 39w male 3400g",
"inputs": {
"weeks": 39,
"days": 0,
"weightGrams": 3400,
"sex": "male"
},
"output": {
"gaDecimal": 39,
"L": 0.5881,
"M": 3360,
"S": 0.13641,
"z": 0.08705913311792315,
"percentile": 53.5,
"expectedWeight": 3360
}
},
{
"name": "Neonatal 22w SGA",
"inputs": {
"weeks": 22,
"days": 0,
"weightGrams": 400,
"sex": "male"
},
"output": {
"gaDecimal": 22,
"L": 0.5885,
"M": 496,
"S": 0.12802,
"z": -1.5782877644718676,
"percentile": 5.7,
"expectedWeight": 496
}
}
]
}