Files
aso/Modules/Internal/Transformers/ReportPhrResource.php
Server D3 Linksehat 013c57d00a update
2024-10-14 10:35:21 +07:00

73 lines
2.4 KiB
PHP
Executable File

<?php
namespace Modules\Internal\Transformers;
use Illuminate\Http\Resources\Json\JsonResource;
use Carbon\Carbon;
class ReportPhrResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
$doctor_name = null;
if ($this->doctor && $this->doctor->user && $this->doctor->user->detail) {
$doctor_name = $this->doctor->user->detail->sTitlePrefix . ' ' . $this->doctor->user->fullname;
}
// Process the plan
$plan = [];
if ($this->summary && $this->summary->sPlan) {
$plan = $this->processPlan($this->summary->sPlan);
}
$data = [
'id' => $this->nID,
'healthcare' => $this->healthCare ? $this->healthCare->sHealthCare : null,
'patient_name' => $this->user ? $this->user->sFirstName : null,
'doctor_name' => $doctor_name,
'specialis' => $this->doctor ? $this->doctor->speciality->sSpesialis : null,
'date_consultation' => $this->summary ? Carbon::parse($this->dCreateOn)->format('Y-m-d H:i:s') : null ,
'subject' => $this->summary ? $this->summary->sSubjective : null,
'object' => $this->summary ? $this->summary->sObjective : null,
'assessment' => $this->summary ? $this->summary->sAssessment : null,
'plan' => $plan,
];
return $data;
}
// Function to determine if a string is serialized
private function is_serialized($string) {
return ($string == 'b:0;' || @unserialize($string) !== false);
}
// Function to determine if a string is JSON
private function is_json($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
// Function to safely process the plan
private function processPlan($sPlan) {
if ($this->is_serialized($sPlan)) {
$unserializedPlan = @unserialize($sPlan);
if ($unserializedPlan !== false || $sPlan === 'b:0;') {
return $unserializedPlan;
}
} elseif ($this->is_json($sPlan)) {
$jsonPlan = json_decode($sPlan, true);
if (json_last_error() == JSON_ERROR_NONE) {
return $jsonPlan;
}
}
return $sPlan; // Treat as plain text if not serialized or JSON
}
}