Files
streamline-emr/docker/statistics/Modules/ClinicalData/Services/Clinics/ClinicsService.php
T
2025-03-31 03:46:05 +03:00

99 lines
2.8 KiB
PHP

<?php
namespace Modules\ClinicalData\Services\Clinics;
use Illuminate\Support\Facades\Auth;
use Streamline\Models\Clinic;
class ClinicsService implements ClinicsServiceInterface
{
public function __construct()
{
//
}
public function getClinicById($id): ?Clinic
{
return Clinic::where(['id' => $id])->first();
}
public function createClinic($name, $clinic_type = null, $available = 1): ?Clinic
{
$clinic = new Clinic;
$clinic->name = $name;
$clinic->available = $available;
$clinic->slug = $clinic_type ?? 'general';
$clinic->created_by = Auth::id();
$clinic->updated_by = Auth::id();
try {
$clinic->save();
return $clinic;
} catch (\Exception $e) {
return null;
}
}
public function editClinic($id, $name, $available, $clinic_type = null): ?Clinic
{
$clinic = $this->getClinicById($id);
$clinic->name = $name;
$clinic->available = $available;
$clinic->slug = $clinic_type ?? 'general';
try {
$clinic->save();
return $clinic;
} catch (\Exception $e) {
return null;
}
}
public function deactivateClinic(int $id): bool
{
$clinic = $this->getClinicById($id);
try {
$clinic->delete();
return true;
} catch (\Exception $e) {
return false;
}
}
public function activateClinic($clinicId): array
{
$clinic= Clinic::withTrashed()->find($clinicId);
if($clinic->restore()){
return [true, "Clinic has been activated"];
} else {
return [false, ""];
}
}
public function getClinicTypes(): array{
return [
'ante_natal' => 'ANTE-NATAL Clinic', 'art' => 'A.R.T Clinic',
'diabetes' => 'Diabetes Clinic', 'mental_health' => 'Mental Health Clinic',
'maternity' => 'Maternity Clinic', 'general' => 'General', 'eye' => 'Eye Clinic',
];
}
public function getClinicsSeeder(): array{
return [
['name' => 'ANTE-NATAL Clinic', 'slug' => 'ante_natal'],
['name' => 'A.R.T Clinic', 'slug' => 'art'],
['name' => 'Dental Clinic', 'slug' => 'general'],
['name' => 'Diabetes Clinic', 'slug' => 'diabetes'],
['name' => 'Paediatric Clinic', 'slug' => 'general'],
['name' => 'Psychiatry Clinic', 'slug' => 'mental_health'],
['name' => 'TB Clinic', 'slug' => 'general'],
['name' => 'Accident & Emergency Clinic', 'slug' => 'general'],
['name' => 'General Adult Clinic', 'slug' => 'general'],
['name' => 'Maternity Clinic', 'slug' => 'maternity'],
];
}
}