2025-10-21 10:42:59 +00:00
|
|
|
generator client {
|
|
|
|
|
provider = "prisma-client-js"
|
|
|
|
|
output = "../dist/generated/prisma"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
datasource db {
|
|
|
|
|
provider = "postgresql"
|
|
|
|
|
url = env("DATABASE_URL")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model blockchain_log_queue {
|
2025-10-27 06:41:51 +00:00
|
|
|
id BigInt @id @default(autoincrement())
|
|
|
|
|
status String @default("PENDING") @db.VarChar(20)
|
|
|
|
|
event String @db.VarChar(50)
|
|
|
|
|
user_id BigInt
|
|
|
|
|
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
|
|
|
|
payload Json
|
|
|
|
|
processed_at DateTime? @db.Timestamptz(6)
|
|
|
|
|
transactionid String? @db.VarChar(64)
|
|
|
|
|
users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "fk_log_user")
|
2025-10-21 10:42:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model pemberian_obat {
|
|
|
|
|
id Int @id @default(autoincrement())
|
2025-10-27 06:41:51 +00:00
|
|
|
id_visit String @db.VarChar(25)
|
2025-10-21 10:42:59 +00:00
|
|
|
obat String @db.VarChar(100)
|
|
|
|
|
jumlah_obat Int
|
|
|
|
|
aturan_pakai String?
|
|
|
|
|
rekam_medis rekam_medis @relation(fields: [id_visit], references: [id_visit], onDelete: Cascade, onUpdate: NoAction, map: "fk_pemberian_obat_visit")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model pemberian_tindakan {
|
|
|
|
|
id Int @id @default(autoincrement())
|
2025-10-27 06:41:51 +00:00
|
|
|
id_visit String @db.VarChar(25)
|
2025-10-21 10:42:59 +00:00
|
|
|
tindakan String @db.VarChar(100)
|
|
|
|
|
kategori_tindakan String? @db.VarChar(50)
|
|
|
|
|
kelompok_tindakan String? @db.VarChar(50)
|
|
|
|
|
rekam_medis rekam_medis @relation(fields: [id_visit], references: [id_visit], onDelete: Cascade, onUpdate: NoAction, map: "fk_tindakan_visit")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model rekam_medis {
|
2025-10-27 06:41:51 +00:00
|
|
|
id_visit String @id @db.VarChar(25)
|
2025-10-21 10:42:59 +00:00
|
|
|
waktu_visit DateTime @db.Timestamp(6)
|
|
|
|
|
no_rm String @db.VarChar(20)
|
|
|
|
|
nama_pasien String @db.VarChar(100)
|
|
|
|
|
umur Int?
|
|
|
|
|
jenis_kelamin String? @db.VarChar(10)
|
|
|
|
|
gol_darah String? @db.VarChar(3)
|
|
|
|
|
pekerjaan String? @db.VarChar(100)
|
|
|
|
|
suku String? @db.VarChar(100)
|
|
|
|
|
kode_diagnosa String? @db.VarChar(20)
|
|
|
|
|
diagnosa String?
|
|
|
|
|
anamnese String?
|
|
|
|
|
sistolik Int?
|
|
|
|
|
diastolik Int?
|
|
|
|
|
nadi Int?
|
|
|
|
|
suhu Decimal? @db.Decimal(4, 1)
|
|
|
|
|
nafas Int?
|
2025-10-27 06:41:51 +00:00
|
|
|
tinggi_badan Decimal? @db.Decimal(10, 5)
|
|
|
|
|
berat_badan Decimal? @db.Decimal(10, 5)
|
2025-10-21 10:42:59 +00:00
|
|
|
jenis_kasus String? @db.VarChar(50)
|
|
|
|
|
tindak_lanjut String?
|
|
|
|
|
pemberian_obat pemberian_obat[]
|
|
|
|
|
pemberian_tindakan pemberian_tindakan[]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
|
|
|
|
|
model users {
|
|
|
|
|
id BigInt @id @default(autoincrement())
|
|
|
|
|
nama_lengkap String @db.VarChar(255)
|
|
|
|
|
username String @unique @db.VarChar(255)
|
|
|
|
|
password_hash String @db.VarChar(255)
|
|
|
|
|
role String? @default("user") @db.VarChar(50)
|
|
|
|
|
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
|
|
|
|
updated_at DateTime? @default(now()) @db.Timestamptz(6)
|
|
|
|
|
blockchain_log_queue blockchain_log_queue[]
|
|
|
|
|
}
|
2025-11-13 05:31:48 +00:00
|
|
|
|
|
|
|
|
enum AuditEvent {
|
|
|
|
|
tindakan_dokter_created
|
|
|
|
|
obat_created
|
|
|
|
|
rekam_medis_created
|
|
|
|
|
tindakan_dokter_updated
|
|
|
|
|
obat_updated
|
|
|
|
|
rekam_medis_updated
|
|
|
|
|
tindakan_dokter_deleted
|
|
|
|
|
obat_deleted
|
|
|
|
|
rekam_medis_deleted
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum resultStatus {
|
|
|
|
|
tampered
|
|
|
|
|
non_tampered
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model audit {
|
|
|
|
|
id String @id @db.VarChar(50)
|
|
|
|
|
event AuditEvent
|
|
|
|
|
payload String
|
|
|
|
|
timestamp DateTime @default(now()) @db.Timestamptz(6)
|
|
|
|
|
user_id BigInt
|
|
|
|
|
last_sync DateTime @default(now()) @db.Timestamptz(6)
|
|
|
|
|
result resultStatus
|
|
|
|
|
}
|