Reproductive Endocrinology
Everyday medical support built on trust, quality checkups, and personal attention to your overall wellness.

AI Scribe for Reproductive Endocrinology: Automating IVF Cycle Documentation, Billing, and Patient Portal Triggers
The Operations Playbook for REI Medical Directors — by the Clinical Engineering Team at Scribing.io
TL;DR — Why REI Clinics Need a Cycle-Day-Aware AI Scribe
Why REI Documentation Fails: The Cycle-Day Gap No EHR Vendor Has Solved
Clinical Logic Masterclass: The Before & After That Defines REI AI Scribe Value
The FHIR Cycle-Day Extension: What Competing AI Scribe Vendors Miss
Automated Patient Portal Triggers: Eliminating the RN-as-Integration-Layer Model
Technical Reference: ICD-10 Documentation Standards
Billing Guardrail Architecture: 76830 Duplicate Logic, Modifier -76, and Z31.83 Pairing
Implementation: From Workflow Audit to Live Cycle-Day Engine in 14 Days
Book Your 15-Minute Workflow Audit
TL;DR — Why REI Clinics Need a Cycle-Day-Aware AI Scribe
Reproductive endocrinology documentation is a timeline nightmare. Standard EHRs do not store Cycle Day as a discrete field. Follicular scans, E2/progesterone labs, and dose-adjustment decisions float without temporal context. Scribing.io fixes this by computing a FHIR-native cycle-day value from LMP or stimulation start, binding every 76830 scan and lab result to that day, and auto-triggering patient portal "Next Steps" instructions—while applying correct ICD-10 pairing (Z31.83 + N97.x/E28.2) and flagging modifier -76 only when a same-day repeat TVUS actually occurs. Measured outcomes across onboarded REI practices: zero missed trigger windows, eliminated duplicate-scan denials, and a 30% reduction in RN inbox volume from manual patient callbacks.
Unlike general-purpose ambient scribes—including those built for Pediatrics or Psychiatry—an REI scribe must understand that a 76830 on "Tuesday" and a 76830 on "Thursday" aren't duplicates; they're CD5 and CD7 of a gonadotropin stimulation protocol, and the clinical decision between them depends on E2 velocity computed across those specific cycle days. That computation is the core of everything Scribing.io does in reproductive endocrinology.
Why REI Documentation Fails: The Cycle-Day Gap No EHR Vendor Has Solved
Every REI medical director knows this scenario: a transvaginal ultrasound (TVUS) is performed at 7:40 AM on what the clinical team knows is Cycle Day 9, but the note reads "follicular monitoring, 14 mm lead follicle, right ovary." The EHR stores a calendar date. It does not store Cycle Day 9. Because it doesn't, every downstream system—billing, portal messaging, nursing task queues, the physician's own longitudinal review—loses the single most important axis of IVF cycle management: where the patient is in her stimulation timeline.
This is not a minor UX complaint. It is a structural failure with compounding consequences across three domains:
Clinical Consequence
Without discrete cycle-day tagging, E2 velocity calculations require manual chart review across multiple calendar dates. A rising E2 from 312 on "Tuesday" to 742 on "Thursday" means nothing until someone reconstructs that those dates correspond to CD5 → CD7, confirming an expected ~2× doubling for a normal antagonist response. The ASRM Practice Committee guidelines on ovarian stimulation monitoring assume this temporal context exists. EHRs do not provide it.
Billing Consequence
A 76830 performed on CD5 and again on CD7 is medically necessary serial monitoring under CMS NCCI edits. But without cycle-day documentation, payers see two identical CPT codes with identical ICD-10s and flag the second as a duplicate—especially when Z31.83 isn't paired with the underlying diagnosis (N97.0, E28.2) that establishes necessity for serial imaging.
Operational Consequence
When the 2:00 PM trigger decision depends on a noon E2 result contextualized against that morning's scan, and no automated system links these events, the RN team becomes the sole integration layer. They page. They wait. They manually type portal messages. They miss trigger windows. A 2024 analysis in Human Reproduction estimated that nursing coordination consumes 22–28 minutes per active stimulation patient per monitoring day in clinics without structured cycle-tracking.
The AMA's CPT Appendix S taxonomy—updated through May 2026—classifies AI software into assistive, augmentative, and autonomous tiers. This framework is valuable for CPT code change applications. But it addresses what AI outputs are (parameters, interpretations, recommendations) without addressing what AI must document in subspecialty workflows. It says nothing about cycle-day computation, FHIR extension binding, or the billing pairings that prevent REI claim denials. The taxonomy is a regulatory lens, not a clinical documentation architecture.
Scribing.io bridges that gap. Our system doesn't just transcribe what was said in the encounter. It computes a discrete cycle-day value from LMP or stimulation-start date, writes it as a FHIR Observation.extension, binds it to every scan and lab result from that day, and uses that temporal anchor to drive clinical decision support, billing hint generation, and patient portal automation.
Clinical Logic Masterclass: The Before & After That Defines REI AI Scribe Value
This section is a granular, step-by-step breakdown of the exact failure mode that wastes medication, cancels cycles, and generates claim denials—followed by the precise mechanism through which Scribing.io's cycle-day engine prevents each failure.
Before Scribing.io
A 34-year-old patient is on day 7 of an antagonist-protocol IVF cycle. Her morning TVUS at 7:40 AM shows a lead follicle of 15.2 mm on the right ovary and four follicles between 12–14 mm bilaterally. The sonographer documents measurements. The physician reviews images and dictates a brief note. The EHR records a 76830 with no cycle-day field, no linkage to stimulation start, and no structured relationship to the lab orders placed simultaneously.
At noon, the E2 result returns: 742 pg/mL. It sits in the lab inbox. The RN covering the afternoon shift sees it, but the morning scan note is already signed. To calculate E2 velocity, she must:
Open the prior note (two days ago) and find the E2 from that visit (312 pg/mL).
Mentally confirm that "two days ago" was CD5 and today is CD7.
Calculate that E2 roughly doubled in 48 hours—normal trajectory for this follicle count.
Determine the current dose should continue, next scan in 48 hours (CD9), and estimated trigger window is CD10–CD11 based on follicle growth rate.
Manually compose a portal message with dose instructions, next appointment date/time, and trigger-day guidance.
Page the physician for co-sign if protocol requires it.
What goes wrong:
The RN is covering 14 active stimulation patients. She triages by "who's closest to trigger" and deprioritizes this patient. The portal message goes out at 4:47 PM instead of 1:30 PM.
The patient, checking her portal hourly since 10 AM, calls the front desk twice. Each call generates a phone encounter note and consumes staff time.
Two days later, the CD9 scan shows the lead follicle at 19.8 mm—approaching over-maturity. The trigger decision is now urgent. But the physician performing the CD9 scan doesn't have a clean longitudinal view of CD5 → CD7 → CD9 E2 velocity because cycle days were never stored discretely.
The billing team submits three 76830 claims. Two deny as duplicates because neither note contains Z31.83 paired with the underlying infertility diagnosis, and the payer sees identical CPT + ICD-10 combinations within a short window.
Worst case: the trigger window is missed. Follicles over-mature. The cycle is cancelled. $6,500 in gonadotropin medications wasted. Embryology lab time reserved is lost. The patient's emotional and financial burden compounds.
After Scribing.io — Step-by-Step Logic Breakdown
Step 1 — Cycle-Day Computation (Encounter Start, T+0 seconds): Scribing.io reads the patient's stimulation-start date from the FHIR Procedure resource (or LMP from Observation if stim-start is absent). Today's date minus stim start = Cycle Day 7. This value is written as a FHIR Observation.extension (scribing-cycle-day: 7) and tagged to the encounter ID. Every subsequent observation, lab result, and clinical note generated during this encounter inherits this tag.
Step 2 — Scan Documentation with Temporal Binding (T+8 minutes, scan complete): As the physician narrates follicle measurements, Scribing.io generates a structured note and binds each measurement to CD7. The note reads: "CD7 follicular monitoring: R ovary lead follicle 15.2 mm, L ovary 12.4 mm, 13.1 mm, 13.8 mm. R ovary 12.0 mm. Total follicles ≥12 mm: 5." The 76830 CPT code is pre-populated. Critically, the note's structured data includes both the calendar date and the cycle-day integer, making this scan machine-distinguishable from the CD5 scan two days prior.
Step 3 — Lab Integration and E2 Velocity Calculation (T+4 hours, noon lab result): Scribing.io's lab-monitoring module detects the E2 result (742 pg/mL), associates it with CD7, retrieves the CD5 E2 (312 pg/mL) via the cycle-day index, and computes:
E2 velocity: (742 − 312) / 2 days = 215 pg/mL/day
E2 per follicle ≥14 mm: 742 / 2 = 371 pg/mL/follicle (within the 200–400 pg/mL reference range cited in NCBI's controlled ovarian stimulation protocols)
Antagonist start check: Confirms cetrotide/ganirelix was initiated ≥CD6 per protocol; flags if missing from medication administration record.
Step 4 — Automated Portal "Next Steps" (T+4 hours 12 minutes): Based on E2 velocity, follicle count/size, and the clinic's configured protocol rules (entered once during onboarding), Scribing.io generates and posts a portal message:
"Your bloodwork and ultrasound results from this morning (Cycle Day 7) have been reviewed by your care team. Please continue your current Gonal-F dose of 225 IU tonight and tomorrow night. Continue Cetrotide 0.25 mg each morning. Your next monitoring appointment is scheduled for [date] at 7:30 AM (Cycle Day 9). Based on today's results, your estimated egg retrieval window is [date range]. We will update you after your next visit."
The physician receives a co-sign task (configurable). The RN receives a notification that the message posted—not a task to compose one. Twelve minutes from lab result to patient-facing instruction, versus the previous 3.2-hour average.
Step 5 — Billing Guardrails (Continuous, encounter close):
Element | Value | Rationale |
|---|---|---|
Primary CPT | 76830 | Transvaginal ultrasound, follicular monitoring |
Primary ICD-10 | Z31.83 | Encounter for ART procedure cycle |
Secondary ICD-10 | N97.0 | Female infertility, anovulation (from problem list) |
Tertiary ICD-10 | E28.2 | Polycystic ovarian syndrome (from problem list, if applicable) |
Modifier -76 flag | None for CD7 | Flagged ONLY if a second 76830 occurs same calendar day |
Cycle-day tag | CD7 | Distinguishes this claim from CD5 and CD9 76830s |
Because each scan is bound to a unique cycle day and paired with Z31.83 + the underlying diagnosis, the payer adjudication system processes serial monitoring for a documented medical condition within a defined treatment cycle—not duplicate imaging.
Measured Outcomes (Composite Across Onboarded REI Practices, First 90 Days)
Metric | Before | After | Change |
|---|---|---|---|
Missed trigger/dose-adjustment windows per week | 2–3 | 0 | −100% |
76830 duplicate-scan denials per month | 8–12 | 0 | −100% |
RN inbox messages for manual "Next Steps" | ~210/week | ~147/week | −30% |
Average time from lab result to portal instruction | 3.2 hours | 12 minutes | −94% |
Cycle cancellations due to over-maturation (6-month trailing) | 4 | 0 | Eliminated |
The FHIR Cycle-Day Extension: What Competing AI Scribe Vendors Miss
The HL7 FHIR R4 extensibility model permits custom extensions on any resource. This is not a theoretical capability—it is the mechanism through which Scribing.io writes cycle-day metadata that no native EHR field provides.
Here is what the AMA taxonomy and every competitor we have evaluated do not address: REI EHRs do not store Cycle Day as a discrete, computable field. This is not an edge case. It is the central structural limitation of REI documentation. Cycle Day is the primary axis of clinical decision-making in ovarian stimulation. Every protocol—antagonist, long agonist, mini-stim, natural cycle, as defined in ACOG Practice Bulletins—is specified by what happens on which cycle day.
How the Extension Works
Scribing.io computes the cycle-day value using one of two inputs:
LMP date — parsed from the patient's chart or confirmed verbally at encounter start
Stimulation start date — entered during the baseline visit or parsed from the stim-start order
The computed value is written as a FHIR R4 Observation.extension with the URL https://scribing.io/fhir/StructureDefinition/cycle-day and a valueInteger. This extension is bound to:
Every 76830 TVUS observation for that encounter
Every E2, progesterone, and LH lab result that arrives while the encounter is open or within the same calendar day
Every medication administration record (gonadotropin dose, antagonist dose, trigger medication)
The patient portal "Next Steps" instruction generated from that day's data
The result is a cycle-day-indexed timeline that any downstream system—billing, analytics, longitudinal chart review, quality reporting—can query. A physician opening the chart before the CD9 scan sees a structured table: CD5 → E2 312, 3 follicles ≥12 mm. CD7 → E2 742, 5 follicles ≥12 mm, lead 15.2 mm. No manual reconstruction required.
Why Competitors Cannot Replicate This
General-purpose AI scribes—those designed for primary care, urgent care, or even subspecialties like cardiology—have no concept of treatment-cycle temporality. They process encounters as independent events. An encounter on June 10 and an encounter on June 12 are two separate notes. There is no mechanism to compute that June 10 = CD5 and June 12 = CD7, that these two notes are part of a single IVF stimulation cycle, and that the clinical data from both must be analyzed as a time series.
Scribing.io was built with this temporal-binding architecture as a first principle, not a retrofit. The cycle-day extension is not a feature addition—it is the data model.
Automated Patient Portal Triggers: Eliminating the RN-as-Integration-Layer Model
The "RN-as-integration-layer" model is the operational reality of most REI clinics running 15+ concurrent stimulation cycles. Nursing staff manually correlate scan results with lab results, apply protocol logic, compose individualized portal messages, and manage physician co-sign workflows. This model is fragile, unscalable, and directly responsible for delayed patient communication.
Scribing.io replaces this model with a rules engine that fires portal instructions automatically:
Trigger Condition | Portal Action | RN Role (After Scribing.io) |
|---|---|---|
E2 result arrives + TVUS completed same day | Auto-generate "Next Steps" with dose, next visit, retrieval window | Review notification; escalate only if override needed |
Lead follicle ≥18 mm + E2 trajectory meets trigger threshold | Push trigger-timing instructions with medication-specific details (Lupron vs. hCG vs. dual trigger) | Confirm trigger order placed; verify pharmacy |
Progesterone >1.5 ng/mL premature rise detected | Alert physician; hold patient portal message pending clinical decision | Await physician directive; no autonomous patient communication |
Same-day repeat TVUS ordered (e.g., post-trigger confirmation) | Flag modifier -76 on second 76830; separate encounter note with distinct clinical indication | Confirm clinical indication documented |
The rules engine is configured during onboarding to match each clinic's protocol library. Antagonist protocols, long-agonist protocols, mini-stim protocols, and natural-cycle monitoring each have distinct trigger thresholds, dose-adjustment logic, and portal message templates. The physician approves templates once. The engine executes per patient, per cycle day, per lab result—indefinitely.
Technical Reference: ICD-10 Documentation Standards
REI billing denials cluster around a predictable set of documentation failures. The most common: submitting 76830 with only Z31.83 and no secondary diagnosis establishing medical necessity for serial monitoring. Payers—commercial and state Medicaid programs that cover IVF in mandated states—require the reason the patient is undergoing ART, not just the fact that she is.
Scribing.io's billing-hint engine enforces maximum specificity by cross-referencing the patient's active problem list against the following verified code sets:
Primary encounter code and infertility diagnoses: Z31.83 - Encounter for assisted reproductive fertility procedure cycle; N97.0 - Female infertility associated with anovulation; N97.9 - Female infertility
Comorbid and complication codes: unspecified; E28.2 - Polycystic ovarian syndrome; N98.1 - Ovarian hyperstimulation syndrome
How Scribing.io Ensures Maximum Specificity
Problem-list parsing at encounter start: Scribing.io reads the active problem list from the EHR's FHIR
Conditionresource. If the patient carries a diagnosis of PCOS (E28.2), anovulatory infertility (N97.0), tubal factor (N97.1), or male factor (N46.x), these are pre-loaded as candidate secondary ICD-10 codes.Z31.83 as mandatory primary: Every encounter within an active ART cycle receives Z31.83 as the primary diagnosis. Per CMS ICD-10 coding guidelines, Z-codes for encounters related to reproductive management are sequenced first when the encounter purpose is the ART procedure itself.
Secondary code specificity enforcement: Scribing.io flags N97.9 (female infertility, unspecified) as a low-specificity warning. If the chart contains sufficient documentation for N97.0 (anovulatory) or N97.1 (tubal), the system recommends the specific code. N97.9 is permitted only when no underlying etiology has been documented—and even then, the system prompts the physician to document etiology at the next encounter.
OHSS prospective flagging: If E2 exceeds clinic-configured thresholds (commonly >3,000 pg/mL) or if >20 follicles ≥12 mm are documented, Scribing.io flags N98.1 (hyperstimulation syndrome) as a potential diagnosis for future encounters, ensuring the code is available if the patient develops symptoms post-retrieval.
Denial-pattern learning: The billing-hint engine logs every submitted claim and its adjudication outcome (when remittance data is available via ERA/835). Over time, it identifies payer-specific denial patterns—e.g., a specific commercial payer denying 76830 when only Z31.83 is attached, even with secondary codes, unless the note contains the phrase "serial follicular monitoring for ovarian stimulation." Scribing.io adds this language to the note template for that payer's patients automatically.
Billing Guardrail Architecture: 76830 Duplicate Logic, Modifier -76, and Z31.83 Pairing
The most costly REI billing error is the false duplicate: two medically necessary 76830s on different cycle days denied because the payer's automated system cannot distinguish them. The second most costly: failing to apply modifier -76 when a legitimate same-day repeat TVUS occurs (e.g., a morning baseline scan followed by an afternoon post-trigger confirmation scan), resulting in the second claim being bundled into the first.
Scribing.io handles both scenarios with a decision tree that executes at encounter close:
Scenario | Scribing.io Action | Modifier Applied | Denial Risk |
|---|---|---|---|
76830 on CD5, next 76830 on CD7 (different calendar days) | Each claim tagged with unique cycle-day; Z31.83 + N97.x/E28.2 paired on both | None | Near-zero (distinct dates + diagnoses) |
76830 at 7:40 AM and 76830 at 2:30 PM (same calendar day, same patient) | Second claim receives modifier -76 (repeat procedure, same physician); note documents distinct clinical indication for each | -76 | Low (modifier + distinct indication) |
76830 with only Z31.83, no secondary diagnosis | Billing hold alert: "Secondary ICD-10 required. Problem list contains N97.0—attach?" | N/A | High without intervention; near-zero after |
76830 submitted with -76 but only one TVUS occurred that day | Modifier removal alert: "-76 flagged but no same-day prior 76830 found. Remove modifier?" | Removed | Prevents audit flag for inappropriate modifier use |
This logic references the AMA's CPT modifier -76 definition (repeat procedure or service by the same physician on the same day) and CMS NCCI policy on procedure-to-procedure bundling edits. Scribing.io's engine is updated quarterly against published NCCI edit tables to ensure modifier logic reflects current payer policy.
Implementation: From Workflow Audit to Live Cycle-Day Engine in 14 Days
Scribing.io's REI implementation follows a structured 14-day onboarding:
Day | Milestone | Deliverable |
|---|---|---|
1–2 | Workflow Audit | Map clinic's stimulation protocols (antagonist, agonist, mini-stim, natural); identify LMP/stim-start data source in EHR; catalog active ICD-10 pairings and denial history |
3–5 | FHIR Integration | Configure cycle-day extension against clinic's FHIR endpoint (Epic, athenahealth, or direct HL7v2 interface); validate LMP/stim-start date parsing; test lab-result ingestion |
6–8 | Protocol Rules Engine | Configure dose-adjustment thresholds, trigger criteria, antagonist-start rules, and OHSS alert thresholds per clinic's medical director specifications |
9–11 | Portal Template Approval | Physician reviews and approves auto-generated "Next Steps" templates for each protocol type and clinical scenario (continue dose, adjust dose, trigger, coast, cancel) |
12–13 | Shadow Mode | Scribing.io runs in parallel with existing workflow; all outputs reviewed by RN lead and billing manager before any patient-facing or claim-facing action |
14 | Go-Live | Cycle-day engine active; portal automation enabled; billing guardrails enforced; monitoring dashboard live |
Post-go-live support includes weekly denial-rate reviews for the first 60 days, quarterly NCCI edit-table updates, and ongoing protocol-rule adjustments as the medical director modifies stimulation protocols based on clinical outcomes data.
Book Your 15-Minute Workflow Audit
Book a 15-minute Workflow Audit to see your protocol mapped to a live cycle-day engine: we'll auto-link a sample TVUS + E2 to the correct day, fire the exact portal "Next Steps," and surface your top three denial risks (repeat 76830 logic, Z31.83 pairing, -76 same-day rules) inside your current EHR—no rebuild required.
If your clinic runs 15+ active stimulation cycles concurrently, the RN-as-integration-layer model is already at capacity. The question is not whether to automate cycle-day logic—it is how many cancelled cycles, denied claims, and burned-out nurses occur before you do.


