text:
'use strict';
var events = require('events');
var path = require('path');
var PouchDB = require('pouchdb');
var BPromise = require('bluebird');
var Configure = require('../lib/configure');
var User = require('../lib/user');
var Mailer = require('../lib/mailer');
var util = require('../lib/util');
var seed = require('pouchdb-seed-design');
var request = require('superagent');
var config = require('./test.config.js');

var chai = require('chai');
var sinon = require('sinon');
var expect= chai.expect;
chai.use(require('sinon-chai'));

var dbUrl = util.getDBURL(config.dbServer);

var emitter = new events.EventEmitter();

PouchDB.setMaxListeners(20);
var userDB = new PouchDB(dbUrl + "/superlogin_test_users");
var keysDB = new PouchDB(dbUrl + "/superlogin_test_keys");

var testUserForm = {
  name: 'Super',
  username: 'superuser',
  email: 'superuser@example.com',
  password: 'secret',
  confirmPassword: 'secret',
  age: '32',
  zipcode: 'ABC123'
};

var emailUserForm = {
  name: 'Awesome',
  email: 'awesome@example.com',
  password: 'supercool',
  confirmPassword: 'supercool'
};

var userConfig = new Configure({
  testMode: {
    noEmail: true
  },
  security: {
    defaultRoles: ['user'],
    userActivityLogSize: 3
  },
  local: {
    sendConfirmEmail: true,
    requireEmailConfirm: false,
  },
  mailer: {
    fromEmail: 'noreply@example.com'
  },
  emails: {
    confirmEmail: {
      subject: 'Please confirm your email',
      template: path.join(__dirname, '../templates/email/confirm-email.ejs'),
      format: 'text'
    },
    forgotPassword: {
      subject: 'Your password reset link',
      template: 'templates/email/forgot-password.ejs',
      format: 'text'
    }
  },
  dbServer: {
    protocol: config.dbServer.protocol,
    host: config.dbServer.host,
    user: config.dbServer.user,
    password: config.dbServer.password,
    publicURL: 'https://mydb.example.com'
  },
  session: {
    adapter: 'memory'
  },
  userDBs: {
    defaultSecurityRoles: {
      admins: ['admin_role'],
      members: ['member_role']
    },
    model: {
      _default: {
        designDocs: ['test'],
        permissions: ['_reader', '_writer', '_replicator']
      }
    },
    defaultDBs: {
      private: ['usertest']
    },
    privatePrefix: 'test',
    designDocDir: __dirname + '/ddocs'
  },
  providers: {
    facebook: {
      clientID: 'FAKE_ID',
      clientSecret: 'FAKE_SECRET',
      callbackURL: 'http://localhost:5000/auth/facebook/callback'
    }
  },
  userModel: {
    static: {
      modelTest: true
    },
    whitelist: ['age', 'zipcode']
  }
});

var req = {
  headers: {
    host: 'example.com'
  },
  protocol: 'http',
  ip: '1.1.1.1'
};

describe('User Model', function() {
  var mailer = new Mailer(userConfig);
  var user = new User(userConfig, userDB, keysDB, mailer, emitter);
  var userTestDB;
  var previous;
  var verifyEmailToken;

  before(function() { // 'should prepare the database'
    // console.log('Seeding design docs');
    var userDesign = require('../designDocs/user-design');
    userDesign = util.addProvidersToDesignDoc(userConfig, userDesign);
    previous = BPromise.resolve();

    return previous.then(function() {
      return seed(userDB, userDesign);
    });
  });

  after(function() {  // 'should destroy all the test databases'
    return previous.finally(function() {
      // console.log('Destroying database');
      var userTestDB1 = new PouchDB(dbUrl + "/test_usertest$superuser");
      var userTestDB2 = new PouchDB(dbUrl + "/test_usertest$misterx");
      var userTestDB3 = new PouchDB(dbUrl + "/test_usertest$misterx3");
      var userTestDB4 = new PouchDB(dbUrl + "/test_superdb");
      return BPromise.all([userDB.destroy(), keysDB.destroy(), userTestDB1.destroy(), userTestDB2.destroy(), userTestDB3.destroy(), userTestDB4.destroy()]);
    });
  });

  it('should save a new user', function() {
    // console.log('Creating User');
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('signup', function(user) {
        expect(user._id).to.equal('superuser');
        resolve();
      });
    });

    return previous.then(function() {
      user.onCreate(function(userDoc) {
        userDoc.onCreate1 = true;
        return BPromise.resolve(userDoc);
      });
      user.onCreate(function(userDoc) {
        userDoc.onCreate2 = true;
        return BPromise.resolve(userDoc);
      });
      return user.create(testUserForm, req);
    })
      .then(function() {
        // console.log('User created');
        return userDB.get(testUserForm.username);
      })
      .then(function(newUser) {
        verifyEmailToken = newUser.unverifiedEmail.token;
        expect(newUser._id).to.equal('superuser');
        expect(newUser.roles[0]).to.equal('user');
        expect(newUser.local.salt).to.be.a('string');
        expect(newUser.local.derived_key).to.be.a('string');
        expect(newUser.modelTest).to.equal(true);
        expect(newUser.roles[0]).to.equal('user');
        expect(newUser.activity[0].action).to.equal('signup');
        expect(newUser.onCreate1).to.equal(true);
        expect(newUser.onCreate2).to.equal(true);
        expect(newUser.age).to.equal('32');
        expect(newUser.zipcode).to.equal('ABC123');
        return emitterPromise;
      });
  });

  it('should have created a user db with design doc and _security', function() {
    // console.log('Checking user db and design doc');
    userTestDB = new PouchDB(dbUrl + '/test_usertest$superuser');
    return previous
      .then(function() {
        return userTestDB.get('_design/test');
      })
      .then(function(ddoc) {
        expect(ddoc.views.mytest.map).to.be.a('string');
        return userTestDB.get('_security');
      })
      .then(function(secDoc) {
        expect(secDoc.admins.roles[0]).to.equal('admin_role');
        expect(secDoc.members.roles[0]).to.equal('member_role');
      });
  });

  it('should authenticate the password', function() {
    // console.log('Authenticating password');
    return previous.then(function() {
      // console.log('Fetching created user');
      return userDB.get(testUserForm.username);
    })
      .then(function(newUser) {
        return util.verifyPassword(newUser.local, 'secret');
      })
      .then(function(result) {
        // console.log('Password authenticated');
      });
  });

  it('should generate a validation error trying to save the same user again', function() {
    return previous.then(function() {
      // console.log('Trying to create the user again');
      return user.create(testUserForm);
    })
      .then(function() {
        throw new Error('Validation errors should have been generated');
      })
      .catch(function(err) {
        if(err.validationErrors) {
          expect(err.validationErrors.email[0]).to.equal('Email already in use');
          expect(err.validationErrors.username[0]).to.equal('Username already in use');
        } else {
          throw err;
        }
      });
  });

  var sessionKey, sessionPass, firstExpires;

  it('should generate a new session for the user', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('login', function(session) {
        expect(session.user_id).to.equal('superuser');
        resolve();
      });
    });

    return previous
      .then(function() {
        // console.log('Creating session');
        return user.createSession(testUserForm.username, 'local', req);
      })
      .then(function(result) {
        sessionKey = result.token;
        sessionPass = result.password;
        firstExpires = result.expires;
        expect(sessionKey).to.be.a('string');
        expect(result.userDBs.usertest).to.equal('https://' + sessionKey + ':' + sessionPass + '@' +
          'mydb.example.com/test_usertest$superuser');
        return(userDB.get(testUserForm.username));
      })
      .then(function(user) {
        expect(user.session[sessionKey].ip).to.equal('1.1.1.1');
        expect(user.activity[0].action).to.equal('login');
        return emitterPromise;
      });
  });

  it('should have authorized the session in the usertest database', function() {
    return previous
      .then(function() {
        // console.log('Verifying session is authorized in personal db');
        return userTestDB.get('_security');
      })
      .then(function(secDoc) {
        expect(secDoc.members.names.length).to.equal(1);
      });
  });

  it('should refresh a session', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('refresh', function(session) {
        expect(session.user_id).to.equal('superuser');
        resolve();
      });
    });

    return previous
      .then(function() {
        // console.log('Refreshing session');
        return user.refreshSession(sessionKey, sessionPass);
      })
      .then(function(result) {
        expect(result.expires).to.be.above(firstExpires);
        return emitterPromise;
      });
  });

  it('should log out of a session', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('logout', function(user_id) {
        expect(user_id).to.equal('superuser');
        resolve();
      });
    });

    return previous
      .then(function() {
        // console.log('Logging out of the session');
        return user.logoutSession(sessionKey);
      })
      .then(function() {
        return user.confirmSession(sessionKey, sessionPass);
      })
      .then(function() {
        throw new Error('Failed to log out of session');
      }, function(err) {
        expect(err).to.equal('invalid token');
        return(userDB.get(testUserForm.username));
      })
      .then(function(user) {
        expect(user.session[sessionKey]).to.be.an('undefined');
        return emitterPromise;
      });
  });

  it('should have deauthorized the session in the usertest database after logout', function() {
    return previous
      .then(function() {
        return userTestDB.get('_security');
      })
      .then(function(secDoc) {
        expect(secDoc.members.names.length).to.equal(0);
      });
  });

  it('should log the user out of all sessions', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('logout-all', function(user_id) {
        expect(user_id).to.equal('superuser');
        resolve();
      });
    });

    var sessions = [];
    var passes = [];

    return previous
      .then(function() {
        // console.log('Logging user out completely');
        return user.createSession(testUserForm.username, 'local', req);
      })
      .then(function(session1) {
        sessions[0] = session1.token;
        passes[0] = session1.password;
        return user.createSession(testUserForm.username, 'local', req);
      })
      .then(function(session2) {
        sessions[1] = session2.token;
        passes[1] = session2.password;
        return user.logoutUser(null, sessions[0]);
      })
      .then(function() {
        return BPromise.all([
          user.confirmSession(sessions[0], passes[0]),
          user.confirmSession(sessions[1], passes[1])
        ]);
      })
      .then(function(results) {
        throw new Error('Failed to delete user sessions');
      }, function(error) {
        expect(error).to.equal('invalid token');
        return userDB.get(testUserForm.username);
      })
      .then(function(user) {
        expect(user.session).to.be.an('undefined');
        // Make sure the sessions are deauthorized in the usertest db
        return userTestDB.get('_security');
      })
      .then(function(secDoc) {
        expect(secDoc.members.names.length).to.equal(0);
        return emitterPromise;
      });
  });

  it('should verify the email', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('email-verified', function(user) {
        expect(user._id).to.equal('superuser');
        resolve();
      });
    });

    return previous.then(function() {
      // console.log('Verifying email with token');
      return user.verifyEmail(verifyEmailToken);
    })
      .then(function() {
        return userDB.get(testUserForm.username);
      })
      .then(function(verifiedUser) {
        expect(verifiedUser.email).to.equal(testUserForm.email);
        expect(verifiedUser.activity[0].action).to.equal('verified email');
        return emitterPromise;
      });
  });

  var resetToken;
  var resetTokenHashed;

  it('should generate a password reset token', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('forgot-password', function(user) {
        expect(user._id).to.equal('superuser');
        resolve();
      });
    });

    var spySendMail = sinon.spy(mailer, "sendEmail");

    return previous.then(function() {
      // console.log('Generating password reset token');
      return user.forgotPassword(testUserForm.email, req);
    })
      .then(function() {
        return userDB.get(testUserForm.username);
      })
      .then(function(result) {
        resetTokenHashed = result.forgotPassword.token; // hashed token stored in db

        expect(result.forgotPassword.token).to.be.a('string');
        expect(result.forgotPassword.expires).to.be.above(Date.now());
        expect(result.activity[0].action).to.equal('forgot password');

        expect(spySendMail.callCount).to.equal(1);

        var args = spySendMail.getCall(0).args;
        expect(args[0]).to.equal('forgotPassword');
        expect(args[1]).to.equal(testUserForm.email);
        expect(args[2].user._id).to.equal(testUserForm.username);
        expect(args[2].token).to.be.a('string');

        resetToken = args[2].token; // keep unhashed token emailed to user.
        expect(resetTokenHashed).to.not.equal(resetToken);
        return emitterPromise;
      });
  });

  it('should reset the password', function() {
    var emitterPromise = new BPromise(function (resolve) {
      emitter.once('password-reset', function (user) {
        expect(user._id).to.equal('superuser');
        resolve();
      });
    });

    return previous.then(function () {
      // console.log('Resetting the password');
      var form = {
        token: resetToken,
        password: 'newSecret',
        confirmPassword: 'newSecret'
      };
      return user.resetPassword(form);
    })
      .then(function () {
        return userDB.get(testUserForm.username);
      })
      .then(function (userAfterReset) {
        // It should delete the password reset token completely
        /* jshint -W030 */
        expect(userAfterReset.forgotPassword).to.be.an.undefined;
        /* jshint +W030 */
        expect(userAfterReset.activity[0].action).to.equal('reset password');
        return util.verifyPassword(userAfterReset.local, 'newSecret');
      })
      .then(function () {
        return emitterPromise;
      });
  });

  it('should change the password', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('password-change', function(user) {
        expect(user._id).to.equal('superuser');
        resolve();
      });
    });

    return previous.then(function() {
      // console.log('Changing the password');
      var form = {
        currentPassword: 'newSecret',
        newPassword: 'superpassword2',
        confirmPassword: 'superpassword2'
      };
      return user.changePasswordSecure(testUserForm.username, form);
    })
      .then(function() {
        return userDB.get(testUserForm.username);
      })
      .then(function(userAfterChange) {
        expect(userAfterChange.activity[0].action).to.equal('changed password');
        return util.verifyPassword(userAfterChange.local, 'superpassword2');
      })
      .then(function() {
        return emitterPromise;
      });
  });

  it('should change the email', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('email-changed', function(user) {
        expect(user._id).to.equal('superuser');
        resolve();
      });
    });

    return previous.then(function() {
      // console.log('Changing the email');
      return user.changeEmail(testUserForm.username, 'superuser2@example.com', req);
    })
      .then(function() {
        return userDB.get(testUserForm.username);
      })
      .then(function(userAfterChange) {
        expect(userAfterChange.activity[0].action).to.equal('changed email');
        expect(userAfterChange.unverifiedEmail.email).to.equal('superuser2@example.com');
        return emitterPromise;
      });
  });

  it('should create a new account from facebook auth', function() {
    var emitterPromise = new BPromise(function(resolve) {
      emitter.once('signup', function(user) {
        expect(user._id).to.equal('misterx');
        resolve();
      });
    });

    var auth = {token: 'x'};
    var profile = {
      id: 'abc123',
      username: 'misterx',
      emails: [{value: 'misterx@example.com'}]
    };

    return previous.then(function() {
      // console.log('Authenticating new facebook user');
      return user.socialAuth('facebook', auth, profile, req);
    })
      .then(function() {
        return userDB.get('misterx');
      })
      .then(function(result) {
        expect(result.facebook.auth.token).to.equal('x');
        expect(result.email).to.equal('misterx@example.com');
        expect(result.providers[0]).to.equal('facebook');
        expect(result.facebook.profile.username).to.equal('misterx');
        expect(result.activity[0].action).to.equal('signup');
        expect(result.activity[0].provider).to.equal('facebook');
        return emitterPromise;
      });
  });

  it('should refresh an existing account from facebook auth', function() {
    var auth = {token: 'y'};
    var profile = {
      id: 'abc123',
      username: 'misterx',
      emails: [{value: 'misterx@example.com'}]
    };

    return previous.then(function() {
      // console.log('Authenticating existing facebook user');
      return user.socialAuth('facebook', auth, profile, req);
    })
      .then(function() {
        return userDB.get('misterx');
      })
      .then(function(result) {
        expect(result.facebook.auth.token).to.equal('y');
      });
  });

  it('should reject an email already in use', function() {
    var auth = {token: 'y'};
    var profile = {
      id: 'cde456',
      username: 'misterx2',
      emails: [{value: 'misterx@example.com'}]
    };

    return previous.then(function() {
      // console.log('Making sure an existing email is rejected');
      return user.socialAuth('facebook', auth, profile, req);
    })
      .then(function() {
        throw new Error('existing email should have been rejected');
      }, function(err) {
        expect(err.status).to.equal(409);
      });
  });

  it('should generate a username in case of conflict', function() {
    var auth = {token: 'y'};
    var profile = {
      id: 'cde456',
      username: 'misterx',
      emails: [{value: 'misterx99@example.com'}]
    };
    var docs = [
      {_id: 'misterx1'},
      {_id: 'misterx2'},
      {_id: 'misterx4'}
    ];

    return previous
      .then(function() {
        // console.log('Generating username after conflict');
        userDB.bulkDocs(docs);
      })
      .then(function() {
        return user.socialAuth('facebook', auth, profile, req);
      })
      .then(function(result) {
        expect(result._id).to.equal('misterx3');
      });
  });

  it('should link a social profile to an existing user', function() {
    var auth = {token: 'y'};
    var profile = {
      id: 'efg789',
      username: 'superuser',
      emails: [{value: 'superuser@example.com'}]
    };

    return previous
      .then(function() {
        // console.log('Linking social profile to existing user');
        return user.linkSocial('superuser', 'facebook', auth, profile, {});
      })
      .then(function(theUser) {
        expect(theUser.facebook.profile.username).to.equal('superuser');
        expect(theUser.activity[0].action).to.equal('link');
        expect(theUser.activity[0].provider).to.equal('facebook');
        // Test that the activity list is limited to the maximum value
        expect(theUser.activity.length).to.equal(3);
      });
  });

  it('should unlink a social profile', function() {
    return previous
      .then(function() {
        // console.log('Unlinking a social profile');
        return user.unlink('superuser', 'facebook');
      })
      .then(function(theUser) {
        expect(typeof theUser.facebook).to.equal('undefined');
        expect(theUser.providers.length).to.equal(1);
        expect(theUser.providers.indexOf('facebook')).to.equal(-1);
      });
  });

  it('should clean all expired sessions', function() {
    var now = Date.now();
    var testUser = {
      _id: 'testuser',
      session: {
        good1: {
          expires: now + 100000
        },
        bad1: {
          expires: now - 100000
        },
        bad2: {
          expires: now - 100000
        }
      }
    };

    return previous
      .then(function() {
        // console.log('Cleaning expired sessions');
        return user.logoutUserSessions(testUser, 'expired');
      })
      .then(function(finalDoc) {
        expect(Object.keys(finalDoc.session).length).to.equal(1);
        expect(finalDoc.session).to.include.keys('good1');
      });
  });

  it('should log out of all other sessions', function() {
    var now = Date.now();
    var testUser = {
      _id: 'testuser',
      session: {
        this1: {},
        other1: {},
        other2: {}
      }
    };

    return previous
      .then(function() {
        // console.log('Logging out of other sessions');
        return userDB.put(testUser);
      })
      .then(function() {
        return user.logoutOthers('this1');
      })
      .then(function() {
        return userDB.get('testuser');
      })
      .then(function(finalDoc) {
        expect(Object.keys(finalDoc.session).length).to.equal(1);
        expect(finalDoc.session).to.include.keys('this1');
      });
  });

  it('should add a new user database', function() {
    return previous
      .then(function() {
        // console.log('Adding a new user database');
        return user.addUserDB('superuser', 'test_superdb', 'shared');
      })
      .then(function() {
        return userDB.get('superuser');
      })
      .then(function(userDoc) {
        expect(userDoc.personalDBs.test_superdb.type).to.equal('shared');
        return checkDBExists('test_superdb');
      })
      .then(function(result) {
        expect(result).to.equal(true);
      });
  });

  it('should remove a user database', function() {
    return previous
      .then(function() {
        // console.log('Removing a user database');
        return user.removeUserDB('superuser', 'test_superdb', false, true);
      })
      .then(function() {
        return userDB.get('superuser');
      })
      .then(function(userDoc) {
        expect(typeof userDoc.personalDBs.test_superdb).to.equal('undefined');
        return checkDBExists('test_superdb');
      })
      .then(function(result) {
        expect(result).to.equal(false);
      });
  });

  it('should delete a user and all databases', function() {
    return previous
      .then(function() {
        // console.log('Deleting user');
        return checkDBExists('test_usertest$superuser');
      })
      .then(function(result) {
        expect(result).to.equal(true);
        return user.remove('superuser', true);
      })
      .then(function() {
        return userDB.get('superuser');
      })
      .then(function(result) {
        throw 'User should have been deleted!';
      }, function(err) {
        expect(err.name).to.equal('not_found');
        return checkDBExists('test_usertest$superuser');
      })
      .then(function(result) {
        expect(result).to.equal(false);
      });
  });

  it('should create a new user in userEmail mode', function() {
    return previous
      .then(function() {
        userConfig.setItem('local.emailUsername', true);
        // Don't create any more userDBs
        userConfig.removeItem('userDBs.defaultDBs');
        // Create a new instance of user with the new config
        user = new User(userConfig, userDB, keysDB, mailer, emitter);
        return user.create(emailUserForm, req);
      })
      .then(function(newUser) {
        expect(newUser.unverifiedEmail.email).to.equal(emailUserForm.email);
        expect(newUser._id).to.equal(emailUserForm.email);
      });
  });

  it('should not create a user with conflicting email', function() {
    return previous
      .then(function() {
        return user.create(emailUserForm, req);
      })
      .then(function(newUser) {
        throw "Should not have created the user!";
      }, function(err) {
        if(err.error) {
          expect(err.error).to.equal('Validation failed');
        } else {
          throw err;
        }
      });
  });

  function checkDBExists(dbname) {
    var finalUrl = dbUrl + '/' + dbname;
    return BPromise.fromCallback(function(callback) {
      request.get(finalUrl)
        .end(callback);
    })
      .then(function(res) {
        var result = JSON.parse(res.text);
        if(result.db_name) {
          return BPromise.resolve(true);
        }
      }, function(err) {
        if(err.status === 404) {
          return BPromise.resolve(false);
        }
      });
  }

});

redpajama_set_name: RedPajamaGithub


text:
How Noise Can Cost Your Hospital
Kathryn Mackenzie, for HealthLeaders Media, August 26, 2008
A hospital executive in my home state of Texas was telling me about a fairly minor surgery she had about 18 months ago. One of the things she remembers most about her recovery time at the hospital was how quiet it was. "I work in a hospital, I know how noisy it can be. I thought to myself, what is this hospital doing that we aren't?"
Her question got me thinking about hospital noise and how technology is being used to help reduce it. In this case, she later found out the hospital was using wireless voice-activated communication badges instead of an overhead PA system for the majority of their communications—a tool she later adopted for use at her own hospital.
Hospital noise-level might not be on the forefront of many executives' minds, and generally when I ask about priority lists, keeping decibel levels down doesn't quite make it to the top. But think about this: a team of Mayo Clinic nurses studying hospital noise found that during the morning shift change at Saint Mary's Hospital in Rochester, MN, noise levels reached 113 decibels—that's equal to the noise a jackhammer makes. And this: during a two-year research project, acoustics experts Ilene Busch-Vishniac and James E. West learned that hospital noise is among the top complaints of both patients and hospital staff members. During their studies, the researchers found that over the past four decades, average daytime hospital sound levels around the world have risen from 57 decibels to 72; nighttime levels have increased from 42 decibels to 60. All of these figures exceed the World Health Organization's hospital noise guidelines, which suggest that sound levels in patient rooms should not exceed 35 decibels.
Fast, reliable communication is vital in a hospital setting, and, thanks to technology, hospital workers have a variety of tools available them to facilitate instant communication. Smartphones, pocket-PCs, laptops, tablet-PCs, instant message, e-mail, remote voice and video communication are just a tiny sampling of how technology is being used to communicate faster. But since technology is often blamed for the increase in noise over the last few decades, I'm curious about how it's also being used to communicate quietly.
One of the most common and effective methods I've heard of is replacing the overhead intercom system with wireless communication badges, which can page staff anywhere in the hospital. At the hospital I mentioned above, the staff reported improvements in the quality and ease of communication after they started using the badges and patient satisfaction increased to 93%.
http://www.healthleadersmedia.com/content/217730/topic/WS_HLM2_TEC/How-Noise-Can-Cost-Your-Hospital.html
This is really an interesting article and one that – when you think about it – is really important. My experience of hospitals (as a patient) has certainly been one where noise levels seemed to be virtually ignored and one where the staff used to love coming on duty, chattering loudly, just as one was hoping for a little peace and quiet.
Getting enough sleep is crucial to recovery and it's time this issue was given a little more attention. Looks like my favourite Vocera communication badges (like the ones in Star Trek) can help! Next time you visit a hospital pay special attention for a few minutes and see just how loud it is!
Another approach to the same problem is discussed here:
Webster firm creates silent hospital call-button system
Sean Dobbin
A patient at Rochester General Hospital pushes the nurse call button in his room, and within moments, pagers on the hips of nearby nurses, aides and technicians go off. As a caregiver enters the patient's room, a sensor in her badge disengages the call and a green light goes on outside in the hallway to indicate that the person is receiving care.
The system is quick, efficient and silent — eliminating the noisy overhead pages that would constantly ring out through hospital halls.
Special Care Systems LLC has been installing these nurse call systems in area hospitals and nursing homes since 2002. Founders Ann and Myron Kowal of Webster saw the need for a communications company that specialized in health care systems.
There were "distributors that did some nurse call systems, and also security and fire and wander prevention." said Ann Kowal, president of the company. "They weren't all health care. They had a wide range."
The eight-person staff of Special Care Systems in Webster focuses solely on health care communications. In addition to the nurse call systems, a large portion of their business comes from personal emergency response systems, which they have installed in a number of independent senior communities, including Cherry Ridge at St. Ann's Community in Webster and The Highlands in Pittsford. These systems allow seniors to call for help using a button on their wrists from anywhere on the grounds.
http://www.democratandchronicle.com/apps/pbcs.dll/article?AID=/20080824/BUSINESS/808240303/1001/Business
Thomson Reuters and CareEvolution develop innovative medical record system
Thomson Reuters and CareEvolution are working together to deliver an alternative to the chronological medical record — an application that groups patient data by disease or medical episode. The web-based Medical Episode Groupe' provides current patient information — logically organised, at the point of care — to help physicians make sound medical decisions and enhance disease management and quality of care.
US company CareEvolution provides secure interoperability solutions that link diverse technology platforms for medical records. Under this collaboration, output from the Medical Episode Grouper (MEG), developed by Thomson Reuters, would be integrated into CareEvolution's 'clinical cockpit' to deliver comprehensive patient medical histories of all medications and treatments.
"Caregivers tell us they need access to a community-wide health history for a patient, but they are already overwhelmed with too much information. Dumping more data from more clinics and hospitals onto the doctor's desktop is not going to be accepted or effective," said Vik Kheterpal, MD, principal at CareEvolution.
"Organising the discrete, fragmented, healthcare data we get from medical claims, acute and ambulatory electronic medical records and other sources into disease-based clusters is critical to deal with this cognitive overload," he said. "Delivering patient information in this way enables clinicians to easily find the links between diseases and complications so they can better manage the patient's care."
Treatment of a given disease or medical complaint typically involves several healthcare events — such as a visit with a primary care doctor, prescriptions, visits to urgent care centres or the emergency room, consultations with specialists and perhaps admission to a hospital or surgery centre.
http://www.bjhcim.co.uk/news/2008/n808010.htm
This is a very interesting idea I think. Trying to put some intelligence behind how longitudinal health records are organised to have the address the clinical need will certainly work better than a purely chronological approach. Good thinking 99!
Emergency dial-a-diagnosis
Lisa Carty NSW Political Editor
PEOPLE phoning Sydney's overstretched hospital emergency departments will have their inquiries automatically diverted to a call centre staffed by registered nurses.
From Tuesday callers will have their symptoms assessed over the phone. The nurses will advise whether callers should go to the hospital, seek an appointment with their GP or take some other action.
Health Minister Reba Meagher will announce the plan today as part of a nationwide revamp of the way emergency departments are used.
The diversion of calls from Sydney emergency departments is the first stage of NSW's link to healthdirect, the new national health call centre network.
As part of the plan, people will be given health advice on everything from treating head lice in children to broken bones and suspected cancer.
It does not replace the existing triple-0 number for medical emergencies, but the call centre nurses can alert ambulances if necessary.
http://www.smh.com.au/news/national/emergency-dialadiagnosis/2008/08/23/1219262608856.html
This is a good idea, and there is sound evidence from the UK (where such a service has existed for years as NHS Direct) that it can be made to work well. Odd that it has taken so long for the idea to move from Old Blighty to the Land DownUnder!
Fourth we have:
IBA opens up Lorenzo
Suzanne Tindal, ZDNet.com.au
Australian e-health software firm IBA Health today said it intended to follow the footsteps of companies like Apple and SAP, opening up its new Lorenzo platform for developers to write applications.
The company said Lorenzo, its service-oriented architecture-based healthcare platform, was due for a global launch in November. "We'll be opening it up to allow other people to write applications onto that platform," IBA Health executive chairman Gary Cohen said today at the company's annual results briefing for the year ended 30 June 2008.
In response to a query as to how open the company meant Lorenzo to be, Cohen said "it will be very open", calling the move a "core part of our strategy".
"If you look at companies like Apple and SAP, where they've been able to get significant growth is getting companies to write solutions [for their platforms]," Cohen said.
Cohen said that he believed that Lorenzo could gain scale by harnessing the power of external developers to write applications.
IBA slotted Lorenzo into its array of software when it completed its acquisition of iSoft last year in October.
http://www.zdnet.com.au/news/software/soa/IBA-opens-up-Lorenzo/0,130061733,339291553,00.htm
This sounds like a good idea in principle. The more variety of expertise and skills that can be brought to the Health IT development task the better. It could also mean IBA will have a broader product line available more quickly that otherwise would have been possible.
IBA's annual results for the 2008 year are found here:
Lorenzo to boost IBA group
Karen Dearne | August 26, 2008
Many more details are here.
http://www.abnnewswire.net/press/en/56201/IBA_Health_Group_Limited_ASX:IBA_CEO_on_2009_Outlook_Open_Briefing.html
IBA Health Group Limited (ASX:IBA) CEO on 2009 Outlook - Open Briefing
The usual disclaimer about my few IBA shares applies.
Fifth we have:
NSW privacy laws 'lagging behind others'
Posted Mon Aug 25, 2008 10:42am AEST
The Greens are calling on the State Government to reform privacy protection, saying New South Wales is lagging behind other states when it comes to ensuring people's privacy.
Greens MP Lee Rhiannon says Premier Morris Iemma has ignored the concerns of privacy groups by introducing a series of damaging laws on photo ID cards, electronic health records and workplace surveillance.
It's good to see someone in the current NSW Parliament noticed just what a fiasco the privacy regime for NSW Health's Healthelink was and is keeping after them about it. Speaking of Healthelink – I wonder where the evaluation report that was due months ago is? Any bets on it ever seeing the light of day?
Sixth we have:
Guide to handling personal information security breaches released
FEDERAL Privacy Commissioner Karen Curtis has released voluntary guidelines on how companies and government agencies should handle security breaches involving sensitive customer information.
The guide recommends individuals affected by a breach are notified directly, so that people can take steps to avoid potential financial fraud or identity theft.
"While voluntary, the guide represents good practice in handling breaches and I would urge all organisations to consider using it," Ms Curtis said.
Mandatory data breach notification has been proposed by the Australian Law Reform Commission in its review of Privacy Act.
Ms Curtis said that when the Act was introduced 20 years ago, no-one envisaged the massive amount of personal and financial data routinely collected by businesses and governments today.
This is an important announcement for all in the health sector and those who are custodians of information should make sure they are across just what is expected in the event of information leakage.
An additional discussion of the topic can be found here:
http://www.cio.com.au/index.php?id=1518191851&eid=-601
Transparency key recommendation in new privacy guidelines
Privacy commissioner releases 'Guide to handling personal information security breaches'.
Last we have our slightly technical note for the week:
Vista may still have its day -- just like XP (eventually) did
Think Windows Vista is a hopeless dog and XP was always the cat's meow among users? Think again.
Eric Lai 26/08/2008 08:25:00
Twenty-one months after its initial release, what do we know about Windows Vista? That home users hate it, businesses are uninstalling it and -- according to Gartner -- it's proof that the 23-year-old Windows line is "collapsing" under its own weight.
Meanwhile, predecessor Windows XP, which Microsoft stopped shipping to retailers and the major PC makers on June 30, has belatedly become so beloved that it's garnering more calls for "unretirement" than NFL icon Brett Favre did in his wildest dreams this summer.
But all of the griping about Vista and instant nostalgia for XP covers up a dry, statistical reality: XP itself was slow to catch on with users -- maybe even slower than Vista has been thus far. For instance, in September 2003, 23 months after its release, XP was running on only 6.6 percent of corporate PCs in the US and Canada, according to data compiled by AssetMetrix, an asset-tracking vendor that was later bought by Microsoft. (That information was helpfully pointed out by a Computerworld reader.)
In comparison, Forrester Research reported that as of the end of June -- 19 months after Vista's November 2006 debut for business users -- the new operating system was running on 8.8 percent of enterprise PCs worldwide. Forrester analyst Thomas Mendel, who authored the report, wasn't impressed: He compared Vista to the ill-fated New Coke.
However, even Gartner, that prophet of Windows' doom, forecasts that Vista will be more popular at the end of this year than XP was at a similar juncture -- with 28 percent of the PC operating system installed base worldwide, vs. 22 percent for XP at the end of 2003.
"The uptake of XP was slower than people remember today," said Michael Cherry, an analyst at Directions on Microsoft. He noted that many IT managers "labeled XP a consumer-only upgrade" at first.
http://www.computerworld.com.au/index.php/id;1926251180;fp;;fpid;;pf;1
This is an interesting article that shows how instinctively conservative people are in sticking to using things they know and are comfortable with! This lesson will not be lost on anyone in the e-Health space!
Posted by Dr David G More MB PhD at Sunday, August 31, 2008 0 comments
RFID – On the March in the Health Sector.
More RFID news this week
RFID, Radio Location Service Use Soaring at Hospitals
A new study shows hospitals are aggressively deploying a range of active and some passive radio-frequency identification...
John Cox, Network World
Wednesday, August 20, 2008 12:50 PM PDT
A new study shows hospitals are aggressively deploying a range of active and some passive radio-frequency identification systems.
The payback no longer is simply being able to find medical equipment including wheelchairs. Increasingly, wireless identification and location data is being used to streamline and repair a range of healthcare workflows and business processes.
The study, "Trends in RFID 2008," is based on 100 telephone interviews earlier this year with IT professionals and clinical and nursing directors at hospitals with typically 300 or more beds. It was carried out by Greg Malkary, founder and managing director of Spyglass Consulting Group, a market-intelligence and research firm in California.
A previous Spyglass study was done in 2005. Since then, the number of RFID-based applications has tripled, Malkary found. "A few years ago, they were trialing [RFID] technology, with a few hundred objects being tracked," he says. Now there are large-scale product deployments rolling out, tracking thousands of objects in multiple locations.
Harrisburg Hospital in Pennsylvania deployed a patient-tracking system from PeriOptimum for surgical patients, then expanded the 433MHz wireless infrastructure from Lawrence, Mass.-based Radianse to track wheelchairs and a wide range of portable medical gear. By the end of 2008, the hospital plans to have nearly 10,000 wireless tags deployed. As at Harrisburg, many of these applications are "active RFID" -- with a radio embedded in a tag that's able to transmit a signal on its own. These products use a variety of frequency bands, and in some cases are Wi-Fi based. Passive RFID tags lack a radio: When they come near a tag reader, the reader's radio activates the tag, which reflects some of the signal's energy back to the reader, carrying with it the tag's unique ID number.
Early applications, such as infant-tracking systems, are giving way to staff tracking, combined with time-motion studies to optimize workflows in such areas as radiology and surgical departments. "You can see where people are and figure out how they're spending their time," Malkary says. The 2008 interviewees linked RFID data to quality-improvement programs, such as Six Sigma.
One notable technology shift is healthcare's willingness to embrace multiple wireless technologies. The 2005 Spyglass study found that 90% of respondents were unwilling to invest in wireless that didn't use their existing wireless LAN (WLAN) or corporate backbones. "Today they are much more open to multiple technology investments to get increased levels of [location] accuracy," Malkary says.
Accuracy varies. Wi-Fi location systems are accurate enough to place tagged objects or people in general areas. However, some applications need more precision or more control, or both: to determine whether high-value drugs are in a refrigerator, for example, or whether high-value medical equipment is in a sterilization room. Using proprietary radios in other frequency bands, or passive RFID systems are alternatives.
One example is a project from the University of Wisconsin-Madison RFID LAB, which has partnered with a trio of national blood centers to use RFID to manage the complete blood-supply chain for blood used in transfusions, as well as associated medications. The goal is to improve the safety, efficiency and accuracy of the U.S. blood supply.
Many more examples here
http://www.pcworld.com/article/150075/rfid_radio_location_service_use_soaring_at_hospitals.html
and – for a more general perspective
RFID Redux
by Jeffrey Rothfeder
No longer the tech darling, RFID is slowly reemerging as a valuable way to monitor small pieces of big supply chains.
A few years ago, radio frequency identification (RFID) was the technology du jour and touted as a way to make supply chains transparent, from manufacturing through point-of-sale.
With RFID, individual tags embedded with identification data are placed on components, materials, finished goods, cartons, boxes, pallets, or any other type of shipping and packaging materials. Electronic readers at warehouses, retail outlets, assembly lines, and checkout counters continually scan these items, sending their IDs and locales to centralized databases, where this information is translated into up-to-the-second snapshots of supply chain activity. Such a clear view, it was hoped, would minimize the expense of lost items, theft, and unstocked shelves, as well as significantly improve factory efficiency. Indeed, Wal-Mart Stores Inc., and the U.S. Department of Defense grew so enamored of the prospects for this technology that they told their contractors and suppliers to place RFID tags on items by January 2005 or risk losing their massive contracts.
These mandates went unheeded, or at least failed to engender the desired results. Only five Wal-Mart distribution centers have been RFID-enabled, seven fewer than the retailer had initially planned. And after suppliers complained that the tags were too expensive to purchase and the technology was balky, Wal-Mart and the Pentagon relaxed their directives so that now only the largest suppliers are required to adopt RFID.
But if RFID is not quite the behemoth it was initially predicted to be, it is nonetheless proving itself effective in smaller-scale, closed-loop applications, which is boosting its prospects again. According to IDtechEx Inc., an RFID industry analyst, in 2008 the value of the entire RFID market will reach US$5.3 billion, up from $4.9 billion the year before. And the Institute of Electrical and Electronics Engineers estimates that the market will grow to over $25 billion by 2017.
RFID's renewed popularity has been spurred on by recent applications:
Land Rover Group Ltd. implemented RFID in some of its factories to keep track of vehicles as they leave the assembly line for testing and refinement. This system reduced the labor costs involved in looking for "lost" vehicles, assured faster order-to-cash cycles, and decreased inventory carrying expenses. Land Rover realized a full return on investment within nine months.
Hong Kong International Airport, which handles nearly 50 million passengers and 4 million tons of cargo a year, has installed an RFID system to monitor baggage within the facility from the time the passenger gives a bag to the clerk to the moment it is placed in the belly of a plane. The International Air Transport Association (IATA) says that RFID baggage handling systems are correct nearly 99 percent of the time, whereas bar code readers have only an 80 to 90 percent accuracy rate. The IATA says that full RFID implementation in airports could generate as much as $760 million in industry savings per year.
Beginning in 2006, Gillette Company placed RFID tags on all of the cases and pallets of its new Fusion razor that were shipped to 400 retailers with RFID readers in their storage facilities. When the databank showed the products had reached a store's back room but were not placed on shelves for sale in a timely manner, Gillette would call and request that the product be moved out quickly. With this strategy, Gillette says, Fusion razors are placed on store shelves 90 percent faster than they were before; the company predicts a 25 percent return on its RFID investment by 2016.
http://www.strategy-business.com/li/leadingideas/li00088
It seems there are essentially an infinite number of ways these little tags can be used – constrained only by the imagination of those with business tracking, matching and counting problems.
It is good to see at least some technologies are living up to their promise.
Posted by Dr David G More MB PhD at Thursday, August 28, 2008 0 comments
A Way To Really Get Health IT Happening.
I came upon this amazing report a few days ago
Mass. law requires some IT systems in hospitals
By: Shawn Rhea / HITS staff writer
Story posted: August 21, 2008 - 5:59 am EDT
A new Massachusetts law mandating the implementation of healthcare information technology systems and governing consulting deals between medical-products companies and providers is drawing both praise and criticism from industry stakeholders who say the ambitious new rules could test the waters for national legislation on both issues.
"I think what we have an opportunity to do is a small test of change to see how this could work," said Jim Conway, senior vice president at the Institute for Healthcare Improvement, a Cambridge, Mass., not-for-profit focused on improving patient care.
The two provisions are part of a sweeping set of healthcare laws promoting cost containment, transparency and quality improvement. Signed last week by Gov. Deval Patrick, the legislation is the latest in a string of state reforms aimed at supporting Massachusetts' efforts toward affordable, high-quality universal healthcare.
Under the new law, medical-device makers and drug companies will be required to disclose any consulting fees or in-kind gifts provided to physicians—such as lunches accompanying continuing-education sessions—in excess of $50.
Medical-products companies will also have to issue annual reports disclosing the services provided by each medical consultant. The disclosure provisions, supporters of the bill said, will eliminate phony consulting deals and other gifting practices that pay providers to use certain products. The issue made national headlines last year when five devicemakers agreed to pay $311 million following a federal investigation of whether they provided cash inducements, expensive trips and other perks to surgeons under the guise of consulting contracts.
"This legislation requires that companies disclose information about marketing practices that taxpayers are footing the bill for," said Democratic state Sen. Mark Montigny, author of the original disclosure bill that was incorporated into the broader legislation.
The new law's IT provisions mandate hospitals and community health centers have physician order-entry systems by 2012 and electronic health-record systems by 2015.
Tom Keefe, senior director of state government relations for the Healthcare Information and Management Systems Society, said in a written statement that while he's not certain Massachusetts' IT mandates will have a direct effect on mandating nationwide use of EHRs, the legislation is an "example of states realizing that healthcare today is an industry characterized by revolutionary technological advances."
The new law also will establish a medical-home demonstration project and will also require the University of Massachusetts Medical School to expand its residency slots for students committed to primary-care medicine and working in underserved communities.
More here (free registration required):
http://www.modernhealthcare.com/apps/pbcs.dll/article?AID=/20080821/REG/738868/1029/FREE
This is really an interesting move and shows just how convinced some communities have become of the value of Health IT and how determined they are to have their citizens reap the advantages.
Not sure I know many Premiers who feel so strongly – which is a bit sad! Maybe some more public pressure is required!
Posted by Dr David G More MB PhD at Wednesday, August 27, 2008 0 comments
Bonus Health IT News For the Week – There has Just Been So Much!
First we have.
Massachusetts requires EHRs in hospitals by 2015
By Nancy Ferris
Massachusetts Gov. Deval Patrick has signed into law a health care bill that will require hospitals and community health centers to use interoperable electronic health records (EHR) systems if they seek to obtain or renew licenses to operate in 2015 or afterward.
The law outlines a goal of "full implementation of electronic health records systems and the statewide interoperable electronic health records network by January 1, 2015." It sets up a mechanism for creating a statewide health information network.
However, it stops short of requiring doctors in private practice to use health IT. Instead, it requires doctors to demonstrate competence in the use of computerized physician order entry (CPOE), e-prescribing, EHRs and other forms of health IT by the beginning of 2015, as part of their licensure requirements.
The new law also requires hospitals and community health centers to implement CPOE as a licensing requirement, beginning in 2012.
http://www.fcw.com/online/news/153468-1.html
This is really amazing to have a State set legal deadlines to get systems in over only 4-5 years, and not easy ones either! We could to with a bit more of this in OZ!
Second we have.
Canadian electronic health record projects quadruple in four years
Momentum improving patient care
August 11, 2008 (Toronto) - Canada's electronic health record (EHR) projects increased by 12 per cent last year and have quadrupled since 2004 announced Richard Alvarez, President and CEO of Canada Health Infoway (Infoway).
"Canadians want their medical information available electronically to the clinicians who care for them," said Alvarez. "And that's starting to happen in communities across Canada. Collaboration among governments is at an all-time high and with continued federal funding, we are well on our way to providing every Canadian with an electronic health record by 2016."
Working with its federal, provincial and territorial partners, Infoway is quickening the pace of development and implementation of electronic health records. Infoway approved $311.5 million in new EHR investments in 2007-08, bringing the total cumulative value of its investments to $1.457 billion or 89 per cent of Infoway's $1.6 billion in capitalization by the federal government. The investment brings the total number of projects underway to 254, representing a four-fold increase from the 53 projects that were underway in 2004.
"The electronic health record projects the government of Canada is investing in are coming alive, bringing tangible results to Canadians and the clinicians who care for them," said the Honourable Tony Clement, Federal Minister of Health.
These efforts are translating into real benefits for patients from coast-to-coast: In Nova Scotia, the shared diagnostic imaging program provides digital images of X-rays, MRIs, CT scans and ultrasounds to authorized health practitioners where and when they're needed; patients in remote northern communities are connected with health care professionals in urban centres through telehealth, improving their access to care; and electronic medical records are generating much-needed efficiencies in the face of growing clinician shortages, increasing chronic disease and growing administrative demands.
In addition to the steady progress being made in all electronic health record programs including registries, diagnostic imaging, lab and drug programs, Infoway continues to target investments in replicable solutions that support health system transformation, such as telehealth and public health surveillance.
Read our 2007-2008 Annual Report to learn more.
http://www.infoway-inforoute.ca/en/News-Events/InTheNews_long.aspx?UID=325
Seems like Canada is continuing to work hard – and to be really making some progress!
Techies find niche in health care field
(Christian Gooden/P-D)
By Mary Jo Feldstein
ST. LOUIS POST-DISPATCH
Jeff Ray always liked technology. When he got out of the Army about 10 years ago, he started taking computer science classes. Soon he was working for the Newberry Group, a technology consulting firm in St. Charles.
Through his job there, Ray entered health information technology, one of the fastest-growing industries in the nation. The Newberry Group had a contract with SSM Healthcare-St. Louis, and Ray eventually moved to being a full-time SSM employee.
With positions ranging from systems technicians to chief medical-technology officers, careers related to how medical information is generated, stored and mined are soaring in demand and popularity.
"Because of trends in the health care industry, we need people who have a new knowledge base for decision-making," said Jody Smith, chair of the health informatics and information management program at St. Louis University's Doisey College of Health Sciences. This fall, the school will add a master's program in informatics.
If the nation's health care system continues to move toward wider adoption of health information technology, it could need 40,000 more health IT professionals to do it, according to research by Dr. William Hersh, a professor of health informatics at Oregon Health & Science University.
Hersh found U.S. hospitals employ about 108,000 full-time equivalents in health information technology careers. But if these hospitals want to increase technology to the point where it improves quality and efficiency, the number will need to increase by more than 37 percent.
Dr. Don Detmer, chief executive of the American Medical Informatics Association, said Hersh's estimates are the best available, but they aren't adequate because it's difficult to differentiate between the professionals who design the systems and those who make them work. Detmer is confident more health information technology professionals will be needed.
"It's an emerging profession," Detmer said. "There's not enough trained people."
http://www.stltoday.com/stltoday/business/stories.nsf/business/healthcare/story/f48bf3b0b46bd050862574a4000a07ce?OpenDocument
More background on the HI professional shortage –an interesting read.
Software that saves lives
By Mary K. Patt , Computerworld , 08/11/2008
The statistics were telling: 15% to 20% of neurosurgery patients developed infections in the drains that neurosurgeons implanted to draw away fluids, a complication that not only threatened lives, but also led to hundreds of thousands of dollars in treatment costs annually.
Dr. Daniel Stålhammar, a neurosurgeon for 40 years, believed his hospital, Sahlgrenska University Hospital in Gothenburg, Sweden, could do better. He turned to computers for help.
That may not be surprising, but his choice of IT tools is: Stålhammar picked business intelligence software to improve patient outcomes and ultimately save lives.
"I needed to handle large databases and have tools to make proper decisions on which patients were to be selected for specialized and very expensive care," he says.
Stålhammar used QlikTech International AB's QlikView to analyze multiple databases containing patient information against established medical measurements and likely outcomes. This tool has helped the hospital reduce its rate of medical complications, sparing patients any additional pain and problems and eliminating the need for many costly tests and treatments.
Much more detail here:
http://www.networkworld.com/news/2008/081108-software-that-saves.html?hpg1=bn
A good example of the application of business technology to address a health related problem!
E-health programs result in lower premiums for companies, better care for employees
Silicon Valley / San Jose Business Journal - by Lisa Sibley
Cisco Systems Inc. management is saving more than $4 for every $1 it invests in its employees' health care.
Executives at the San Jose-based company discovered that when employees become involved in their personal electronic health-care records, they are healthier and more productive at work. There are fewer visits to the doctor, and the employer's health care costs are reduced.
The results are part of a pilot program begun with the Palo Alto Medical Foundation three years ago, offering an example for other Silicon Valley companies.
Cisco had the advantage of scale that smaller companies may find hard to duplicate, but experts say others may try when they see the possible savings.
"We are saving more than the $36,000 we are putting in," said Sharon Gibson, Cisco's director of health care practice for the Internet Business Solutions Group. "It pays for itself."
The networking equipment supplier paid a $60-per-year subscription service, or $5 a month per employee, to participate. There are 600 employees in the pilot program. Gibson and Dr. Paul Tang, the foundation's vice president and chief medical information officer, are continuing to track progress of the study.
The initial results showed 87 percent of employees spent less time away from work; 72 percent said they reduced their number of office visits; and 61 percent preferred online contact with their physicians and physicians' offices, Tang said.
"There was intrigue from the employees," Gibson said. "They thought this was a novel idea, and we wanted to build on that success."
The company is continuing to expand the program to more employees and their dependents. It is tracking the benefits with additional results to be released soon. Gibson said the real advantage to employees is offering health support services online that are similar to other areas of their workplace and lives.
http://sanjose.bizjournals.com/sanjose/stories/2008/08/11/story3.html?b=1218427200^1681407
Yet more proof of how Health IT can make a difference!
WSN to Save Billions for Healthcare Industry
The healthcare industry has the potential to save approximately $25 billion by 2012 because of advancements in WSN (wireless sensor networking) technology, according to a recent report from ON World, www.onworld.com, San Diego, Calif. The study lists reducing hospitalizations and extending independent living for seniors as the main benefits WSN can provide for the healthcare industry.
"With a clear return on investment and high average revenue per user, healthcare is one of the most funded research areas for WSN," says Mareca Hatler, director of research, ON World. "There are literally dozens of healthcare WSN 'killer apps' for outpatient monitoring, chronic disease management, and elderly care."
ON World says the WSN applications attracting the interest in healthcare are that of AAL (ambient assisted living) and BSN (body sensor networks). Using a network of sensors installed throughout a home, AAL systems remotely monitor patients in their homes, thereby giving the elderly the ability to live independently longer and reducing the amount of travel and associated expenses for their caretakers. According to the study, AAL systems have benefited from advancements in "smart home" WSN technologies, such as ZigBee, Z-Wave, and Wi-Fi.
http://www.specialtypub.com/m2m/article.asp?article_id=7061&SECTION=4
I must say WSN has slipped under my radar until now. Must find out more in due course!
An Great Offer That will Expire in A Week or Two.
The excellent health policy journal Health Affairs has a great policy of making some fascinating content available for no cost for a period of a week or two.
Late last week they published a series of three must not miss articles on Health IT.
The articles are found here:
Health Information Technology: A Few Years Of Magical Thinking?
Carol C. Diamond and Clay Shirky, August 19, 2008
[ Full Text ] [ Abstract ] [ PDF ] [Reprints & Permissions]
One of the biggest obstacles to expanding the use of information technology (IT) in health care may be the current narrow focus on how to stimulate its adoption. The challenge of thinking of IT as a tool to improve quality requires serious attention to transforming the U.S. health care system as a whole, rather than simply computerizing the current setup. Proponents of health IT must resist "magical thinking," such as the notion that technology will transform our broken system, absent integrated work on policy or incentives. The alternative route to transforming the system sets all of its sights on the destination. [Health Affairs 27, no. 5 (2008): w383-w390 (published online 19 August 2008; 10.1377/hlthaff.27.5.w383)]
Health Information Technology: Strategic Initiatives, Real Progress
Robert M. Kolodner, Simon P. Cohn, and Charles P. Friedman, August 19, 2008
We fully agree with Carol Diamond and Clay Shirky that deployment of health information technology (IT) is necessary but not sufficient for transforming U.S. health care. However, the recent work to advance health IT is far from an exercise in "magical thinking." It has been strategic thinking. To illustrate this, we highlight recent initiatives and progress under four focus areas: adoption, governance, privacy and security, and interoperability. In addition, solutions exist for health IT to advance rapidly without adversely affecting future policy choices. A broad national consensus is emerging in support of advancing health IT to enable the transformation of health and care. [Health Affairs 27, no. 5 (2008): w391-w395 (published online 19 August 2008; 10.1377/hlthaff.27.5.w391)]
The Alternative Route: Hanging Out The Unmentionables For Better Decision Making In Health Information Technology
David C. Kibbe and Curtis P. McLaughlin, August 19, 2008
Expert panels and policy analysts have often ignored potential contributions to health information technology (IT) from the Internet and Web-based applications. Perhaps they are among the "unmentionables" of health IT. Ignoring those unmentionables and relying on established industry experts has left us with a standards process that is complex and burdened by diverse goals, easy for entrenched interests to dominate, and reluctant to deal with potentially disruptive technologies. We need a health IT planning process that is more dynamic in its technological forecasting and inclusive of IT experts from outside the industry. [Health Affairs 27, no. 5 (2008): w396-w398 (published online 19 August 2008; 10.1377/hlthaff.27.5.w396)]
There are also some major blog contributions from some insightful commentators. They are found here:
Health Affairs Blog posts on health IT by
Esther Dyson,
Mark Leavitt,
Nancy Davenport-Ennis
All in all these six articles provide a very useful summary of the state of thinking about how short term progress can be made in Health IT and what is getting in the way of that progress in the USA.
Get in quickly and download all these articles – you won't be sorry you did!
Posted by Dr David G More MB PhD at Tuesday, August 26, 2008 2 comments
Australia's E-Health Control Freaks – Guess Who?
Honestly, sometimes NEHTA really takes the biscuit!
For the most recent example – see this ripper from ZDNet.
NEHTA gags stakeholder forum
Liam Tung, ZDNet.com.au
Australia's peak e-health body has held the first meeting of a new forum designed to address past failures to adequately engage government and industry stakeholders — but individuals in the group have been gagged from talking about details.
Established in 2005 by state health ministers, the National E-Health Transition Authority's (NEHTA) mission is to develop standards to better integrate Australia's health IT systems and improve clinical outcomes.
The group yesterday announced it had held the first meeting in of its so-called Stakeholder Reference Forum (SRF) which aims to improve the organisation's engagement with key stakeholders. The first meeting was held in Melbourne on 29 July.
The forum was partially a response to a review by the Boston Consulting Group published last year, which labelled the organisation's engagement with stakeholders as "ineffective", leading to a "cycle of criticism, defensiveness and isolation".
"We have put together a stakeholder forum as another conduit to provide input to the work program — consumer, clinician and informatician," a spokesperson told ZDNet.com.au.
Members, which include all state health agencies, the Department of Health and Ageing, and several other clinician stakeholder groups and consumer representatives, discussed the 'terms of reference' for itself and agreed upon holding two more meetings by the end of this year.
The major priorities agreed upon at the first meeting were the development of an e-health business case for consideration by the Council of Australian Governments meeting in October this year, as well as devising a five-year plan.
The first major e-health implementations the group wants NEHTA to focus on are developing systems for electronic discharge summaries, pathology reports, specialist referrals and medication management.
However, members of the forum have signed a non-disclosure agreement that personally binds them when the SRF discusses confidential topics, including NEHTA's finances.
"They have signed a confidentiality agreement and probably wouldn't be able to comment on specific topics discussed. However they would be able to comment on the fact that the forum exists and if it is valuable," the NEHTA spokerson said.
http://www.zdnet.com.au/news/software/soa/NEHTA-gags-stakeholder-forum/0,130061733,339291511,00.htm
I was lucky enough to have been sent some of the materials from the Forum and also a note that NEHTA has published some news about the Forum on their web site.
Most interesting were two things (let's just forget the nonsense Terms of Reference for the SRF that has the NEHTA acting CEO as the co-chair on their own and makes it clear all service for your brief stay on the SRF is at NEHTA's pleasure – so just shut up and listen!). First we have the membership list.
Three groups are cited.
First jurisdictions, second clinicians and third consumers. The third amused me:
Stakeholder: Consumer
Australian Information Industry Association (AIIA)
Australian Medical Association IT Committee
Australian Safety and Quality Commission
Consumer Health Forum (CHF)
Health Informatics Society of Australia (HISA) and Coalition for e-health
Medical Software Industry Association (MSIA)
Private Health Insurance Funds
I would contend this is just another example of how out of touch with reality NEHTA really is – I doubt if you ask them the AIIA or the MSIA would see themselves as consumers. They are technical peak bodies and should be separated from the admirable CHF. It is also interesting how few consumer interests are reflected – sure the CHF is important – but there are many more consumer voices than that who could help. Just ignored it seems.
Also why the list is headed "DHS HO Fax sheet v4" just eludes me! (see the .pdf)
More amazing is the suppression and spin of the minutes of the 5 hour meeting.
From the NEHTA web site we get the following:
Outcome statement of the Stakeholder Reference Forum
Members discussed the Terms of Reference for the new Forum and agreed that there would be three meetings this calendar year with this revisited for next year.
Members agreed to use teleconferences for the discussion of specific topics if required.
SRF members signed non-disclosure agreements that personally bind members when the SRF discusses confidential topics such as NEHTA's finances.
While the SRF is a key consultation forum, it is not replacing direct stakeholder engagement. Members noted that NEHTA is committed to stakeholder consultation and will coordinate further round tables and forums as the e-health agenda progresses.
NEHTA work program
Members noted the current work program priorities are the business case for consideration by the COAG meeting in October 2008; development of the five-year plan; engagement of stakeholders.
Members noted NEHTA will be focusing on national e-health implementations in the priority areas of:
Discharge summaries
Referrals (including specialist letters and notifications)
Members heard a presentation on the COAG-funded national Unique Healthcare Identifier service (UHI).
There are three identifiers, one for providers, one for organisations and one for individuals.
The current model relies on the ability of the consumer to provide information to the healthcare provider and that there is currently no consumer token.
Data will be authenticated through national registration boards.
Members noted the progress to date on the COAG-funded program National Authentication Service and agreed more work was needed on authentication validation and this could be discussed at future meetings.
Members noted a presentation on achievements of Clinical Terminology, a COAG funded program to develop national clinical terms for e-health. Members noted most States have implemented the National Product Catalogue as part of the e-health procurement strategy.
Individual Electronic Health Records (IEHR)
Members were briefed on the structure of the IEHR
Members noted that the business case for COAG funding had been the subject of consultation earlier this year at consumer and clinician round tables
The SRF stressed that the benefits case should be based on improvements to safety and quality of healthcare
Members supported the submission of the business case to the October COAG meeting
Outcome Statements will be provided after each meeting, so that participating organisations can distribute them widely to their constituents. The Outcome Statement will also appear on the NEHTA website at www.nehta.gov.au. For further information please contact NEHTA on (02) 8298 2600
But hang on..I was also copied the following e-mail – which said in part:
"Dear forum members
My apologies to all - I may have caused some confusion by sending out the meeting notes with the word 'confidential' on them. Please find attached another version which does not have 'confidential' marking on them to allow you to use as briefing papers to your members."
Guess what – they could not even get this right – the difference between the two copies was that the heading "Confidential" was removed. BOTH versions still have a CONFIDENTIAL statement in the footer.
What is even more amazing is that both these versions are quite different from the one on the NEHTA web site.
So the public is excluded from the actual minutes – short though they are - they are 3 times the length of the public version. Here is the original:
Meeting No 1 of the NEHTA Stakeholder Reference Forum
Held at the Airport Hilton Hotel
The meeting commenced at 9:35 a.m. with the Chair, Andrew Howard welcoming the stakeholder reference forum members and outlining the format of the day.
a) Noted the terms reference.
b) Requested clarification regarding alternate attendees and were advised that this would be negotiated with the NEHTA CEO on an individual case by case basis.
c) Requested that consideration be given to changing the length of tenure.
d) Agreed that three meetings would take place in this calendar year but that the number of meetings would be revisited for the next calendar year.
e) Agreed that teleconferences would be held for discussion of specific topics.
f) Requested that the full membership list be published.
3. NEHTA WORK PROGRAM
Andrew Howard the NEHTA CEO gave a presentation of the NEHTA work program outlining the priority areas for NEHTA for the current financial year.
a) Noted the current NEHTA work program.
Members were advised:
b) That the priority areas of work in NEHTA are:-
• Individual Electronic Health Record business case for consideration by the COAG meeting in October 2008
• NEHTA's 5 year Plan
• To proactively engage and support stakeholders
• To refocus the organisation
c) That NEHTA will be focusing on National e-health implementations in the priority areas of:
• Discharge summaries
• Pathology
• Referrals (including specialist letters and notifications)
• Medication management
d) That NEHTA is not a policy making organisation. NEHTA can raise issues to be taken to the Chief Information Officers Forum who may then escalate to the NHIPC
e) That NEHTA proposes to undertake memoranda of understanding with selected organisations in order to undertake pilot programs and to draw on lessons learned.
f) Of the governance and the environment in which NEHTA operates.
g) That the NEHTA five year work plan will be discussed at the next stakeholder reference forum.
A copy of the presentation is attached to this document for reference.
3. STAKEHOLDER ENGAGEMENT
The NEHTA CEO advised that it is NEHTA's intention to continue an increased level of stakeholder engagement and that this will take the form of project reference groups and roundtable discussions. Members were also welcome to call NEHTA at any time to discuss a particular issue.
4. UNIQUE HEALTHCARE IDENTIFIERS
Miro Percic – Project Manager Unique Healthcare Identifiers provided a short overview of the unique healthcare identifier service . This included the key design elements, NEHTA's implementation approach and the current status of the project.
a) That COAG has made a commitment to the project and funded NEHTA to develop a national unique healthcare identifier service.
b) That there are three identifiers, one for providers, one for organisations and one for individuals.
c) That the current model relies on the ability of the consumer to provide information to the healthcare provider and that there is currently no consumer token.
d) Data will be authenticated through national registration boards.
Members noted that there were policy issues which would impact the implementation of the UHI service. Recommendations related to the these issues were made by the SRF for consideration by the Board and NEHIPC.
5. NATIONAL AUTHENTICATION SERVICE
Gil Carter – Manager Identity Management provided the context of the National Authentication Service.
Members were advised of :
a) The National Authentication Service aims.
b) The phased build approach.
c) The relationship with Medicare.
d) The incremental timelines.
Members agreed that more discussion was required on authentication validation and that this would be discussed at future meetings.
6. INDIVIDUAL ELECTRONIC HEALTH RECORD BUSINESS CASE
Roger Glenny- Manager Individual Electronic Health Record Business Case provided a presentation on the business case.
Members were advised that the business case had previously been discussed in clinician and consumer forums held earlier this year.
a) Of the core components of the business case
b) The key aspirational targets
c) That the business case is not just about funding but also about build and operation of service.
d) That the benefits case is based on the improvements to safety and quality of healthcare which would result in macro-economic benefits.
e) That the case was initially developed by jurisdictions and then in consultation with Deloittes.
f) That there is a governance structure included
g) That at the core of the business case is that IeHR services will be accessible to all.
Members discussed the business case structure and the implementation requirements. There was continued support for the business case to move forward through the COAG process. It was agreed that further discussion was required on some aspects of the business case. This will be discussed at future meetings.
7. AUSTRALIAN MEDICAL TERMINOLOGIES
David Hislop – General Manger Terminology Services provided a short presentation and overview of NEHTA's Clinical Terminologies project.
Members were advised that:
• Australia's National Product Catalogue version 1 has been released.
• Western Australia, Australian Capital Territory and New South Wales have implemented a procurement system utilising the National Product Catalogue.
• Significant development of the Australian Medicines Terminology (AMT), including establishment of documentation of editorial rules for reliable and safe terminology is 99% complete.
• Business case is being put forward for funding for AMT for five years.
• Maintenance aspect of AMT will be where new products are input and old ones are retired.
• NEHTA is not funded for training purposes but will run a workshop around adoption approaches.
The meeting concluded at 3:35 p.m.
--- End Minutes
Really NEHTA remains out of control and it seems the new Acting CEO has made not one jot of difference to the openness and transparency of this deeply dysfunctional organisation. The spin, as illustrated here, is as rampant as ever. Clearly the meeting was not anywhere near as clear cut in its views as the 'pseudo' public minutes try to imply.
As a comparison – even more important meetings of the American Health Information Community – chaired by the equivalent of our Federal Health Minister – are open publicly with webcasts, transcripts and full meeting submissions provided. We seem to run a pretty faulty system here as far as openness, transparency and consultation I must say.
See here for a recent example:
http://www.hhs.gov/healthit/community/meetings/m20080729.html
NEHTA clearly has no clue what public communication and consultation is!
I also wish I could share – but can't for obvious privacy and defamation reasons – the horrifying e-mails I have been sent recently describing the destructive organisational climate and culture that exists within the NEHTA organisation. Three separate former employees have now been in touch over the last month with awful stories. This is many more that I would expect if an organisation of less than 150 people was working well and just being unfairly defamed !
Anyone thinking of joining NEHTA should be very cautious indeed in my view, as, from what I am hearing, the organisation is pretty close to imploding under the weight of its flawed culture.
Posted by Dr David G More MB PhD at Monday, August 25, 2008 4 comments
Bonus Health IT News For the Week – There has Just...
The Commonwealth Fund Gives the US Health System a...
Clinical Decision Support – Getting the Focus it N...
Health IT and the Care of the Chronically Ill
NEHTA is Told to do Much Better by the Commonwealt...
Picture Archive Communications Systems – The Real ...
Recognition of the Need for More Health Informatio...
HISA Comments on the Law Reform Commission Report ...
Great News for General Practice in Queensland!
Australian Law Reform Commission Releases Major Pr...
E-Health to be Developed in Africa
Health IT and Its Role in Diabetes Management
The Personal Health Record Market Starts to Shake ...
The European Union and the Shared EHR
Deloittes Discussion Points for the National E-Hea...
Important Australian National E-Health Strategy Do...

redpajama_set_name: RedPajamaCommonCrawl


Published 04/18/2019 10:25:24 am at 04/18/2019 10:25:24 am in 12 Volt Solar Panel.
12 volt solar panel renogy 100 watts 12 volts monocrystalline solar panel aleko w solar panel for any v dc gate opener aleko w solar panel for any v dc gate opener.
watt flexible solar panel renogy solar renogy watt volt flexible monocrystalline solar panel, ml volt ah sla battery with v solar panel charger ml volt ah sla battery with v solar panel charger, infinium photovoltaic pv solar panel watt v solar panel set image , amazoncom dokio foldable solar panel watts volts dokio foldable solar panel watts volts monocrystalline with inverter charge controller, w volt solar panel w dc v solar power pond water pump for w volt solar panel w dc v solar power pond water pump for pisciculturein alternative energy generators from home improvement on aliexpresscom , watts volts epoxy solar panel module v battery charger watts volts epoxy solar panel module v battery charger campingin solar cells from consumer electronics on aliexpresscom alibaba group, windynation watt w polycrystalline v volt solar panel , panneau solaire w watt solar panel zonnepaneel volt solar panneau solaire w watt solar panel zonnepaneel volt solar energy battery charger marine yachts, solar cynergy w volt solar panel solarblvd solar cynergy w volt solar panel, watt volt monocrystalline flexible solar panel hqst solar retail , coleman sunforce w v solar panel with stand watt volt rv of free shipping .


text:
Pepsi's Lawyers Say 'Mountain Dew' Can Dissolve A Mouse
While drinking Mountain Dew, have you ever seen (or perhaps felt on your tongue) a thick, jelly-like substance? Maybe you assumed the ingredients in the soda had gelled. According to Mountain Dew manufacturer Pepsi, you may have been ingesting some extra protein with your beverage in the form of a liquefied rodent.
Lawsuit results in unusual defense
An Illinois man is suing Pepsi, claiming he found a mouse in his can of Mountain Dew. Ronald Bell of Edwardsville, a small town near St. Louis, alleges there was a mouse in a can of soda he purchased and drank in 2009. Bell says he spit out the mouse and called the company to complain. At the soda manufacturer's request, he sent them the mouse corpse. Pepsi had a veterinary pathologist examine the body. Their scientific expert found the rodent could not have been in the can since the soda case was sealed in August 2008, and its body would have dissolved as a result of the acid in the soda.
Bell says that Pepsi destroyed the evidence in the case and is seeking judgment. Pepsi's legal team has moved to dismiss the case. Bell's suit initially also involved the owners of the convenience store chain where he purchased the beverage, but those defendants have been dropped from the case and an amended suit was filed. The trial was set to begin in late 2011; however a Madison County Circuit Court judge granted Pepsi another month to argue for dismissal.
Quench your thirst with some chemicals
News has reported many times in the past on the health dangers of soda, including the fact that Mountain Dew and other fruit-flavored beverages contain a flame retardant chemical. The bright green color of this soda obviously derives from food coloring's, many of which also have negative health consequences. Like many sodas, Mountain Dew derives its fizzy quality from phosphoric acid, a substance which health experts have long warned can destroy tooth enamel.
Now it appears that, in order to win a lawsuit, Pepsi has conducted its own animal testing on its products and is putting forth evidence that their soda causes organic tissues, as the legal brief states, to become a "jelly-like substance." One has to wonder whether, in the interest of protecting themselves from similar future lawsuits, their scientific experts put dead mice in containers in each of their beverage products to compare the rates of disintegration.
Let's hope that anyone who thinks drinking Mountain Dew is a relatively harmless dietary indulgence hears about this case and thinks twice before swigging some of the bright green beverage. If a mouse can become jelly over the course of the shelf-life of a can of soda, imagine what it can do to your body, especially if you drink this substance regularly over the course of several years. An early advertising slogan for Mountain Dew, back in the 1960s, was "Ya-Hoo Mountain Dew. It'll tickle you innards." Maybe Pepsi can revive this slogan, changing the word "tickle" to "dissolve." Or perhaps, given the soda's more recent marketing association with extreme sports, they can present mouse-chugging as a "wild" activity to fuel skateboarding achievement.
www.naturalnews.com
Previous article82 Known Alien Species Are In Contact With Earth Claim Experts
Next articleWoman Adopts A Pitbull and The Dog Can't Stop Hugging Her


Shortridge High School, Indianapolis, Thursday, November ai, 1901.
honor of tlie late Eev. Nathaniel A.
completed, therefore, they can be consulted in their respective offices during their otlice hours after this time.
Nov. 21, 1901. No. 34.
bw placed on a card outside tlie door.
Nov. 21, 1901. No. 35.
grandstand will be reserved at 35c.
4:15 p. m. daily, under the. staircase.
around two three-inch telescopes, enjoying a gaze at tlie Southern sky.
clear sky for about tlire° hours.
rings being almost wholly visible. Jupiter exhibited himself in fine style.
appeared to be about half full, it having phases just as the moon has.
half-past six adjourned to their homes.
and most of the girls are going.
another raid was made on the Y. W.
to be present at tlie same meeting.
him on the athletic team.
outand yelKand seethe boys practice.
a few changes in the yells which improved tlie accent.
small boy came up and said, "Oh!
Mon, it is not odd.
Tuesday's literary column is becoming a little sensational.