GraphiteGraphite by Augsidius
Live models

Decision cards (CDS)

Model: aug-cds · Status: Preview · Scope: cds_hooks · Sessions: no

Send a case summary; get back a stream of decision-support cards, most important first: emergencies to rule out, contraindications and interactions in the patient's medicines, the diagnostic work-up, and what is still undocumented. Each card says what to do, why, how certain the evidence is, and where it comes from.

Cards use the HL7 CDS Hooks 2.0 card format, so components built for CDS Hooks cards can display them unchanged. How cards are requested is Augsidius's own: you call aug-cds with the case at any point in your workflow (opening a chart, drafting an order, before discharge) — there is no CDS Hooks service discovery or prefetch to set up.

Request

JSON
{
  "model": "aug-cds",
  "stream": true,
  "messages": [{"role": "user", "content": "58 year old man, known T2DM on metformin 1g BD and ramipril. 2 days of fever 39.2, severe headache and neck stiffness, no rash. Vomited twice. eGFR 25, potassium 5.9. Plan: start spironolactone 25mg OD and ibuprofen 400mg TDS."}]
}

Write the case the way a clinician would summarise it: findings (including what is absent), results with values, current medicines and medicines you are about to start, known conditions. Optional augsidius.observations and augsidius.provider_scope work as in Chat completions. Input up to about 3,000 tokens.

Response: one card per line

Text
{"object":"cds.card","card":{…critical: Rule out bacterial meningitis…}}
{"object":"cds.card","card":{…critical: Metformin contraindicated: Severe renal impairment…}}
{"object":"cds.card","card":{…critical: Spironolactone contraindicated: Hyperkalemia…}}
{"object":"cds.card","card":{…critical: Ibuprofen (NSAID class) contraindicated: Chronic Kidney Disease…}}
{"object":"cds.card","card":{…info: Consider …}}
{"object":"cds.card","card":{…info: Not yet documented: Photophobia, …}}

Then the summary (augsidius on the final chunk / message, or the last NDJSON line):

JSON
{"object": "cds.summary", "cards": 6, "indicators": {"critical": 4, "warning": 0, "info": 2},
 "observations_linked": 9, "billable_calls": 1}

At most 8 cards per call. Cards are ordered: emergency rule-outs, medication safety, diagnostic work-up, documentation gaps.

Card kinds

The kind of every card is in source.topic.code (and extension["com.augsidius"].kind).

Kind (topic.code) indicator When it appears Suggestions
emergency_rule_out critical A must-not-miss condition fits the findings and has not been ruled out. Up to 2 cards. The questions, examinations and tests that best rule it out, all recommended.
contraindication critical if absolute, otherwise warning A current or planned medicine (or its drug class) is contraindicated by something in this patient — a condition, a result, a state such as pregnancy. Review {medicine}
interaction critical if major, otherwise warning Two of the patient's current or planned medicines (or their classes) interact. Review {medicine}
diagnostic_workup info Leading considerations and the most informative next steps. Next tests and examinations; the first is recommended.
documentation_gap info Observations not yet recorded that would change the assessment most. Document {observation}

Safety cards (contraindication, interaction) appear only when the problem applies to this patient — the card's detail says which fact in the case triggered it ("For this patient: eGFR is 25 mL/min/1.73 m²"). A medicine's general contraindications are not listed.

Indicators

indicator Meaning Recommended display
critical Act or consciously override now. Top of the list, distinct colour, never auto-dismissed.
warning Review before proceeding. Visible without scrolling.
info Useful context; no action required. Collapsed or secondary panel.

Card fields

JSON
{
  "uuid": "4c1e8a6e-2a59-4b7f-9a39-0c4f7c2d5e11",
  "summary": "Metformin contraindicated: Severe renal impairment (eGFR < 30 mL/min/1.73 m²)",
  "detail": "Metformin is contraindicated in Severe renal impairment (eGFR < 30 mL/min/1.73 m²).\n\nFor this patient: The patient has an eGFR of 25 mL/min/1.73 m².\n\nCertainty: moderate.",
  "indicator": "critical",
  "source": {
    "label": "Augsidius Clinical Evidence",
    "url": "https://augsidius.care",
    "topic": {"system": "https://api.augsidius.care/cds/card-kind", "code": "contraindication", "display": "Contraindication"}
  },
  "suggestions": [
    {"label": "Review Metformin", "uuid": "1f0b…", "isRecommended": true}
  ],
  "selectionBehavior": "any",
  "overrideReasons": [
    {"code": "not-applicable", "system": "https://api.augsidius.care/cds/override-reason", "display": "Not applicable to this patient"},
    {"code": "already-addressed", "system": "https://api.augsidius.care/cds/override-reason", "display": "Already done or addressed"},
    {"code": "benefit-outweighs-risk", "system": "https://api.augsidius.care/cds/override-reason", "display": "Benefit outweighs the risk for this patient"},
    {"code": "patient-declined", "system": "https://api.augsidius.care/cds/override-reason", "display": "Patient declined"},
    {"code": "clinical-judgement", "system": "https://api.augsidius.care/cds/override-reason", "display": "Clinical judgement"}
  ],
  "links": [
    {"label": "PubMed 32138474 (2020)", "url": "https://pubmed.ncbi.nlm.nih.gov/32138474/", "type": "absolute"}
  ],
  "extension": {
    "com.augsidius": {
      "kind": "contraindication",
      "certainty": "moderate",
      "weight": null,
      "concepts": ["c_wibi…", "c_k2pd…"],
      "evidence": [{"claim": "…", "certainty": "moderate", "detail": null, "sources": [ … ]}]
    }
  }
}
Field Always Description
uuid yes Unique id of this card. Use it as card_id in feedback.
summary yes One line, under 140 characters. Show it as the card title.
detail yes Markdown: the reasoning, the patient-specific trigger, certainty, and related statements.
indicator yes critical, warning or info — see above.
source.label, source.url yes Attribution.
source.topic yes The card kind as a coding.
suggestions when there is something to do Proposed actions (below).
selectionBehavior with suggestions any: the user may accept several suggestions.
overrideReasons yes Reasons to offer when the user dismisses the card.
links when sources exist Up to three source links.
extension["com.augsidius"] yes Augsidius data: kind, certainty (best certainty among the card's evidence), weight (for emergency cards, relative weight of the condition), concepts (concept ids involved), evidence (full evidence objects with quotes).

Suggestions

JSON
{
  "label": "Cerebrospinal fluid analysis",
  "uuid": "7d2e…",
  "isRecommended": true,
  "actions": [{
    "type": "create",
    "description": "Order Cerebrospinal fluid analysis",
    "resource": {"resourceType": "ServiceRequest", "status": "draft", "intent": "proposal",
                 "code": {"text": "Cerebrospinal fluid analysis"}}
  }],
  "extension": {"com.augsidius": {"action": "test", "concept": "c_t5m9…", "rules_out_emergency": true}}
}
Field Description
label What to show on the button.
isRecommended true for the suggestions to do first.
actions For tests: a draft FHIR ServiceRequest your EMR can pre-fill an order from. Questions, examinations and Review / Document suggestions have no actions — they are prompts for the clinician.
extension["com.augsidius"] action (ask, examine, measure, test), concept, rules_out_emergency.

Feedback

Tell us what clinicians did with each card — it is how the cards get better, and it shows up in Graphite → Feedback.

JSON
POST /v1/feedback
{"request_id": "req_18c…", "card_id": "4c1e8a6e-2a59-4b7f-9a39-0c4f7c2d5e11",
 "outcome": "overridden", "override_reason": "benefit-outweighs-risk"}
outcome When
accepted The user acted on the card or one of its suggestions.
overridden The user dismissed it; send the chosen overrideReasons code.
ignored The card was shown and not acted on.

Integration patterns

  • Chart open / encounter start — call with the visit summary; show critical cards in a banner.
  • Prescribing — call when an order is drafted, with the planned medicine in the text ("Plan: start ibuprofen 400 mg TDS"); show contraindication and interaction cards before signing.
  • Before discharge — call with the discharge summary; review documentation gaps.
  • Backend only — your EMR server calls the API; your key never reaches the browser or the clinician.

Limits and price

Input Up to about 3,000 tokens
Cards Up to 8 per call (2 emergency, 4 medication safety, 1 work-up, 1 documentation)
Typical time 10–17 seconds; the first card usually arrives before the last is ready
Price 20 units per call per 500 input tokens — see Plans & billing

Preview limitations. Interaction coverage is narrower than contraindication coverage; absence of an interaction card is not proof that none exists. Cards support clinical judgement and do not replace it.