mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-11 18:51:31 +00:00
99 lines
2.8 KiB
PHP
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'],
|
|
];
|
|
}
|
|
} |