/**
  * Constructeur de la classe, créé dynamiquement tous les champs
  */
 function __construct()
 {
     foreach (self::$list_constantes as $_constant => $_params) {
         $this->{$_constant} = null;
         // Champs "composites"
         if (isset($_params["formfields"])) {
             foreach ($_params["formfields"] as $_formfield) {
                 $this->{$_formfield} = null;
             }
         }
     }
     parent::__construct();
     // Conversion des specs
     if (self::$_specs_converted) {
         return;
     }
     $group = CGroups::loadCurrent();
     foreach (self::$list_constantes as $_params) {
         if (empty($_params["unit_config"])) {
             continue;
         }
         $unit_config = $_params["unit_config"];
         $unit = CAppUI::conf("dPpatients CConstantesMedicales {$unit_config}", $group);
         if ($unit == $_params["orig_unit"]) {
             continue;
         }
         if (isset($_params["formfields"]) && isset($_params["conversion"])) {
             $conv = $_params["conversion"][$unit];
             $func_min = create_function('$matches', "return 'min|'.\$matches[1]*{$conv};");
             $func_max = create_function('$matches', "return 'max|'.\$matches[1]*{$conv};");
             foreach ($_params["formfields"] as $_formfield) {
                 $spec = $this->_specs[$_formfield];
                 $spec->prop = preg_replace_callback("/min\\|([0-9]+)/", $func_min, $spec->prop);
                 $spec->prop = preg_replace_callback("/max\\|([0-9]+)/", $func_max, $spec->prop);
                 if (isset($spec->min)) {
                     $spec->min *= $conv;
                 }
                 if (isset($spec->max)) {
                     $spec->max *= $conv;
                 }
             }
         } else {
             trigger_error("Un champ avec conversion d'unité doit avoir au moins un 'formfield'");
         }
     }
     self::$_specs_converted = true;
 }