public static function fromJson($data)
 {
     $element = new EvaluationModel(@$data['code'], @$data['label'], @$data['description'], @$data['id']);
     $element->setFolderSectionId(@$data['folderSectionId']);
     $element->setBeneficiaryId(@$data['beneficiaryId']);
     $element->setEvaluatorId(@$data['evaluatorId']);
     $element->setAppId(@$data['appId']);
     $element->setState(@$data['state']);
     $element->setDate(@$data['date']);
     $element->setObject(@$data['object']);
     $element->setLastUpdate(@$data['lastUpdate']);
     if (array_key_exists('categories', $data) && is_array($data['categories']) && !empty($data['categories'])) {
         foreach ($data['categories'] as $cat) {
             $newCategory = new EvaluationModelCategory(@$cat['label'], @$cat['code'], @$cat['categoryId'], @$cat['id']);
             if (array_key_exists('items', $cat) && is_array($cat['items']) && !empty($cat['items'])) {
                 foreach ($cat['items'] as $item) {
                     $newItem = new EvaluationModelItem(@$item['label'], @$item['responseType'], @$item['itemId'], @$item['id']);
                     if (array_key_exists('responses', $item) && is_array($item['responses']) && !empty($item['responses'])) {
                         foreach ($item['responses'] as $response) {
                             $newResponse = new EvaluationModelItemResponse(@$response['value'], @$response['label'], @$response['type'], @$response['responseId'], @$response['id'], @$response['selected']);
                             $newItem->addResponse($newResponse);
                         }
                     }
                     $newCategory->addItem($newItem);
                 }
             }
             $element->addCategory($newCategory);
         }
     }
     return $element;
 }