Версия цифровой рецепции с резализованным механизмом отслеживания трека пациента по зонам
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1.2 KiB

import { Body, Controller, Post, UseGuards } from '@nestjs/common';
import { IsOptional, IsString, IsUUID, MinLength } from 'class-validator';
import { Role } from '@reception/db';
import { Roles } from '../auth/decorators/roles.decorator';
import { LogsBiometry } from '../auth/decorators/logs-biometry.decorator';
import { CurrentUser, type AuthUser } from '../auth/decorators/current-user.decorator';
import { RolesGuard } from '../auth/guards/roles.guard';
import { EnrollmentService } from './enrollment.service';
class EnrollmentDto {
@IsUUID()
trackId!: string;
@IsString()
polimedPatientId!: string;
@IsOptional()
@IsString()
polimedAppointmentId?: string;
@IsString()
@MinLength(1)
paperConsentRef!: string;
}
@UseGuards(RolesGuard)
@Controller('enrollment')
export class EnrollmentController {
constructor(private readonly enrollment: EnrollmentService) {}
@Roles(Role.SENIOR_ADMIN)
@LogsBiometry('enroll')
@Post()
enroll(@Body() dto: EnrollmentDto, @CurrentUser() user: AuthUser) {
return this.enrollment.enroll({
trackId: dto.trackId,
polimedPatientId: dto.polimedPatientId,
polimedAppointmentId: dto.polimedAppointmentId,
paperConsentRef: dto.paperConsentRef,
actorUserId: user.id,
});
}
}