Spaces:
Sleeping
Sleeping
File size: 2,998 Bytes
c98875e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | import { Controller, Get, Post, Body, Param, Query, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiTags, ApiBearerAuth, ApiOperation, ApiQuery } from '@nestjs/swagger';
import { CodesService, GlobalSearchResult } from './codes.service';
import { CreateDiagnosticCodeDto } from './dto/create-diagnostic-code.dto';
import { CreateProcedureCodeDto } from './dto/create-procedure-code.dto';
import { SearchCodesDto } from './dto/search-codes.dto';
@ApiTags('Codes')
@ApiBearerAuth()
@UseGuards(AuthGuard('jwt'))
@Controller('codes')
export class CodesController {
constructor(private codesService: CodesService) {}
// βββ Global βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
@Get('search')
@ApiOperation({ summary: 'Search across ICD-10 and CPT codes' })
@ApiQuery({ name: 'q', required: true })
@ApiQuery({ name: 'limit', required: false })
globalSearch(
@Query('q') q: string,
@Query('limit') limit?: number,
): Promise<GlobalSearchResult> {
return this.codesService.globalSearch(q, limit);
}
// βββ ICD-10 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
@Get('icd10')
@ApiOperation({ summary: 'Search ICD-10 diagnostic codes' })
searchICD10(@Query() dto: SearchCodesDto) {
return this.codesService.searchICD10(dto);
}
@Get('icd10/categories')
@ApiOperation({ summary: 'Get ICD-10 categories' })
icd10Categories() {
return this.codesService.getICD10Categories();
}
@Get('icd10/:code')
@ApiOperation({ summary: 'Get ICD-10 code by code string' })
getICD10(@Param('code') code: string) {
return this.codesService.getICD10ByCode(code);
}
@Post('icd10')
@ApiOperation({ summary: 'Create ICD-10 code' })
createICD10(@Body() dto: CreateDiagnosticCodeDto) {
return this.codesService.createICD10(dto);
}
// βββ CPT ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
@Get('cpt')
@ApiOperation({ summary: 'Search CPT procedure codes' })
searchCPT(@Query() dto: SearchCodesDto) {
return this.codesService.searchCPT(dto);
}
@Get('cpt/categories')
@ApiOperation({ summary: 'Get CPT categories' })
cptCategories() {
return this.codesService.getCPTCategories();
}
@Get('cpt/:code')
@ApiOperation({ summary: 'Get CPT code by code string' })
getCPT(@Param('code') code: string) {
return this.codesService.getCPTByCode(code);
}
@Post('cpt')
@ApiOperation({ summary: 'Create CPT code' })
createCPT(@Body() dto: CreateProcedureCodeDto) {
return this.codesService.createCPT(dto);
}
} |