medicodeapp / backend /src /modules /ai /ai.controller.ts
Denisijcu's picture
upload files
c98875e
// ── 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);
}
}