feat: add lab tests, patient file management, and prescription improvements

This commit is contained in:
SajjadMahmoody
2026-04-17 20:15:38 +03:30
parent 6a301c5529
commit bf0ada051f
53 changed files with 3201 additions and 387 deletions
+30
View File
@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace Database\Seeders;
use App\Models\LabTest;
use Illuminate\Database\Seeder;
class LabTestSeeder extends Seeder
{
public function run(): void
{
$tests = [
'CBC',
'PT/PTT/INR',
'BS',
'HIV/Ab',
'HBS/Ag',
'Hcv/Ab',
];
foreach ($tests as $name) {
LabTest::firstOrCreate(
['name' => $name],
['is_default' => true, 'is_active' => true],
);
}
}
}
+70
View File
@@ -0,0 +1,70 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class RolePermissionSeeder extends Seeder
{
public function run(): void
{
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
$resources = [
'user',
'role',
'doctor',
'patient',
'visit',
'prescription',
'medication',
'treatment',
'payment_type',
'patient_illness',
'surgery_center',
'surgery_appointment',
'osurg_initial',
'osurg_audit',
];
$actions = ['view_any', 'view', 'create', 'update', 'delete', 'delete_any', 'restore', 'restore_any', 'replicate', 'reorder', 'force_delete', 'force_delete_any'];
$pages = ['page_dashboard', 'page_sync_page', 'page_sms_logs_page'];
foreach ($resources as $resource) {
foreach ($actions as $action) {
Permission::firstOrCreate([
'name' => "{$action}_{$resource}",
'guard_name' => 'web',
]);
}
}
foreach ($pages as $page) {
Permission::firstOrCreate([
'name' => $page,
'guard_name' => 'web',
]);
}
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
$superAdmin = Role::firstOrCreate(['name' => 'super_admin', 'guard_name' => 'web']);
$superAdmin->syncPermissions(Permission::all());
Role::firstOrCreate(['name' => 'panel_user', 'guard_name' => 'web']);
$admin = User::where('username', 'admin')->first();
if ($admin) {
$admin->syncRoles(['super_admin']);
$this->command->info("super_admin role assigned to user: {$admin->name}");
} else {
$this->command->warn('Admin user not found!');
}
$this->command->info('Roles and permissions seeded successfully.');
}
}