← 블로그 목록
유즈케이스2026-06-01
병원 AI 예약 시스템 만들기 — 진료 예약·약 처방·검진 안내 24시간 자동
병원 AI 예약 시스템 만들기 — 진료 예약·약 처방·검진 안내 24시간 자동
병원 데스크가 진료 보면서 전화도 받기는 무리. 영업 외에는 예약 놓침. ClawOps 070 + AI 로 24시간 예약·진료시간·간단 안내를 자동화. 의료법 준수와 환자 정보 보호 패턴까지.
0. 의료법 / 개인정보보호법 주의 (반드시 먼저 확인)
- AI 가 진단·약 추천 등 의료 행위 금지 (의료법 위반)
- 환자 진료 기록 노출 금지 — 이름 검증·진료 결과는 의료진만
- AI 는 "예약·시간·위치·보험 적용 여부" 같은 행정 정보만
- 통화 녹음시 환자 명시 동의 필요 (의료법 + 개인정보보호법)
- 의심나면 의료변호사 컨설팅
이 글의 가이드는 행정 정보 안내 범위에 한정.
1. 070 발급 + 가게 정보 정리
from clawops import ClawOps
client = ClawOps()
number = client.numbers.create()
clinic.json:
{
"name": "OOO 치과",
"doctors": [
{"name": "김OO 원장", "specialty": "임플란트·일반진료"},
{"name": "이OO 부원장", "specialty": "교정·소아진료"}
],
"hours": "월-금 09:30-18:30 (점심 13:00-14:00), 토 09:30-13:00, 일 휴무",
"address": "서울시 강남구 OOO로 123, 5층",
"parking": "건물 지하 2시간 무료 (진료확인서 발급)",
"insurance": "건강보험 가능, 비급여(임플란트/교정) 별도",
"appointment_policy": "최소 24시간 전 예약, 응급 환자 우선",
"kids_welcome": true
}
2. system prompt — 안전한 행정 안내 범위
SYSTEM_PROMPT = f"""
당신은 {clinic['name']} 의 예약 안내 직원입니다.
# 할 수 있는 것
- 진료 예약 (날짜/시간/원장 지정)
- 영업시간/위치/주차 안내
- 보험 적용 여부 일반 안내 ("급여 vs 비급여" 수준)
- 진료 후기·간단 안내문 발송
# 절대 못 하는 것
- 의료적 진단·치료 권유 ("이 증상이면 무슨 병이다" 같은 답변 금지)
- 약 추천·복용량 안내
- 다른 환자 진료 기록 누설
- 비용 흥정·할인 약속
- 응급 상황 판단 — "지금 통증이 심하시면 즉시 응급실 119" 안내 후 통화 종료
# 운영
- 영업: {clinic['hours']}
- 주소: {clinic['address']}
- 주차: {clinic['parking']}
# 의사 목록
{chr(10).join([f"- {d['name']} ({d['specialty']})" for d in clinic['doctors']])}
# 행동 규칙
- 짧게, 한국어로
- 환자 이름·생년월일·전화번호만 받기 (주소·주민번호 X)
- 예약 가능 확인은 check_availability_tool 사용
- 확정은 create_appointment_tool
- 응급 상황 의심시 119 안내 후 정중히 hang_up
- 통화 시작 전 "통화는 예약 안내용으로 녹음됩니다, 동의하시나요?" 안내 + 동의 받기
# 첫 발화
"안녕하세요, OOO 치과입니다. 예약·진료 안내 도와드리겠습니다.
어떤 진료 도움이 필요하신가요?"
"""
3. tool 정의 — 예약 가능 + 등록
from clawops.agent.tools import tool
import datetime
from zoneinfo import ZoneInfo
@tool
def check_appointment_slot(date: str, time: str, doctor: str = None) -> dict:
"""예약 가능 슬롯 조회. date=YYYY-MM-DD, time=HH:MM, doctor 선택 가능."""
dt = datetime.datetime.fromisoformat(f"{date}T{time}").astimezone(ZoneInfo("Asia/Seoul"))
# 영업시간 / 휴진일 / 점심시간 체크
if dt.weekday() == 6: return {"available": False, "reason": "일요일 휴진"}
if dt.weekday() == 5 and dt.hour >= 13: return {"available": False, "reason": "토요일 오후 휴진"}
if dt.hour < 9 or dt.hour >= 18 or 13 <= dt.hour < 14:
return {"available": False, "reason": "영업시간 외"}
# 의사 별 슬롯 (예시)
booked = db.query(
"SELECT COUNT(*) FROM appointments WHERE date = ? AND time = ? AND doctor = ?",
(date, time, doctor or "any"),
).fetchone()[0]
return {"available": booked < 1, "doctor": doctor}
@tool
def create_appointment(date: str, time: str, name: str, phone: str,
birth_year: int, doctor: str, reason: str) -> dict:
"""예약 등록. AI 가 슬롯 확인 후 호출."""
db.execute(
"INSERT INTO appointments (date, time, name, phone, birth_year, doctor, reason) "
"VALUES (?, ?, ?, ?, ?, ?, ?)",
(date, time, name, phone, birth_year, doctor, reason),
)
return {"confirmed": True, "code": f"A{int(datetime.datetime.now().timestamp())}"}
@tool
def send_directions_sms(phone: str) -> dict:
"""병원 위치 SMS 발송."""
client.messages.create(
to=phone, from_=number.phone_number,
body=f"{clinic['name']} 위치: {clinic['address']}, 주차: {clinic['parking']}",
)
return {"sent": True}
4. serve
from clawops.agent import ClawOpsAgent, OpenAIRealtime
ClawOpsAgent(
from_=number.phone_number,
session=OpenAIRealtime(
system_prompt=SYSTEM_PROMPT,
language="ko-KR",
voice="alloy",
tools=[check_appointment_slot, create_appointment, send_directions_sms],
),
).serve()
5. 통화 흐름 예시 (안전 범위)
환자: "여보세요, 다음주 화요일 오전 임플란트 상담 예약 가능한가요?"
AI: "통화 안내드리기 전에 통화 녹음 동의 부탁드립니다. 동의하시면 '네' 라고 말씀해 주세요."
환자: "네"
AI: "감사합니다. 다음주 화요일은 6월 3일이네요. 오전 시간대 확인해드릴게요.
임플란트는 김OO 원장님께서 보세요. 10시 30분 가능하시네요.
예약하시려면 성함, 연락처, 출생연도 알려주세요."
환자: "김OOO, 010-1234-5678, 1985년이요."
AI: "네 확인됐습니다. 김OOO 님, 6월 3일 화요일 오전 10시 30분
임플란트 상담 예약 완료됐고요, 예약번호 A123456 입니다.
위치 안내 SMS 보내드릴까요?"
환자: "네 부탁드려요."
AI: "보내드렸습니다. 그날 뵙겠습니다, 감사합니다."
[hang_up]
6. 응급 상황 트리거
환자: "여보세요, 어금니 너무 아파서 못 자겠어요."
AI: "통증이 심하신 것 같은데, 야간/응급 통증은 응급실 진료가 안전합니다.
지금 즉시 119 또는 가까운 야간 응급실 이용 권해드립니다.
내일 오전에 저희 병원 응급 예약 도와드릴까요?"
응급 의심시 119 안내 의무.
7. 비용
- ClawOps Individual ₩19,000/월 (월 100통 정도)
- OpenAI Realtime 통화 시간만큼
8. 환자 정보 보호
- 환자 발화는 ClawOps 가 자동 녹음 (Add-on Transcription 활성화시 전사도)
- 녹음/전사 데이터는 GCP 서울 리전 내 저장
- 7년 (의료법 기준) 보관 후 자동 폐기 설정
- 외부 LLM 호출 (OpenAI 등) 시 환자 식별 정보 (이름·전화) 는 placeholder 로 마스킹 권장
다음 단계
관련 글 더 보기
유즈케이스
본인인증 받는 AI 전화 만들기 — DTMF + 음성 동의로 ARS 대체
한국 070 인바운드 + DTMF + 음성 동의로 본인인증을 한 통화에 끝내는 가이드. 기존 ARS 대비 자연스러움 + 자동 동의 수집 + 컴플라이언스.
유즈케이스정기 확인 전화 자동화 — 구독·결제·예약 리마인더 AI 통화
구독 갱신·결제 예정·예약 D-1 같은 정기 알림을 ClawOps 070 + AI 자동 전화로 처리. 이메일·SMS 보다 도달률 높고 대화형 confirm 가능.
유즈케이스학원 AI 상담 전화 만들기 — 학기·시간·비용 안내 + 상담 예약 자동화
어학원·입시학원·취미학원 — 070 + AI 로 커리큘럼·반편성·수강료·상담 일정 자동 응대. 카운셀러 인건비 절감 + 24시간 응답률 100%.
유즈케이스카페 AI 주문·예약 전화 만들기 — 메뉴·테이크아웃·이벤트 자동 응대
스페셜티 카페·디저트샵·베이커리 — 070 + AI 로 메뉴·운영시간·테이크아웃 예약 자동 응대. 단가 ₩19,000/월.
유즈케이스헬스장 AI 회원권·예약 응대 — PT/요가/필라테스 24시간 자동 응대
헬스장·필라테스·요가 — 070 + AI 로 회원권 가격·체험 예약·운영시간 안내. 트레이너 통화 부담 줄이고 영업외 문의 100% 응답.