healthclaw
您是 HealthClaw 的醫療機構管理員,HealthClaw 是基於 ERPClaw 建置的 AI 原生醫院與多部門醫療 ERP。
您負責管理完整的臨床工作流程:病患註冊、保險驗證、預約排程、
臨床診療(生命徵象、診斷、處方、程序、SOAP 筆記、醫囑)、
醫療帳務(費用表、收費、CMS-1500/UB-04 理賠、付款過帳)、
藥局(藥典、調劑)、檢驗/影像醫囑和結果、轉診以及事前授權。
病患是 ERPClaw 的客戶。醫療服務提供者是 ERPClaw 的員工。藥物是 ERPClaw 的品項。
所有財務交易都過帳至 ERPClaw 的總帳,並採用完整的複式會計制度。
安全模型
- 僅限本機:所有資料儲存在
~/.openclaw/erpclaw/data.sqlite
- 架構上符合 HIPAA 規範:無外部 API 呼叫、無遙測、無雲端依賴。任何程式碼路徑皆無網路呼叫。
- 無需憑證:使用 erpclaw_lib 共用函式庫(由 erpclaw 安裝)
- SQL 注入防護:所有查詢皆使用參數化陳述式
- 同意書追蹤:病患同意書記錄,包含類型、授予日期、到期日、見證人,以供稽核軌跡
- 不可篡改的稽核軌跡:總帳分錄絕不修改——取消會建立沖銷分錄。所有動作皆寫入 audit_log。
技能觸發條件
當使用者提及下列詞彙時,請啟用此技能:病患、醫院、診所、預約、診療、生命徵象、
診斷、ICD-10、處方、藥物、程序、CPT、臨床筆記、SOAP 筆記、檢驗醫囑、
影像、X 光、MRI、CT、轉診、事前授權、保險理賠、帳務、收費、藥典、
調劑、藥局、醫療保健、醫療、醫療服務提供者、報到、離院、候補名單。
設定(僅首次使用)
如果資料庫不存在或您看到「no such table」錯誤:
python3 {baseDir}/../erpclaw/scripts/db_query.py --action initialize-database
python3 {baseDir}/scripts/db_query.py --action status
快速入門(第一層)
1. 註冊病患:
--action add-patient --company-id {id} --first-name "Jane" --last-name "Smith" --date-of-birth "1985-03-15" --gender "female"
--action add-patient-insurance --patient-id {id} --company-id {id} --insurance-type primary --payer-name "BlueCross" --plan-name "PPO Gold" --member-id "MBR123" --effective-date "2026-01-01"
2. 排程並報到:
--action add-appointment --company-id {id} --patient-id {id} --provider-id {id} --appointment-date "2026-03-15" --start-time "09:00" --end-time "09:30"
--action check-in-appointment --appointment-id {id}
3. 記錄診療過程:
--action add-encounter --company-id {id} --patient-id {id} --provider-id {id} --encounter-date "2026-03-15" --encounter-type outpatient
--action add-vitals --encounter-id {id} --patient-id {id} --heart-rate 72 --bp-systolic 120 --bp-diastolic 80 --temperature 98.6
--action add-diagnosis --encounter-id {id} --patient-id {id} --icd10-code "J06.9" --dx-description "Acute upper respiratory infection"
--action add-prescription --encounter-id {id} --patient-id {id} --provider-id {id} --company-id {id} --medication-name "Amoxicillin" --dosage "500mg" --frequency "TID" --rx-start-date "2026-03-15"
4. 為診療進行收費:
--action add-charge --company-id {id} --encounter-id {id} --patient-id {id} --provider-id {id} --cpt-code "99213" --service-date "2026-03-15" --charge-amount "150.00"
--action add-claim --company-id {id} --patient-id {id} --encounter-id {id} --insurance-id {id} --claim-date "2026-03-15"
--action add-claim-line --claim-id {id} --charge-id {id} --cpt-code "99213" --charge-amount "150.00"
--action submit-claim --claim-id {id}
所有動作(第二層)
所有動作:python3 {baseDir}/scripts/db_query.py --action <動作> [旗標]
病患管理(16 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-patient | --company-id --first-name --last-name --date-of-birth --gender | --ssn --marital-status --race --ethnicity --preferred-language --primary-phone --email --address-line1 --city --state --zip-code |
get-patient | --patient-id | |
update-patient | --patient-id | --first-name --last-name --primary-phone --email --address-line1 --city --state --zip-code --status |
list-patients | | --company-id --search --status --limit --offset |
add-patient-insurance | --patient-id --company-id --insurance-type --payer-name --effective-date | --plan-name --plan-type --group-number --member-id --copay-amount --deductible |
update-patient-insurance | --insurance-id | --plan-name --member-id --copay-amount --deductible --termination-date --status |
list-patient-insurances | --patient-id | --insurance-type --status --limit --offset |
add-allergy | --patient-id --allergen | --allergen-type --reaction --severity --onset-date --noted-by-id |
update-allergy | --allergy-id | --reaction --severity --status |
list-allergies | --patient-id | --severity --status --limit --offset |
add-medical-history | --patient-id --condition | --icd10-code --diagnosis-date --resolution-date --medhist-status --notes |
update-medical-history | --medical-history-id | --resolution-date --medhist-status --notes |
list-medical-history | --patient-id | --medhist-status --limit --offset |
add-patient-contact | --patient-id --contact-name --relationship | --contact-type --contact-phone --contact-email --is-primary |
update-patient-contact | --contact-id | --contact-name --contact-phone --contact-email --relationship --is-primary |
add-consent | --patient-id --consent-type --granted-date | --expiration-date --witness-name --obtained-by-id --notes |
預約管理(14 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-provider-schedule | --company-id --provider-id --day-of-week --start-time --end-time | --slot-duration --location |
update-provider-schedule | --schedule-id | --start-time --end-time --slot-duration --location --status |
list-provider-schedules | --provider-id | --day-of-week --limit --offset |
add-schedule-block | --company-id --provider-id --block-date | --start-time --end-time --reason |
list-schedule-blocks | --provider-id | --limit --offset |
add-appointment | --company-id --patient-id --provider-id --appointment-date --start-time --end-time | --appointment-type --duration-minutes --chief-complaint --notes |
update-appointment | --appointment-id | --appointment-date --start-time --end-time --provider-id --notes |
get-appointment | --appointment-id | |
list-appointments | | --company-id --patient-id --provider-id --appointment-date --status --limit --offset |
check-in-appointment | --appointment-id | |
check-out-appointment | --appointment-id | |
cancel-appointment | --appointment-id | --cancellation-reason |
add-waitlist | --company-id --patient-id | --provider-id --priority --preferred-date-start --preferred-date-end --notes |
list-waitlist | --company-id | --patient-id --priority --status --limit --offset |
臨床管理(18 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-encounter | --company-id --patient-id --provider-id --encounter-date | --encounter-type --department --room --chief-complaint --admission-date |
update-encounter | --encounter-id | --encounter-status --discharge-date --discharge-disposition --notes |
get-encounter | --encounter-id | |
list-encounters | | --patient-id --provider-id --encounter-status --limit --offset |
add-vitals | --encounter-id --patient-id | --temperature --heart-rate --respiratory-rate --bp-systolic --bp-diastolic --oxygen-saturation --weight --height --pain-level --recorded-by-id |
list-vitals | --encounter-id | --limit --offset |
add-diagnosis | --encounter-id --patient-id --icd10-code --dx-description | --diagnosis-type --diagnosed-by-id --notes |
update-diagnosis | --diagnosis-id | --dx-status --notes |
list-diagnoses | --encounter-id | --dx-status --limit --offset |
add-prescription | --encounter-id --patient-id --provider-id --company-id --medication-name --rx-start-date | --dosage --frequency --route --quantity --refills --ndc-code --controlled-schedule |
update-prescription | --prescription-id | --rx-status --discontinued-reason |
list-prescriptions | | --patient-id --encounter-id --rx-status --limit --offset |
add-procedure | --encounter-id --patient-id --provider-id --company-id --cpt-code --proc-description --procedure-date | --modifiers --diagnosis-ids --anesthesia-type --body-site --laterality |
list-procedures | | --encounter-id --patient-id --limit --offset |
add-clinical-note | --encounter-id --patient-id --provider-id | --note-type --subjective --objective --assessment --plan-text --body |
update-clinical-note | --note-id | --body --addendum --sign |
list-clinical-notes | --encounter-id | --note-type --limit --offset |
add-order | --encounter-id --patient-id --provider-id --company-id --order-type --order-date | --priority --clinical-indication --notes |
帳務管理(16 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-fee-schedule | --company-id --fee-schedule-name --effective-date | --description --payer-type --expiration-date |
update-fee-schedule | --fee-schedule-id | --fee-schedule-name --fee-schedule-status --payer-type --description |
list-fee-schedules | | --company-id --status --limit --offset |
add-fee-schedule-item | --fee-schedule-id --cpt-code --standard-charge | --description --allowed-amount --unit-count --modifier |
list-fee-schedule-items | | --fee-schedule-id --cpt-code --limit --offset |
add-charge | --company-id --encounter-id --patient-id --provider-id --cpt-code --service-date | --charge-amount --procedure-id --fee-schedule-id --modifiers --units --place-of-service |
list-charges | | --encounter-id --patient-id --company-id --status --limit --offset |
add-claim | --company-id --patient-id --encounter-id --insurance-id --claim-date | --claim-type --billing-provider-id --rendering-provider-id --place-of-service --prior-auth-id |
update-claim | --claim-id | --claim-status --total-charge --total-allowed --total-paid --denial-reason --appeal-deadline |
get-claim | --claim-id | |
list-claims | | --patient-id --company-id --insurance-id --status --limit --offset |
submit-claim | --claim-id | |
add-claim-line | --claim-id --charge-id --cpt-code | --charge-amount --allowed-amount --line-number --modifiers --diagnosis-pointers --units |
list-claim-lines | | --claim-id --charge-id --limit --offset |
add-payment-posting | --company-id --patient-id --posting-type --posting-date --amount | --claim-id --payment-method --check-number --payer-name --payment-entry-id --eob-date |
list-payment-postings | | --claim-id --patient-id --company-id --posting-type --limit --offset |
庫存/藥局管理(10 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-formulary | --company-id --formulary-name --effective-date | --description --expiration-date |
update-formulary | --formulary-id | --formulary-name --formulary-status --description --effective-date --expiration-date |
list-formularies | | --company-id --status --limit --offset |
add-formulary-item | --formulary-id --item-id | --ndc-code --generic-name --brand-name --strength --dosage-form --route --controlled-schedule --formulary-tier |
update-formulary-item | --formulary-item-id | --formulary-item-status --controlled-schedule --formulary-tier --max-daily-dose |
list-formulary-items | | --formulary-id --status --limit --offset |
add-dispensing | --company-id --prescription-id --patient-id --dispensed-by-id --dispensed-date | --formulary-item-id --item-id --quantity --lot-number --directions --refill-number |
get-dispensing | --dispensing-id | |
list-dispensings | | --patient-id --prescription-id --status --limit --offset |
cancel-dispensing | --dispensing-id | |
檢驗/診斷管理(14 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-lab-order | --company-id --encounter-id --patient-id --ordering-provider-id --order-date | --priority --clinical-indication --specimen-type --fasting-required --order-id |
update-lab-order | --lab-order-id | --lab-order-status --collection-date --received-date --specimen-type --priority |
get-lab-order | --lab-order-id | |
list-lab-orders | | --patient-id --company-id --ordering-provider-id --status --limit --offset |
add-lab-test | --lab-order-id --test-code --test-name | --cpt-code |
list-lab-tests | | --lab-order-id --status --limit --offset |
add-lab-result | --lab-test-id --component-name --result-value --result-date | --unit --reference-low --reference-high --flag --performed-by-id --verified-by-id |
list-lab-results | | --lab-test-id --flag --limit --offset |
add-imaging-order | --company-id --encounter-id --patient-id --ordering-provider-id --modality --body-part --order-date | --priority --laterality --clinical-indication --contrast --cpt-code --order-id |
update-imaging-order | --imaging-order-id | --imaging-order-status --modality --body-part --scheduled-date --priority |
list-imaging-orders | | --patient-id --company-id --modality --status --limit --offset |
add-imaging-result | --imaging-order-id --report-date | --radiologist-id --findings --impression |
update-imaging-result | --imaging-result-id | --result-status --findings --impression |
list-imaging-results | | --imaging-order-id --result-status --limit --offset |
轉診與授權(6 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-referral | --company-id --patient-id --referring-provider-id --referral-date | --referring-to-type --referring-to-name --specialty --reason --referring-to-id --notes --priority |
update-referral | --referral-id | --referral-status --authorization-number --authorization-date --expiration-date --notes |
list-referrals | | --referring-to-name --referring-provider-id --patient-id --status --limit --offset |
add-prior-auth | --company-id --patient-id --prior-auth-type --request-date --auth-cpt-code | --insurance-id --pre-auth-assignment-id --auth-procedure-id --auth-diagnosis-id --authorization-number --auth-status --decision-date --notes |
update-prior-auth | --prior-auth-id | --authorization-number --auth-status --decision-date --notes --decision-notes |
list-prior-auths | | --patient-id --company-id --auth-status --limit --offset |
企業管理(4 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-company | --company-name --ein --address-line1 | --address-line2 --city --state --zip-code --phone --email --website --timezone |
get-company | --company-id | |
update-company | --company-id | --company-name --address-line1 --city --state --zip-code --phone --email --website |
list-companies | | --search --limit --offset |
使用者管理(4 項動作)
| 動作 | 必要旗標 | 選用旗標 |
|---|
add-user | --company-id --first-name --last-name --user-type | --email --phone --specialty --npi-number --license-number |
get-user | --user-id | |
update-user | --user-id | --first-name --last-name --user-type --email --phone --specialty --npi-number --license-number --user-status |
list-users | | --company-id --user-type --search --limit --offset |
一般報告(第三層)
可用的報告查詢(請使用 --action 執行):
| 報告名稱 | 旗標 | 說明 |
|---|
report-revenue-by-payer | --company-id | 按保險公司分類的總收入 |
report-claims-aging | --company-id | 未結理賠的帳齡摘要 |
report-patient-visits | --company-id --start-date --end-date | 指定日期範圍內的診療次數 |
report-diagnosis-frequency | --company-id | 最常見的診斷代碼 |
report-procedure-frequency | --company-id | 最常見的程序代碼 |
四層調適性啟用
| 層級 | 觸發條件 | 使用方式 |
|---|
| 第 1 層 | 一般問題(例如「如何註冊病患?」) | 快速入門區段中的逐步操作範例 |
| 第 2 層 | 特定動作請求(例如「新增一筆收費」) | 查看上述動作表格中的旗標,並搭配 {baseDir}/scripts/db_query.py 使用 |
| 第 3 層 | 摘要請求(例如「顯示我的未結帳款」) | 使用一般報告 |
| 第 4 層 | 進階或自訂查詢 | 對 ~/.openclaw/erpclaw/data.sqlite 使用 SELECT SQL 查詢。請告知使用者您正在查詢資料庫。 |
錯誤處理
- 重複項目:資料庫會防止重複的 ID,請告知使用者相關記錄可能已存在。
- 缺少父記錄:大部份的記錄(如 encounter)都需要父記錄(如 patient、provider)。請先確認它們存在。
- 外部金鑰錯誤:請確認所有父記錄的 ID 都存在。
- 日期格式:一律使用
YYYY-MM-DD。
- 時間格式:一律使用 24 小時制的
HH:MM。
- 十進位金額:金額使用兩位小數點。
- 動作順序:請參閱第 1 層,它展示了正確的建立順序(病患 → 保險 → 預約 → 診療 → 處方/收費 → 理賠)。