diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a7d5d34..04342a1 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -757,6 +757,7 @@ $routes->get('diagnosis', 'Diagnosis::index', ['filter' => 'permission:diagnosis $routes->get('diagnosis/pathology', 'Diagnosis::pathology', ['filter' => 'permission:diagnosis.access']); $routes->get('diagnosis/biopsy', 'Diagnosis::biopsy', ['filter' => 'permission:diagnosis.access']); $routes->get('diagnosis/ultrasound', 'Diagnosis::ultrasound', ['filter' => 'permission:diagnosis.access']); +$routes->get('diagnosis/echo', 'Diagnosis::echo', ['filter' => 'permission:diagnosis.access']); $routes->get('diagnosis/xray', 'Diagnosis::xray', ['filter' => 'permission:diagnosis.access']); $routes->get('diagnosis/mri', 'Diagnosis::mri', ['filter' => 'permission:diagnosis.access']); $routes->get('diagnosis/ctscan', 'Diagnosis::ctscan', ['filter' => 'permission:diagnosis.access']); diff --git a/app/Controllers/Diagnosis.php b/app/Controllers/Diagnosis.php index fed2247..f366b72 100644 --- a/app/Controllers/Diagnosis.php +++ b/app/Controllers/Diagnosis.php @@ -63,6 +63,11 @@ class Diagnosis extends BaseController return $this->labPath(4); } + public function echo() + { + return $this->labPath(6); + } + public function labMaster() { return $this->index(); diff --git a/app/Database/Migrations/2026-04-02-000033_EnsureEchoChargeGroup.php b/app/Database/Migrations/2026-04-02-000033_EnsureEchoChargeGroup.php new file mode 100644 index 0000000..eed3fcb --- /dev/null +++ b/app/Database/Migrations/2026-04-02-000033_EnsureEchoChargeGroup.php @@ -0,0 +1,60 @@ +db->tableExists('hc_item_type')) { + return; + } + + $builder = $this->db->table('hc_item_type'); + + $rowById = $builder->where('itype_id', 6)->get(1)->getRowArray(); + if (! empty($rowById)) { + $groupDesc = strtolower(trim((string) ($rowById['group_desc'] ?? ''))); + if ($groupDesc !== 'echo') { + $builder->where('itype_id', 6)->update(['group_desc' => 'Echo']); + } + + return; + } + + $echoByName = $this->db->query("SELECT itype_id FROM hc_item_type WHERE LOWER(TRIM(group_desc)) = 'echo' LIMIT 1") + ->getRowArray(); + + if (! empty($echoByName)) { + return; + } + + $insert = [ + 'itype_id' => 6, + 'group_desc' => 'Echo', + ]; + + // Keep consistency with existing item type visibility flags when available. + $columns = array_map( + static fn (array $col): string => (string) ($col['Field'] ?? ''), + $this->db->query('SHOW COLUMNS FROM hc_item_type')->getResultArray() + ); + + if (in_array('is_ipd_opd', $columns, true)) { + $insert['is_ipd_opd'] = 0; + } + + $this->db->table('hc_item_type')->insert($insert); + } + + public function down() + { + if (! $this->db->tableExists('hc_item_type')) { + return; + } + + $this->db->query("DELETE FROM hc_item_type WHERE itype_id = 6 AND LOWER(TRIM(group_desc)) = 'echo'"); + } +} diff --git a/app/Views/diagnosis/index.php b/app/Views/diagnosis/index.php index c37eedb..3090c57 100644 --- a/app/Views/diagnosis/index.php +++ b/app/Views/diagnosis/index.php @@ -93,5 +93,19 @@ + + +