From 07ed8ff305d905088782ba12d87a3ceb97053091 Mon Sep 17 00:00:00 2001 From: DevSoftTech Server Date: Mon, 1 Jun 2026 10:57:30 +0530 Subject: [PATCH] Sanitize OPD FHIR patient name placeholders --- app/Controllers/Opd_prescription.php | 31 +++++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/app/Controllers/Opd_prescription.php b/app/Controllers/Opd_prescription.php index e197b56..90a1b53 100644 --- a/app/Controllers/Opd_prescription.php +++ b/app/Controllers/Opd_prescription.php @@ -4682,8 +4682,8 @@ class Opd_prescription extends BaseController $abhaField = $this->resolvePatientAbhaField(); $abhaAddress = $abhaField !== null ? trim((string) ($patientRow[$abhaField] ?? '')) : ''; - $patFirstName = trim((string) ($patientRow['p_fname'] ?? '')); - $patLastName = trim((string) ($patientRow['p_lname'] ?? '')); + $patFirstName = $this->sanitizePersonNamePart((string) ($patientRow['p_fname'] ?? '')); + $patLastName = $this->sanitizePersonNamePart((string) ($patientRow['p_lname'] ?? '')); $patFullName = trim($patFirstName . ($patLastName !== '' ? ' ' . $patLastName : '')); if ($patFullName === '') { $patFullName = trim((string) ($opdRow['P_name'] ?? '')); @@ -4885,8 +4885,8 @@ class Opd_prescription extends BaseController $pFields = $this->db->getFieldNames('patient_master'); $pRow = $this->db->table('patient_master')->where('id', $patientId)->get(1)->getRowArray(); if (! empty($pRow)) { - $fname = trim((string) ($pRow['p_fname'] ?? '')); - $lname = trim((string) ($pRow['p_lname'] ?? '')); + $fname = $this->sanitizePersonNamePart((string) ($pRow['p_fname'] ?? '')); + $lname = $this->sanitizePersonNamePart((string) ($pRow['p_lname'] ?? '')); $patientName = trim($fname . ' ' . $lname); foreach (['abha_number', 'abha_id', 'abha_address'] as $abhaField) { if (in_array($abhaField, $pFields, true)) { @@ -5266,8 +5266,8 @@ class Opd_prescription extends BaseController $pFields = $this->db->getFieldNames('patient_master'); $pRow = $this->db->table('patient_master')->where('id', $patientId)->get(1)->getRowArray(); if (! empty($pRow)) { - $fname = trim((string) ($pRow['p_fname'] ?? '')); - $lname = trim((string) ($pRow['p_lname'] ?? '')); + $fname = $this->sanitizePersonNamePart((string) ($pRow['p_fname'] ?? '')); + $lname = $this->sanitizePersonNamePart((string) ($pRow['p_lname'] ?? '')); $patientName = trim($fname . ' ' . $lname); foreach (['abha_number', 'abha_id', 'abha_address'] as $abhaField) { if (in_array($abhaField, $pFields, true)) { @@ -10220,8 +10220,8 @@ class Opd_prescription extends BaseController $abhaField = $this->resolvePatientAbhaField(); $abhaAddress = $abhaField !== null ? trim((string) ($patientRow[$abhaField] ?? '')) : ''; - $patFirstName = trim((string) ($patientRow['p_fname'] ?? '')); - $patLastName = trim((string) ($patientRow['p_lname'] ?? '')); + $patFirstName = $this->sanitizePersonNamePart((string) ($patientRow['p_fname'] ?? '')); + $patLastName = $this->sanitizePersonNamePart((string) ($patientRow['p_lname'] ?? '')); $patFullName = trim($patFirstName . ($patLastName !== '' ? ' ' . $patLastName : '')); if ($patFullName === '') { $patFullName = trim((string) ($opdRow['P_name'] ?? '')); @@ -10802,6 +10802,21 @@ class Opd_prescription extends BaseController return 'unknown'; } + private function sanitizePersonNamePart(string $value): string + { + $value = trim($value); + if ($value === '') { + return ''; + } + + $normalized = strtolower($value); + if (in_array($normalized, ['0', '0.0', 'null', 'nil', 'none', '-'], true)) { + return ''; + } + + return $value; + } + /** * @return string|int|null */