diff --git a/backend/src/m-charts/dto/update-pharmacy-status-dto.ts b/backend/src/m-charts/dto/update-pharmacy-status-dto.ts new file mode 100644 index 0000000..946727d --- /dev/null +++ b/backend/src/m-charts/dto/update-pharmacy-status-dto.ts @@ -0,0 +1,11 @@ +import { IsInt, Max, Min } from 'class-validator'; +import { ApiProperty, PickType } from '@nestjs/swagger'; +import { M_Charts } from '../entity/m-charts.entity'; + +export class UpdatePharmacyStatusDto extends PickType(M_Charts, ['status']) { + @ApiProperty({ description: '차트 상태' }) + @IsInt() + @Min(4) + @Max(7) + status: number; +} diff --git a/backend/src/m-charts/m-charts.controller.ts b/backend/src/m-charts/m-charts.controller.ts index 75ba56f..a3252c5 100644 --- a/backend/src/m-charts/m-charts.controller.ts +++ b/backend/src/m-charts/m-charts.controller.ts @@ -6,12 +6,14 @@ import { HttpStatus, Get, ParseIntPipe, + Patch, } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; import { MChartsService } from './m-charts.service'; import { MPrescriptionsService } from 'src/m-prescriptions/m-prescriptions.service'; import { CreatePrediagnosisDto } from './dto/create-prediagnosis.dto'; import { CreateMPrescriptionDto } from 'src/m-prescriptions/dto/create-m-prescription.dto'; +import { UpdatePharmacyStatusDto } from './dto/update-pharmacy-status-dto'; @ApiTags('의과') @Controller('m/charts') @@ -130,6 +132,31 @@ export class MChartsController { return this.mChartsService.getTodayChartByPatientId(patientId); } + @Get(':chartId/pharmacy') + @ApiOperation({ + summary: '약국 조회', + }) + @ApiResponse({ + status: HttpStatus.NOT_FOUND, + }) + getMChartPharmacy(@Param('chartId', ParseIntPipe) chartId: number) { + return this.mChartsService.getPharmacy(chartId); + } + + @Patch(':chartId/status') + @ApiOperation({ + summary: '약국 차트 상태 수정', + }) + async patchMChartPharmacyStatus( + @Param('chartId', ParseIntPipe) chartId: number, + @Body() updateMChartStatusDto: UpdatePharmacyStatusDto, + ) { + return await this.mChartsService.updateStatus( + chartId, + updateMChartStatusDto.status, + ); + } + @Post(':chartId/prescriptions') @ApiOperation({ summary: '처방 생성', diff --git a/backend/src/m-charts/m-charts.service.ts b/backend/src/m-charts/m-charts.service.ts index c3d5025..4d9172f 100644 --- a/backend/src/m-charts/m-charts.service.ts +++ b/backend/src/m-charts/m-charts.service.ts @@ -195,4 +195,18 @@ export class MChartsService { ], }); } + + async getPharmacy(chartId: number) { + return await this.chartsRepository.findOne({ + ...DEFAULT_M_CHART_FIND_OPTIONS, + where: { + id: chartId, + }, + relations: { + prescriptions: { + medicine: true, + }, + }, + }); + } }