function create_new_user(&$row)
{
    msg('create_new_user');
    if (!$row->is_cell_valid && !$row->is_email_valid) {
        msg("no email and no cell");
        $log = import_user_log_get_default($user->uid, $row->record_id, 'import', 'no-cell-or-email');
        import_user_log_insert($log);
        return false;
    }
    if (user_exists_by_phone($row)) {
        msg('user_exists_by_phone');
        return false;
    }
    if (user_exists_by_email($row)) {
        msg('user_exists_by_email');
        return false;
    }
    msg('creating');
    $log_type = 'import';
    $log_value = 'new';
    $existing_log = import_user_log_get_by_rid_type($row->record_id, $log_type);
    if ($existing_log) {
        msg('already have a log for this id,type ' . $row->record_id . ',' . $log_type);
        return false;
    }
    // cell
    $number = $row->cell;
    if (strlen($number) > 0) {
        $sms_user[0] = array(status => 2, number => $number);
    }
    // password
    // just a random sha hash including time so we can set the password
    // we don't know/don't care what it is
    // it's secure and will need to be reset by the user if they register via email later
    $token = base64_encode(hash_hmac('sha256', $number, drupal_get_private_key() . time(), TRUE));
    $token = strtr($token, array('+' => '-', '/' => '_', '=' => ''));
    $details = array('name' => strlen($row->handle) > 1 ? $row->handle . $row->record_id : $number, 'pass' => $token, 'mail' => $row->is_email_valid ? $row->email : $number, 'access' => 0, 'status' => 1, 'sms_user' => $sms_user);
    $user = user_save(null, $details);
    // set values for the imported profile fields
    healthimo_profile_save($user, 'profile_age', $row->age, null);
    healthimo_profile_save($user, 'profile_zip_code', $row->zip, null);
    healthimo_profile_save($user, 'profile_gender', $row->gender, null);
    healthimo_profile_save($user, 'profile_goal', $row->goal, null);
    healthimo_profile_save($user, 'profile_areas_of_interest_reply', $row->interest_areas, null);
    healthimo_profile_save($user, 'profile_areas_of_interest_diabetes', $row->interest_diabetes, null);
    //healthimo_profile_save($user, 'xxxxxxxxxxx', $row->interest_asthma, null);
    if ($user) {
        msg("import_user created user {$user->uid}");
        // link to import record
        $log = import_user_log_get_default($user->uid, $row->record_id, $log_type, $log_value);
        import_user_log_insert($log);
        print_r($user);
        return $user;
    }
    return false;
}
function import_user(&$row)
{
    //print_r($row);
    $uniq_phones = get_unique_phones($row);
    //print_r($uniq_phones);
    $existing_user = FALSE;
    foreach ($uniq_phones as $phone) {
        $phone_row = user_exists_by_phone($phone);
        if ($phone_row) {
            msg("import_user existing user for {$phone_row->uid}");
            $existing_user = TRUE;
            $type = 'import';
            $existing_log = import_user_log_get_by_rid_type($row->recordId, $type);
            if (!$existing_log) {
                $value = 'existing';
                $log = import_user_log_get_default($phone_row->uid, $row->recordId, $type, $value);
                import_user_log_insert($log);
            } else {
                msg("import_user existing log for {$row->recordId}, {$phone_row->uid}");
            }
            break;
            // just use the first found
        }
    }
    if (!$existing_user) {
        $type = 'import';
        $value = 'new';
        $existing_log = import_user_log_get_by_rid_type($row->recordId, $type);
        //print_r($existing_log);
        if (!$existing_log) {
            // create new user
            $user = create_new_account_for_handle($row->caseId);
            if ($user) {
                msg("import_user created user {$user->uid}");
                // link to import record
                $log = import_user_log_get_default($user->uid, $row->recordId, $type, $value);
                import_user_log_insert($log);
            }
        } else {
            msg("import_user skipping create, existing log for {$row->recordId}");
        }
    }
}