improvement: v1 standalone treatment/case creation made possible.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
Param,
|
||||
ParseIntPipe,
|
||||
@@ -24,6 +25,8 @@ import {
|
||||
SaveTreatmentDraftDto,
|
||||
SaveTreatmentLabCasesDto,
|
||||
UpdateLabCaseDueDateDto,
|
||||
CreateStandaloneTreatmentDto,
|
||||
ListDayTreatmentsDto,
|
||||
} from './dto/treatment.dto';
|
||||
import { CreateLabCaseCommentDto } from '../lab-case-comments/dto/lab-case-comment.dto';
|
||||
import { LabCaseCommentsService } from '../lab-case-comments/lab-case-comments.service';
|
||||
@@ -83,6 +86,31 @@ export class TreatmentsController {
|
||||
);
|
||||
}
|
||||
|
||||
@Get('day')
|
||||
@ApiOperation({ summary: 'Standalone (no appointment) treatments for a local day range' })
|
||||
listDayStandalone(
|
||||
@Query() query: ListDayTreatmentsDto,
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.listDayStandalone(
|
||||
query.from,
|
||||
query.to,
|
||||
organizationId,
|
||||
req.user.id,
|
||||
);
|
||||
}
|
||||
|
||||
@Post()
|
||||
@ApiOperation({ summary: 'Create a treatment without an appointment (TAB_TREATMENT_EDIT)' })
|
||||
createStandalone(
|
||||
@Body() dto: CreateStandaloneTreatmentDto,
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.createStandalone(dto, organizationId, req.user.id);
|
||||
}
|
||||
|
||||
@Get('appointments/:appointmentId/draft')
|
||||
@ApiOperation({ summary: 'Get draft treatment for an appointment (TAB_TREATMENT_READ)' })
|
||||
getDraft(
|
||||
@@ -268,4 +296,84 @@ export class TreatmentsController {
|
||||
dto,
|
||||
);
|
||||
}
|
||||
|
||||
@Get(':treatmentId/draft')
|
||||
@ApiOperation({ summary: 'Get a treatment draft by treatment id (TAB_TREATMENT_READ)' })
|
||||
getDraftByTreatment(
|
||||
@Param('treatmentId') treatmentId: string,
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.getDraftForTreatment(
|
||||
treatmentId,
|
||||
organizationId,
|
||||
req.user.id,
|
||||
);
|
||||
}
|
||||
|
||||
@Put(':treatmentId/draft')
|
||||
@ApiOperation({ summary: 'Save draft treatment details by treatment id (TAB_TREATMENT_EDIT)' })
|
||||
saveDraftByTreatment(
|
||||
@Param('treatmentId') treatmentId: string,
|
||||
@Body() dto: SaveTreatmentDraftDto,
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.saveDraftForTreatment(
|
||||
treatmentId,
|
||||
dto,
|
||||
organizationId,
|
||||
req.user.id,
|
||||
);
|
||||
}
|
||||
|
||||
@Put(':treatmentId/lab-cases')
|
||||
@ApiOperation({ summary: 'Save lab case groupings by treatment id (TAB_TREATMENT_EDIT)' })
|
||||
saveLabCasesByTreatment(
|
||||
@Param('treatmentId') treatmentId: string,
|
||||
@Body() dto: SaveTreatmentLabCasesDto,
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.saveLabCasesForTreatment(
|
||||
treatmentId,
|
||||
dto,
|
||||
organizationId,
|
||||
req.user.id,
|
||||
);
|
||||
}
|
||||
|
||||
@Post(':treatmentId/details/:detailClientKey/attachments')
|
||||
@ApiOperation({ summary: 'Upload attachments for a standalone treatment detail' })
|
||||
@ApiConsumes('multipart/form-data')
|
||||
@UseInterceptors(
|
||||
FilesInterceptor('files', 20, {
|
||||
storage: memoryStorage(),
|
||||
}),
|
||||
)
|
||||
uploadDetailAttachmentsByTreatment(
|
||||
@Param('treatmentId') treatmentId: string,
|
||||
@Param('detailClientKey') detailClientKey: string,
|
||||
@UploadedFiles() files: Express.Multer.File[],
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.uploadDetailAttachmentsForTreatment(
|
||||
treatmentId,
|
||||
detailClientKey,
|
||||
files,
|
||||
organizationId,
|
||||
req.user.id,
|
||||
);
|
||||
}
|
||||
|
||||
@Delete(':treatmentId')
|
||||
@ApiOperation({ summary: 'Delete an empty standalone treatment (no details)' })
|
||||
deleteStandalone(
|
||||
@Param('treatmentId') treatmentId: string,
|
||||
@Req() req: { user: { id: string; organizationId?: string } },
|
||||
) {
|
||||
const organizationId = this.treatmentsService.getOrganizationIdFromUser(req.user);
|
||||
return this.treatmentsService.deleteStandalone(treatmentId, organizationId, req.user.id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user