Add full Oncology, Renal Care, and Surgery specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 32s

Match Pediatrics/ENT depth with stages, workspace tabs, clinical records, reports/print, demo seed, and suite tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-19 20:16:18 +00:00
co-authored by Cursor
parent dc86b51ed5
commit b7e5a7d9ad
33 changed files with 3392 additions and 53 deletions
+13 -1
View File
@@ -20,6 +20,9 @@ use App\Services\Care\Psychiatry\PsychiatryWorkflowService;
use App\Services\Care\Pediatrics\PediatricsWorkflowService;
use App\Services\Care\Orthopedics\OrthopedicsWorkflowService;
use App\Services\Care\Ent\EntWorkflowService;
use App\Services\Care\Oncology\OncologyWorkflowService;
use App\Services\Care\Renal\RenalWorkflowService;
use App\Services\Care\Surgery\SurgeryWorkflowService;
use Illuminate\Support\Collection;
/**
@@ -72,6 +75,9 @@ class SpecialtyShellService
'pediatrics' => 'care.specialty.pediatrics.stage',
'orthopedics' => 'care.specialty.orthopedics.stage',
'ent' => 'care.specialty.ent.stage',
'oncology' => 'care.specialty.oncology.stage',
'renal' => 'care.specialty.renal.stage',
'surgery' => 'care.specialty.surgery.stage',
default => null,
};
}
@@ -95,6 +101,9 @@ class SpecialtyShellService
'pediatrics' => app(PediatricsWorkflowService::class)->stageFlow(),
'orthopedics' => app(OrthopedicsWorkflowService::class)->stageFlow(),
'ent' => app(EntWorkflowService::class)->stageFlow(),
'oncology' => app(OncologyWorkflowService::class)->stageFlow(),
'renal' => app(RenalWorkflowService::class)->stageFlow(),
'surgery' => app(SurgeryWorkflowService::class)->stageFlow(),
'dentistry' => [
'waiting' => ['next' => 'chair', 'label' => 'Seat at chair'],
'chair' => ['next' => 'procedure', 'label' => 'Start procedure'],
@@ -394,7 +403,7 @@ class SpecialtyShellService
) {
$code = (string) ($stage['code'] ?? '');
if (in_array($moduleKey, ['dentistry', 'emergency', 'blood_bank', 'ophthalmology', 'physiotherapy', 'maternity', 'radiology', 'cardiology', 'psychiatry', 'pediatrics', 'orthopedics', 'ent'], true) && $visitIds->isNotEmpty()) {
if (in_array($moduleKey, ['dentistry', 'emergency', 'blood_bank', 'ophthalmology', 'physiotherapy', 'maternity', 'radiology', 'cardiology', 'psychiatry', 'pediatrics', 'orthopedics', 'ent', 'oncology', 'renal', 'surgery'], true) && $visitIds->isNotEmpty()) {
$count = Visit::owned($ownerRef)
->where('organization_id', $organization->id)
->whereIn('id', $visitIds)
@@ -433,6 +442,9 @@ class SpecialtyShellService
'pediatrics' => $clinical->countOpenByType($organization, 'pediatrics', 'pediatric_exam', $branchScope),
'orthopedics' => $clinical->countOpenByType($organization, 'orthopedics', 'ortho_exam', $branchScope),
'ent' => $clinical->countOpenByType($organization, 'ent', 'ent_exam', $branchScope),
'oncology' => $clinical->countOpenByType($organization, 'oncology', 'onc_staging', $branchScope),
'renal' => $clinical->countOpenByType($organization, 'renal', 'renal_exam', $branchScope),
'surgery' => $clinical->countOpenByType($organization, 'surgery', 'surg_exam', $branchScope),
'dentistry' => \App\Models\DentalPlanItem::query()
->whereHas('plan', function ($q) use ($organization, $ownerRef) {
$q->owned($ownerRef)