feat: tindakan dokter create validation for admin
This commit is contained in:
parent
0487f50c53
commit
ed5ec161a0
|
|
@ -136,6 +136,37 @@ export class TindakanDokterService {
|
|||
return response;
|
||||
}
|
||||
|
||||
async createTindakanDokterToDBAndBlockchain(
|
||||
dto: CreateTindakanDokterDto,
|
||||
userId: number,
|
||||
) {
|
||||
try {
|
||||
const newTindakan = await this.prisma.$transaction(async (tx) => {
|
||||
const createdTindakan = await tx.pemberian_tindakan.create({
|
||||
data: dto,
|
||||
});
|
||||
const logPayload = JSON.stringify(dto);
|
||||
const payloadHash = sha256(logPayload);
|
||||
const data = {
|
||||
id: `TINDAKAN_${createdTindakan.id}`,
|
||||
event: 'tindakan_dokter_created',
|
||||
user_id: userId.toString(),
|
||||
payload: payloadHash,
|
||||
};
|
||||
|
||||
const createdLog = await this.logService.storeLog(data);
|
||||
return {
|
||||
...createdTindakan,
|
||||
log: createdLog,
|
||||
};
|
||||
});
|
||||
return newTindakan;
|
||||
} catch (error) {
|
||||
console.error('Error creating Rekam Medis:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async getTindakanDokterById(id: number) {
|
||||
const tindakanId = Number(id);
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,10 @@ import { ValidationService } from './validation.service';
|
|||
import { PrismaModule } from '../prisma/prisma.module';
|
||||
import { LogModule } from '../log/log.module';
|
||||
import { RekamMedisModule } from '../rekammedis/rekammedis.module';
|
||||
import { TindakanDokterModule } from '../tindakandokter/tindakandokter.module';
|
||||
|
||||
@Module({
|
||||
imports: [PrismaModule, LogModule, RekamMedisModule],
|
||||
imports: [PrismaModule, LogModule, RekamMedisModule, TindakanDokterModule],
|
||||
controllers: [ValidationController],
|
||||
providers: [ValidationService],
|
||||
exports: [ValidationService],
|
||||
|
|
|
|||
|
|
@ -3,12 +3,14 @@ import { PrismaService } from '../prisma/prisma.service';
|
|||
import { ActiveUserPayload } from '../auth/decorator/current-user.decorator';
|
||||
import { RekammedisService } from '../rekammedis/rekammedis.service';
|
||||
import { CreateRekamMedisDto } from '../rekammedis/dto/create-rekammedis.dto';
|
||||
import { TindakanDokterService } from '../tindakandokter/tindakandokter.service';
|
||||
|
||||
@Injectable()
|
||||
export class ValidationService {
|
||||
constructor(
|
||||
private prisma: PrismaService,
|
||||
private rekamMedisService: RekammedisService,
|
||||
private tindakanDokterService: TindakanDokterService,
|
||||
) {}
|
||||
|
||||
private handlers: Record<
|
||||
|
|
@ -50,12 +52,15 @@ export class ValidationService {
|
|||
pemberian_tindakan: {
|
||||
approveCreate: async (queue: any) => {
|
||||
const payload = queue.dataPayload;
|
||||
console.log('Approving create for pemberian_tindakan:', payload);
|
||||
// return this.prisma.pemberian_tindakan.create({
|
||||
// data: {
|
||||
// ...payload,
|
||||
// },
|
||||
// });
|
||||
const result =
|
||||
await this.tindakanDokterService.createTindakanDokterToDBAndBlockchain(
|
||||
payload,
|
||||
Number(queue.user_id_request),
|
||||
);
|
||||
return {
|
||||
...result,
|
||||
id: result.id,
|
||||
};
|
||||
},
|
||||
},
|
||||
pemberian_obat: {},
|
||||
|
|
@ -157,7 +162,7 @@ export class ValidationService {
|
|||
const updated = await this.prisma.validation_queue.update({
|
||||
where: { id: validationQueue.id },
|
||||
data: {
|
||||
record_id: approvalResult.id,
|
||||
record_id: approvalResult.id.toString(),
|
||||
status: 'APPROVED',
|
||||
user_id_process: Number(user.sub),
|
||||
processed_at: new Date(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user