Known limits
Not for clinical use. Orinyx checks medication claims against cited FDA label text for testing and evaluation only. Do not use its results to diagnose, treat, prescribe or make patient care decisions. Use synthetic test data only.
These are known gaps in the knowledge base and the checks. Most show up as a NOT VERIFIED row, a refused order or a daily total that was not checked, so a missing flag is never evidence that an order is safe. Several gaps can show SUPPORTED with evidence from the wrong route, population or formulation, or after part of an order was not parsed.
These limits describe recorded checks, not confirmation of the currently hosted build. A matching version string alone does not identify the engine revision. The hosted smoke test's IV route step sends an IV order only, so its pass does not show the IVPB, I.V. or verify_medications behavior described below. If the hosted service returns a different verdict from the Quickstart, the hosted verdict is the one to read.
Recorded failures and validation status
These describe recorded regression evidence, not a new hosted run. A passing guard, an expected failure (xfail) or a case awaiting clinical sign-off is not evidence that the missing check works.
Release blockers. The pass-required gate names five checks: REG-004/frequency-not-from-oral-label, REG-008/dose-not-supported, REG-008/not-cleared, REG-015/allergy-denial-not-supported and REG-016/frequency-not-from-oral-label. All five pass (release-check 5/5), and the engine's CI fails if any of them fails. REG-004 and REG-016 pass for orders sent to verify_order_text, not for structured claims. For REG-015, only the never-SUPPORTED floor is required; the expected flag remains a known limit awaiting clinical sign-off, and that missing flag does not hold this release. REG-008's other two checks (the parsed every 4 hours and the 120 mg daily total) also pass. Other known-failing checks remain limits until fixed and verified.
- REG-015: class-allergy mapping. Amoxicillin with documented penicillin anaphylaxis is not flagged. The contraindication check matches substrings of label wording:
anaphylaxisand barepenicillinmatch, butpenicillin anaphylaxisandpenicillin allergydo not match the label's beta-lactam contraindication. The denial abstains instead of flagging. Its never-SUPPORTED guard passes; the expected flag stays an expected failure pending the mapping fix and clinical sign-off. The order-text patient-context notice does not perform this allergy check. - REG-001: nitrofurantoin's missing contraindication flag. Only route rules are derived from the pinned combination-named label. A structured claim denying
anuriaabstains instead of flagging, and dose and frequency abstain too. The expected flag needs clinical sign-off. A different label in a local sandbox can flag the claim; that does not show which label is hosted or replace sign-off. - REG-005, REG-012 and REG-018: population words are experimental until clinically signed. Acetaminophen frequency can be SUPPORTED from a children's label whose directions do not establish that they apply to the adult order: 1,000 mg every 4 hours as needed (REG-005), 1,500 mg every 4 hours (REG-012) and 650 mg every 4 hours (REG-018). REG-012 flags its 9,000 mg daily exposure; that does not validate its frequency evidence, settle severity or clear the regimen. The adult-label selection regression is also still an expected failure.
- REG-010, REG-011 and REG-014: KB-tier cases are not run in CI. Metoprolol succinate 50 mg daily and succinate ER 50 mg daily (REG-010, REG-011) abstain on dose but show frequency SUPPORTED from the tartrate label. Their expected frequency abstains stay expected failures pending a formulation-applicability policy and clinical sign-off. Metoprolol tartrate 25 mg with no route or schedule (REG-014) abstains on dose; a dose verified against the tartrate label is not encoded. The recorded local run was 10 passed, 2 xfailed. That is not a CI pass or proof of fixes.
Expected failures by root cause
The case files declare 20 known-failing checks: 18 memory-tier and 2 KB-tier. Each is marked as an expected failure, and an unexpected pass fails the suite until it is reviewed. Counts are checks, not orders; some cases appear under more than one cause.
| Root cause | Cases | Checks | What is missing or wrong |
|---|---|---|---|
| Combination label misread | REG-001 | 4 | Nitrofurantoin dose, frequency and contraindication rules are not derived from the combination-named label; the denied contraindication is not flagged. |
| Combination order refused | REG-002 | 2 | The oxycodone/acetaminophen order is refused instead of read with its dose abstaining. |
| Combination strength unread | REG-003 | 1 | A 5/325 mg strength loses the dose claim instead of returning a dose abstain with a reason. |
| Frequency applicability | REG-005, REG-012, REG-018 | 3 | Frequency evidence can come from the wrong population; awaiting clinical sign-off. |
| PRN range not compared | REG-005, REG-006 | 2 | The as-needed potential daily exposure is not compared; a range schedule's worst case is not stated. These must not become automatic flags. |
| Orders not summed | REG-007 | 1 | Daily exposure is not summed across same-drug orders. The expected arithmetic is encoded; a regimen flag is not. |
| Order normalization | REG-009 | 1 | The word scheduled can lose an acetaminophen daily total. |
| Formulation applicability | REG-010, REG-011 | 2 | Frequency from a tartrate label is applied to succinate or ER; KB tier, not in CI, awaiting sign-off. |
| Class-allergy mapping | REG-015 | 1 | Penicillin-anaphylaxis wording is not mapped to the amoxicillin contraindication. |
| Route-scoped evidence | REG-016 | 1 | No IV acetaminophen daily ceiling is on file for the IV order. |
| Maximum patterns missed | REG-017 | 1 | The IV label's stated 4,000 mg maximum is not extracted in the expected form. |
| Conditional maximum set aside | REG-017 | 1 | The maximum is not kept with its weight condition. It must not become a maximum for every patient. |
Two older engine expected failures are separate from these 20: route-survey citations can cite the alphabetically first route row instead of the ingredient's own label, and adult-label selection still lacks signed population-exclusion words.
Nitrofurantoin: route only
The FDA label is listed as "NITROFURANTOIN (MONOHYDRATE/MACROCRYSTALS)". The knowledge base reads that as a combination product, so only route rules were derived. A nitrofurantoin dose or frequency is NOT VERIFIED. A contraindication claim is NOT VERIFIED too, including the label's own contraindications in reduced kidney function (creatinine clearance under 60 mL/min) and at term pregnancy. A claim that ignores either is not flagged. Fosfomycin and pivmecillinam are not in the knowledge base.
IV acetaminophen: no IV daily ceiling
The only 24-hour acetaminophen ceiling on file is the FDA OTC monograph's 4,000 mg, which applies to oral use. An IV order's daily total is stated but not checked, so an IV regimen over the IV label's maximum is not flagged.
A frequency is judged against the label its schedule came from. When Orinyx reads one route and that label's routes exclude it, the frequency is NOT VERIFIED and the reason names the label's route. This is fixed on the orders path and on verify_medications structured runs. It is not fixed for CDS Hooks, telehealth or transcript extraction.
verify_order_text: "every 4 hours" on an order writtenIV,intravenous,IVPBorI.V.is not verified, with or without a wrapper word (I.V. push,I.V. infusion).verify_medications: a frequency claim with no route takes the route the call states for the same drug, when that is the drug's only route in the call. Send one patient's medications per call. A frequency claim with no route anywhere in the call is still matched against the drug's primary label, so it can show SUPPORTED with the oral label cited.- IVP is not read as a route (REG-026). An
IVPorder is listed under "not placed", and its frequency can still show SUPPORTED with the oral label cited.
The pass-required gate for this fix names ten checks: the five release blockers above plus REG-019 to REG-023 (frequency-not-from-oral-label), and reads release-check 10/10. False support is 0 known-failure cases (ceiling 0).
These are disclosed limits, not known failures. In the first four, no route is carried, so the frequency keeps the verdict it gets without the carry and can still show SUPPORTED from a label for another route:
- IV beside IVP (REG-030). When one drug's claims state
IVon one claim andIVPon another, no route is carried. A route writtenIV piggybackis not read either and blocks the carry the same way. - IV beside intravascular.
IVandintravascularcount as two routes, because intravascular also covers intra-arterial, so nothing is carried. - A route written only in the drug name, such as
acetaminophen (IV)oracetaminophen oral, is never carried. - A route in a drug name can block the carry; those claims keep the verdict they had before this change.
- Round brackets only. Square and curly brackets in a drug name are never read as brackets.
IVPB. infusionandI.V.. pushon the orders path: the route is read as intravenous and the frequency is not verified, but the wrapper word is listed under "not placed", so no daily total is computed.
With either tool, check that the cited product matches the order's route.
Weight- and age-conditional maxima are not compared
Orders carry no patient weight or age. A label maximum that depends on them is set aside, not applied to everyone. A dose over a weight- or age-based maximum is not flagged on that account.
One label per drug
Each drug's dose, frequency and contraindication rules come from one primary label: the newest single-ingredient label found for that name. A different strength, formulation, route or indication with its own label is judged against that one label, or abstains when the evidence does not apply. Read the citation to see which product a row was judged against.
Combination products
- An order that names two drugs is refused: one drug per order. The whole request is refused, naming the order.
- A combination strength (
5/325 mg) is not split. The dose is not checked, and the result says "dose not checked: combination strength". - Daily totals are never added up across orders. Two acetaminophen-containing orders in one request are each checked alone.
Other limits
- Daily totals are computed for a scheduled order and compared only where a 24-hour maximum is on file. Today those are curated OTC monograph ceilings such as oral acetaminophen's. Elsewhere the row says the daily total was not checked. As-needed (PRN) doses and dose ranges are never multiplied out.
- Duration of a course is not checked.
- No citation on a NOT VERIFIED row, even when the result names a specific label. The verdict is unchanged; only the citation is not shown.
- One request at a time. A later message is not judged in light of an earlier one. Text with no dose, route or frequency ("continue nitrofurantoin") is refused as not an order.
- Severities are minor, moderate or major. There is no harm-weighted or critical tier.
- Reference data moves. Results were captured against the knowledge base at the time.
Source: GitHub v0.1.2
Version: v0.1.2, updated 2026-11-03