From b6c71688e119973dbddc26b0bb666ec1140d5fab Mon Sep 17 00:00:00 2001 From: Seunghee Lee <49032882+eeseung@users.noreply.github.com> Date: Sun, 7 Jul 2024 14:02:34 +0900 Subject: [PATCH] =?UTF-8?q?feat(BE):=20=EC=9D=98=EA=B3=BC=20=EC=95=BD?= =?UTF-8?q?=EA=B5=AD=20=EC=A1=B0=ED=9A=8C=20&=20=EC=B0=A8=ED=8A=B8=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20=EC=88=98=EC=A0=95=20API=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20(#70)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 의과 약국 차트 상태 수정 DTO 추가 * feat: 의과 약국 차트 상태 수정 API 구현 * feat: 의과 약국 조회 API 구현 --- .../dto/update-pharmacy-status-dto.ts | 11 ++++++++ backend/src/m-charts/m-charts.controller.ts | 27 +++++++++++++++++++ backend/src/m-charts/m-charts.service.ts | 14 ++++++++++ 3 files changed, 52 insertions(+) create mode 100644 backend/src/m-charts/dto/update-pharmacy-status-dto.ts 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, + }, + }, + }); + } }