public function ajaxSelectList($request, $response)
 {
     /*{{{*/
     header('Content-Type: text/html; charset=GBK');
     $page = intval($request->getRequest('p', 1));
     $res = ReplyTemplateClient::getInstance()->getInfosAndPage('replytemplate', $this->space->user->id, $page, 15);
     $response->templateList = $res['replyInfos'];
     $pagelink = '';
     if (empty($res['page']) == false) {
         $pageInfo = $res['page'];
         $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace($this->space->getUrl() . 'replytemplate/ajaxselectlist?p='), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
     }
     $response->pagelink = $pagelink;
 }
 public function orderList($request, $response)
 {
     /*{{{*/
     $params = array('url' => "http://" . URL_PREFIX . $this->space->userName . ".haodf.com/adminbooking/contractform", 'text' => '点击这里填写预约要求,申请开通服务', 'module' => Space::MODULE_ADMIN_BOOKING);
     if ($this->space->isBookingOpened() == false && $this->space->host->isAdminLevel4() && in_array($request->action, array('contractform', 'contractpost', 'whatdofordoctor')) == false) {
         $this->message('您好,您还没开通网上转诊预约服务', $response, $params);
         return;
     }
     $params1 = array('url' => $this->space->getUrl(), 'text' => '点击这里返回', 'module' => Space::MODULE_ADMIN_BOOKING);
     if ($this->space->getSpaceBusinessRequirement4Booking()->isRefused() && $this->space->host->isAdminLevel4() && in_array($request->action, array('contractform', 'contractpost', 'whatdofordoctor')) == false) {
         $this->message('您好,您开通网上转诊预约服务的申请未通过审核', $response, $params1);
         return;
     }
     $orderCount = BookingClient::getInstance()->getOrderListCount4Doctor($this->space->user->id);
     $status = $request->status;
     if ($status == false && $orderCount['pending'] > 0) {
         $status = 'pending';
     }
     if ($status == false && $orderCount['pending'] == 0 && $orderCount['confirmed'] > 0) {
         $status = 'confirmed';
     }
     if ($status == false && $orderCount['pending'] == 0 && $orderCount['confirmed'] == 0) {
         $status = 'finished';
     }
     $page = $request->getRequest('page', 1);
     $res = BookingClient::getInstance()->getSpaceOrderList($this->space->user->id, $status, $page, 10);
     $pagelink = "";
     if (isset($res['pageInfo']) && empty($res['pageInfo']) == false) {
         $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace("/adminbooking/orderlist?status={$status}&page="), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']);
     }
     $lastFinishSchedule = '';
     if ($status == 'finished') {
         $lastFinishSchedule = BookingClient::getInstance()->getBookingOrderSchedule('BookingOrder', $this->space->id);
         $lastFinishSchedule = date('Y-m-d', strtotime($lastFinishSchedule));
     }
     $response->orderCount = $orderCount;
     $response->status = $status;
     $response->orderList = $res['list'];
     $response->pagelink = $pagelink;
     $response->page = $page;
     $response->lastFinishSchedule = $lastFinishSchedule;
 }
 /** 成员管理**/
 public function manageMembers($request, $response)
 {
     /*{{{*/
     $groupId = $request->groupid;
     $member = new NullEntity();
     if ($groupId && $this->user->id) {
         $member = ForumClient::getInstance()->getMemberByUserIdAndGroupId($this->user->id, $groupId);
         $group = DAL::get()->find('regroup', $groupId);
     }
     if ($member->isNull() || false == $member->isNull() && false == $member->isLeader()) {
         $msg = rawurlencode('你没有权限操作!');
         header('Location: ' . $this->space->getUrl() . 'index/showmessage?msg=' . $msg);
         echo $userid;
         exit;
     }
     $userNameArr = $request->username ? array('username' => $request->username) : array();
     $nowPage = $request->getRequest('p', 1);
     $pageSize = 20;
     $res = ForumClient::getInstance()->getMembersByGroupIdAndSpaceId($this->space->id, $groupId, $nowPage, $pageSize, $userNameArr);
     $pagelink = "";
     if (isset($res['pageInfo']) && false == empty($res['pageInfo'])) {
         $pageInfo = $res['pageInfo'];
         $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace("/patient/managemembers?groupid={$groupId}&p="), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
     }
     $response->members = $res['list'];
     $response->pageLink = $pagelink;
     $response->groupId = $groupId;
     $response->page = $nowPage;
     $response->group = $group;
 }
 public function ajaxShowTelOrders($request, $response)
 {
     /*{{{*/
     $doctor = $this->space->host->getPrimaryDoctor();
     $options = array();
     $nowPage = (int) $request->getRequest('nowPage', 1);
     $options['status'] = array(TelOrder::STATUS_FINISHED, TelOrder::STATUS_CLOSED);
     $res = TelOrderClient::getInstance()->getOrderList4Space($this->space->id, $nowPage, 6, $options);
     $pageInfo = $res['pageInfo'];
     $pageLink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace("/payment/ajaxshowtelorders?nowPage=", 2, 5, 1, false), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
     $orderList = $res['list'];
     $response->orderList = $orderList;
     $response->pageLink = $pageLink;
     $response->nowPage = $nowPage;
 }
 public function replyTpl($request, $response)
 {
     /*{{{*/
     $response->subMenu = 'replyTpl';
     $nowPage = intval($request->getRequest('page', 1));
     $res = ReplyTemplateClient::getInstance()->getAll($this->user->id, $nowPage, 10, array('page' => true));
     $response->replyTemplateList = $res['templates'];
     $pagelink = '';
     if (empty($res['page']) == false) {
         $pageInfo = $res['page'];
         $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace('?page='), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
     }
     $response->pagelink = $pagelink;
 }
 public function showWithdrawStatement($request, $response)
 {
     /*{{{*/
     $nowPage = $request->page ? $request->page : 1;
     $pageSize = 20;
     $response->incomeAccountAmount = $this->space->getIncomeAccount()->amount;
     $response->subsidyAccountAmount = $this->space->getSubsidyAccount()->amount;
     $settleOrders = DAL::get()->find_all_by_spaceid('SettleOrder', $this->space->id);
     $settleOrders = array_reverse($settleOrders);
     $response->settleOrders = array_slice($settleOrders, ($nowPage - 1) * $pageSize, $pageSize);
     $withdrawAmount = $noWithdrawAmount = 0;
     $noWithdrawCnt = 0;
     foreach ($settleOrders as $order) {
         $noTaxAmount = $order->getAmountWithoutTax();
         if ($order->isWithdraw()) {
             $withdrawAmount += $noTaxAmount;
         } else {
             $noWithdrawCnt++;
         }
     }
     $response->withdrawAmount = $withdrawAmount;
     $response->noWithdrawCnt = $noWithdrawCnt;
     $pageInfo = Pager::calcPageInfo(count($settleOrders), $nowPage, $pageSize);
     $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace("showwithdrawstatement?actionclass={$request->actionclass}&page="), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
     $response->actionClass = $request->actionclass;
 }
 /**
  * @brief 当前流所对应随访患者的病例库
  * @author lhl
  * @version branches/v2.14.23
  * @date 2013-07-25
  */
 public function patientCaseHistoryList($request, $response)
 {
     /*{{{*/
     $doctorPatientRefId = Codec::getInstance()->decodeId($request->refid);
     $ref = DAL::get()->find('DoctorPatientRef', $doctorPatientRefId);
     $response->ref = $ref;
     $user = DAL::get()->find('user', $ref->user->id);
     $params = array();
     $params['userId'] = $user->id;
     $pageParams = 'refid=' . $ref->getEncodeId();
     $page = $request->getRequest('page', 1);
     $pageSize = 10;
     $res = PatientCaseHistoryClient::getInstance()->getCaseHistoryList($page, $pageSize, $params);
     $caseHistoryList = $res['caseHistoryList'];
     $response->caseHistoryList = $caseHistoryList;
     $response->pageLink = '';
     if (false == empty($res['pageInfo'])) {
         $response->pageLink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace('/flow/patientcasehistorylist?' . $pageParams . '&page='), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']);
     }
 }
 public function searchReTopic($request, $response)
 {
     /*{{{*/
     $keyword = $request->keyword;
     $response->keyword = $keyword;
     $page = $request->getRequest('p', 1);
     if (false == empty($keyword)) {
         $res = DAL::get()->querySearchRetopic4Dzone('retopic', $this->space->id, $keyword, $page, 15);
     }
     if (isset($res['ids']) && false == empty($res['ids'])) {
         $response->retopics = DAL::get()->find('retopic', $res['ids']);
         $response->pagelink = pageNav::getNavLink(PageNav::getPageNavTemplateForSpace("/search/search?type=retopic&keyword={$keyword}&p=", 2, 5, 1, false), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']);
         $response->total = $res['pageInfo']['total'];
     }
 }
 public function ajaxShowPresent($request, $response)
 {
     /*{{{*/
     //获取有数据的分类
     $response->validPresentCates = PresentClient::getInstance()->getValidPresentCateList();
     $patientId = $request->patientid;
     $response->patientId = $patientId;
     if ($this->user->isNull()) {
         $response->redirectUrl = User::getLoginUrl();
         return;
     }
     list($canSend, $errorMsg) = $this->canSendPresent($patientId);
     $response->canSend = $canSend;
     $response->errorMsg = $errorMsg;
     if (false == $canSend) {
         return;
     }
     //先看礼物后选  过来的firstlook by 重新选择礼物
     $response->firstLook = $request->getRequest('firstlook', false);
     list($featAmount, $heartImgHtml) = ScoreClient::getInstance()->showFlagsforPage($this->space->user->id);
     //爱心图片
     $response->heartImgHtml = $heartImgHtml;
     //爱心值
     $response->featAmount = $featAmount;
     /********开始:处理未支付的订单(选择了赠送礼物,但是从付费页面跳出去了,就会生成一个未付费订单,页面会显示立即取消,重选礼物)*******/
     $presentOrder = PresentClient::getInstance()->getValidUnpaidPresentOrder($this->space->id, $patientId, $this->user->id);
     $new = $request->new;
     if (false == $presentOrder->isNull()) {
         if (false == empty($new) || $presentOrder->present->isExpired()) {
             //点击重新选择礼物时,会传来参数new=1
             PresentClient::getInstance()->setPresentOrderUnvalid($presentOrder->id);
         } else {
             $response->presentOrder = $presentOrder;
             $response->present = $presentOrder->present;
             $response->wish = $presentOrder->wish;
             $response->presentId = $presentOrder->present->id;
             if (false == $this->user->isNull()) {
                 $flows = FlowClient::getInstance()->getFlowListByUser($this->user->id, array('status' => DoctorPatientRef::STATUS_INIT));
                 $otherDoctorFlows = array();
                 foreach ($flows as $flow) {
                     if ($flow->spaceid != $this->space->id) {
                         array_push($otherDoctorFlows, $flow);
                     }
                 }
                 $response->otherDoctorFlows = $otherDoctorFlows;
             }
             $patient = DAL::get()->find('patient', $patientId);
             $userId = empty($patientId) ? $this->user->id : $patient->user->id;
             $response->leftAmount = ScoreClient::getInstance()->getIntegralAmount($userId);
             return 'ajaxapplypresent';
         }
     }
     /********结束:处理未支付的订单*******/
     $page = $request->getRequest('page', 1);
     $response->page = $page;
     $pageSize = 4;
     $options = array();
     $presentCategoryId = $request->getRequest('categoryid', 0);
     $options['categoryid'] = $presentCategoryId;
     $response->categoryId = $presentCategoryId;
     $result = PresentClient::getInstance()->showPresentList4Front($page, $pageSize, $options);
     $response->presentList = $result['presents'];
     $response->presentSoldCounts = array();
     //(false == empty($result['presents'])) ? PresentClient::getInstance()->getPresentCountOfSold(array_keys($result['presents'])) : 0 ;
     $pageInfo = $result['pageInfo'];
     $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace('/api/present/ajaxshowpresent?patientid=' . $patientId . '&categoryid=' . $presentCategoryId . '&uname=' . $this->space->user->name . '&page=', 2, 3, 1, false), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total'], false);
 }
 public function patientHealthRecordDetail($request, $response)
 {
     /*{{{*/
     $patientId = $request->patientId;
     $patient = DAL::get()->find('Patient', $patientId);
     $patientCaseId = $request->patientCaseId;
     $response->patientId = $patientId;
     $response->patientCaseId = $patientCaseId;
     $p = $request->getRequest("p", 1);
     $abNormal = $request->abNormal;
     $doctorPatientRefs = DAL::get()->find_all_by_spaceid_and_userid('DoctorPatientRef', $this->space->id, $patient->user->id);
     $proposals = DAL::get()->find_all_by_spaceid_and_userid_and_servicedef('Proposal', $this->space->id, $patient->user->id, 'FLOW');
     if (empty($doctorPatientRefs) && empty($proposals)) {
         throw new BizException('您没有权限查看此患者健康日记');
     }
     if ($abNormal) {
         $res = PatientFileClient::getInstance()->getAbnormalRecordListByPatientId($patientId, $p, 10);
     } else {
         $res = PatientFileClient::getInstance()->getRecordListByPatientId($patientId, $p, 10);
     }
     $response->healthRecordList = $healthRecordList = $res['list'];
     if (empty($res['pageInfo']) == false) {
         $url = "/adminpatient/patienthealthrecorddetail?patientId=" . $patientId;
         $pageLink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace($url . "&abNormal={$abNormal}&p="), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']);
     }
     $answerArrs = $wrapperCntArr = $wrapperArrs = $uploadArr = array();
     foreach ($healthRecordList as $record) {
         $wrapperCntArr[$record->id] = array();
         foreach ($record->answerSheet->answers as $answer) {
             if ($answer->getAnswerContent() == '' || $answer->getAnswerContent() instanceof NullEntity) {
                 continue;
             }
             if ($answer->question->isUpload()) {
                 $uploadArr[$record->id][] = $answer->getAnswerContent();
             }
             $answerArrs[$record->id][$answer->question->id] = $answer;
             $question = $answer->question;
             if (array_key_exists($question->wrapperid, $wrapperCntArr[$record->id])) {
                 $wrapperCntArr[$record->id][$question->wrapperid]++;
             } else {
                 $wrapperCntArr[$record->id][$question->wrapperid] = 1;
             }
         }
         $questionIdAnswerArr = $record->answerSheet->getQuestionId_answerArr();
         $answerSheetQuestionIds = array_keys($questionIdAnswerArr);
         $questionSheetQuestionIds = array_keys($record->answerSheet->questionSheet->questions);
         $deleteQuestionIds = array_diff($answerSheetQuestionIds, $questionSheetQuestionIds);
         $questionIds = array_merge($questionSheetQuestionIds, $deleteQuestionIds);
         $questions = DAL::get()->find('question', $questionIds);
         foreach ($questions as $question) {
             $wrapperArrs[$record->id][$question->wrapperid][] = $question;
         }
     }
     $response->answerArrs = $answerArrs;
     $response->wrapperArrs = $wrapperArrs;
     $response->wrapperCntArr = $wrapperCntArr;
     $response->uploadArr = $uploadArr;
     $response->pageLink = $pageLink;
     $response->abNormal = $abNormal = $abNormal == 1 ? 1 : 0;
     $response->patient = DAL::get()->find('Patient', $patientId);
 }
 /** 获取文章列表 zj **/
 private function getArticleList($categoryId, $classicCategoryId, $request, $response)
 {
     /*{{{*/
     if ($request->category_id == '') {
         $page = intval($request->getRequest('page', 1));
     } else {
         $page = intval($request->getRequest('p', 1));
     }
     $options = array();
     $options['articleLevel'] = Article::LEVEL_0;
     $userId = UserClient::getInstance()->getCheckedSeed('id');
     $res = ArticleClient::getInstance()->getList($this->space->id, $categoryId, $page, $pageSize = 20, $options, $userId);
     $articleList = $res['articleList'];
     $pagelink = "";
     if (isset($res['pageInfo']) && false == empty($res['pageInfo']) && '' == $request->category_id) {
         $pageInfo = $res['pageInfo'];
         $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace('lanmu_', 2, 3, 1, true), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
         $pagelink = str_replace("href=\"lanmu_1\"", "href=\"lanmu\"", $pagelink);
     } else {
         if (isset($res['pageInfo']) && false == empty($res['pageInfo'])) {
             $pageInfo = $res['pageInfo'];
             $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace('?p='), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
         }
     }
     $category = new NullEntity();
     if ($categoryId) {
         $category = DAL::get()->find('ArticleCategory', $categoryId);
     }
     $response->category = $category;
     $response->categoryId = $categoryId;
     $response->isClassicsCase = $categoryId == $classicCategoryId;
     $topArticleList = array();
     $downArticleList = array();
     foreach ($articleList as $article) {
         if ($article->topLevel) {
             $topArticleList[] = $article;
         } else {
             $downArticleList[] = $article;
         }
     }
     XString::sortArray($topArticleList, 'topLevel');
     $response->topArticleList = $topArticleList;
     XString::sortArray($downArticleList, 'ctime');
     $response->downArticleList = $downArticleList;
     $newHitRes = array();
     if (false == empty($articleList) && false == $this->isSpaceLogin()) {
         $hitRes = HitClient::getInstance()->getHitsNoCache(array_keys($articleList));
         $articleIds = array_keys($articleList);
         foreach ($articleIds as $articleId) {
             $redisKey = "article_" . $articleId;
             $newHitRes[$articleId] = HitClient::getInstance()->getHitCntByKey($redisKey);
         }
     }
     $response->hitRes = $newHitRes;
     if ($this->isSpaceLogin()) {
         $response->maxTop = ArticleClient::getInstance()->getMaxTopLevel($this->space->id, $isAll = false);
         $response->minTop = ArticleClient::getInstance()->getMinTopLevel($this->space->id);
     }
     $response->pagelink = $pagelink;
     $response->articleId = $request->articleId;
 }