/** * getBookingOrderList 医生查看自己的加号历史列表 * @exampleUrl http://dev.mobile-api.haodf.com/doctorapi/bookingorder_getbookingorderhistorylist?userId=105133781&type=1&xdebug=1 * @param mixed $userId * @param mixed $type * @param mixed $pageId * @param mixed $pageSize * @access public * @return void */ public function getBookingOrderHistoryList($userId, $type, $pageId, $pageSize) {/*{{{*/ $pageSize = MainDataBucket::_initFetchCount($pageSize); $pageId = MainDataBucket::_initPageId($pageId, $pageSize); $code = $this->_check($userId); if($code) { $this->setErrorCode($code); return 0; } $type = (empty($type)) ? self::STATUS_SUCCESS : $type; //已就诊,过期,拒绝,医生取消,患者取消,患者爽约,就诊失败 $status = isset(self::$typeArray[$type]) ? self::$typeArray[$type] : self::STATUS_SUCCESS; $res = BookingClient::getInstance()->getSpaceOrderList($userId, $status, $pageId, $pageSize); $pageList = $res['pageInfo']; $this->pageInfo = array("nowpage" => $pageList['nowpage'], 'pages' =>$pageList['pages'] , 'total'=>$pageList['total'], 'pagesize' => $pageList['pagesize']); $results = array(); foreach($res['list'] as $bookingOrder) { $order = array(); $time = XDateTime::valueOf($bookingOrder->schedule)->toShortString(); $order['id'] = $bookingOrder->id; $order['userName'] = $bookingOrder->user->name; $patient = $bookingOrder->patient; $order += $this->getBookingOrderPatientMessage($patient); $disease = str_replace("•", "", BingLiDtoHelper::create($bookingOrder->getBingLiSource())->getDiseasesStr()); $order['disease'] = $disease; $order['schedule'] = date('Y-m-d H:i',strtotime($bookingOrder->schedule->toString())); $order['address'] = $bookingOrder->address; $order['status'] = $this->getBookingOrderStatus($bookingOrder); $order['showstatus'] = $bookingOrder->status; $order['invalidcause'] = $bookingOrder->invalidcause; $order['phonestatus'] = $bookingOrder->phonestatus; $order['time'] = $time.' '.XDateTime::getWeek($time); $results[] = $order; } $this->content = $results; }/*}}}*/
private function getOrder($order, $visitList = array()) {/*{{{*/ $out['id'] = $order->id; $time = XDateTime::valueOf($order->confirmStartTime); $year = $time->getYear(); $shortTime = XDateTime::valueOf($order->confirmStartTime)->toShortString(); $out['confirmStartTime'] = $time; $out['shortTime'] = '1970' == $year ? '待确定' : $time->getMonth().'月'.$time->getDay().'日 '.$time->getHour().':'.$time->getMinute(); $out['time'] = '1970' == $year ? '' : $shortTime.' '.XDateTime::getWeek($shortTime); $out['minute'] = $order->notification->proposal->product instanceOf Product ? $order->notification->proposal->product->duration.'分钟' : ''; $out['patientName'] = $order->patient->name; $out['patientId'] = $order->patient->id; $out['sex'] = ($order->patient->sex ==1) ? '男' : '女'; $out['age'] = $order->patient->birthday && $order->patient->birthday != '--' ? $order->patient->getPatientAge() : ''; $out['area'] = ($order->patient->province == $order->patient->city) ? $order->patient->province : $order->patient->province." ".$order->patient->city; $out['mobile'] = $order->patient->mobile; $out['disease'] = $order->getDiseaseName4Flow(); $flow = DAL::get()->find_by_patientid_and_spaceid('DoctorPatientRef', $order->patient->id, $order->space->id); $out['flowtitle'] = ''; $out['flowId'] = ''; if(false == $flow->isNull()) { $out['flowtitle'] = $flow->title; $out['flowId'] = $flow->id; } $out['checkProject'] = ''; $out['bingliType'] = ''; $out['checkTime'] = ''; $telorderTasks = DAL::get()->find_all_by_telorderid('telordertask', $order->id); krsort($telorderTasks); $telorderTask = array_shift($telorderTasks); $out['isConfirmTime'] = ($telorderTask instanceof TelOrderTask && $telorderTask->taskType == TelOrderTask::TYPE_RESERVE_DOC_INFO) ? 1 : 0; $out += $this->getVisitOrder($order, $visitList); return $out; }/*}}}*/