Sesión 是一个面向阿根廷心理学诊所的综合 SaaS 平台,用于编排预约排程、WhatsApp 自动化、符合 AFIP 要求的电子发票、安全视频咨询,以及基于 Claude 的 AI 临床辅助。
用途 该平台面向心理学诊所的实践管理,覆盖从预约、提醒、开票到远程视频咨询的流程,并提供 AI 临床辅助能力。
主要能力
- 预约排程:支持创建预约并进行冲突检测,可建议替代时段。
- WhatsApp 自动化:基于 Baileys(WhatsApp Web API)实现会话管理、预约确认与自动提醒,并包含危机关键词检测与升级处理。
- AFIP 电子发票:生成符合阿根廷税务机构 AFIP 要求的电子发票,支持根据执业者与患者的税务类别确定发票类型,并请求 CAE。
- 视频咨询:基于 LiveKit WebRTC 基础设施提供安全视频通话。
- AI 临床辅助:使用 Anthropic Claude,Opus 4.6 用于深度分析,Sonnet 4.6 用于实时场景。
- 支付:支持 Stripe(国际)与 MercadoPago(阿根廷)。
架构
- 后端:NestJS(TypeScript)配合 Prisma ORM
- 前端:SvelteKit 5 与 Tailwind CSS
- 数据库:PostgreSQL 配合 Prisma
- AI:Anthropic Claude(Opus 4.6 深度分析,Sonnet 4.6 实时)
- 视频:LiveKit WebRTC 基础设施
- 消息:Baileys(WhatsApp Web API)
- 支付:Stripe(国际)、MercadoPago(阿根廷)
- 缓存:Redis 用于会话与实时数据
安装与设置 前置要求:node >= 20.x、postgresql >= 15.x、redis >= 7.x。 克隆与安装: git clone https://github.com/fahad-hamid/psique-workflow-clinic.git cd psique-workflow-clinic cd backend && npm install cd ../frontend && npm install
环境配置:需在 backend 与 frontend 目录分别创建 .env 文件。后端 .env 包含 DATABASE_URL、REDIS_URL、ANTHROPIC_API_KEY、CLAUDE_OPUS_MODEL、CLAUDE_SONNET_MODEL、WHATSAPP_SESSION_DIR、WHATSAPP_WEBHOOK_SECRET、LIVEKIT_API_KEY、LIVEKIT_API_SECRET、LIVEKIT_WS_URL、AFIP_CUIT、AFIP_CERT_PATH、AFIP_KEY_PATH、AFIP_ENVIRONMENT、STRIPE_SECRET_KEY、STRIPE_WEBHOOK_SECRET、MERCADOPAGO_ACCESS_TOKEN、MERCADOPAGO_PUBLIC_KEY、JWT_SECRET、APP_URL、API_URL。前端 .env 包含 PUBLIC_API_URL、PUBLIC_LIVEKIT_WS_URL。
数据库设置: cd backend npx prisma generate npx prisma migrate deploy npx prisma db seed
启动开发服务器: 后端:cd backend && npm run start:dev 前端:cd frontend && npm run dev Redis:redis-server
核心模块使用
-
预约排程模块:通过 AppointmentService 创建预约,检查执业者时间冲突,冲突时抛出 AppointmentConflictError;创建后触发 WhatsApp 确认。suggestAlternativeSlots 方法根据执业者可用性规则与已预约时段,以 15 分钟为增量返回最多 5 个建议时段。
-
WhatsApp 自动化(Baileys 集成):WhatsAppService 在模块初始化时建立 WhatsApp 会话并安排提醒。使用 useMultiFileAuthState 保存凭证,通过 makeWASocket 创建连接,处理连接更新与自动重连。sendAppointmentConfirmation 发送预约确认消息,要求患者回复 CONFIRMAR。scheduleReminders 使用 node-cron 每小时运行,发送 24 小时与 2 小时提醒。handleIncomingMessage 解析传入消息,检测危机关键词(suicidio、morir、acabar、terminar todo、crisis),触发 handleCrisisEscalation 向执业者发送紧急通知并向患者发送支持性自动回复(含阿根廷自杀预防热线 135)。
-
AFIP 电子发票:BillingService 使用 @afipsdk/afip.js 初始化 AFIP SDK,读取证书与密钥。generateInvoiceForSession 根据执业者与患者的税务类别确定发票类型(1: A、6: B、11: C),构建发票数据(含 CantReg、PtoVta、CbteTipo、Concepto、DocTipo、DocNro、CbteDesde、CbteHasta、CbteFch、ImpTotal、ImpNeto、ImpIVA、MonId 等),请求 CAE,保存发票记录并通过 WhatsApp 发送发票。determineInvoiceType 根据执业者类别(RESPONSABLE_INSCRIPTO、MONOTRIBUTISTA)与患者类别返回发票类型。getNextInvoiceNumber 获取下一个发票号。
适用场景 适用于阿根廷心理学诊所的实践管理,包括预约与提醒、远程视频咨询、电子发票开具、支付处理,以及需要 AI 辅助的临床场景。
限制 资料未提供关于定价、收费模式、平台可用性、性能效果或具体使用步骤的更多信息。部分代码示例在资料中被截断(如 formatDateAFIP 方法未完整展示)。