Install
openclaw skills install caremax-recordsQuery and search medical records from CareMax Health API. Supports structured query, AI-powered semantic search with RAG (natural language answers with citations). Use when a user asks about medical reports, check-up history, hospital visits, test results, gene reports, or wants to find specific records. Trigger terms: medical record, check-up, hospital report, test result, health report, find report, search records, medical history, gene report, 体检, 报告, 检查, 基因, 搜索.
openclaw skills install caremax-recordsRequires
caremax-authas a sibling directory (../caremax-auth/). If missing, tell the user to install caremax-auth first (e.g.npx skills add KittenYang/caremax-skills).
APICALL="bash ../caremax-auth/scripts/api-call.sh"
If api-call.sh returns {"error":"no_credentials",...} → immediately run bash ../caremax-auth/scripts/auth-flow.sh [base_url] (from this skill’s root).
Use searchText for natural language queries. Backend runs 4-layer search:
$APICALL POST /api/skill/records/query '{"searchText":"我有哪个基因不能喝酒"}'
$APICALL POST /api/skill/records/query '{"searchText":"我猝死的概率大吗"}'
$APICALL POST /api/skill/records/query '{"searchText":"降压药建议"}'
$APICALL POST /api/skill/records/query '{"searchText":"MTHFR"}'
Response:
{
"type": "search",
"query": "...",
"data": [...], // matched records (enriched)
"totalCount": 1,
"semanticHits": [ // vector similarity top-10
{"text": "...", "score": 0.61, "recordId": "xxx"}
],
"rag": { // AI natural language answer
"answer": "根据您的基因检测报告...[来源1][来源2]",
"citations": [
{"index": 1, "source": "脑梗塞风险评估", "relevance": "高"}
]
}
}
Display the rag.answer to the user. It contains the direct answer with citation references.
# By date range
$APICALL POST /api/skill/records/query '{"dateRange":["2025-01-01","2025-12-31"]}'
# By indicator name
$APICALL POST /api/skill/records/query '{"indicatorName":"血红蛋白"}'
# By report title
$APICALL POST /api/skill/records/query '{"reportTitle":"血常规"}'
# By record ID (single record detail)
$APICALL POST /api/skill/records/query '{"recordId":"uuid"}'
# By member + pagination
$APICALL POST /api/skill/records/query '{"memberId":"member-uuid","page":1,"limit":20}'
The system handles multiple report types:
Non-lab reports have report_type, summary, and sections[] fields instead of indicators[].
使用 /api/skill/chat 进行 AI 对话。所有对话自动保存到历史记录。
# 提问(自动搜索 + RAG + 保存历史)
$APICALL POST /api/skill/chat '{"question":"我有哪个基因不能喝酒"}'
$APICALL POST /api/skill/chat '{"question":"我的降压药应该怎么吃"}'
# 针对某份报告提问
$APICALL POST /api/skill/chat '{"question":"这份报告有什么建议","recordId":"uuid"}'
Response:
{
"id": "chat-uuid",
"question": "...",
"answer": "根据您的报告...[来源1]",
"citations": [{"index":1,"source":"...","relevance":"高","quote":"原文..."}],
"recordId": null,
"created_at": "..."
}
Display the answer to the user. Citations contain original report text.
# 获取历史记录
$APICALL GET /api/skill/chat/history
# 删除单条
$APICALL DELETE /api/skill/chat/<chat_id>
# 清空所有
$APICALL DELETE /api/skill/chat
User: "我的基因检测报告说了什么"
$APICALL POST /api/skill/chat '{"question":"我的基因检测报告说了什么"}'
User: "show my recent check-up results"
$APICALL POST /api/skill/records/query '{"dateRange":["2025-01-01","2025-06-30"]}'
User: "我的降压药应该怎么吃"
$APICALL POST /api/skill/chat '{"question":"我的降压药应该怎么吃"}'