Пример #1
0
	public function commonInfo($request, $response)
	{
		$provInfos = Area::provDefineInfo();
		$provKey = $request->pro;
		$provKey = ($provKey == 'all') ? '' : $provKey;
		$HOSPITAL_COUNT = (empty($provKey)) ? 12 : 100;
		$defaultProvs = self::$DefaultProvs;
		$dspProv = '';
		$hasProv = true;
        $prov = array();
		if(empty($provKey))
		{
			$hasProv = false;
			$defaultKeys = $request->defaultProvs;
			$defaultProvs = ($defaultKeys != '') ? explode(',', $defaultKeys) : $defaultProvs;
			$provKey = $defaultProvs;
			foreach($provKey as $tempProv)
			{
				$tmpInfos = $provInfos[$tempProv];
				$pro = $tmpInfos['Province'];
				$prov[] = $pro;
			}
		}
		else
		{
			$tmpInfos = $provInfos[$provKey];
			$pro = $tmpInfos['Province'];
			$dspProv =$pro;
			$prov = array($pro);
		}
		$hospitalList = HospitalClient::getInstance()->getListByProvinceAry($prov, $limit=1000);
		$proHosptialList=array();
		foreach($hospitalList as $hospital)
		{
			if(in_array($hospital->province, $prov))
			{
				$city = $hospital->city;
				if($hospital->province == $hospital->city)
				{
					$city = $hospital->district;
				}
				if(isset($proHosptialList[$hospital->province][$city]))
				{
					$proHosptialList[$hospital->province][$city]['hospital'][] = $hospital;
					if($proHosptialList[$hospital->province][$city]['count'] > $HOSPITAL_COUNT){ continue; }
					$proHosptialList[$hospital->province][$city]['count']++;
				}
				else
				{
					$proHosptialList[$hospital->province][$city] = array('count'=>1,'hospital'=>array($hospital));
				}
			}
		}
		$dspProHosptialList = array();
		if($hasProv == false)
		{
			foreach($defaultProvs as $defaultProv)
			{
				$tmpInfos = $provInfos[$defaultProv];
				$pro = $tmpInfos['Province'];
				$dspProHosptialList[$pro] = $proHosptialList[$pro];
			}
		}
		else
		{
			$dspProHosptialList = $proHosptialList;
		}
		$response->proHosptialList = $dspProHosptialList;
		$response->dspProv = $dspProv;
	}
Пример #2
0
	public function showDetail($request, $response)
	{/*{{{*/
		$key = $request->key;
		$searchProv = $request->prov;
		$page = (int)$request->page;
        $page = ($page > 0) ? $page : 1;
		$pageSize = 20;
		
		$disease = DiseaseClient::getInstance()->getByDiseaseKey($key);
        if (empty($disease) || $disease->isNull())
        {
            throw new BizException('疾病不存在');
        }
		$pid = $disease->id ;
		$response->disease = $disease;
		if($disease->parentKey != '')
		{
			$parentDisease = DiseaseClient::getInstance()->getByDiseaseKey($disease->parentKey);
			$pid = $parentDisease->id ;
		}
		$provInfos = Area::provDefineInfo();
		$options = array();
		if(empty($searchProv) == false)
		{
			$tmpProvInfo = $provInfos["$searchProv"];
			$options['provAry'] = explode(',', $tmpProvInfo['Province']);
            $options['province'] = explode(',', $tmpProvInfo['Province']);
		}
	//	$result = DiseaseDoctorClient::getInstance()->getPageListByDisease($pid, $page, $pageSize, $options);
        $result = DiseaseClient::getInstance()->getDieaseDoctor4Disease($pid, $page, $pageSize, $options);
		$response->result = $result ;
		$pageInfo = $result['pageInfo'];
		
		$limit = 10;
		if(empty($searchProv) == false)
		{
			$limit = 1000;
		}
		$tempHospitalList = DiseaseClient::getInstance()->getTopDiseaseHospitalListByDisease($pid, $limit, $options);
	    $topHospitalList = array();
	    foreach($tempHospitalList as $temHospital)
		{
			if($temHospital->id != 2118)
			{
				$topHospitalList[] = $temHospital;
			}
		}
		$response->topHospitalList = $topHospitalList;
		
		//省市与合计列表
		$tmpInfos = HospitalClient::getInstance()->getAreaStatByDisease($pid, array());
		$statInfos = array();
		foreach($tmpInfos as $tmpInfo)
		{
			$statInfos[$tmpInfo['province']] = $tmpInfo['cnt']; 	
		}
		$dspStatInfos = array();
		foreach($provInfos as $provInfo)
		{
			$name = $provInfo['Name'];
			$province = $provInfo['Province'];
			$dspStatInfos["$name"] = 0;
			if($name != $province)
			{
				$tmpStr = $provInfo['Province'];
				$tmpNames = explode(',', $tmpStr);
				foreach($tmpNames as $tmpName)
				{
					if(isset($statInfos["$tmpName"]))
						$dspStatInfos["$name"] += $statInfos["$tmpName"];
				}
			}
			else
			{
				if(isset($statInfos["$name"]))
					$dspStatInfos["$name"] = $statInfos["$name"];
			}
		}
		$response->provInfos = $provInfos ;
		$response->dspStatInfos = $dspStatInfos ;
		$response->statInfos = $statInfos;
		$tmpCommentList = DAL::get()->find_all_latestCommentByDisease('DoctorComment', $disease->id, $limit=5, $options);
		$commentList = array();
	    foreach($tmpCommentList as $key=>$comment)
		{
			if($comment->doctor->hospitalfaculty->hospital->id != 2118)
			{
				$commentList[] = $comment;
			}
		}
		$response->commentList = $commentList ;
		
		$diseaseContentInfos = DiseaseClient::getInstance()->getContentInfosByKey($disease->key); 
		$response->diseaseContentInfos = $diseaseContentInfos ;
		$response->searchProv = $searchProv ;
		
		$router = $response->getRouter();
		$response->pagelink = PageNav::getNavLink(
                PageNav::getPageNavTemplate($router->urlfor('disease/showdetail', array('key'=>$disease->key, 'prov'=>$searchProv))."&page="), 
                $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
	}/*}}}*/
<script type="text/javascript">
function getDiseaseOption (facultyName) {
	$.post( "payment.php?oa=admin/booking_order,ajax_getdisease", {faculty_name:facultyName}, 
		function(data) {
			$("#combobox").html(data);
			$("#combobox").attr("value",'0'); 
		}
	);
}
</script>
<!-- start  -->
<div style="margin-left:20px; padding-bottom:10px">
	<form name="searchForm" id="searchForm" action="" method="post" >
	<select name="searchProvince" id="searchProvince">
    	<option value="">按地区</option>
		<?php foreach (Area::provDefineInfo() as $prov => $info) { ?>
			<option value="<?=$info['Name']?>" ><?=$info['Name']?></option>
		<?php } ?>
    </select>
    <select name="searchFaculty" id="searchFaculty" >
            <option value="" >全部</option>
		<?php foreach ($facultyList as $facultyId => $facultyName) { ?>
            <option value="<?=$facultyName?>" ><?=$facultyName?></option>
		<?php } ?>
    </select>
    
	<select name="searchDisease" id="combobox">
    	<option value="">按疾病</option>
		<?php foreach ($diseaseList as $disease) { ?>
			<option value="<?=$disease?>" ><?=$disease?></option>
		<?php } ?>
Пример #4
0
	public function showDetail($request, $response)
	{
		$encodeId = $request->id;
		
		$id = (int)Codec::getInstance()->decodeId($encodeId);
		if($id == 0)
		{
			exit();
		}
		
		$searchProv = $request->prov;
		$page = (int)$request->page;
		$page = ($page > 0) ? $page : 1;
		$pageSize = 20;

		$provInfo = Area::provDefineInfo();
		$provReverseInfo = Area::provReverseDefineInfo();
		$options = array();
		if(empty($searchProv) == false)
		{
			$tmpProvInfo = $provInfo["$searchProv"];
			$options['provAry'] = explode(',', $tmpProvInfo['Province']);
		}
		$facultyList = array();
		
        $options['commentType'] = DoctorComment::COMMENT_TYPE_PROCESS;  
        $options['faculty'] = $id;
        $pageInfo['pageSize'] = 15;
        $commentList = DoctorCommentClient::getInstance()->getCommentList($options, $pageInfo);
		$result = DoctorClient::getInstance()->getPageListByFaculty($id, $page, $pageSize, $options);
		$doctorList = array();
		$pageInfo = array();
		$pageInfo = $result['pageInfo'];
		if(empty($result) == false)
		{
			$doctorList = $result['doctorList'];
		}
		$facultyList = HospitalFacultyClient::getInstance()->getListByFacultyId($id);

		$LIMIT_COUNT = (empty($searchProv)) ? 4 : 20;
		$provFaculty=array();
		$facultyInfo='';
		foreach($facultyList as $hospitalFaculty)
		{
			if($hospitalFaculty->goodVoteCount==0 || $hospitalFaculty->hospital->id == 2118 ){continue;}
			$facultyInfo = $hospitalFaculty->faculty;
			$pro = $hospitalFaculty->hospital->province;
			$hospitalName = $hospitalFaculty->hospital->name;
            if (false == ($hospitalFaculty->hospital instanceof Hospital))
            {
                continue;
            }
			$name = $provReverseInfo[$pro]['Name'];
			if(empty($searchProv) == false)
			{
				if($name != $provInfo["$searchProv"]['Name'])
				{
					continue;
				}
			}
			if(isset($provFaculty[$name]))
			{
				$provFaculty[$name]['faculty'][] = $hospitalFaculty;
				if($provFaculty[$name]['count']>=$LIMIT_COUNT) { continue; }
				$provFaculty[$name]['count']++;
			}
			else
			{
				$provFaculty[$name] = array('count'=>1, 'faculty'=>array($hospitalFaculty));
			}
		}
		//еепР
		$dspProvFacultys = array();
		foreach($provInfo as $prov)
		{
			if(isset($provFaculty[$prov['Name']]))
			$dspProvFacultys[$prov['Name']] = $provFaculty[$prov['Name']];
		}
		$response->facultyInfo = $facultyInfo;
		$response->facultyList = $dspProvFacultys;
		$response->provInfo = $provInfo;
		$response->commentList = $commentList['commentList'];
		$response->doctorList = $doctorList;
		$response->searchProv = $searchProv;
		$router = $response->getRouter();
		$response->pagelink = PageNav::getNavLink(
		PageNav::getPageNavTemplate($router->urlfor('faculty/showdetail', array('id'=>$encodeId, 'prov'=>$searchProv))."&page="),
		$pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
	}