Add full Pediatrics, Orthopedics, and ENT specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 43s

Mirror Cardiology-depth stage flows, workspace tabs, reports/print, clinical
alerts, demo seeds, and PHPUnit coverage for child health, fracture clinic,
and ENT pathways.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-19 19:12:38 +00:00
co-authored by Cursor
parent 8e23cdeae3
commit dc86b51ed5
36 changed files with 4021 additions and 38 deletions
+13 -1
View File
@@ -17,6 +17,9 @@ use App\Services\Care\Maternity\MaternityWorkflowService;
use App\Services\Care\Radiology\RadiologyWorkflowService;
use App\Services\Care\Cardiology\CardiologyWorkflowService;
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 Illuminate\Support\Collection;
/**
@@ -66,6 +69,9 @@ class SpecialtyShellService
'radiology' => 'care.specialty.radiology.stage',
'cardiology' => 'care.specialty.cardiology.stage',
'psychiatry' => 'care.specialty.psychiatry.stage',
'pediatrics' => 'care.specialty.pediatrics.stage',
'orthopedics' => 'care.specialty.orthopedics.stage',
'ent' => 'care.specialty.ent.stage',
default => null,
};
}
@@ -86,6 +92,9 @@ class SpecialtyShellService
'radiology' => app(RadiologyWorkflowService::class)->stageFlow(),
'cardiology' => app(CardiologyWorkflowService::class)->stageFlow(),
'psychiatry' => app(PsychiatryWorkflowService::class)->stageFlow(),
'pediatrics' => app(PediatricsWorkflowService::class)->stageFlow(),
'orthopedics' => app(OrthopedicsWorkflowService::class)->stageFlow(),
'ent' => app(EntWorkflowService::class)->stageFlow(),
'dentistry' => [
'waiting' => ['next' => 'chair', 'label' => 'Seat at chair'],
'chair' => ['next' => 'procedure', 'label' => 'Start procedure'],
@@ -385,7 +394,7 @@ class SpecialtyShellService
) {
$code = (string) ($stage['code'] ?? '');
if (in_array($moduleKey, ['dentistry', 'emergency', 'blood_bank', 'ophthalmology', 'physiotherapy', 'maternity', 'radiology', 'cardiology', 'psychiatry'], true) && $visitIds->isNotEmpty()) {
if (in_array($moduleKey, ['dentistry', 'emergency', 'blood_bank', 'ophthalmology', 'physiotherapy', 'maternity', 'radiology', 'cardiology', 'psychiatry', 'pediatrics', 'orthopedics', 'ent'], true) && $visitIds->isNotEmpty()) {
$count = Visit::owned($ownerRef)
->where('organization_id', $organization->id)
->whereIn('id', $visitIds)
@@ -421,6 +430,9 @@ class SpecialtyShellService
'radiology' => $clinical->countOpenByType($organization, 'radiology', 'imaging_request', $branchScope),
'cardiology' => $clinical->countOpenByType($organization, 'cardiology', 'cardiac_exam', $branchScope),
'psychiatry' => $clinical->countOpenByType($organization, 'psychiatry', 'mental_status', $branchScope),
'pediatrics' => $clinical->countOpenByType($organization, 'pediatrics', 'pediatric_exam', $branchScope),
'orthopedics' => $clinical->countOpenByType($organization, 'orthopedics', 'ortho_exam', $branchScope),
'ent' => $clinical->countOpenByType($organization, 'ent', 'ent_exam', $branchScope),
'dentistry' => \App\Models\DentalPlanItem::query()
->whereHas('plan', function ($q) use ($organization, $ownerRef) {
$q->owned($ownerRef)