Example #1
0
 /**
  * 症状首页可能疾病缓存数据
  * lc 2016-4-15
  * @param type $cacheKey 缓存的唯一标识
  * @param type $parms 单条症状所有字段内容数组
  * @param type $forceCache 是否强制缓存,默认不强制缓存
  * @return type
  */
 public static function cacheSymptomRelateDisease($cacheKey, $parms, $forceCache = false)
 {
     $symptomid = $parms['id'];
     $cache = \Yii::$app->cache_data_file;
     $key = $cacheKey . '_' . $symptomid;
     $data = $cache->get($key);
     if ($forceCache) {
         $data = false;
     }
     if (!isset($data) || empty($data)) {
         $relate = new Relate();
         $disease = new Disease();
         $department = new Department();
         $diseaseList = $relate->getRelateDiseases($symptomid);
         //根据关联表查询出疾病id,该症状对应的疾病下的所有疾病信息
         //            print_r($diseaseList);exit;
         if (!empty($diseaseList)) {
             $diseaseId = [];
             foreach ($diseaseList as $k => $v) {
                 $diseaseId[] = $v['diseaseid'];
             }
             $diseaseMap = $disease->batchGetDiseaseById($diseaseId);
             //该症状对应的疾病下的所有疾病信息
             $symptomMap = $relate->batchGetSymptomsByDisid($diseaseId);
             //该症状对应的疾病下对应的所有相关症状
             $diseaseIdStr = implode(',', $diseaseId);
             $departmentMap = $department->batchGetDepartmentsByDisid($diseaseIdStr);
             //该症状对应的疾病对应的所有科室
             //                print_r($departmentMap);exit;
             foreach ($symptomMap as $k => $v) {
                 $disId = $v['diseaseid'];
                 $symId = $v['symptomid'];
                 foreach ($diseaseMap as $kk => $vv) {
                     $pinyin = $vv['pinyin_initial'];
                     if ($vv['id'] == $disId) {
                         $tmp[$pinyin][] = $v;
                     }
                 }
             }
             $diseaseTmp['relDisease'] = $diseaseMap;
             $diseaseTmp['relSymptom'] = $tmp;
             $disTmp = ['diseaseMap' => $diseaseMap, 'symptomMap' => $symptomMap, 'departmentMap' => $departmentMap, 'diseaseTmp' => $diseaseTmp, 'diseaseId' => $diseaseId];
             $cache->set($key, $disTmp);
             return $disTmp;
         }
         return array();
     } else {
         return $data;
     }
 }