PI5 SQL Interface
Previous Topic  Next Topic 


this screen will load the data for the period  selected (whatever you choose .. from one month or 900 months.. suggest update current and 2 prior months as a rule)


The mapping of PI5 depts and staff codes is complex and IS DOCUMENTED HERE


data is in <tla>_PI5Data and <tla>_PI5Util Tables for SQL queries..


Data table holds more detail in Raw form as copied by union query view_PI5_local from the various PI5 servers around the state..


Please ensure that your Application Setup Screen has PI5 set as Allied health System



PI5 Development

This is a complex little thing

Contents

PI5 Development........1

Mapping........3

Mapping Payroll ID to Department (Courtesy of Col Roberts)........4

Jims Comments........4

Development Options........5

Some tips on getting faster queries........6


PI5 Development

This is a complex little thing J

Shortcomings in the detail of data applied to “Program” in PI5 means that the only way to identify special Allied health Funded programs is by the use of PAYROLL staff IDs. There are three Dept elements mappable in PI5.

This is broken out in talons for each Campus TLA as 

(At ROBINA & GCH and GCHU there is a letter prefix as they are all Campus_TLA GCH)

While this may seem daunting, once setup it will be simple to keep in order

An ordered priority cascade exists in the views using a COALESCE sql function

  1. Mapped Staff ID code
  2. Program-profession mapping
  3. Program mapping

The consequence of a new staff member being unmapped is that they will be default map to their program/profession until they are, and if that is not mapped then to the program which will be.

The Products part of the feeder that provides the most manageable number of products is

MINS-<pay level>, with a quantity of minutes. (see options for this)

Group sessions are properly dealt with and shared using the field called DIVISOR.

Where URs / MRNs are not recorded the Talons dummy <x>909090 is used Mr (or Mrs) Phumph

Data is linked to IP, ED and OP using rules suitable for the fact we have no time for the events recorded. A time of 12:00 midday is used rather than midnight as middle of daylight seemed best. Not sure if AH staff work shifts. Something to think about

Data will be loaded weekly in tblPI5Data routinely in future, an Option on the third party load form exists to pull/refresh a specific period is in place.

Data has been loaded from 1/Jul/2011

As the data is replicated in APP2 Clinics.. no allocation of Allied health Labour and parts should be done in the APP2 Clinic Allied health RVUS very important point.. we cannot costs the same stuff in two places.

How you have been allocating IP Costs for Allied Health needs to be clearly understood, Allied health distribution on bedday models needs to be considered very carefully if using PI5..
If PI5 is not catching all your inpatients and outpatients.. you may have a problem


Mapping

After import a spreadsheet is created in T:\PI5 (if you have the Talons SQL Client installed and working correctly!!)

The filename will be similar to <TLA>- PI5-DEPT-MAPPINGS-2013-08-04-1408.xls with the date time of the run in there..

It is similar to the table in dept mapping but with THREE extra columns


Company_TLA

CAMPUS_TLA

Talons_code

Description

Feeder_System

Native_Code

DEPT_CODE

Ward_Type

Clinical_Unit

Campus_No

Start_date

End_Date

Record_Date

prof_group_desc

program_desc

staff_id

NBR

CAL

CALPI:163908

Name removed, OO3, Allied Health Assistant

CALPI

163908

YY9999

12

AH

00043

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

Allied Health Assistant

none

<removed>

NBR

NBR

NBRPI:10

Physiotherapy

NBRPI

10

ZZ9999

12

AH

00049

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

none

Physiotherapy

0000000

NBR

CAL

CALPI:5-8

Nutrition and Dietetics, Occupational Therapist

CALPI

5-8

XX9999

12

AH

00043

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

Occupational Therapist

Nutrition and Dietetics

0000000

NBR

GYM

GYMPI:281823

Name removed, HP3, Physiotherapist

GYMPI

281823

YY9999

12

AH

00068

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

Physiotherapist

none

<removed>

NBR

GYM

GYMPI:14-10

Social Work, Social Worker

GYMPI

14-10

XX9999

12

AH

00068

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

Social Worker

Social Work

0000000

NBR

GYM

GYMPI:273896

Name removed, HP4, Dietitian

GYMPI

273896

YY9999

12

AH

00068

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

Dietitian

none

<removed>

NBR

CAL

CALPI:200625

Name removed, HP3, Occupational Therapist

CALPI

200625

YY9999

12

AH

00043

01-01-1961 00:00:00

01-01-2100 23:59:59

05-08-2013 15:23:30

Occupational Therapist

none

<removed>


Use the right three Columns with Excel filters and then paste appropriate values into DEPT Code column. you should  choose to update on the same filter the Record Date

When finished.. filter using the record date column to those you have changed today,  Highlight the columns from Company_TLA to Record Date and the rows you want to paste, right click then copy  them, then  open the dept mapping table in Talons SQL, then right click in the table grid are and choose paste rows..

My suggestion from scratch,

  1. filter those with a specific program (not none one program at a time) staff id = 000000 , and professional group  = none then map that to the Allied health Department T2 Dept code say 6 or 8 depts. Update DEPT_CODE and  Update record Date only, then clear filters
  2. Filter those with a specific professional group (not none), staff id = 000000 and overlay over any mappings with the default dept for that profession (not Allied health Assistants and nursing staff) one professional group at a time (ignore program) and map to the general Dept for that profession. Update DEPT_CODE and Update record Date only,  then clear filters
  3. Filter those with a general professional group like Allied health Assistants and nursing staff then filter one Program at a time (including NONE) and any staff id and map to the T2 Dept. Update DEPT_CODE and  Update record Date only, then clear filters
  4. That should be everyone mapped.. however select those unmapped YY9999 / XX9999 / ZZ9999 AND  repeat steps one two and three until you get it right..
  5. Identify all your specially funded programs like stroke, outreach to rural hospitals, Community, sport program, school programs  etc
  6. Now find a list of staff id s and names and where they are paid from that are paid from - for example the STROKE program
  7. Filter one at a time to the staff id or search the description for the name. Update DEPT_CODE and  Update record Date only, then clear filters
  8. Okay now finished clear filters then filter to the dates you have entered for record date.. You can select all rows yes..
  9. Select from <row two> to bottom and right to include only record date NOT including heading row!!, right click copy
  10. Open Dept mapping table, right click, and choose paste rows, then verify and save..

Mapping Payroll ID to Department (Courtesy of Col Roberts)


Until PI5 is enhanced to record where an intervention is funded from, use the following interim workaround.

At DDHHS we had 321 payroll IDs recorded within PI5. This effectively gives us 321 “products” to map to TII departments within TALONS SQL. I consider this a manageable number, given new products will only appear as new staff are appointed. (where staff work at higher duties and different pay levels there may be more products!!)

Use the following DSS view to extract FTEs paid from each cost centre for each Payroll ID during 2012/13.

Click on the link below in order to view 'Measures by Cost Centre Code,Paypoint Code,Employee Code,Employee'
http://10.21.44.160/Panorama/Dashboard/dss/CustomOpenView.asp?webpartguid=19CAD30554-84F5-41F0-B7C7-8776784D0C42|1 


Export this as an Excel.

For each employee, select the cost centre with the maximum FTE, or the one you consider most appropriate to map the product against in TII. Delete any other rows for that payroll ID. Now you have one CC per payroll ID.

You will not find some payroll IDs, as in PI5 an interim ID may be used for new employees and this may never be updated to the actual ID. Similarly students and other unpaid workers will be assigned a dummy ID. If you dont match to an ID search your payroll download for the employees name. If still not found, confirm with your Allied Health directors that this person has not been paid during the period (in our case 2012/13).

Write a Crystal from TII to show your Cost Centre to Department mapping. Export as Excel data only.

Import both these spreadsheets to an MS Access database (or use a VLOOKUP) to tag on the department for each Cost Centre for each payroll ID.

This is your TALONS Dept Code to enter against each payroll ID.


Jims Comments

The consequence of a new staff member being unmapped is that they will be default map to their program/profession until they are, and if that is not mapped then to the program which will be.

If there is a need an option to drag this data into Talons SQL by a strictly formatted Excel spreadsheet or two can be considered..


Development Options

G.1.COM.2

Group/Assessment/Community/Allied Health Care Clinic/NIPA Patients present

G.1.code_1.4

Group/Assessment/Community/Allied Health Care Clinic/NIPA Without patients

G.1.COM.4

Group/Assessment/Community/Allied Health Care Clinic/NIPA Without patients

G.1.WRD.1

Group/Assessment/Dialysis Unit/IPA Patients present (include UR Numbers)

G.1.WRD.3

Group/Assessment/Dialysis Unit/IPA Without patients (include UR Numbers)

G.1.WRD.2

Group/Assessment/Dialysis Unit/NIPA Patients present

G.1.WRD.4

Group/Assessment/Dialysis Unit/NIPA Without patients

G.1.COM.1

Group/Assessment/Educational Facility/IPA Patients present (include UR Numbers)

G.1.code_6.4

Group/Assessment/Educational Facility/NIPA Without patients

G.1.EMG.1

Group/Assessment/Emergency Department/IPA Patients present (include UR Numbers)

G.1.EMG.2

Group/Assessment/Emergency Department/NIPA Patients present

G.1.EMG.4

Group/Assessment/Emergency Department/NIPA Without patients

G.1.CLN.1

Group/Assessment/Gym/IPA Patients present (include UR Numbers)

G.1.CLN.4

Group/Assessment/Gym/NIPA Without patients

G.1.HOM.1

Group/Assessment/Home Visit/IPA Patients present (include UR Numbers)

G.1.HOM.3

Group/Assessment/Home Visit/IPA Without patients (include UR Numbers)

G.1.HOM.2

Group/Assessment/Home Visit/NIPA Patients present

G.1.HOM.4

Group/Assessment/Home Visit/NIPA Without patients

G.1.code_3.1

Group/Assessment/Hospital Ward/IPA Patients present (include UR Numbers)

G.1.WRD.1

Group/Assessment/Hospital Ward/IPA Patients present (include UR Numbers)

G.1.WRD.3

Group/Assessment/Hospital Ward/IPA Without patients (include UR Numbers)

Some tips on getting faster queries

Dynamic episode matching and dept mapping requires all records in a table to be tested for the presence of the episode if you ask for an episode.  soooo slow!!!

Using sub queries to limit the scope of the data in which you want to find the episode is much much faster

e.g.
select * from atable where dyn_episode = 123456-1 has to look at all records in atable..

select * from (select * from atable where ur = 1234561) as aa where dyn_episode = 123456-1
limits the examination  to a very small set of records. Indexes are used to find the ones with the correct UR and the table of the sub-query passed back to the outer query. Almost instant.

MSSQL does this optimising for many many queries automagically - but function columns like episode cannot be optimised unless you do it.

The same applies to limiting the query by other criteria like date range.