// ── ai.controller.ts ────────────────────────────────────────────────────────── import { Controller, Post, Body, UseGuards } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger'; import { AiService } from './ai.service.backend'; @ApiTags('AI') @ApiBearerAuth() @UseGuards(AuthGuard('jwt')) @Controller('ai') export class AiController { constructor(private aiService: AiService) {} @Post('suggest-codes') @ApiOperation({ summary: 'AI suggest ICD-10 and CPT codes from clinical notes' }) suggestCodes(@Body() body: { clinicalNotes: string; existingDiagnosticCodes?: any[]; existingProcedureCodes?: any[] }) { return this.aiService.suggestCodes( body.clinicalNotes, body.existingDiagnosticCodes || [], body.existingProcedureCodes || [], ); } @Post('chat') @ApiOperation({ summary: 'AI chat assistant for medical coding' }) chat(@Body() body: { messages: any[]; encounterContext?: any }) { return this.aiService.chat(body.messages, body.encounterContext); } @Post('validate-codes') @ApiOperation({ summary: 'Validate ICD-10 and CPT code combinations' }) validateCodes(@Body() body: { diagnosticCodes: any[]; procedureCodes: any[] }) { return this.aiService.validateCodes(body.diagnosticCodes, body.procedureCodes); } }