pharmacy-pos-qr-system/backend/db/paai_logs_schema.sql
thug0bin 1b33f82fd4 feat: PAAI (Pharmacist Assistant AI) 기능 구현
- PAAI 로그 테이블 스키마 (paai_logs_schema.sql)
- PAAI 로거 모듈 (db/paai_logger.py)
- /pmr/api/paai/analyze API 엔드포인트
- KIMS API 연동 (KD코드 기반 상호작용 조회)
- Clawdbot AI 연동 (HTTP API)
- PMR 화면 PAAI 버튼 및 모달
- Admin 페이지 (/admin/paai)
- 피드백 수집 기능
2026-03-05 00:36:51 +09:00

60 lines
2.6 KiB
SQL

-- PAAI (Pharmacist Assistant AI) 로그 스키마
-- 생성일: 2026-03-04
CREATE TABLE IF NOT EXISTS paai_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
-- 요청 정보
pre_serial TEXT, -- 처방번호
patient_code TEXT, -- 환자코드 (CusCode)
patient_name TEXT, -- 환자명 (마스킹: 김**)
-- 질병 정보
disease_code_1 TEXT, -- St1 (상병코드1)
disease_name_1 TEXT, -- 상병명1
disease_code_2 TEXT, -- St2 (상병코드2)
disease_name_2 TEXT, -- 상병명2
-- 처방 정보
current_medications TEXT, -- JSON: 현재 처방 [{code, name, dosage, ...}]
current_med_count INTEGER, -- 현재 처방 약품 수
previous_serial TEXT, -- 이전 처방번호
previous_medications TEXT, -- JSON: 이전 처방
prescription_changes TEXT, -- JSON: {added, removed, changed}
-- OTC 이력
otc_history TEXT, -- JSON: {purchases, frequent_items}
otc_visit_count INTEGER, -- OTC 구매 횟수
-- KIMS 상호작용
kims_drug_codes TEXT, -- JSON: 검사한 KD코드 배열
kims_drug_count INTEGER, -- 검사한 약품 수
kims_interactions TEXT, -- JSON: 상호작용 결과
kims_interaction_count INTEGER, -- 상호작용 건수
kims_has_severe BOOLEAN DEFAULT 0, -- 심각한 상호작용 (severity 1,2)
kims_response_time_ms INTEGER, -- KIMS API 응답시간
-- AI 분석
ai_prompt TEXT, -- AI에 전달한 프롬프트
ai_model TEXT, -- 사용된 모델
ai_response TEXT, -- JSON: AI 분석 결과
ai_response_time_ms INTEGER, -- AI 응답 시간
ai_token_count INTEGER, -- 토큰 사용량
-- 상태
status TEXT DEFAULT 'pending', -- pending, kims_done, success, error
error_message TEXT,
-- 피드백
feedback_useful INTEGER, -- 1=유용, 0=아님, NULL=미응답
feedback_comment TEXT -- 약사 코멘트
);
-- 인덱스
CREATE INDEX IF NOT EXISTS idx_paai_created ON paai_logs(created_at);
CREATE INDEX IF NOT EXISTS idx_paai_patient ON paai_logs(patient_code);
CREATE INDEX IF NOT EXISTS idx_paai_status ON paai_logs(status);
CREATE INDEX IF NOT EXISTS idx_paai_serial ON paai_logs(pre_serial);
CREATE INDEX IF NOT EXISTS idx_paai_severe ON paai_logs(kims_has_severe);