> ## Documentation Index
> Fetch the complete documentation index at: https://docs.medera.info/llms.txt
> Use this file to discover all available pages before exploring further.

# Care Orchestrator

> Multi-agent runtime coordinating voice and workflow agents.

The Care Orchestrator lives in AI Services (`src/care_orchestrator/`,) and exposes a REST surface under `/api/care-orchestrator`. It coordinates voice agents, workflow agents, an event bus, and a workflow state machine.

## Agents at a glance

<Frame>
  <svg viewBox="0 0 720 500" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="medera/orchestrator.svg" style={{ width: '100%', height: 'auto', display: 'block', maxWidth: '780px', margin: '24px auto' }}><defs><pattern id="mdr-dots" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse"><circle cx="1" cy="1" r="1" fill="rgba(0,0,0,0.08)" /></pattern></defs><rect x="0" y="0" width="720" height="500" fill="#ffffff" /><rect x="0" y="0" width="720" height="32" fill="#141413" /><circle cx="14" cy="16" r="3" fill="#ff5f57" /><circle cx="26" cy="16" r="3" fill="#febc2e" /><circle cx="38" cy="16" r="3" fill="#28c840" /><text x="54" y="20" fill="#9a9893" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="11" fontWeight="500">medera/orchestrator.svg</text><text x="706" y="20" textAnchor="end" fill="#9a9893" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10">care orchestrator</text><rect x="0" y="32" width="720" height="468" fill="#fafaf6" /><rect x="0" y="32" width="720" height="468" fill="url(#mdr-dots)" /><rect x="0.5" y="0.5" width="719" height="499" fill="none" stroke="#141413" strokeOpacity="0.18" /><text x="360.0" y="56" textAnchor="middle" fill="#141413" fontFamily="Inter, sans-serif" fontSize="16" fontWeight="600">Care Orchestrator</text><text x="360.0" y="76" textAnchor="middle" fill="#5c5c5a" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="11">voice + workflow agents on an event bus</text><rect x="60" y="200" width="600" height="60" fill="#141413" stroke="none" strokeWidth="1" /><text x="360.0" y="230" textAnchor="middle" fill="#ffffff" fontFamily="Inter, sans-serif" fontSize="14" fontWeight="600">Event Bus</text><text x="360.0" y="248" textAnchor="middle" fill="#dbe5ff" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9">IntakeCompleted · SessionAnalyzed · PACriteriaEvaluated · ...</text><rect x="66.0" y="110" width="138.0" height="70" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="132.20" y="122.80" width="5.60" height="1.40" fill="#141413" /><rect x="130.80" y="124.20" width="1.40" height="7.00" fill="#141413" /><rect x="137.80" y="124.20" width="1.40" height="7.00" fill="#141413" /><rect x="132.20" y="131.20" width="5.60" height="1.40" fill="#141413" /><rect x="133.60" y="125.60" width="2.80" height="4.20" fill="#76a1fc" /><rect x="129.40" y="128.40" width="1.40" height="2.80" fill="#141413" /><rect x="139.20" y="128.40" width="1.40" height="2.80" fill="#141413" /><rect x="130.80" y="132.60" width="8.40" height="1.40" fill="#141413" /><rect x="133.60" y="134.00" width="2.80" height="2.80" fill="#141413" /><rect x="130.80" y="136.80" width="8.40" height="1.40" fill="#141413" /><rect x="142.00" y="127.00" width="1.40" height="1.40" fill="#76a1fc" /><rect x="143.40" y="125.60" width="1.40" height="4.20" fill="#76a1fc" /><text x="135.0" y="160" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">Patient Intake</text><text x="135.0" y="174" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">VOICE</text><line x1="135.0" y1="180" x2="135.0" y2="200" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="216.0" y="110" width="138.0" height="70" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="276.60" y="129.80" width="1.40" height="2.80" fill="#141413" /><rect x="278.00" y="128.40" width="4.20" height="1.40" fill="#141413" /><rect x="278.00" y="132.60" width="4.20" height="1.40" fill="#141413" /><rect x="282.20" y="129.80" width="1.40" height="2.80" fill="#141413" /><rect x="287.80" y="129.80" width="1.40" height="2.80" fill="#141413" /><rect x="289.20" y="128.40" width="4.20" height="1.40" fill="#141413" /><rect x="289.20" y="132.60" width="4.20" height="1.40" fill="#141413" /><rect x="293.40" y="129.80" width="1.40" height="2.80" fill="#141413" /><rect x="282.20" y="129.80" width="5.60" height="2.80" fill="#76a1fc" /><text x="285.0" y="160" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">Care Coordinator</text><text x="285.0" y="174" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">VOICE</text><line x1="285.0" y1="180" x2="285.0" y2="200" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="366.0" y="110" width="138.0" height="70" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="428.00" y="122.80" width="11.20" height="1.40" fill="#141413" /><rect x="428.00" y="122.80" width="1.40" height="15.40" fill="#141413" /><rect x="428.00" y="138.20" width="12.60" height="1.40" fill="#141413" /><rect x="439.20" y="125.60" width="1.40" height="12.60" fill="#141413" /><rect x="437.80" y="122.80" width="1.40" height="1.40" fill="#141413" /><rect x="439.20" y="124.20" width="1.40" height="2.80" fill="#141413" /><rect x="430.80" y="128.40" width="7.00" height="1.40" fill="#76a1fc" /><rect x="430.80" y="131.20" width="7.00" height="1.40" fill="#76a1fc" /><rect x="430.80" y="134.00" width="4.20" height="1.40" fill="#76a1fc" /><text x="435.0" y="160" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">Referral Specialist</text><text x="435.0" y="174" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">VOICE</text><line x1="435.0" y1="180" x2="435.0" y2="200" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="516.0" y="110" width="138.0" height="70" fill="#ffffff" stroke="rgba(0,0,0,0.08)" strokeWidth="1" /><rect x="579.40" y="122.80" width="11.20" height="1.40" fill="#141413" /><rect x="578.00" y="124.20" width="1.40" height="9.80" fill="#141413" /><rect x="590.60" y="124.20" width="1.40" height="9.80" fill="#141413" /><rect x="579.40" y="134.00" width="1.40" height="1.40" fill="#141413" /><rect x="589.20" y="134.00" width="1.40" height="1.40" fill="#141413" /><rect x="580.80" y="135.40" width="1.40" height="1.40" fill="#141413" /><rect x="587.80" y="135.40" width="1.40" height="1.40" fill="#141413" /><rect x="582.20" y="136.80" width="5.60" height="1.40" fill="#141413" /><rect x="583.60" y="138.20" width="2.80" height="1.40" fill="#141413" /><rect x="580.80" y="129.80" width="1.40" height="1.40" fill="#76a1fc" /><rect x="582.20" y="131.20" width="1.40" height="1.40" fill="#76a1fc" /><rect x="583.60" y="129.80" width="1.40" height="1.40" fill="#76a1fc" /><rect x="585.00" y="128.40" width="1.40" height="1.40" fill="#76a1fc" /><rect x="586.40" y="127.00" width="1.40" height="1.40" fill="#76a1fc" /><rect x="587.80" y="125.60" width="1.40" height="1.40" fill="#76a1fc" /><text x="585.0" y="160" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10" fontWeight="600">PA Specialist</text><text x="585.0" y="174" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">VOICE</text><line x1="585.0" y1="180" x2="585.0" y2="200" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="65.0" y="310" width="90.0" height="70" fill="#dbe5ff" stroke="#76a1fc" strokeWidth="1" /><rect x="105.20" y="322.40" width="9.60" height="1.20" fill="#141413" /><rect x="104.00" y="323.60" width="1.20" height="8.40" fill="#141413" /><rect x="114.80" y="323.60" width="1.20" height="8.40" fill="#141413" /><rect x="105.20" y="332.00" width="1.20" height="1.20" fill="#141413" /><rect x="113.60" y="332.00" width="1.20" height="1.20" fill="#141413" /><rect x="106.40" y="333.20" width="1.20" height="1.20" fill="#141413" /><rect x="112.40" y="333.20" width="1.20" height="1.20" fill="#141413" /><rect x="107.60" y="334.40" width="4.80" height="1.20" fill="#141413" /><rect x="108.80" y="335.60" width="2.40" height="1.20" fill="#141413" /><rect x="106.40" y="328.40" width="1.20" height="1.20" fill="#76a1fc" /><rect x="107.60" y="329.60" width="1.20" height="1.20" fill="#76a1fc" /><rect x="108.80" y="328.40" width="1.20" height="1.20" fill="#76a1fc" /><rect x="110.00" y="327.20" width="1.20" height="1.20" fill="#76a1fc" /><rect x="111.20" y="326.00" width="1.20" height="1.20" fill="#76a1fc" /><rect x="112.40" y="324.80" width="1.20" height="1.20" fill="#76a1fc" /><text x="110.0" y="360" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="700">PRIOR\_AUTH</text><text x="110.0" y="374" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">WORKFLOW</text><line x1="110.0" y1="310" x2="110.0" y2="260" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="165.0" y="310" width="90.0" height="70" fill="#dbe5ff" stroke="#76a1fc" strokeWidth="1" /><rect x="204.00" y="322.40" width="9.60" height="1.20" fill="#141413" /><rect x="204.00" y="322.40" width="1.20" height="13.20" fill="#141413" /><rect x="204.00" y="335.60" width="10.80" height="1.20" fill="#141413" /><rect x="213.60" y="324.80" width="1.20" height="10.80" fill="#141413" /><rect x="212.40" y="322.40" width="1.20" height="1.20" fill="#141413" /><rect x="213.60" y="323.60" width="1.20" height="2.40" fill="#141413" /><rect x="206.40" y="327.20" width="6.00" height="1.20" fill="#76a1fc" /><rect x="206.40" y="329.60" width="6.00" height="1.20" fill="#76a1fc" /><rect x="206.40" y="332.00" width="3.60" height="1.20" fill="#76a1fc" /><text x="210.0" y="360" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="700">REFERRAL</text><text x="210.0" y="374" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">WORKFLOW</text><line x1="210.0" y1="310" x2="210.0" y2="260" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="265.0" y="310" width="90.0" height="70" fill="#dbe5ff" stroke="#76a1fc" strokeWidth="1" /><rect x="304.00" y="322.40" width="9.60" height="1.20" fill="#141413" /><rect x="304.00" y="322.40" width="1.20" height="13.20" fill="#141413" /><rect x="304.00" y="335.60" width="10.80" height="1.20" fill="#141413" /><rect x="313.60" y="324.80" width="1.20" height="10.80" fill="#141413" /><rect x="312.40" y="322.40" width="1.20" height="1.20" fill="#141413" /><rect x="313.60" y="323.60" width="1.20" height="2.40" fill="#141413" /><rect x="306.40" y="327.20" width="6.00" height="1.20" fill="#76a1fc" /><rect x="306.40" y="329.60" width="6.00" height="1.20" fill="#76a1fc" /><rect x="306.40" y="332.00" width="3.60" height="1.20" fill="#76a1fc" /><text x="310.0" y="360" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="700">PRESCRIPTION</text><text x="310.0" y="374" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">WORKFLOW</text><line x1="310.0" y1="310" x2="310.0" y2="260" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="365.0" y="310" width="90.0" height="70" fill="#dbe5ff" stroke="#76a1fc" strokeWidth="1" /><rect x="401.60" y="324.80" width="6.00" height="1.20" fill="#141413" /><rect x="401.60" y="324.80" width="1.20" height="10.80" fill="#141413" /><rect x="407.60" y="324.80" width="1.20" height="1.20" fill="#141413" /><rect x="408.80" y="326.00" width="9.60" height="1.20" fill="#141413" /><rect x="418.40" y="326.00" width="1.20" height="9.60" fill="#141413" /><rect x="401.60" y="335.60" width="16.80" height="1.20" fill="#141413" /><rect x="405.20" y="329.60" width="9.60" height="1.20" fill="#76a1fc" /><rect x="405.20" y="332.00" width="7.20" height="1.20" fill="#76a1fc" /><text x="410.0" y="360" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="700">LAB</text><text x="410.0" y="374" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">WORKFLOW</text><line x1="410.0" y1="310" x2="410.0" y2="260" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="465.0" y="310" width="90.0" height="70" fill="#dbe5ff" stroke="#76a1fc" strokeWidth="1" /><rect x="506.40" y="323.60" width="2.40" height="1.20" fill="#141413" /><rect x="511.20" y="323.60" width="2.40" height="1.20" fill="#141413" /><rect x="504.00" y="324.80" width="2.40" height="1.20" fill="#141413" /><rect x="513.60" y="324.80" width="2.40" height="1.20" fill="#141413" /><rect x="502.80" y="326.00" width="1.20" height="6.00" fill="#141413" /><rect x="516.00" y="326.00" width="1.20" height="6.00" fill="#141413" /><rect x="508.80" y="322.40" width="2.40" height="1.20" fill="#141413" /><rect x="508.80" y="324.80" width="2.40" height="1.20" fill="#76a1fc" /><rect x="508.80" y="326.00" width="2.40" height="1.20" fill="#76a1fc" /><rect x="508.80" y="327.20" width="2.40" height="1.20" fill="#76a1fc" /><rect x="508.80" y="328.40" width="2.40" height="1.20" fill="#76a1fc" /><rect x="508.80" y="329.60" width="2.40" height="1.20" fill="#76a1fc" /><rect x="508.80" y="330.80" width="2.40" height="1.20" fill="#76a1fc" /><rect x="504.00" y="332.00" width="1.20" height="1.20" fill="#141413" /><rect x="514.80" y="332.00" width="1.20" height="1.20" fill="#141413" /><rect x="505.20" y="333.20" width="2.40" height="1.20" fill="#141413" /><rect x="512.40" y="333.20" width="2.40" height="1.20" fill="#141413" /><rect x="507.60" y="334.40" width="4.80" height="1.20" fill="#141413" /><rect x="508.80" y="335.60" width="2.40" height="1.20" fill="#141413" /><text x="510.0" y="360" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="700">CARE\_PLAN</text><text x="510.0" y="374" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">WORKFLOW</text><line x1="510.0" y1="310" x2="510.0" y2="260" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><rect x="565.0" y="310" width="90.0" height="70" fill="#dbe5ff" stroke="#76a1fc" strokeWidth="1" /><rect x="608.80" y="321.20" width="2.40" height="1.20" fill="#141413" /><rect x="607.60" y="322.40" width="4.80" height="1.20" fill="#141413" /><rect x="606.40" y="323.60" width="1.20" height="1.20" fill="#141413" /><rect x="612.40" y="323.60" width="1.20" height="1.20" fill="#141413" /><rect x="606.40" y="324.80" width="1.20" height="1.20" fill="#141413" /><rect x="612.40" y="324.80" width="1.20" height="1.20" fill="#141413" /><rect x="605.20" y="326.00" width="1.20" height="1.20" fill="#141413" /><rect x="613.60" y="326.00" width="1.20" height="1.20" fill="#141413" /><rect x="605.20" y="327.20" width="1.20" height="1.20" fill="#141413" /><rect x="613.60" y="327.20" width="1.20" height="1.20" fill="#141413" /><rect x="604.00" y="328.40" width="1.20" height="1.20" fill="#141413" /><rect x="614.80" y="328.40" width="1.20" height="1.20" fill="#141413" /><rect x="604.00" y="329.60" width="1.20" height="1.20" fill="#141413" /><rect x="614.80" y="329.60" width="1.20" height="1.20" fill="#141413" /><rect x="602.80" y="330.80" width="1.20" height="1.20" fill="#141413" /><rect x="616.00" y="330.80" width="1.20" height="1.20" fill="#141413" /><rect x="602.80" y="332.00" width="1.20" height="1.20" fill="#141413" /><rect x="616.00" y="332.00" width="1.20" height="1.20" fill="#141413" /><rect x="601.60" y="333.20" width="1.20" height="1.20" fill="#141413" /><rect x="617.20" y="333.20" width="1.20" height="1.20" fill="#141413" /><rect x="601.60" y="334.40" width="1.20" height="1.20" fill="#141413" /><rect x="617.20" y="334.40" width="1.20" height="1.20" fill="#141413" /><rect x="601.60" y="335.60" width="16.80" height="1.20" fill="#141413" /><rect x="608.80" y="326.00" width="2.40" height="4.80" fill="#76a1fc" /><rect x="608.80" y="332.00" width="2.40" height="2.40" fill="#76a1fc" /><text x="610.0" y="360" textAnchor="middle" fill="#141413" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="9" fontWeight="700">ESCALATION</text><text x="610.0" y="374" textAnchor="middle" fill="#4f7be0" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="8" fontWeight="700" letterSpacing="2">WORKFLOW</text><line x1="610.0" y1="310" x2="610.0" y2="260" stroke="rgba(20,20,19,0.40)" strokeWidth="1" strokeDasharray="3 3" /><text x="360.0" y="468" textAnchor="middle" fill="#5c5c5a" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="10">30+ state workflow machine · per-tenant audit · retry + backoff</text></svg>
</Frame>

## Voice agents (4)

| `agent type`          | Name                          | Voice ID     | Purpose                  |                                                                                                                                                                                                                                                              |
| :-------------------- | :---------------------------- | :----------- | :----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `INTAKE`              | **Intake Agent**              | Medera voice | Patient intake calls     |                                                                                                                                                                                                                                                              |
| `CARE_COORDINATOR`    | **Care Coordinator Agent**    | Medera voice | Ongoing care, follow-ups |                                                                                                                                                                                                                                                              |
| `REFERRAL_SPECIALIST` | **Referral Specialist Agent** | Medera voice | Referral management      |                                                                                                                                                                                                                                                              |
| `PA_SPECIALIST`       | **PA Specialist Agent**       | Medera voice | Prior authorization      | All voice agents use Medera STT `nova-2-medical` transcription, OpenAI `Medera reasoning` LLM (T=0.3, max 500 tokens), and Medera voice `voice synthesis` synthesis. Default call settings: 15-minute max duration, 10 s silence timeout, recording enabled. |

## Workflow agents (6)

`agent type.PRIOR_AUTH`, `REFERRAL`, `PRESCRIPTION`, `LAB`, `CARE_PLAN`, `ESCALATION` — these are backend agents that drive multi-step workflows without voice.

## Endpoints

| Method | Path                                                      | Purpose                                              |
| :----- | :-------------------------------------------------------- | :--------------------------------------------------- |
| GET    | `/api/care-orchestrator/health`                           | Health                                               |
| GET    | `/api/care-orchestrator/workflows`                        | List workflows (filters: org, type, status, patient) |
| POST   | `/api/care-orchestrator/workflows`                        | Create workflow                                      |
| GET    | `/api/care-orchestrator/workflows/{id}`                   | Get workflow                                         |
| POST   | `/api/care-orchestrator/workflows/{id}/transition`        | Trigger state transition                             |
| POST   | `/api/care-orchestrator/workflows/{id}/cancel`            | Cancel                                               |
| GET    | `/api/care-orchestrator/agents`                           | List agents                                          |
| GET    | `/api/care-orchestrator/agents/{agent_type}`              | Get agent                                            |
| GET    | `/api/care-orchestrator/agents/{agent_type}/stats`        | Agent stats                                          |
| POST   | `/api/care-orchestrator/tasks/route`                      | Route task to agent                                  |
| GET    | `/api/care-orchestrator/tasks`                            | List tasks                                           |
| GET    | `/api/care-orchestrator/voice/agents`                     | List voice agents                                    |
| POST   | `/api/care-orchestrator/voice/calls`                      | Initiate voice call                                  |
| GET    | `/api/care-orchestrator/voice/calls/{call_id}`            | Call status                                          |
| POST   | `/api/care-orchestrator/voice/calls/{call_id}/transfer`   | Transfer call                                        |
| POST   | `/api/care-orchestrator/voice/calls/{call_id}/end`        | End call                                             |
| GET    | `/api/care-orchestrator/voice/calls/{call_id}/transcript` | Get transcript                                       |
| GET    | `/api/care-orchestrator/events`                           | List events                                          |
| POST   | `/api/care-orchestrator/events`                           | Publish event                                        |
| GET    | `/api/care-orchestrator/patients/{id}/events`             | Patient events                                       |
| GET    | `/api/care-orchestrator/patients/{id}/workflows`          | Patient workflows                                    |
| GET    | `/api/care-orchestrator/analytics/summary`                | Analytics                                            |

## Event bus

| Category         | Sample events                                                                                                                                                                 |
| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Intake**       | `INTAKE_INITIATED`, `INTAKE_CALL_STARTED`, `INTAKE_IDENTITY_VERIFIED`, `INTAKE_RED_FLAG_DETECTED`, `INTAKE_BEHAVIORAL_HEALTH_DETECTED`, `INTAKE_COMPLETED`                    |
| **PA**           | `PA_INITIATED`, `PA_CRITERIA_EVALUATED`, `PA_DOCUMENTS_GENERATED`, `PA_SUBMITTED`, `PA_APPROVED`, `PA_DENIED`, `PA_APPEAL_INITIATED`, `PA_P2P_SCHEDULED`, `PA_UNITS_EXPIRING` |
| **Referral**     | `REFERRAL_INITIATED`, `REFERRAL_SPECIALTY_IDENTIFIED`, `REFERRAL_PA_REQUIRED`, `REFERRAL_SUBMITTED`, `REFERRAL_APPOINTMENT_SCHEDULED`, `REFERRAL_CLOSED`                      |
| **Prescription** | `PRESCRIPTION_INITIATED`, `PRESCRIPTION_INTERACTION_WARNING`, `PRESCRIPTION_PA_REQUIRED`, `PRESCRIPTION_APPROVED`, `PRESCRIPTION_DISPENSED`                                   |
| **Lab**          | `LAB_ORDER_INITIATED`, `LAB_SPECIMEN_COLLECTED`, `LAB_RESULTS_AVAILABLE`, `LAB_ABNORMAL_REVIEW`, `LAB_CRITICAL_ALERT`                                                         |

***

## What's next

<CardGroup cols={2}>
  <Card title="A2A Protocol" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/message-square.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=7200184ba61093b726487f5b49d61718" href="/agentic/a2a-protocol" width="40" height="40" data-path="icons/ui/message-square.svg">
    Agent-to-agent communication.
  </Card>

  <Card title="Context & Memory" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/memory.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=c830629c46ea0098a37580b8f4f65d63" href="/agentic/context-memory" width="40" height="40" data-path="icons/ui/memory.svg">
    Per-execution context + persistent memory.
  </Card>

  <Card title="Core Concepts" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/book.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=491b19a75d428ef8cd36d8afc2d3612c" href="/agentic/core-concepts" width="40" height="40" data-path="icons/ui/book.svg">
    Building blocks of the framework.
  </Card>

  <Card title="Architecture" icon="https://mintcdn.com/medera-357fd587/iC-6rAuwl-0aQSw_/icons/ui/diagram-project.svg?fit=max&auto=format&n=iC-6rAuwl-0aQSw_&q=85&s=c34a1c4143b4b177cb3d865464dd7562" href="/agentic/architecture" width="40" height="40" data-path="icons/ui/diagram-project.svg">
    Runtime architecture.
  </Card>
</CardGroup>
