Automating Healthcare
Solving business problems with savvy automation

Who Works Here?

Business problem
Several years ago, as part of a new management team for the IT department, I started assembling a new web development group. Our goal was to create a robust, professional intranet with plenty of automated processes to streamline internal workflow. But one of the ingredients for any automated workflow is a rock-solid identity for each user, and we had no data about workers.

Payroll employees
One of the first members of the new “webdev” team was a former Meditech applications analyst who had been learning Microsoft SQL Server on the side, and was interested in making a career transition. I needed someone to build a data warehouse for a new analyst group, and his extensive Meditech knowledge was a godsend.

One of his first tasks was to pull an updated list of all payroll employees from the Meditech payroll module at least daily. We immediately discovered a problem — many employee records were configured with their Social Security number as their employee ID number. Because an employee ID number may appear in many places, this was an obvious privacy issue, so we worked with HR to identify a range of six-digit numbers that weren’t being used for employee ID numbers, assigned new numbers to everyone who was using their SSN, and scripted the changes into Meditech payroll (another way the Meditech knowledge was critical).

But this only solved part of the problem. We now had a list of payroll employees, but it wasn’t clean. It contained employees who had left the organization but whose status was still “Active.” We need to know immediately when an employee is terminated, in order to promptly close system accounts. If we know a termination date in advance, even better!

Discussing with HR, we learned that terminated payroll employees are kept “Active” long enough for any terminal benefits to be paid. This can be as little as a couple weeks (accrued vacation, etc.) or as much as several months (severance pay). That made sense, but we still needed a way to know when the employee had “left the building.”

The solution was to create a new, custom field in Meditech payroll, where HR could input the “real” termination date for an employee. This would be the date when they “left the building,” it could be input in advance of the termination date, and it would be the trigger for us to change the employee’s status for any system accounts, regardless of their official status in payroll.

Now that we had a handle on payroll employees, we needed to track non-employees. Any teaching hospital has a lot of non-employees around, and this organization certainly has its share. Over time, we identified five broad categories of non-employees, each of which has different characteristics:

  • Agency employees (temp agencies)
  • Students (anyone here in a learning capacity, even if not enrolled in a formal program)
  • Volunteers (usually, but not always, part of formal volunteer program)
  • Self-employed contractors (people who receive a 1099-Misc)
  • Vendor employees (anyone employed by someone else, including private physicians, university instructors, contract maintenance staff, etc.)

We built an application on the intranet to create “positions” for every non-employee who had anything to do with the organization. We made sure that there were powerful incentives for people to track their non-employees this way (see Non-Employee Management). With a solid process for managing all non-employees, we finally had a clear picture of how many non-employees were in the organization, and it was quite a shock. Fully 25% of the “workers*” were non-employees! No one had realized that this group comprised such a large percentage of our workers, and it really brought home the importance of tight management of everyone in the organization — not just payroll employees.

Over time, we realized that no ID number was constant for every worker. Employee ID numbers sometimes change for payroll employees (rehire or other administrative issue). Because we have a unique range of worker ID numbers for non-employees, if a worker switches status from employee to non-employee (or vice versa) the ID number changes. Even Social Security numbers can change, and not all workers have Social Security numbers (e.g., foreign nationals who are instructors or students or volunteers).

We needed a number that would virtually never change. So we created a new number, visible to only to certain IT staff, which we called the ITID. This is simply a sequential number assigned to each new worker, regardless of status, which remains constant even as other ID numbers may come and go. This ITID, tracked in our User Access database, became our anchor, with every other bit of data about the worker — including other ID numbers — simply another attribute of that worker, all connected through the ITID.

Lessons learned

  • Find a way to immediately learn about new hires, terminations, job changes, status changes, etc. through the human resources system.
  • The portion of the workforce that is not paid through payroll (or paid at all) may be larger than you think.
  • For health care organizations in particular, compliance with many federal and state regulations about privacy and security is impossible without a good process for tracking non-employees.
  • Solid, timely data about all workers in the organization can be a powerful enabler for all sorts of downstream activities, such as system account management, compliance efforts, etc.
  • There must be some stable, constant identifier for every worker, serving as the connector for all the information about that worker over time.

* For purposes of this post, a “worker” is defined as an individual who has any relationship with the organization other than as a customer.

Posted 11 March 2008


Custom Applications
ADT Event Alerts
Clinical Operations

Integrated Clerkship

On-call Schedules
People Profiles
Chronic Disease

Security Badge Requests
Charge Capture
Mental Health Treatment
      Plan Tracking

Earned Time Calculator

Supervisory Tree
E-mail Distribution Lists
User Access Requests
HR Requests
Employee Health &

Interpreter Dispatching
Generic Patient Registry
Conference Room

Tuition Reimbursement
Equipment Rental
Code Cart Tracking
Nursing Audits

Show me the data
Growing a Data

Building a Data Portal
Reporting on Full Auto

Intranet Design
Driving With Databases
Speeding with Static

Transparent Security
      and Permissions

Redesigning the

Who works here?
Organizational buckets
System access: Who
      has what?

System access: Use
      it or lose it

Integrating Security

Integrating Provider

Creating A Supervisory

Data Quality Dashboard


RSS Feed