The temporary, clinician-controlled bridge while official Epic integration is pending:
a copy-ready .SOMASNAPSHOT phrase sends chart data into somaNotes' existing
Add Data intake, while .SOMAPROGRESS35, .SOMAPROBLEM35,
and .DISPO5 carry the canonical progress note back to Epic.
/help/epic-smartphrase. No patient information is stored on this help page.
The draft proposal's generic .VITALS[24H],
.RECENTRESULTS[24H], and .ENCOUNTERNOTES names are
not verified in the Avera build. This baseline uses only names found in
Avera's in-Epic index and leaves site-dependent labs and notes as explicit stops. That is
deliberate: a compact partial snapshot is safer than a phrase that silently omits data or
dumps every note in the encounter.
Verified name set: .now, .id, .los,
.dol, .vsranges, .meds,
.hprobl, and .llcbc3. Test the assembled phrase once on a
training patient; if a token renders literally, remove it and reinsert the matching
SmartLink from Epic's Insert SmartLink search.
SOMASNAPSHOT (no leading dot), and paste the template above..ll<lab>3 family. Keep the stop if the needed aliases are not yet verified..somasnapshot in an organization-approved scratch or documentation workspace. Add only the relevant signed consult/nursing narrative and any decision-relevant lab trends at the two stops.Once the personal phrase works, send this narrower request to the Avera build team instead of asking them to implement unverified names.
if/else token.
Stage 1 is entirely in your hands today. Stages 2 and 3 need a builder ticket — this page gives you copy-ready request text for both.
Replace a visible wildcard only after the candidate SmartLink is tested in the Avera progress-note context for semantics, time window, compactness, and label behavior.
Rebuild DVT ppx and Code status as SDE-linked SmartLists so selections become auditable, reportable data — not just text in a note.
Use CER rules only to populate content inside Objective or the relevant A&P problem. Required fields remain present, including DVT ppx under therapeutic anticoagulation.
@CODESTATUS@ display has signed-note evidence; the new master itself must be
tested in the target Epic note context before sharing department-wide.
The strict structured phrase preserves every required v3.5 section and uses eleven visible F2 stops. Date of Service and Objective stay clinician-controlled until Avera validates compact, context-correct SmartLinks. The exact-note fast path pastes the complete canonical note as one normalized document without relocating sections.
DISPO5 — exactly that, no leading dot (Epic adds the dot). Build this one first: the master phrase references it by name, so it has to exist before the master phrase can nest it.*** exactly as triple-asterisk — Epic natively treats it as a fillable stop.SOMAPROBLEM35 from the repeatable problem block. Keep it standalone; invoke it as many times as the patient needs.SOMAPROGRESS35 from the structured master.HOSPPROGRESSPASTE35 from the exact-note fast path. It contains one wildcard and never relocates Date, Vitals, Chronic Stable, or Code status..somaprogress35. Confirm every canonical header appears in order and .DISPO5 unfolds at the bottom.@CODESTATUS@ resolves in this note type. If it renders literally or as bare @@, delete it and reinsert the matching SmartLink through Insert SmartLink.*** stop, Shift+F2 goes back..hospprogresspaste35. Copy full is enabled only when the canonical v3.5 structure is present.For section-level control with visible Epic sign-blocking stops:
.somaprogress35.None. Generated Disposition may contain only the supported fields, so an omitted Disposition value is not a rail placeholder; the static .DISPO5 phrase still leaves its physician-fillable *** stops for you to complete or clear before signing.@CODESTATUS@.Upgrade a wildcard only after the candidate output passes the Avera training-patient checks below. Index presence alone is not enough.
Paste the full somaNotes progress note here. Canonical v3.5 notes split into the exact eleven wildcard stops used by .SOMAPROGRESS35. Legacy headings are recognized only to help migrate old text; Copy full stays disabled until the canonical structure is present.
The deterministic copy gate checks exact headers and spacing, CC shape, one-paragraph Course Summary, three-paragraph Subjective, ordered Objective subsections, numbered A&P problem blocks with 1–4 supported actions (up to 6 for Worsening), one-line Chronic Stable, ASCII-safe text, and a final Disposition containing any supported subset of its five fields in canonical order. The bare final DISPOSITION heading may be empty; present fields may not be empty, duplicated, invented, or reordered. It is a paste-safety check, not a substitute for clinical review.
Runs entirely in this tab — nothing you paste is uploaded, stored, or logged. Reload the page and it's gone.
The Subjective stop receives all three required paragraphs. The Objective stop carries Vitals, timestamped Labs, optional Imaging/Microbiology/Pathology, and Exam in v3.5 order. The A&P stop preserves the opening synthesis plus any number of #n Problem [Status] blocks. Chronic Stable stays separate and must contain a pipe-delimited line or None. Date and Objective remain visible stops until Avera proves replacement SmartLinks in this note context.
First stop: number. Second: concise problem name. Third: exactly Worsening, Active, Improving, Stable, or Resolved. Fourth: a 2–4 sentence assessment. The static helper seeds two physician-fillable action rows for convenience, but generated problems need only one supported action; delete an unsupported extra row rather than padding it. Keep this helper standalone and invoke it repeatedly when authoring the A&P manually.
Built standalone so the canonical master can nest it. This static physician-fillable phrase intentionally keeps all five lines and every *** hard stop; generated rail output separately emits only supported Disposition fields. Under therapeutic anticoagulation, document that supported state as the DVT value rather than suppressing it.
Paste the complete canonical v3.5 note into one wildcard. This phrase intentionally adds no wrapper: moving Date, Vitals, Chronic Stable, or Code status outside the generated document would violate the immutable section order.
Copy full canonical note returns the normalized complete note. It never reconstructs the document from chunks and remains disabled for noncanonical legacy input.
The captured Avera index proves that a name exists, not that it renders the right semantics, time window, shape, or label in this progress-note context. The strict master therefore hardwires only @CODESTATUS@, which also has signed-note round-trip evidence.
This is a small fraction of what the build actually has. Treat it as a discovery list. Every candidate still needs a training-patient expansion test before it replaces a visible wildcard.
| Token | Evidence | v3.5 use |
|---|---|---|
| @CODESTATUS@ | Resolved in a signed note | Baseline display inside .DISPO5; still review before signing |
| .td / @TD@ | Exists; means today's date | Candidate only — not proven as represented Date of Service for late entries |
| .averavs / @AVERAVS@ | Exists; last vital set; multiline expansion observed | Excluded — wrong time scope and duplicated-label risk |
| .vsranges / @VSRANGES@ | Exists; indexed as 24-hour ranges | Candidate only — prove compact output and oxygen device first |
| .activediet / @ACTIVEDIET@ | Exists; full order-table expansion observed | Excluded — keep the one-line Diet wildcard |
| Pattern | Pulls |
|---|---|
| .llcbc1 / .llcbc3 | Last 1 / last 3 CBC results |
| .ll<lab>1 / .ll<lab>3 | Last 1 / last 3 results for any lab — swap in the lab name |
| .ll<lab>all (e.g. .llhgball) | Every result this admission — the trend view; right shape for Cr, Hgb, ANC across a stay |
The .LL family is an optional discovery aid, not part of the canonical baseline. Use a specific lab link only after its Avera expansion stays compact and preserves the Objective ordering; prune anything over the <5-lines rule below.
| Dot-phrase | Pulls | Note |
|---|---|---|
| .intakeoutput | Intake/output, last 3 shifts | Shift-windowed — sidesteps the Foundation IOBRIEF lookback gotcha |
| .ventsettings | Vent settings | The FLOW use case, pre-built |
| .lastwt3enc | Last weight | Dosing checks |
| .bsa | Body surface area | — |
| .meds | Current meds | This build's CMED |
| .avsmedlistplaintextcompact | Meds by frequency, compact plain text | Discharge-facing |
| .allergy · .prob · .hprobl | Allergies · problem list · hospital problem list | Match the Foundation names |
| .id · .name · .age · .dob · .sex · .los · .dol · .me · .now | Patient info / identity tokens | .id = name/age/sex one-liner |
@CODESTATUS@ doesn't appear in the SmartLink index, but it resolved correctly in a real signed note (2026-07-01) — the index isn't exhaustive, so a missing entry means "test it," not "it doesn't exist." Stage 2's SDE-linked confirmation SmartList remains the upgrade if we want the pick to file discrete data. The index also lists an Active Lines report (the LDA data) and a Sepsis Checklist — worth knowing they exist even though this template doesn't pull them.
The baseline wildcards are deliberate. Of the outbound fields, only @CODESTATUS@ has signed-note output proof. Treat every other captured name and catalog entry as a discovery lead until it expands correctly on a training patient in this exact progress-note context.
Promote a candidate into a *** stop only after checking its meaning, time window, timestamp, compactness, oxygen-device handling where relevant, and whether it prints its own label. Mnemonics, parameter order, identifiers, and context availability can vary by Epic build; use the in-note help text and insert/search tools rather than typing an identifier from this page into production.
Candidate family for the timestamped Labs subsection. A useful expansion is compact, visibly dated, and limited to decision-relevant trends. LABRCNT may produce a columns-by-date panel, but the exact rendered shape and parameters still require an Avera training-patient test.
Site-specific: the other mnemonics in this family don't have a publicly documented bracket order — type the dot-command in Epic and read the help text for your build. Which labs you're pulling is selected by base name, and base names are curated per-org; ask your informatics team whether a base-name reference already exists internally before guessing.
Virtually everything nursing charts — individual vital-sign components, neuro checks, drain/wound output, vent settings, glucose/insulin, telemetry, I/O — lives in flowsheet rows. This is the correct tool for anything more granular than the single @AVERAVS@ block.
Site-specific: row IDs above (5, 6, 301050, 12345...) are illustrative — not yours. Find your FLO IDs via the .FLOW+Tab lookup (newer Epic versions), the Report & Print Group Assistant's "Debug Print Group" (Epic button → Help → Help Desk Reports), or right-click a flowsheet cell → Properties.
Lookback gotcha: time-window links like IOBRIEF/IODETAILS default to a window ending "now" — a note written at 10 AM gives a 10 AM–10 AM window unless your build team hardcodes a start time (e.g. 0700). This is the usual cause of "why is my I/O only 3 hours" complaints, and it's a build fix, not a workflow fix.
There is no dedicated @LDA@ token. LDAs (vascular lines, drains including chest tubes/stents, airways, wounds/burns) are flowsheet groups — placement date, removal date, gauge, and location live once on the flowsheet data record for the LDA's first day; day-to-day assessments behave like normal flowsheet rows. Surface them via FLOW against the LDA group/row IDs, or via PRINTGROUP (HHS 35008).
Anti-bloat note: line-day/device-day counts for CLABSI/CAUTI compliance are normally computed in Reporting Workbench/Clarity, not a note SmartLink — printing a raw line-day count in every progress note adds volume without discrete value. Pull line + placement date only where it's actually decision-relevant, e.g. "day 6 central line, no CLABSI signs — plan to remove."
Pulls the radiology impression only, not the full report — exactly the right granularity for a progress note. Typed literally, e.g. @RISIMP72H@.
Surfaces discrete organism/susceptibility data your LLM would otherwise have to summarize from free text — high-value for ID-heavy and neutropenic-fever patients.
Current med list. Home/admission/discharge/changed-since variants are commonly built but are site-named — confirm your build's exact mnemonics rather than assuming @HMEDS@/@DCMEDS@ exist under those names.
A plain SmartList only inserts text. It becomes a discrete-data capture tool when its record has "use discrete data" enabled and its options are mapped to a SmartData Element (SDE — HLX master file; values stored in HLV). This is the mechanism that turns a VTE-ppx or code-status pick into reportable, auditable data instead of dead text in a note — and it's the clearest safety/quality payoff of anything on this page, since code-status confirmation and VTE prophylaxis are Joint Commission core-measure territory.
Mechanical constraint: an SDE cannot link directly to a SmartPhrase — the phrase must contain an SDE-linked SmartList (or a SmartForm/NoteWriter block) to actually file discrete data.
For a value already captured elsewhere in the chart that you just want to display inline (not re-capture), the retrieval tools are CUIPAT (patient-level), CUIENC (encounter-level), and CUIEPI (episode-level), with option flags N (label only if a value exists), L (always show label), M (message if no value), and B (break to a new line only if data exists — lets you stack several SDE links without blank-line gaps). DBLINK retrieves arbitrary master-file items. These are builder-level tools, illustrated (not literal for your build) below:
Copy-ready request for your informatics/Bridges team:
Epic has no inline .if/.el/.end or @if@...@else@...@endif@ token inside SmartPhrases or SmartText. Branching output is delivered only through CER-rule-driven SmartLinks:
RULESMARTLINK / RULESMARTLINKREFRESH (HHS 60402 / 60404) — displays information based on a rule record. Documented parameters, verbatim: "Parameter 1 - Enter the ID number of the rule to evaluate. Parameter 2 - Enter the mnemonic of the SmartLink to display if the rule is true. Parameter 3 - Enter the mnemonic of the SmartLink to display if the rule is false," plus formatting flags in parameters 4–7.CERMSG / CERMSGREFRESH (HHS 64343 / 14042) — evaluates one or more CER rules and returns either the rule's error message or specified SmartTexts.A CER rule is a configurable rule-logic record evaluated as TRUE/FALSE. Building rules (CER) and new SmartLinks (HHS) is typically restricted to project-team members — you'll need physician-builder access or your informatics/Bridges team, and every rule should be validated with the Rule Tester before it goes live.
Lower-effort partial conditionality that doesn't need a CER rule: SDE display flags can self-suppress optional content inside an existing section. They must never suppress one of the five required Disposition lines.
Copy-ready request for your informatics/Bridges team:
If you want to own this logic directly instead of ticketing it every time, Epic Physician Builder certification (e.g. CLN150-level coursework) is the fastest route — it's the credential that grants CER-rule and HHS SmartLink build access.
The same anti-boilerplate discipline that governs somaNotes' own generated text (nothing ungrounded, nothing the doctor didn't ask for) applies to the Epic side of this template too:
M/B flags from Stage 2) instead of printing "none" or "n/a" on every field, every note.| somaNotes section | Epic element | Type | Stage |
|---|---|---|---|
| Hospitalist title | static text | Static | 0 — exact canonical title |
| Date of Service | *** | Clinician-controlled stop | 0 — @TD@ remains a late-entry candidate, not baseline |
| CC | *** | AI paste zone | 0 — one canonical line |
| Brief Hospital Course Summary | *** | AI paste zone | 0 — stateful narrative through yesterday |
| Three-paragraph Subjective | *** | Multiline paste zone | 0 — keep all three paragraphs together |
| Objective 4A–4D | *** | Multiline paste zone | 0 — Vitals, Labs, optional 4C, Exam stay ordered |
| A&P opening + #n problems | *** / .SOMAPROBLEM35 | Multiline paste zone | 0 — arbitrary problem count |
| Chronic Stable Conditions | *** | Separate required stop | 0 — pipe-delimited line or None |
| DVT ppx | *** → SmartList → SDE-linked SmartList | SmartList | 2 — Joint Commission core measure |
| Code status (display) | @CODESTATUS@ | SmartLink | 0 — verified in a signed note (not in the index) |
| Code status (confirmation) | SDE-linked SmartList | SmartList | 2 — auditable attestation |
| Diet | *** | AI paste zone | 0 — @ACTIVEDIET@ demoted: dumps a full order table (seen in signed note) |
| Dispo, Follow-ups | *** | AI paste zone | 0 — clinical judgment, can't be discrete |
| Therapeutic anticoagulation | DVT value / SDE-linked SmartList | Required field value | 2 — never suppress the DVT line |
| ICU/onco conditional content | RULESMARTLINK + CER rule | In-section only | 3 — Objective or relevant A&P problem |
.LASTLAB, .FLOW) and read the *** HELP TEXT *** it returns — it lists your build's exact parameters.. plus a few letters to search available SmartLinks. Check the link's available contexts — a link that renders as bare @@ isn't evaluating in that context; make it available to all contexts if you need it everywhere..FLOW+Tab picker (newer Epic versions), the Report & Print Group Assistant's "Debug Print Group," or right-click a flowsheet cell → Properties.category: / sws: search syntax)..DISPO5, click into the DVT ppx wildcard, use the toolbar's Insert SmartList, search "VTE prophylaxis" or "DVT," pick our build's list. Epic resolves the real ID — you never type one.{F2/Delete: ...} instructions that must be removed before signing. Reduced notes using any lab SmartLink from 90.2% to 15.3% (admission notes) and 92.6% to 17.8% (progress notes), with an 18.7% character-count reduction in progress notes (p<0.001).DocumentReference create endpoint to backend apps registered through Epic App Orchard / Epic on FHIR, with OAuth2 credentials issued by your hospital's Epic interface (Bridges) team after a security review — a backend + hospital-IT governance project measured in weeks to months. This SmartPhrase pair, plus the Stage 1–3 roadmap above, is the legitimate bridge in the meantime.