/**
  * newPatientCourseWithAllDetail 
  * 一次创建1个病程 
  * ($userId, $patientCaseId, $clientId, $type, $courseSummary, array('categoryId'=>$categoryId, 'occurDate'=>$occurDate, 'courseContents'=>array('clientId'=>array('contentType'=>$contenType, 'content'=>$content) ), ....))
  * @param mixed $patientCaseId 
  * @param array $params 
  * @access public
  * @return void
  */
 public function newPatientCourseWithAllDetail($userId, $patientCaseId, $clientId, $type,  $courseSummary, $occurDate, $mark, $courseDetails)
 {/*{{{*/
     if(empty($clientId))
     {
         return 0;
     }
     $doctorOwner = DAL::get()->find_by_userid('DoctorOwner',$userId);
     if($doctorOwner->isNull())
     {
         return 0;
     }
     $patientCase = DAL::get()->find('PatientCase', $patientCaseId);
     if($patientCase->isNull() || $patientCase->doctorOwner->id != $doctorOwner->id)
     {
         return 0;
     }
     $canDoCreate = PatientCourse::isSameCourseSummary($patientCaseId, $courseSummary);
     if($canDoCreate == false)
     {
         return 0;
     }
     
     $patientCourseAsyncDto = PatientCourseAsyncDto::create($patientCase, $type, $courseSummary, $occurDate, $mark, $courseDetails); 
     $patientCourseInfos = PatientCourseClient::getInstance()->createPatientCourseWithContent($patientCourseAsyncDto);
     $patientCourseId = $patientCourseInfos['courseId'];
     $patientCourseDetailInfos = $patientCourseInfos['detailInfos'];
     $patientCourse = DAL::get()->find('PatientCourse', $patientCourseId);
     $this->content = array('clientId'=>$clientId, 'patientCourseId'=>$patientCourse->id, 'ver'=>$patientCourse->ver, 'detailInfos' => $patientCourseDetailInfos);
 }/*}}}*/
 private function createPatientCourse($patientCase, $request)
 {
     /*{{{*/
     $courseType = XString::convertToGbk($request->courseType);
     $courseMark = XString::convertToGbk($request->courseMark);
     $courseDetails = XString::convertArrayToGbk($request->courseDetails);
     $courseSummary = md5($patientCase->doctorOwner->id . XString::convertToGbk($request->name) . time());
     $patientCourseAsyncDto = PatientCourseAsyncDto::create($patientCase, $courseType, $courseSummary, $request->courseOccurDate, $courseMark, $courseDetails, 'INSPECTOR');
     $patientCourseInfos = PatientCourseClient::getInstance()->createPatientCourseWithContent($patientCourseAsyncDto);
     $patientCourse = new NullEntity();
     if (isset($patientCourseInfos['courseId']) && $patientCourseInfos['courseId']) {
         $patientCourse = DAL::get()->find('patientcourse', $patientCourseInfos['courseId']);
         PatientCourseClient::getInstance()->setPatientCoursePass($this->curInspector, $patientCourse);
     }
     return $patientCourse;
 }