private function getPhoneList($request, $response) {/*{{{*/ $diseaseIds_shuffle = self::$diseaseIds; shuffle($diseaseIds_shuffle); list($directDoctorList, $directSatisfactions) = PaymentClient::getInstance()->getLatestPhoneServiceDoctorAndSatisfactionListByDiseaseId(array_pop($diseaseIds_shuffle), 3); if($request->searchType == CmsTagType::HOSPITAL) { $phoneDoctorIds = DAL::get()->queryDoctorIdsByHospital('DoctorOutLine', $request->searchParam, 3); if (false == empty($phoneDoctorIds)) { $directDoctorList = DAL::get()->find('Doctor', $phoneDoctorIds); $directSatisfactions = PaymentClient::getInstance()->getDoctorSatisfactionList($phoneDoctorIds); } } if($request->searchType == CmsTagType::FACULTY) { $phoneDoctorIds = DAL::get()->queryDoctorIdsByHospitalFaculty('DoctorOutLine', $request->searchParam, 3); if (false == empty($phoneDoctorIds)) { $directDoctorList = DAL::get()->find('Doctor', $phoneDoctorIds); $directSatisfactions = PaymentClient::getInstance()->getDoctorSatisfactionList($phoneDoctorIds); } } $response->statistics = SpaceClient::getInstance()->getStatistics(); $response->directDoctorList = $directDoctorList; $response->directSatisfactions = $directSatisfactions; }/*}}}*/
public function createSitemap() {/*{{{*/ $content = ''; $header = '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'."\n"; $footer = '</urlset>'; $hospitalUrlList = DAL::get()->queryAllHospitalUrl4Sitemap('hospital'); $content = $this->getData4Sitemap($hospitalUrlList); $diseaseUrlList = DAL::get()->queryAllDiseaseUrl4Sitemap('disease'); $content .= $this->getData4Sitemap($diseaseUrlList); $facultyUrlList = DAL::get()->queryAllFacultyUrl4Sitemap('faculty'); $content .= $this->getData4Sitemap($facultyUrlList); $zixunUrlList = $this->getZixunUrl(); $content .= $this->getData4Sitemap($zixunUrlList); $bookingHospitalUrlList = SpaceClient::getInstance()->getBookingHospitalUrl4Sitemap('plussignchannel'); $content .= $this->getData4Sitemap($bookingHospitalUrlList); $data = $header.$content.$footer; $filePath = dirname(__FILE__).'/../root/sitemap/'; $fileName = 'wwwfront.xml'; $file = $filePath.$fileName; $fp = fopen($file,'w'); fwrite($fp, $data); fclose($fp); }/*}}}*/
public function updateDoctorSitemap() {/*{{{*/ $curPage = $_SERVER["argv"][1]; //开始页 echo date("Y-m-d H:i:s")." Current page: {$curPage} start... \n"; $indexFilePath = dirname(__FILE__).'/../../wwwfront/root/sitemap/'; $indexFileName = $curPage.'.xml'; $indexFile = $indexFilePath.$indexFileName; if(false == isset($_SERVER["argv"][2])) //若只有一个医生id { $spaces = DAL::get()->find('space',array($curPage)); } else { $pageSize = $_SERVER["argv"][2]; //每一页大小 $spaces = SpaceClient::getInstance()->getConfirmedSpaces($curPage,$pageSize); } if(false == count($spaces)) { echo date("Y-m-d H:i:s")." {$curPage} Space NOT FOUND! Processing quit"; exit; } $startTime = '2011-01-01'; //只统计从2011年开始的CASE和文章 $startTime2= mktime(0,0,0,1,1,2011); foreach($spaces as $space) { $cases = FlowClient::getInstance()->getIdAndSpaceName4sitemap($space->id,$startTime); $articles = ArticleClient::getInstance()->getIdAndSpaceName4sitemap($space->id,$startTime2); $sourceType = ($space->isOpenFlow())?(Space::SPACE_SITEMAP_SOURCE_FLOW):(Space::SPACE_SITEMAP_SOURCE_CASE); $this->createSitemap($cases, $space->user->name, $sourceType, $indexFile); $this->createSitemap($articles, $space->user->name, Space::SPACE_SITEMAP_SOURCE_ARTICLE, $indexFile); } echo date("Y-m-d H:i:s")." {$curPage},".(isset($pageSize)?$pageSize:'')." Finshed! Process Space number:".count($spaces)."\n"; }/*}}}*/
public static function batchLoadSpace($doctorIds) { $spaceList = array(); if(empty($doctorIds) == false) { $spaceList = SpaceClient::getInstance()->getListByHostIdsAndType($doctorIds); } return $spaceList; }
public function ad($request, $response) {/*{{{*/ $response->topTitle = "电话咨询"; //右上方,该代码来自400 indexcontroller的function index $statistics = SpaceClient::getInstance()->getStatistics(); // 1. 成功通话的人数 $response->successCallPatientNum = $statistics['successtelserviceorders']; //2. 开通电话咨询的医生人数 $response->openCallDoctorNum = $statistics['opentelservicedoctors']; $response->title = "电话咨询_好大夫在线"; }/*}}}*/
public function facultyDoctorSchedulePost($request, $response) { $doctorIds = $request->doctor_ids; if ($request->upDoctor > 0) { $doctorIds = $this->moveSwapItem( $doctorIds, $request->upDoctor, true ); } if ($request->downDoctor > 0 ) { $doctorIds = $this->moveSwapItem( $doctorIds, $request->downDoctor, false ); } SpaceClient::getInstance()->setScheduleDataOrder( $this->_newSpace->id,$doctorIds ); $this->message('医生门诊修改成功', $response); }
public function before($context) { $spaceUserName = WebUtil::getSpaceUserName($context->request); $space = SpaceClient::getInstance()->getSpaceByUserName($spaceUserName); $userId = UserClient::getInstance()->getCheckedSeed('id'); $user = DAL::get()->find('user', $userId); if ($space->isNull()) { header('Location: http://www.haodf.com'); exit; } if (empty($userId) || $space->user->id != $userId && false == $user->isAdmin()) { $msg = rawurlencode('你没有权限操作!'); header('Location: ' . $space->getUrl() . 'index/showmessage?msg=' . $msg); exit; } }
public function __construct($request, $response) { /*{{{*/ parent::__construct($request, $response); $response->imgTimestamp = BeanFinder::get('configs')->imgTimestamp; $spaceUserName = WebUtil::getSpaceUserName($request); $this->space = SpaceClient::getInstance()->getSpaceByUserName($spaceUserName); if ($this->space->isNull()) { header('Location: http://www.haodf.com'); exit; } if ($this->space->isHospitalFaculty()) { $requestUri = $_SERVER['REQUEST_URI']; header('Location: http://' . URL_PREFIX . $this->space->user->name . '.haodf.com' . $requestUri); exit; } $this->user = NullEntity::create(); $userId = UserClient::getInstance()->getCheckedSeed('id'); if ($userId) { $this->user = DAL::get()->find('user', $userId); } $response->space = $this->space; $response->user = $this->user; //未登录 或者 站外链接访问 skips if ($this->user->isNull() || false == $request->isQueryFromHDF()) { $this->skips($response); } $this->initModules($request, $response); $this->spaceIsLogin = $this->isSpaceLogin(); $response->spaceIsLogin = $this->spaceIsLogin; $response->isSpaceUser = $this->isSpaceUser(); $response->unreadCaseCount = $this->getUnReadCaseCount(); if ($this->space->modulecase->isNull()) { SpaceModuleCaseClient::getInstance()->initModuleCase($this->space); } $this->accessLog(); $configs = BeanFinder::get('configs'); $response->imgUrl = $configs->imgUrl; $response->spaceStyleId = $request->view_style_id ? $request->view_style_id : $this->space->getSpaceStyleId(); $response->_window_id = $request->window_id; $response->spaceBaseUrl = URL_PREFIX . $this->space->userName . '.haodf.com'; $response->title = $this->space->name . '大夫个人网站'; $response->scripts = array(); $response->spaceHits = $this->getSpaceHits($request); $response->goodDoctorList = $this->getGoodDoctorListOf2013(); $response->patientGoodDoctorList = $this->getPatientGoodDoctorListOf2013(); }
public function before($context) { $spaceUserName = WebUtil::getSpaceUserName($context->request); $space = SpaceClient::getInstance()->getSpaceByUserName($spaceUserName); $userId = UserClient::getInstance()->getCheckedSeed('id'); $user = DAL::get()->find('user', $userId); if ($space->isNull()) { header('Location: http://www.haodf.com'); exit; } $auditor = DAL::get()->find_by_userid('auditor', $userId); if (empty($userId) || $space->user->id != $userId && $userId != 6 && FollowupAssistantClient::getInstance()->hasAssistRights($userId, $space->id) == false && $auditor->isNull()) { $msg = rawurlencode('你没有权限操作!'); header('Location: ' . $space->getUrl() . 'index/showmessage?msg=' . $msg); exit; } }
public function before($context) { $spaceUserName = WebUtil::getSpaceUserName($context->request); $space = SpaceClient::getInstance()->getSpaceByUserName($spaceUserName); /** * 测试医院下所有space只能在办公区访问 * **/ $userId = UserClient::getInstance()->getCheckedSeed('id'); $user = DAL::get()->find('user', $userId); $hdferUserNames = array('verygoodman', 'willowliu', 'dvsj', 'yangshiqi'); if(in_array($user->name, $hdferUserNames) == false && $space->host instanceof Doctor && $space->host->hospitalfaculty->hospital->isInnerTestHospital() && false == RequestDelegate::isOfficeIp()) { header('Location: http://www.haodf.com'); exit; } }
public function showList($request, $response) { $options['content'] = $request->content; $options['status'] = $request->status; if ($request->status === '') { unset($options['status']); } $options['source'] = $request->source; $options['type'] = $request->type; list($userAdviceList, $pageInfo) = SpaceClient::getInstance()->getUserAdviceList($options, $request->p, self::USED_ADVICE_PAGE_SIZE); $response->userAdviceList = $userAdviceList; $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("/useradvice/showlist?status=" . $options['status'] . "&type=" . $options['type'] . "&source=" . $options['source'] . "&p="), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']); $response->title = '用户建议列表'; $response->content = $options['content']; $response->status = $options['status']; $response->source = $options['source']; $response->type = $options['type']; }
public function addPost($request, $response) { /*{{{*/ $this->myProjectOperator->checkAdminAuthOrQuit('insert'); $userName = $request->userName; $user = UserClient::getInstance()->getByUserName($userName); DBC::requireTrue($user instanceof User, "User {$userName} 不存在."); $name = $request->name; $role = $request->role; $projectOrgId = $request->projectOrgId; $projectOrg = DAL::get()->find('projectOrg', $projectOrgId); if ($projectOrg->belongtoOneHospital()) { $space = SpaceClient::getInstance()->getSpaceByUserName($userName); // DBC::requireTrue($space instanceof Space,"Space $userName 不存在."); } $projectOperatorId = ProjectOperatorClient::getInstance()->addProjectOperator($user->id, $name, $role, $projectOrgId, $this->myProjectOperator->id); $preMsg = "成功新增操作员 {$projectOperatorId}, {$userName}, {$name} "; $response->setRedirect($response->router->urlfor('projectoperatormgr/listofall', array('preMsg' => $preMsg))); }
public function askIntentionintro($request, $response) {/*{{{*/ $caseHostUserId = $request->getRequest('spaceid', 0); $askSpace = DAL::get()->find('space', $caseHostUserId); $message = $request->message; $response->statistics = SpaceClient::getInstance()->getStatistics(); $response->message = $message; $response->askSpaceObjectBefore = $askSpace; $anserPhoneCount = PaymentClient::getInstance()->getDoctorSatisfactionCntList($askSpace->id); $anserPhoneCount = isset($anserPhoneCount[0])?$anserPhoneCount[0]['cnt'] : 0; $phoneComments = PaymentClient::getInstance()->getDoctorSatisfactionList($askSpace->host->id); $response->phoneComments = isset($phoneComments[$askSpace->host->id]['scorecnt'])?$phoneComments[$askSpace->host->id]['scorecnt'] : 0; $response->anserPhoneCount = $anserPhoneCount; //dodo::wxy 添加医生一句话 $owner = DAL::get()->find_by_relatedObjectid_and_relatedobjecttype('telowner', $askSpace->id, TelOwner::TYPE_USER); $response->owner = $owner; $docWords = (false == $owner->isNull() && $owner->isSpaceOwner())?$owner->getSpaceExt()->getDoctorWords():''; $response->wordLen = $docWords?(int)strlen($docWords):''; $response->normalWord = $docWords?$docWords:''; $response->excessWord = $docWords?XString::strString(array($docWords),0,300)."...":''; }/*}}}*/
protected function getData($nowPage, $pageSize) {/*{{{*/ $options = array(); $page['nowPage'] = $nowPage; $page['pageSize'] = $pageSize; $spaceList = SpaceClient::getInstance()->getCaseOpenedSpaceList($options, $page); $res = array(); if ($spaceList) { $diseaseDoctorList = $this->getDiseaseDoctor($spaceList['spaceList']); foreach ($spaceList['spaceList'] as $space) { $res[$space->id]['item'] = $this->getRealData($space, $diseaseDoctorList); unset($space); } } unset($spaceList,$diseaseDoctorList); BeanFinder::get('LocalCache')->removeAll(); return $res; }/*}}}*/
public function showIntentionCaptcha($request, $response) { $request->convertToGBK(); $captcha = $request->getRequest('captcha', ''); $captchaStatus = $request->getRequest('captchaStatus', '0'); $medicalProjectName = $request->getRequest('medicalProjectName', ''); $spaceName = $request->getRequest('spaceName', ''); $patientName = $request->getRequest('patientName', ''); $patientPhone = $request->getRequest('patientPhone', ''); //定义一个bool变量,判断是否为高级搜索,当有一个条件不为空的时候,就为高级搜索,这时候搜索是忽略验证码输入去搜索 $isAdvancedSearchFlag = $captchaStatus != '0' || $medicalProjectName != '' || $spaceName != '' || $patientName != '' || $patientPhone != ''; $medicalProjectCaptchas = array(); if ($isAdvancedSearchFlag) { $spaceIds = SpaceClient::getInstance()->getSpacesByName($spaceName); var_dump($spaceIds); exit; $patientIds = DAL::get()->find_id_by_name_and_mobile('patient', $patientName, $patientPhone); } else { $medicalProjectCaptchas = DAL::get()->find_all_by_captcha('medicalprojectcaptcha', $captcha); } $response->medicalProjectCaptchas = $medicalProjectCaptchas; }
protected function getSpacePostCntInfo($caseSpaceList) { if($caseSpaceList) { //两周内回复数 foreach ($caseSpaceList as $space) { if($space instanceof Space) { $spaceIds[] = $space->id; } } $tmpResults = array(); if(empty($spaceIds) == false){ $tmpResults = SpaceClient::getInstance()->getTmpSpacePostCnt($spaceIds); } $spacePostCntInfos = array(); foreach($tmpResults as $tmpResult){ $spacePostCntInfos[$tmpResult['userid']] = $tmpResult['postcount']; } return $spacePostCntInfos; } }
public function update($request, $response) { $id = $request->id; //被修改的userid $userInfo = $request->data; //被修改的userid //获取当前操作用户id $user = UserClient::getInstance()->getCurrentUser(); $userInfo['modiferid'] = $user->id; $updateUser = DAL::get()->find('user', $id); $valueUserMobile = isset($userInfo['mobile']) ? UserClient::getInstance()->getSpaceByUserMobile($userInfo['mobile'], $id) : ''; if (isset($userInfo['mobile']) && $userInfo['mobile'] && false == XString::isMobile($userInfo['mobile'])) { $msg = "您填写的手机号码不合要求,请修改后重新提交"; } else { if ($updateUser->hasConfirmedSpace() && $updateUser->space->isDoctor() && isset($userInfo['mobile']) && $valueUserMobile) { $msg = "此手机号码已经绑定了注册医生,请重新确定手机号"; } else { if ($updateUser->hasSpace() && $userInfo['realName']) { //自动更新space上冗余的spacehostname SpaceClient::getInstance()->setProperties($id, array('name' => $userInfo['realName'])); } $userId = UserClient::getInstance()->modifyInfoNew($id, $userInfo); if ($userId) { $msg = "操作成功了 "; } else { $msg = "操作失败了 "; } } } if (DoctorComment::hasRightToUpdateUserContent($this->inspector->id)) { //获取被操作的用户 $operationedUser = DAL::get()->find('User', $request->id); $logId = S3LogClient::getInstance()->add($this->inspector, $operationedUser->getLogable()->action(UserLog::ACTION_ADMIN_CONTENT, $request->adminContent)); } $url = $response->router->urlfor('user/showuserdetail', array('id' => $id, 'msg' => $msg)); $response->setRedirect($url); }
public function getFlowList($request, $response) {/*{{{*/ $hospitalId = $request->partnerConfig->hospitalId; $option['hospitalId'] = $hospitalId; $out = SpaceClient::getInstance()->getCaseOpenDoctorIds4HzHospital($currentPage = 1, $pageSize = 1000, $option); $ids = $out['ids']; $flowList = array(); if (false == empty($ids)) { $flowList = FlowClient::getInstance()->getZixunFlowBySpaceIds($ids, $currentPage = 1, $pageSize = 4); $flowList = $flowList['flowList']; } $response->flowList = $flowList; return $request->partnerConfig->domain; }/*}}}*/
private function getPatientInfoForPatient($response, $thread) {/*{{{*/ /** 患友会分组*/ if ($this->_newSpace->isDoctor() && $this->_newSpace->isPatientOpened()) { $isResidentEvil = ForumClient::getInstance()->isResidentEvil($this->_newSpace->id, $thread->user->id); //成员数 $memberCount = PatientClubClient::getInstance()->getResidentEvilMemberCount('regroup', $this->_newSpace->id); //所有组(去掉默认组) $groupList = DAL::get()->find_all_by_spaceid_and_type('ReGroup', $this->_newSpace->id, ReGroup::TYPE_1); //用户所在组 $groups = ForumClient::getInstance()->getGroupByUserId($thread->user->id, $this->_newSpace->id); $reboardIdArr = array(); $spaceTopic = array(); if (empty($groups['list']) == false){ foreach($groups['list'] as $group) { if ($group->reboard->isNull() == false) $reboardIdArr[] = $group->reboard->id; } } //取话题 if (empty($reboardIdArr) == false) $spaceTopic = DAL::get()->find_all_by_reboardid_and_spaceid('ReTopic', $reboardIdArr, $this->_newSpace->id, 5); $groupList = ForumClient::getInstance()->getResidentEvilSpaceByUserId($thread->user->id); list($groupInfo, $reSpaceList) = SpaceClient::getInstance()->sortGroupBySpace($groupList); if(isset($reSpaceList[$thread->space->id])) unset($reSpaceList[$thread->space->id]); $response->reSpaceList = $reSpaceList; $response->groups = $groups; $response->spaceTopic = $spaceTopic; $response->isResidentEvil = $isResidentEvil; $response->memberCount = $memberCount; } }/*}}}*/
public function closeShowChargeNotice($request, $response) {/*{{{*/ $spaceId = $request->getRequest('spaceId',true); SpaceClient::getInstance()->closeShowChargeFlowTip($spaceId); }/*}}}*/
public function searchFund($request, $response) { /*{{{*/ $nowPage = (int) $request->getRequest('p', 1); $pageSize = 25; $total = 500; $options = array(); $res = array(); if ($request->keyword) { $spaces = SpaceClient::getInstance()->getSpacesByName($request->keyword); $spaceIds = array_keys($spaces); if ($spaceIds) { $res = DZoneClient::getInstance()->getFoundAccountListBySpace($spaceIds); } $response->pagelink = ''; } else { $res = AccountClient::getInstance()->getFoundAccountList($nowPage, $pageSize); $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("/present/searchfund?showContent=1&p="), $nowPage, $pageSize, $total); } $response->res = $res; }
public function doctorReceiveRemindSmsPost($request, $response) { /*{{{*/ DBC::requireTrue($this->space->user->verifyToken($request->token), '验证码错误'); $remindSms = $request->remindSms; $mobile = trim($request->mobile); if ($mobile && $remindSms == 1) { DBC::requireTrue(XString::isMobile($mobile), '您填写的手机号码不合要求,请修改后重新提交'); $valueUserMobile = UserClient::getInstance()->getSpaceByUserMobile($mobile, $this->user->id); DBC::requireTrue(false == $valueUserMobile, '此手机号码已经绑定了注册医生,请重新确定手机号'); UserClient::getInstance()->setMobile($this->space->id, $mobile, $this->user->id); SpaceClient::getInstance()->setProperties($this->space->id, array('receiveLoginRemindSms' => $remindSms)); $this->message('信息修改成功', $response); } else { if ($remindSms == 0) { SpaceClient::getInstance()->setProperties($this->space->id, array('receiveLoginRemindSms' => $remindSms)); $this->message('信息修改成功', $response); } else { DBC::requireTrue(XString::isMobile($mobile), '您填写的手机号码不合要求,请修改后重新提交'); } } }
public function newCaseWithMultiPatients($userId, $doctorId, $title, $tag, $content1, $content2, $content3, $attachmentIds, $deviceType, $patientId, $name, $sex, $relation, $province, $city, $mobile, $birthday) {/*{{{*/ $request = new Request(); /*********start*****修复错误数据:userId为0,手动修复userId,关联到的patient提示重新登录*********/ if ($userId <= 0) { //错误数据:patient关联的userId为0,提示用户重新登录 if (in_array($patientId, self::$patientIds)) { $content = array('gotodetailnotice' => '您在好大夫在线的登陆账号存在安全隐患,我们已通过短信给您发送了新的账号和密码,如果未收的短信请等候或联系我们!'); if ($request->os == 'ios') { $content['sign'] = '1'; } $this->content = $content; return 0; } } /*********end*******修复错误数据:userId为0,手动修复userId,关联到的patient提示重新登录*********/ /* if($request->os == 'ios') { $ver = $request->v; error_log("[".XDateTime::now()."] ".print_r("userid=$userId, doctorid=$doctorId, title=$title, $tag, $content1, $content2, $content3, $attachmentIds, $deviceType, $patientId, $name, $sex, $relation, $province, $city, $mobile, $birthday, $ver", true)."\n", 3, "/tmp/whd1.log"); } */ if(strlen($name) > 20) { $this->setErrorCode(339); return 0; } $databucket = new Databucket(); if($databucket->isThreadServiceSuspendTime()) { $this->setErrorCode(901); return 0; } $user = DAL::get()->find('user', $userId); if ($userId <=0 || $user->isNull()) { $this->setErrorCode(107); return 0; } $errorcode = $this->checkPatientInfo4NewCase($patientId, $name, $sex, $relation, $province, $city, $birthday, $mobile); if($errorcode != 0) { $this->setErrorCode($errorcode); return 0; } if(0 == $patientId) {/*{{{*/ $birthday = ($birthday != "") ? date('Y-m-d',$birthday) : ""; $params = array( 'name' => $name, 'sex' => $sex, 'relation' => $relation, 'province' => $province, 'birthday' => $birthday, 'city' => $city, 'mobile' => $mobile, ); $patient = PatientClient::getInstance()->add($user, $params); }/*}}}*/ else { if(isset($user->patients[$patientId])) { PatientClient::getInstance()->updateMobile($patientId, $mobile); $patient = $user->patients[$patientId]; } else { $this->setErrorCode(316); return 0; } } $askSpace = new NullEntity(); //兼容android客户端,doctorId传null字符串的bug if ($doctorId == 'null') { $doctorId = 0; $appVer = $request->v; } if($doctorId) { $doctor = DAL::get()->find('doctor', $doctorId); if($doctor->isNull()) { $this->setErrorCode(132); return 0; } $askSpace = $doctor->space; if($askSpace->isNull()) { $this->setErrorCode(144); return 0; } try { SpaceClient::getInstance()->ensureAllowAskRule($user, $askSpace); } catch(Exception $ex) { $this->setErrorCode(320); return 0; } } $options = array(); $options['title'] = $title; $options['disease'] = $tag; $options['content'] = $content1; if ($content2) { $options['content'] .= "\n\n曾经治疗情况和效果:\n\n".$content2; } $options['attachmentIds'] = $attachmentIds; $options['facultyId'] = 0; //就诊过的医院 $options['prehospital'] = ''; if($askSpace->isNull() == false) { $options['facultyId'] = $askSpace->host->hospitalfaculty->faculty->id; } $options['deviceType'] = $deviceType; $options['title'] = htmlspecialchars_decode($options['title'], ENT_QUOTES); $options['disease'] = htmlspecialchars_decode($options['disease'], ENT_QUOTES); if(mb_strlen(XString::cntrim($options['title'])) < 5 || mb_strlen(XString::cntrim($options['title'])) > 10) { $this->setErrorCode(167); return 0; } if(mb_strlen(XString::cntrim($options['disease'])) < 1 || mb_strlen(XString::cntrim($options['disease'])) > 20) { $this->setErrorCode(304); return 0; } if ($user->isNull() || $patient->isNull()) { error_log(print_r(debug_backtrace(), true), 3, '/tmp/ask_user_null.log'); $this->setErrorCode(206); return 0; } $noticeAfterCase = "您的咨询将由网站医学助理按病情转交合适的医生回复。70%的咨询可在3天内得到医生回复,未回复的咨询将在7天后过期。如病情紧急建议直接去医院就诊。"; /*加点患者提问成功扣分*/ $res = ScoreClient::getInstance()->ask($user->id); $src = $deviceType; $hospital = $options['prehospital']; $disease = $options['disease']; $title = $options['title']; $content = $options['content']; $hopeHelp = $content3; if($options['attachmentIds']) { $attachmentIds = explode("," , $options['attachmentIds']); } else { $attachmentIds = array(); } $thread = IntentionClient::getInstance()->add4ThreadFromWap($patient, $askSpace, $src, $hospital, $content, $attachmentIds, $disease, $title, '', $hopeHelp); //todo::伪装展示 $this->content = array('threadId' => $thread->id, 'caseType' => 'thread', 'sign' => 0, 'noticeAfterCase' => $noticeAfterCase); if ($thread->isNull()) { $this->setErrorCode(169); return 0; } }/*}}}*/
public function index($request, $response) {/*{{{*/ if (false == $this->isFromNotice()) { $next = 'http://www.haodf.com'; if (isset($_SERVER['HTTP_HOST']) && isset($_SERVER['REQUEST_URI'])) { $next = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; } $refer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'http://www.haodf.com'; $response->setRedirect('http://'.URL_PREFIX.'jiahao.haodf.com/notice.htm?refer='.urlencode($refer).'&next='.urlencode($next)); return parent::DIRECT_OUTPUT; } $month = XDateTime::valueOf(date('Y-m-d',(strtotime(XDateTime::now()) - 86400*30))); $day = XDateTime::valueOf(date('Y-m-d',(strtotime(XDateTime::now())))); $threeDay = XDateTime::valueOf(date('Y-m-d',(strtotime(XDateTime::now()) - 86400*3))); $oneYear = XDateTime::valueOf(date('Y-m-d',(strtotime(XDateTime::now()) - 86400*30*12))); $beijingHospital = array( '协和医院'=>1, '同仁医院'=>3, '301医院'=>335, '北医三院'=>142, '人民医院'=>21, '妇产医院'=>75, '儿童医院'=>24, '积水潭医院'=>34, '阜外医院'=>25, '宣武医院'=>55, '天坛医院'=>44, '北大肿瘤'=>148); $shanghaiHospital = array( '瑞金医院'=>424, '中山医院'=>420, '仁济医院'=>471, '华山医院'=>418, '新华医院'=>426, '长海医院'=>427, '上海第一'=>431, '红房子医院'=>416, '儿童医学中心'=>425, '上海九院'=>422, '五官科医院'=>419, '精神卫生中心'=>827); $guangdongHospital = array( '省人民医院'=>443, '省中医院'=>454, '中山一院'=>460, '中山二院'=>458, '中山三院'=>459, '广州市第一'=>446, '广医一院'=>453, '脑科医院'=>449, '广州儿童医院'=>447, '深圳北大医院'=>608); $otherAreaHospital = array( '天津总医院'=>487, '天津肿瘤'=>599, '天津血液病'=>1904, '华西医院'=>488, '四川省人民'=>507, '华西口腔'=>532, '江苏省人民'=>478, '南京鼓楼'=>497, '南京脑科'=>646, '武汉协和'=>494, '武汉同济'=>496, '湖北省人民'=>530); $otherAreaHospitalAddress = array( '天津总医院'=>'tianjin', '天津肿瘤'=>'tianjin', '天津血液病'=>'tianjin', '华西医院'=>'sichuan', '四川省人民'=>'sichuan', '华西口腔'=>'sichuan', '江苏省人民'=>'jiangsu', '南京鼓楼'=>'jiangsu', '南京脑科'=>'jiangsu', '武汉协和'=>'hubei', '武汉同济'=>'hubei', '湖北省人民'=>'hubei'); $hospitalArray = array_merge($beijingHospital, $shanghaiHospital); $hospitalArray = array_merge($hospitalArray, $guangdongHospital); $hospitalArray = array_merge($hospitalArray, $otherAreaHospital); $hospitalDoctorCount = PlussignChannelClient::getInstance()->getDoctorCountByHospital($hospitalArray); $beijingCount = PlussignChannelClient::getInstance()->getDoctorCountByArea('北京');//北京地区开通加号医生总数目 $shanghaiCount = PlussignChannelClient::getInstance()->getDoctorCountByArea('上海'); $guangdongCount = PlussignChannelClient::getInstance()->getDoctorCountByArea('广东'); $bjHospitalFactory = PlussignChannelClient::getInstance()->getFacultyListByCondition('','北京','');//北京地区各个科室开通加号医生数目 $shHospitalFactory = PlussignChannelClient::getInstance()->getFacultyListByCondition('','上海',''); $gdHospitalFactory = PlussignChannelClient::getInstance()->getFacultyListByCondition('','广东',''); $otherHospitalFactory = PlussignChannelClient::getInstance()->getFacultyListByCondition('','其它地区',''); if(isset($bjHospitalFactory['传染病科'])) { unset($bjHospitalFactory['传染病科']); } if(isset($gdHospitalFactory['传染病科'])) { unset($gdHospitalFactory['传染病科']); } if(isset($shHospitalFactory['传染病科'])) { unset($shHospitalFactory['传染病科']); } $doctorNumber = PlussignChannelClient::getInstance()->getPlusSignDoctorCount();//全国开通加号医生总数目 $patientNumber = SpaceClient::getInstance()->getPlusSignPatientCount(); $otherCount = $doctorNumber-$beijingCount-$shanghaiCount-$guangdongCount;//其它地区开通加号医生总数目 //预约成功患者 $patientOrderList = PatientClient::getInstance()->getPatientOrderList(6); list($response->spacesOfNewContract, $response->newContracts) = BookingClient::getInstance()->getSpaceAndContract4newOpenBooking(20); $response->bjHospital = $beijingHospital; $response->shHospital = $shanghaiHospital; $response->gdHospital = $guangdongHospital; $response->otHospital = $otherAreaHospital; $response->otAreaHospital = $otherAreaHospitalAddress; $response->hospitalDoctorCount = $hospitalDoctorCount; $response->beijingCount = $beijingCount; $response->shanghaiCount = $shanghaiCount; $response->guangdongCount = $guangdongCount; $response->bjHospitalFactory = $bjHospitalFactory; $response->shHospitalFactory = $shHospitalFactory; $response->gdHospitalFactory = $gdHospitalFactory; $response->otherHospitalFactory = $otherHospitalFactory; $response->doctorNumber = $doctorNumber; $response->patientNumber = $patientNumber; $response->otherCount = $otherCount; $response->patientOrderList = $patientOrderList; $response->type = 'index'; //返回页面类型,暂时用于控制二级导航 }/*}}}*/
public function promotion($request, $response) {/*{{{*/ $response->title = '感恩答谢'; $space = SpaceClient::getInstance()->getAnyOneSpace(); $response->space = $space; $params = array(); $params['limit'] = 3; $params['isOnline'] = true; $params['hasStock'] = true; $popularResult = PresentClient::getInstance()->getPresentsAndSoldCnt($params); $response->popularPresents = $popularResult['presents']; $recommendPresents = PresentClient::getInstance()->getRecommendedPresents(); $recommendPresent = array_shift($recommendPresents); $response->recommendPresent = $recommendPresent; //flow $orderby = "postcount"; $groupby = "spaceid"; $arr = array( 'status' => DoctorPatientRef::STATUS_INIT, 'orderby' => $orderby, 'groupby' => $groupby, ); $limit = $request->limit; $response->limit = $limit; if($this->curUser->id) { $flows = FlowClient::getInstance()->getFlowListByUser($this->curUser->id, $arr); } if($this->curUser->isNull() || 0 == count($flows)) { $response->allowSend = false; $num = 3; $heartResult = PresentClient::getInstance()->getBoardByType(SpaceHeartBillboard::TYPE_WEEK,$num); $spaceHeartWeekBillboards = $heartResult['rank']; $response->spaceHeartWeekBillboards = $spaceHeartWeekBillboards; } else { $flowList = array(); foreach($flows as $flow) { if($flow->space->host instanceof Doctor) { $flowList[] = $flow; } } foreach($flowList as $flow) { $thankLetterCounts[$flow->id] = $flow->space->host->getCureThankLetterCount(); } $response->refs = ($limit == "all") ? $flowList : array_slice($flowList, 0, 6); $response->refCount = count($flowList); $response->thankLetterCounts = $thankLetterCounts; } //礼物列表 $page = 1; $pageSize = 200; $options = array(); $options['categoryid'] = $request->getRequest('categoryid', 0); $options['hasStock'] = true; $listResult = PresentClient::getInstance()->showPresentList4Front($page, $pageSize, $options); $response->presentList = $listResult['presents']; //动态 $spaceId = 0; $bannerResult = PresentClient::getInstance()->showPresentBanner($spaceId, 8); $response->onePresentOrders = array_slice($bannerResult['presentOrders'], 0, 4); $response->threePresentOrders = array_slice($bannerResult['presentOrders'], 4, 4); $response->statistics = SpaceClient::getInstance()->getStatistics(); //最新礼物更新(临时写,下期更新后就下掉) $newPresents = DAL::get()->find_all_by_condition('Present', 'name in ("马到成功", "吉祥如意")'); foreach ($newPresents as $presentKey=>$newPresent) { $newPresents[$newPresent->name] = $newPresent; unset($newPresents[$presentKey]); } $response->presentMdcg = $newPresents['马到成功']; $response->presentJxry = $newPresents['吉祥如意']; }/*}}}*/
private function diseaseThread($request, $response) { /*{{{*/ $lastCommonCaseNote = $this->space->commonCaseNote; $diseasesGbk = XString::convertToGbk($request->diseases); SpaceClient::getInstance()->setProperties($this->space->id, array('commonCaseNote' => $diseasesGbk)); if ($lastCommonCaseNote != $diseasesGbk) { SpaceChangeLogClient::getInstance()->addLog($this->space->id, SpaceLog::$type[SpaceLog::SPACE_LOG_TYPE_CASE], $lastCommonCaseNote); } DZoneClient::getInstance()->replaceSpaceAttribute($this->space->id, Space::ATTR_RECOMMEND_COMMONCASENOTE_UPDATED, 1); $diseasesGbk = strlen($diseasesGbk) > 0 ? $diseasesGbk : '暂无'; return $diseasesGbk; }
public function openService($request, $response) { /*{{{*/ $options = array('phoneOpened' => $request->isOpen); $options['user'] = $this->space->user; $id = SpaceClient::getInstance()->modifySpacePhoneService($this->space->id, $options); $response->setRedirect($response->router->urlfor('adminpayment/showaddtelowner', array('type' => 'edit', 'telOwner' => $owner))); }
public function nextSignin($request, $response) { /*{{{*/ $user = $this->user; $signinId = $request->signinId; $ticketId = $request->ticketId; $params = array(); $response->serviceAuditorList = FollowupOwner::getFollowupAuditors(); $ownerType = 'FollowupOwner'; //根据审核类型 //获取工单 if (empty($ticketId) && empty($signinId)) { $ticket = NfsAuditClient::getInstance()->getNextTaskTicket($this->auditor, $ownerType, $ownerType, $params); } else { $ticket = DAL::get()->find('NfsTaskTicket', $ticketId); } //报道者 $patientSignin = new NullEntity(); if (empty($signinId) && empty($ticket) == false && $ticket->isNull() == false) { $patientSignin = $ticket->hostEntity; } elseif (empty($signinId) == false) { $patientSignin = DAL::get()->find('FollowupOwner', $signinId); } if ($patientSignin->isNull()) { die('审核结束'); } $userQueues = CheckupClient::getInstance()->getUserFollowupQueues($patientSignin->user->id); $curQueueId = 0; if (empty($userQueues) == false) { $curQueues = array_pop($userQueues); $curQueueId = $curQueues->isNull() ? 0 : $curQueues->id; } $userid = $patientSignin->userid; $servicePeriod = "未缴费"; $surgeryDate = ""; $followupCustomer = FollowupCustomerClient::getInstance()->getFollowupCustomer(array('userid' => $userid)); if (false == $followupCustomer->isNull()) { $surgeryDate = $followupCustomer->surgeryDate->toShortString(); $var = $followupCustomer->servicePeriod; $defList = FollowupCustomer::$searchServicePeriodDef; foreach ($defList as $key => $value) { if ($var == $key && $var != 0) { $servicePeriod = $value; } } } $response->servicePeriod = $servicePeriod; $response->curQueueId = $curQueueId; $response->assignerId = $this->auditor->id; $response->owner = $patientSignin; //随访起始(手术)日期的处理,首次报到要取销售记录的 $response->surgeryDate = $surgeryDate; $leaveHospitalDate = $patientSignin->leaveHospitalDate->toShortString(); if (false == empty($surgeryDate) && $patientSignin->leaveHospitalDate->getTime() == false) { $leaveHospitalDate = $surgeryDate; } else { if ($patientSignin->leaveHospitalDate->getTime() == false) { $leaveHospitalDate = XDateTime::today()->toShortString(); } } $response->leaveHospitalDate = $leaveHospitalDate; $response->userScheme = HealthRecordClient::getInstance()->getPatientSigninScheme($patientSignin->id); $response->ticket = $ticket; $response->followupStatus = $patientSignin->isOpenFollowup(); $response->closeFollowupStatus = $patientSignin->isCloseFollowup(); //获取更多报道信息 $healthProblems = array(); $nfsDisease = $patientSignin->getNfsDisease(); if ($nfsDisease->isNull() == false) { $healthProblems = $nfsDisease->getSigninHealthProblems(); } $response->healthProblems = $healthProblems; $response->nfsSpaces = SpaceClient::getInstance()->getFollowupSpaceListByFacultyId($patientSignin->space->host->hospitalfaculty->id); $response->nfsDiseaseQueueList = CheckupClient::getInstance()->getPermanentQueueByNfsDiseaseIdAndTimeType($patientSignin->nfsDisease->id, CheckupTaskQueue::START_TIME_TYPE_LEAVE_HOSPITAL); //出院诊断展示部分 $resultList = array(); $diagnosisList = DAL::get()->find_all_by_customerid('LeaveHospitalDiagnosis', $followupCustomer->id); foreach ($diagnosisList as $diagnosis) { $resultList[$diagnosis->leavehospitaltime] = DiagnosisClient::getInstance()->findAllDiagnosisResultByDiagnosisId($diagnosis->id); } $response->resultList = $resultList; $services = DAL::get()->find_all_by_customerid_and_nfsdiseaseid('followupservicedetail', $followupCustomer->id, $patientSignin->nfsDisease->id); XString::sortArray($services, 'startTime', false); $response->followupServices = $services; $response->comesfrom = $request->comesfrom; }
private function searchSpace($name) {/*{{{*/ $spaceIds = array(); if($name) { $spaces = SpaceClient::getInstance()->getSpacesByName($name); $spaceIds = array(); foreach ($spaces as $space) { if (false == $space->isNull()) { $spaceIds[] = $space->id; } } } return $spaceIds; }/*}}}*/
/** * modifyDiagnoseNote * 修改出诊信息 * @param mixed $userId * @param mixed $content * @access public * @return void */ public function modifyDiagnoseNote($userId, $content) {/*{{{*/ $space = DAL::get()->find('space', $userId); $res = $this->checkSpace($space); if($res) { $this->setErrorCode($res); return 0; } SpaceClient::getInstance()->setProperties($space->id, array('note2'=>$content)); $this->buildBookingTask($space, '', $content); $this->content = array('id'=>$userId); }/*}}}*/