db = \Config\Database::connect(); $this->patientModel = new PatientModel(); $this->orderModel = new OrderTestModel(); } public function createDemoOrder() { $input = $this->request->getJSON(true); $patientData = [ 'PatientID' => $input['PatientID'] ?? 'DEMO' . time(), 'Gender' => $input['Gender'] ?? '1', 'NameFirst' => $input['NameFirst'] ?? 'Demo', 'NameLast' => $input['NameLast'] ?? 'Patient', 'Birthdate' => $input['Birthdate'] ?? '1990-01-01' ]; $patient = $this->patientModel->where('PatientID', $patientData['PatientID'])->findAll(); if (empty($patient)) { $internalPID = $this->patientModel->createPatient($patientData); } else { $internalPID = $patient[0]['InternalPID']; } $orderData = [ 'InternalPID' => $internalPID, 'PatVisitID' => $input['PatVisitID'] ?? null, 'Priority' => $input['Priority'] ?? 'R', 'OrderingProvider' => $input['OrderingProvider'] ?? 'Dr. Demo', 'DepartmentID' => $input['DepartmentID'] ?? 1, 'Tests' => $input['Tests'] ?? [] ]; $orderID = $this->orderModel->createOrder($orderData); return $this->respond([ 'status' => 'success', 'message' => 'Demo order created successfully', 'data' => [ 'PatientID' => $patientData['PatientID'], 'InternalPID' => $internalPID, 'OrderID' => $orderID, 'OrderStatus' => 'ORD' ] ], 201); } public function listDemoOrders() { $orders = $this->db->table('ordertest ot') ->select('ot.OrderID, ot.InternalPID, p.PatientID, ot.OrderDateTime, ot.Priority, ot.OrderStatus') ->join('patient p', 'p.InternalPID = ot.InternalPID') ->where('ot.DelDate', null) ->orderBy('ot.OrderDateTime', 'DESC') ->limit(50) ->get() ->getResultArray(); $orders = ValueSet::transformLabels($orders, [ 'Priority' => 'order_priority', 'OrderStatus' => 'order_status', ]); return $this->respond([ 'status' => 'success', 'message' => 'Data fetched successfully', 'data' => $orders ], 200); } }