Job Allied Health¶
job_allied_health — G6 AlliedHealth job agent.
Cluster: Job Agents | Type: component | MCP Tools: 25
Overview¶
Domain-specialist job agent for allied health professionals including physiotherapists, occupational therapists, dietitians, and radiographers. Supports patient assessment, therapy plan development, progress tracking, clinical documentation, specialist referrals, and outcome analysis — all within a safety-first JobAgentBlock framework with mandatory human-review flags for high-stakes clinical decisions.
Clinical decision-support caveat
job_allied_health is an advisory workflow assistant, not an autonomous clinical system. The public JobAlliedHealthBlock and MCP server path apply strict safety gates to high-stakes operations such as treatment planning, specialist referral, outcome analysis, and intervention evaluation. Those operations require structured professional attestation before execution.
Low-level Python handler functions in allied_health_mcp.handlers are implementation internals and can be imported directly by code in the same process. They are not the safety boundary. Production use should route user-facing calls through JobAlliedHealthBlock or JobAlliedHealthMCPBlock, keep human review in the workflow, and avoid treating generated output as clinical advice or regulated compliance evidence.
When to use:
- Generating personalised therapy plans from initial patient assessment data
- Tracking rehabilitation progress across sessions and flagging plateau or regression
- Drafting structured clinical notes compliant with healthcare documentation standards
- Coordinating multi-disciplinary referrals when a patient's needs span specialties
Example:
from mvp.job_allied_health import JobAlliedHealthBlock, JobAlliedHealthInput
block = JobAlliedHealthBlock()
result = block.infer(JobAlliedHealthInput(
task="Assess post-surgical shoulder mobility and draft a 6-week physiotherapy plan",
context={"patient_id": "P-00412", "surgery": "rotator_cuff_repair", "weeks_post_op": 3},
))
# result.ok → True; result.value → JobAlliedHealthOutput with result, artifacts
Works well with: job_framework, job_medical_surgical, job_psychologist
Executable surface and backend truth:
- The public executable MCP surface is the 25 ops in
ALL_OPS/skill/SKILL.md. - The many files under
skill/skills/are advisory workflow references, not extra executable tools. - Patient records are currently backed by
AlliedHealthStorethroughStoreBackedAdapter; no external EHR/EMR backend is configured unless a deployment supplies one. - Outputs use the canonical completion states
verified,qualified-draft, andblocked-escalated; missing external EHR support is surfaced asqualified-draftcapability evidence, not hidden.
Public API¶
JobAlliedHealthBlock(JobAgentBlock)¶
G6 Allied Health job agent with advisory agentic op routing.
| Field | Type | Default |
|---|---|---|
name | str | 'job_allied_health' |
sector | SectorClassification | field(default_factory=lambda: _SECTOR) |
toolkit | ToolkitSpec \| None | field(default_factory=lambda: JOB_TOOLKITS.get('allied_health')) |
mcp_module | str | 'mvp.job_allied_health.allied_health_mcp.server' |
agentic_planner | object \| None | None |
capabilities | ClassVar[set[type]] | {Extensible, HumanLearnable, Collaborative, ProblemSolvable, KnowledgeGrounded, Memorable, AgentCommunicable} |
Methods:
infer(data)¶
JobAlliedHealthInput(JobInput)¶
Input for the AlliedHealth job agent.
JobAlliedHealthOutput(JobOutput)¶
JobAlliedHealthMCPBlock(AIBlock[MCPJobAlliedHealthInput, MCPJobAlliedHealthOutput, dict])¶
25-op MCP block for the AlliedHealth job agent.
| Field | Type | Default |
|---|---|---|
name | str | 'job_allied_health_mcp' |
state | dict | field(default_factory=dict) |
db_path | str | ':memory:' |
resource_bounds | ResourceBounds | field(default_factory=ResourceBounds) |
usage | ResourceUsage | field(default_factory=ResourceUsage) |
Methods:
infer(data: MCPJobAlliedHealthInput) -> Result[MCPJobAlliedHealthOutput]¶
MCPJobAlliedHealthInput(BaseModel)¶
Input to JobAlliedHealthMCPBlock - 25-op dispatch.
| Field | Type | Default |
|---|---|---|
op | Literal['assess_patient', 'plan_therapy', 'track_progress', 'document_treatment', 'refer_specialist', 'analyze_outcomes', 'evaluate_intervention', 'assess_mobility', 'benchmark_recovery', 'audit_documentation', 'create_proposal', 'review_deliverable', 'delegate_task', 'report_status', 'request_feedback', 'store_artifact', 'retrieve_artifact', 'list_artifacts', 'search_artifacts', 'archive', 'plan_sprint', 'reflect_on_outcome', 'list_patterns', 'get_capabilities', 'info'] | required |
task | str | '' |
context | dict[str, Any] | Field(default_factory=dict) |
parameters | dict[str, Any] | Field(default_factory=dict) |
artifact_id | str | '' |
query | str | '' |
MCPJobAlliedHealthOutput(BaseModel)¶
Output from JobAlliedHealthMCPBlock.
| Field | Type | Default |
|---|---|---|
op | str | required |
result | str | '' |
artifacts | list[dict[str, Any]] | Field(default_factory=list) |
records | list[dict[str, Any]] | Field(default_factory=list) |
message | str | '' |
count | int | 0 |
found | bool | False |
metadata | dict[str, Any] | Field(default_factory=dict) |
degraded | bool | False |
degradation_reason | str \| None | None |
completion_state | Literal['verified', 'qualified-draft', 'blocked-escalated'] | 'qualified-draft' |
warning_card | dict[str, Any] | Field(default_factory=dict) |
evidence | dict[str, Any] | Field(default_factory=dict) |
AlliedHealthStore(JobStore)¶
SQLite store for the AlliedHealth job agent.
Constructor:
| Parameter | Type | Default |
|---|---|---|
db_path | str | ':memory:' |
Methods:
add_patient(demographics: dict | None = None, referral_source: str = '', primary_condition: str = '', functional_status: str = '') -> str¶
get_patient(patient_id: str) -> dict | None¶
list_patients(limit: int = 100) -> list[dict]¶
add_assessment(patient_id: str, assessment_type: str = '', discipline: str = '', findings: dict | None = None, scores: dict | None = None, clinician: str = '') -> str¶
get_assessments(patient_id: str) -> list[dict]¶
add_treatment_plan(patient_id: str, diagnosis: str = '', goals: list | None = None, interventions: list | None = None, frequency: str = '', duration_weeks: int = 0) -> str¶
get_treatment_plans(patient_id: str) -> list[dict]¶
update_plan_status(plan_id: str, status: str) -> None¶
add_session(patient_id: str, plan_id: str = '', discipline: str = '', interventions: list | None = None, outcomes: dict | None = None, duration_mins: int = 0, session_date: str = '') -> str¶
get_sessions(patient_id: str, plan_id: str = '') -> list[dict]¶
add_outcome_measure(patient_id: str, instrument: str = '', baseline_score: float = 0.0, current_score: float = 0.0, target_score: float = 0.0, measured_date: str = '') -> str¶
get_outcome_measures(patient_id: str, instrument: str = '') -> list[dict]¶
update_outcome_score(measure_id: str, current_score: float, measured_date: str = '') -> None¶
Functions¶
assemble_review_text(output: Any) -> str¶
Collect the reviewable free text from a JobAlliedHealthOutput (duck-typed).
assess_allied_health_output(output: Any, qa_block: Any | None = None, generate: Any | None = None) -> GroundedRunResult¶
Run grounded four-valued QA over an allied-health output.
MCP Tools¶
| Operation | Source |
|---|---|
assess_patient | allied_health_mcp |
plan_therapy | allied_health_mcp |
track_progress | allied_health_mcp |
document_treatment | allied_health_mcp |
refer_specialist | allied_health_mcp |
analyze_outcomes | allied_health_mcp |
evaluate_intervention | allied_health_mcp |
assess_mobility | allied_health_mcp |
benchmark_recovery | allied_health_mcp |
audit_documentation | allied_health_mcp |
create_proposal | allied_health_mcp |
review_deliverable | allied_health_mcp |
delegate_task | allied_health_mcp |
report_status | allied_health_mcp |
request_feedback | allied_health_mcp |
store_artifact | allied_health_mcp |
retrieve_artifact | allied_health_mcp |
list_artifacts | allied_health_mcp |
search_artifacts | allied_health_mcp |
archive | allied_health_mcp |
plan_sprint | allied_health_mcp |
reflect_on_outcome | allied_health_mcp |
list_patterns | allied_health_mcp |
get_capabilities | allied_health_mcp |
info | allied_health_mcp |