- 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) - 피드백 수집 기능
60 lines
2.6 KiB
SQL
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);
|