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 인젝션 안전: 모든 쿼리는 매개변수화된 명령문 사용.
- 동의 추적: 환자 동의 기록은 유형, 승인 날짜, 만료일, 입회인 (감사 추적용)을 포함합니다.
- 불변 감사 추적: GL 항목은 절대 수정되지 않습니다. 취소 시 역분개가 생성됩니다. 모든 작업은
audit_log에 기록됩니다.
스킬 활성화 트리거
사용자가 다음을 언급할 때 이 스킬을 활성화하세요: 환자, 병원, 클리닉, 약속, 진료, 바이탈, 진단, ICD-10, 처방, 약물, 절차, CPT, 임상 노트, SOAP 노트, 검사실 오더, 영상, X-선, MRI, CT, 의뢰, 사전 승인, 보험 청구, 청구, 수가, 의약품집, 조제, 약국, 의료, 건강, 제공자, 체크인, 체크아웃, 대기자 명단.
설정 (최초 사용 시에만)
데이터베이스가 존재하지 않거나 "해당 테이블 없음" 오류가 표시되는 경우:
python3 {baseDir}/../erpclaw/scripts/db_query.py --action initialize-database
python3 {baseDir}/scripts/db_query.py --action status
빠른 시작 (계층 1)
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 "급성 상기도 감염"
--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}
모든 액션 (계층 2)
모든 액션: python3 {baseDir}/scripts/db_query.py --action <action> [flags]
환자 (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 --cpt-code --performed-by-id --verified-by-id |
list-imaging-results | --imaging-order-id --limit --offset | |
add-lab-panel | --panel-name | --description --effective-date --expiration-date --status |
add-lab-panel-component | --panel-id --component-name | --test-code --reference-low --reference-high --unit --sequence |
의뢰 (6개 액션)
| 액션 | 필수 플래그 | 선택적 플래그 |
|---|---|---|
add-referral | --company-id --patient-id --referring-provider-id --referred-to-id --referral-date | --referral-type --specialty --reason --notes --urgency |
update-referral | --referral-id | --referral-status --notes --referred-to-id --urgency |
get-referral | --referral-id | |
list-referrals | --patient-id --company-id --referring-provider-id --status --limit --offset | |
add-referral-auth | --referral-id --auth-type --auth-number | --auth-status --effective-date --expiration-date --authorized-visits --notes --authorized-by-id |
update-referral-auth | --referral-auth-id | --auth-status --expiration-date --authorized-visits --notes |
사전 승인 (4개 액션)
| 액션 | 필수 플래그 | 선택적 플래그 |
|---|---|---|
add-prior-auth | --patient-id --company-id --insurance-id --auth-type --auth-date | --auth-number --cpt-code --ndc-code --requesting-provider-id --auth-status --effective-date --expiration-date --authorized-units |
update-prior-auth | --prior-auth-id | --auth-status --expiration-date --authorized-units --denial-reason --appeal-deadline --notes |
get-prior-auth | --prior-auth-id | |
list-prior-auths | --patient-id --company-id --status --limit --offset |