Exemplo n.º 1
0
 /**
  * getOrderList 取订单列表 
  * 
  * @param mixed $userId 
  * @param mixed $status 
  * @param mixed $pageId 
  * @param mixed $pageSize 
  * @access public
  * @return void
  */
 public function getOrderList($userId, $status, $pageId, $pageSize)
 {/*{{{*/
     $pageSize = MainDataBucket::_initFetchCount($pageSize);
     $pageId = MainDataBucket::_initPageId($pageId, $pageSize);
     $status = empty($status) ? 0 : $status;
     $space = DAL::get()->find('space', $userId);
     if($space->isNull())
     {
         $this->setErrorCode(328);
         return 0;
     }
     $params['wap'] = true; 
     if($status == self::STATUS_NEED_ILLNESS)
     {
         $params['confirmstarttimeDesc'] = true;
     }
     $telOwner = DAL::get()->find_by_relatedObject('telowner', $space->user);
     $status = $this->getOrderSearchStatus($status);
     if($status != TelOrder::SEARCH_FINISHED_CLOSE)
     {
         $params['noLimit'] = true;
     }
     $res = TelOrderClient::getInstance()->getList($status, $pageId, $pageSize, $telOwner->id, $params);
     $telOrderList = TelOrder::getNoPendingOrderList($res['list'], $status);
     $pageList = $res['pageInfo'];
     $this->pageInfo = array("nowpage" => $pageList['nowpage'], 'pages' =>$pageList['pages'] , 
         'total'=>$pageList['total'], 'pagesize' => $pageList['pagesize']);
     $this->content = $this->getOrderMsg($telOrderList, $status);
 }/*}}}*/
    /**
     * 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;
    }/*}}}*/
Exemplo n.º 3
0
 /**
  * getOtherAllFlows 取患者所有流 
  * 
  * @param mixed $userId 
  * @param mixed $patientId 
  * @access public
  * @return void
  */
 public function getOtherAllFlows($userId, $patientId, $pageId = 0, $pageSize = 5, $isOtherFlow = 0, $changeArr = 0)
 {/*{{{*/
     $infos = array();
     $doctorOwner = DAL::get()->find_by_userid('doctorOwner',$userId);
     $space = DAL::get()->find('space', $userId);
     if($doctorOwner->isNull())
     {
         $this->setErrorCode(328);
         return 0;
     }
     if($doctorOwner->source instanceof PreDoctor)
     {
         $this->getOtherAllFlows4Predoctor( $patientId, $pageId, $pageSize);
     }
     else
     {
         $pageSize = MainDataBucket::_initFetchCount($pageSize);
         $curSize = $pageSize;
         $pageId = MainDataBucket::_initPageId($pageId, $pageSize);
         $selfFlow = null;
         if ($pageId == 1)
         {
             $selfFlow = FlowClient::getInstance()->getValidFlowRef($space->id, $patientId);
             if (false == $selfFlow->isNull() && !$isOtherFlow)
             {
                 $curSize--;
             }
         }
         $patient = DAL::get()->find('patient', $patientId);
         extract(FlowClient::getInstance()->getFlowListWithOtherSpace($patient, $space, $pageId, $curSize));
         $otherFlows = $list;
         array_unshift($otherFlows, $selfFlow); //将患者和医生收费的一条流追加数组第一位置
         $isOtherFlow = empty($isOtherFlow) ? 0 : 1;
         $allCnt = DAL::get()->queryPatientOtherSpaceCnt('doctorpatientref', $patientId, $space);
         if($isOtherFlow)
         {
             array_shift($otherFlows); //取患者除本医生外其他流
             $allCnt = $allCnt > 0 ? $allCnt-- : 0;
         }
         foreach($otherFlows as $otherFlow)
         {
             if($otherFlow==null || $otherFlow->space->isNull() || $otherFlow->space->isHospitalFaculty())
             {
                 continue;
             }
             $info['id'] = $otherFlow->id;
             $info['userId'] = $otherFlow->space->id;
             $info['patientId'] = $otherFlow->patient->id;
             $info['isSelf'] =  $otherFlow->space->id == $userId  ? 1 : 0; 
             $info['name'] = $otherFlow->space->name.' '.$otherFlow->space->host->getGrade4Display();
             $info['doctorName'] = $otherFlow->space->name;
             $info['grade'] = $otherFlow->space->host->getGrade4Display();
             $info['diseaseName'] = $otherFlow->getDiseaseName4Flow();
             $info['title'] = XString::truncate($otherFlow->title, 20, "...");
             $info['showtime'] = MainDataBucket::getShowTime($otherFlow->lastPostTime);
             $info['hospital'] = $otherFlow->space->host->hospitalfaculty->hospital->name.' '.$otherFlow->space->host->hospitalfaculty->name;
             $infos[] = $info;
         }
         $this->pageInfo = array("nowpage" => $pageId, 'pages' => (int)ceil($allCnt/$pageSize), 
             'total'=>$allCnt, 'pagesize' => $pageSize);
         $changeArr = empty($changeArr) ? 0 : 1;
         if($changeArr)
             $infos = $this->changeArr($infos, $pageId);
         $this->content = array_values($infos);
     }
 }/*}}}*/