From b28b51965c2b3313ef7919d7ab77b6f60f704584 Mon Sep 17 00:00:00 2001 From: DevSoftTech Server Date: Mon, 28 Sep 2026 00:43:03 +0530 Subject: [PATCH] fix(abdm): dynamically check ABHA columns in patient_master --- .../Abdm/Sync/AbdmTaskBoardSyncService.php | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/app/Libraries/Abdm/Sync/AbdmTaskBoardSyncService.php b/app/Libraries/Abdm/Sync/AbdmTaskBoardSyncService.php index 1af7a4d..b3bdeb9 100644 --- a/app/Libraries/Abdm/Sync/AbdmTaskBoardSyncService.php +++ b/app/Libraries/Abdm/Sync/AbdmTaskBoardSyncService.php @@ -289,20 +289,23 @@ class AbdmTaskBoardSyncService // If patient_master has abha_address separately, resolve it if ($abhaAddress === '' && $this->db->tableExists('patient_master')) { - $pm = $this->db->table('patient_master') - ->select('abha_address, abha_id, abha_no') - ->where('id', $patientId) - ->get(1) - ->getRowArray(); - if (! empty($pm)) { - if (! empty($pm['abha_address'])) { - $abhaAddress = trim((string) $pm['abha_address']); - } - if ($abhaNumber === '' && ! empty($pm['abha_id']) && preg_match('/^\d{14}$/', trim((string) $pm['abha_id']))) { - $abhaNumber = trim((string) $pm['abha_id']); - } - if ($abhaNumber === '' && ! empty($pm['abha_no']) && preg_match('/^\d{14}$/', trim((string) $pm['abha_no']))) { - $abhaNumber = trim((string) $pm['abha_no']); + $pFields = $this->db->getFieldNames('patient_master') ?? []; + $selectCols = array_values(array_intersect(['abha_address', 'abha_id', 'abha_number', 'abha_no', 'abha'], $pFields)); + if (! empty($selectCols)) { + $pm = $this->db->table('patient_master') + ->select(implode(', ', $selectCols)) + ->where('id', $patientId) + ->get(1) + ->getRowArray(); + if (! empty($pm)) { + if (! empty($pm['abha_address'])) { + $abhaAddress = trim((string) $pm['abha_address']); + } + foreach (['abha_number', 'abha_id', 'abha_no', 'abha'] as $c) { + if ($abhaNumber === '' && ! empty($pm[$c]) && preg_match('/^\d{14}$/', trim((string) $pm[$c]))) { + $abhaNumber = trim((string) $pm[$c]); + } + } } } }