March 30, 2015, 11:13 am

CommonWell hires exec director, aims to grow

The barely 2-year-old CommonWell Health Alliance is coming of age, business wise. It will be demonstrating its adaption of a new interoperability platform at the upcoming Healthcare Information and Management Systems Society convention while also being led by a newly hired executive director.

The not-for-profit alliance, a healthcare information technology industry consortium created to promote electronic health-record system interoperability, was launched—albeit with some controversyin 2013 with Allscripts Healthcare Solutions, Athenahealth, Cerner Corp., Greenway Medical Technologies and McKesson Corp., along with its connectivity unit RelayHealth, as founding members.

Jitin Asnaani, a former federal health information technology policymaker and health IT industry executive, recently was named its first executive director. Next month at HIMSS in Chicago, it will be demonstrating its adaptation of an interoperability platform called Fast Healthcare Interoperability Resources (FHIR).

Read more at modernhealthcare.com.

March 30, 2015, 10:08 am

MUSE Webinar: CPOE Order Set Basics

April 14, 2015 at 2pm Eastern
Cost: $100

This webinar includes how to build an order set CDS, how to build an order set, utilization of reflex orders, tracking order sets and developing preferred providers order sets in MEDITECH Magic 5.6.6.

Each attendees will be able to:

1) Describe the elements of an order CDS
2) Discuss the process of building an order CDS
3) Apply the CDS to the appropriate procedure in OE
4) Review the components of a CPOE order set
5) Design an order set
6) Illustrate localization – reflex order sets, preferred provider sets
7) Evaluate end product

Learn more or register at museweb.org.

March 26, 2015, 3:04 pm

MEDITECH: Kick Off Fall with Your 6.x Peers!

Experience the beauty of fall in New England!

Mark your calendars for our 2015 6.x Peer-to-Peer Information Exchange on September 16-17 at MEDITECH’s brand new Foxborough conference center.

Join us for two days of sessions highlighting our clinically sophisticated tools, customer successes, and our groundbreaking new platform. There’ll be an abundance of networking opportunities, too. Stay tuned for more information!

Questions? Contact Executive Program Coordinator Patty DelSignore.

Source.

March 26, 2015, 2:02 pm

MEDITECH: Transforming Healthcare

Jim Brexler, CEO, Doylestown Health, explains how healthcare systems can transform into proactive organizations that better serve their patient communities.

Source.

March 26, 2015, 1:07 pm

Henry Mayo Newhall Hospital to Adopt MEDITECH’s Web EHR for Long Term Success

Henry Mayo Newhall Hospital (Valencia, CA) has had great success with their MEDITECH software in recent years. Now, they’re ready to advance even further with MEDITECH’s groundbreaking 6.1 Web EHR.

“MEDITECH’s Web EHR has so much to offer our physicians—it’s just what they were looking for, to improve their workflows and patient care experiences,” says Cindy Peterson, CIO and VP at Henry Mayo. “We know that this is the right system, and the right vendor partnership, for us heading into the future.”

Read more at meditech.com.

March 26, 2015, 12:55 pm

KLAS says Epic Systems still tops, Cerner catching up

Epic Systems wins big EHR buying decisions 2-1 over Cerner, down from 3-1 last year, KLAS says. The other players: Meditech, McKesson, and Allscripts.

Epic Systems Corp. still dominates the market for big healthcare system EHRs by a wide margin, but Cerner Corp., after its $1.3 billion acquisition of Siemens AG’s Soarian EHR unit, is narrowing the gap, according to a new EHR purchasing plans survey from KLAS Enterprises LLC.

Meanwhile, the survey found a dramatically consolidated market for acute care EHR systems, with only three other major players challenging Epic and Cerner when hospital officials make buying decisions: Allscripts Healthcare Solutions Inc., Medical Information Technology Inc. (MEDITECH), and McKesson Corp.

Read more at searchhealthit.techtarget.com.

March 25, 2015, 11:20 am

SQL Tip – Managing Diagnosis Codes

Thomas Harlan, Technical Team Lead – Data Repository at Iatric Systems

A common challenge in reporting (or extracting data, in this case) that we see over and over again is the need to transform one data structure into another. The best arrangement of data for the programmer writing the on-line application is not necessarily the best arrangement for the person writing a report or an extract.

The diagnosis (or procedure) codes in ABS are a perfect example of this. For the programmer, you want a list of codes (and attendant extra fields) per abstracted case, and that looks like this:

sql image

Where we see that the list of diagnosis codes is stored, and sorted, in dx.seq.no order and that is a number field that can take up to 99 codes. If we turn around and look at the matching DR table (AbsDrgDiagnoses) with a query like this:

SELECT  ADX.AbstractID                                AS AbstractID

,ADX.DiagnosisSeqID                           AS DiagnosisSeqID

,COALESCE(ADX.Diagnosis,'(?)’)            AS Diagnosis

,COALESCE(ADI.[Name],'(No Diagnosis Entered)’) AS DiagnosisName

FROM    AbsDrgDiagnoses ADX

LEFT JOIN DAbsDiagnoses ADI ON ( ADI.DiagnosisCodeID = ADX.Diagnosis

AND ADI.SourceID    = ADX.SourceID )

We see…

AbstractID

Seq No

Diagnosis

Diagnosis Name
100002

1

276.1

HYPOSMOLALITY
100002

2

331.9

CEREB DEGENERATION NOS
100002

7

442.83

SPLENIC ARTERY ANEURYSM
100002

5

562.10

DIVERTICULOSIS COLON (W/O MENT OF HEMORRHAGE)
100002

4

573.8

LIVER DISORDERS NEC
100002

3

793.0

NOSP (ABN) FINDINGS ON RADIOLOGICAL &

OTH EXAM SKULL & HEAD

100002

6

737.30

IDIOPATHIC SCOLIOSIS

Which looks great… until the report writer building an extract gets a request to show the data like this instead

dx1|dx2|dx3|dx4 … |dx24

In this view of the data we want one row per abstracted case, with the diagnosis codes “flattened” up into that single row, for up to 24 codes. Which is perfectly possible in SQL, like this:

SELECT  ASD.AbstractID  AS AbstractID

,DX1.Diagnosis  AS Dx1

,DX2.Diagnosis  AS Dx2

,DX3.Diagnosis  AS Dx3

,DX4.Diagnosis  AS Dx4

FROM    AbstractData ASD

LEFT JOIN AbsDrgDiagnoses DX1 ON ( DX1.AbstractID = ASD.AbstractID

AND DX1.SourceID = ASD.SourceID

AND DX1.DiagnosisSeqID = 1 )

LEFT JOIN AbsDrgDiagnoses DX2 ON ( DX2.AbstractID = ASD.AbstractID

AND DX2.SourceID = ASD.SourceID

AND DX2.DiagnosisSeqID = 2 )

LEFT JOIN AbsDrgDiagnoses DX3 ON ( DX3.AbstractID = ASD.AbstractID

AND DX3.SourceID = ASD.SourceID

AND DX3.DiagnosisSeqID = 3 )

LEFT JOIN AbsDrgDiagnoses DX4 ON ( DX4.AbstractID = ASD.AbstractID

AND DX4.SourceID = ASD.SourceID

AND DX4.DiagnosisSeqID = 4 )

Which produces what we want:

AbstractID

Dx1

Dx2

Dx3

Dx4

100002

276.1

331.9

793.0

573.8

We get one row per abstracted case, and the DX codes folded up into discrete columns, because we JOIN’ed in the AbsDrgDiagnoses table four times… and if we wanted 24 discrete columns, we would have to join that table in 24 times! And if we needed all possible DX codes – up to that 99 we mentioned before – that is 99 luftballoons – oh, sorry, 99 JOIN’s that we have to write out.

When you hit this problem you start thinking about … a CURSOR, or a TABLE-VALUED FUNCTION, or a PIVOT … but the easiest and fastest way to address this problem is to build a VIEW.

In the past we’ve talked about code reuse and LEGO® building blocks. This is the perfect place to build a VIEW that flattens down all 99 possible diagnosis codes into one line per abstracted case. “But,” you say… “that is a lot of work!”

Yes… but you only have to do it once. And even better, attached to this tip is a VIEW that does it for you! Well, actually, it brings in the first 50 diagnosis codes. Which should cover you for 99% of all cases. But if you need the other 49… they are easy to add.

So you can just install that view in your zcus database instance (after updating the database references for your DR databases) and then you can bring in the data from the VIEW all day long, like this:

SELECT  ADF.Dx01Code,ADF.Dx02Code,ADF.Dx03Code,ADF.Dx04Code,ADF.Dx05Code,ADF.Dx06Code

FROM    dbo.IatricAbsDxCodesFlattened ADF

Which gets you:

Dx 01 Code

Dx 02 Code

Dx 03 Code

Dx 04 Code

Dx 05 Code

Dx 06 Code

V57.89

555.9

276.1

263.9

599.0

799.3

You can also just JOIN to the VIEW as well, as part of the code for your export:

SELECT  ASD.AccountNumber, ADF.Dx01Code, ADF.Dx02Code, ADF.Dx03Code, ADF.Dx04Code,

ADF.Dx05Code, ADF.Dx06Code

FROM    AbstractData ASD

LEFT JOIN zcus.dbo.IatricAbsDxCodesFlattened ADF ON ( ADF.AbstractID = ASD.AbstractID AND ADF.SourceID = ASD.SourceID )

(Note that in MT 6.1 the AbstractID field goes away, and is replaced by VisitID)

Account Number

Dx 01 Code

Dx 02 Code

Dx 03 Code

Dx 04 Code

Dx 05 Code

Dx 06 Code

A0914869722

774.6

A0203879655

648.93

789.00

784.0

A0970887105

789.00

496

250.00

401.9

A0150873503

V57.89

555.9

276.1

263.9

599.0

799.3

A0303888598

174.9

A0104865878

847.0

338.29

784.0

E826.1

E006.4

What about performance using this VIEW? The key for good performance is to JOIN to the VIEW via a primary key, or other indexed field, in the top table in the VIEW, which in this case is AbstractData. If you try doing a JOIN or a WHERE to a specific DX code in one of the Dx?? Code fields – then performance will be slower.

With this in your toolkit, you can easily pull in up to 50 (or more) DX codes flattened down to the abstracted case level with as little effort as possible!

(end)

Visit our report library at http://www.iatric.com/Information/NPRReportLibrarySearch.aspx.

You can find additional Report Writing Tips on our website at http://www.iatric.com/Information/NPRTips.aspx, as well as information about our on-site Report Writer Training and Report Writing Services.

To subscribe for email notifications for new Report Writing classes, please follow this link:

http://www.iatric.com/Information/Classes.aspx.

For more information, please contact Karen Roemer at 978.805.3142 or email
karen.roemer@iatric.com
.

This article originally appeared in the March 2015 issue of Iatric Systems Updates! newsletter.

March 25, 2015, 11:17 am

NPR Tip:  What Happened on March 1st 1980?

Joe Cocuzzo, Senior Vice President – Report Writing Services

MAGIC and Client/Server Time Stamps and how to use them.

Example Reports

Report with “elapsed time” information

Export of Doctor Dictionary Entries created or edited on/after selected date.

List of NPR Reports “run since” elected date

FIRST – The Geeky Background Information…

Most dates in an NPR application are stored internally in YYYYMMDD format and most times are stored in HHMM format. This is convenient for sorting. When a YYYYMM date is printed or displayed, the system country value is checked to determine whether you get MM/DD (US) or DD/MM (everywhere else) format.

Sometimes, MEDITECH uses a different value for a combined date and time, using the number of seconds since March 1, 1980 or, for a date in PCI or RAD, the number of days since March 1, 1980.  Typically uses of this value are:

Building a unique subscript for a transaction queue. Here is the Admissions Transfer Queue from a MAGIC test system (the system appends a tie-breaker when two transactions file in the same second).

NPR Tip Image

Storing a date and time in a user or report activity log. Here is the MIS activity log from the same MAGIC test system:

NPR Tip Image

Here is report activity for a custom NPR report (a face sheet):

NPR Tip Image

Creating a “last update” stamp in a dictionary.

NPR Tip Image

Creating/converting “number of seconds” values.

To produce the “number of seconds” value, use the @.sd NPR macro.

To convert the “seconds” to a YYYYMMDD date use %Z.date.in.magic(@.sd)

To convert the “seconds” to a HHMM time use %Z.time.out(@.sd)

To convert an NPR date and a HHMM time to a seconds value do this:

%Z.date.clinical(YYYYMMDD)*86400+(%Z.time.in(HHMM))

First Report Example – show elapsed time for report in trailer field.

It is sometimes necessary or useful to know how long it takes a scheduled or spooled report to compile and complete. One example is when you are designing a large data export and want to run a portion of the range to project how much time the full export might take.

You can do this in two easy steps:

Store the starting time in seconds, you can do this right in an “AL START” footnote as follows:

NPR Tip Image

Compute the elapsed time in seconds in a field in the report trailer, convert to minutes.

NPR Tip Image

Running the report through a year of transactions, elapsed time 20 minutes:

NPR Tip Image

The Client/Server approach is identical, here is some sample output for one month of transactions:

NPR Tip Image

Second Report Example, all records edited on/after selected date:

Sometimes it is useful to have a report you can run for all records, or only records updated on or after a selected date. For example, rather than sending the entire doctor dictionary to some other-vendor system, you could send an initial export of all doctors and a weekly “update file” of new or edited entries.

Just create a simple dictionary report and add a computed selection field. If you add the BEGINNING keyword, you can run from “BEGINNING” to do a full export of all records.

NPR Tip Image

The xx.last.updated field converts the last update time stamp from “seconds” format to YYYYMMDD

NPR Tip Image

Note that the “last.update” field will not be visible in the field lookups, but all dictionaries have this field, and if you enter it in your computed field logic, it will work.

Here is sample output from a Client Server System (again, C/S and MAGIC approach is identical):

NPR Tip Image

Third Report Example:  List of all NPR Reports run on/after a selected date.

A MEDITECH MAGIC hospital doing a migration to another platform asked me for a list of NPR reports run in the past year. MEDITECH keeps a log of the last 10 runs of a report in a child segment, with a subscript @run.time which is a “seconds” value. To select only reports with the most recent run, we need to somehow get the “last” (largest) value of @run.time and convert to an NPR date (YYYYMMDD) to check to see if it is on or after T-365 (or some user supplied date).

Step one is identical to the dictionary export example above, create a report in the “main” segment, and add a computed select field:

NPR Tip Image

The code for the xx.date field is slightly more complicated because we want to get the largest value of run.date and convert to YYYYMMDD format.

We can either use the @Prev operator or the @Last operator to get the largest value of @run.time for each report. The @Prev operator does a “logical previous” or a “minus” on the subscript, which “backs up” one entry in the list and assigns the previous value back to the subscript. The @Last operator does a “logical previous” but does not assign the value back to the subscript.

Looking at the object code may help you understand the difference:

Using @Prev

NPR Tip Image

So our xx.date field should look like this:

NPR Tip Image

Because we have an IF statement around the code, the value of the field is the condition of the IF.  If there was no activity for a report, the @Prev(run.time) would return nil and the IF would return nil, so the report would not be listed.

Using @Last

NPR Tip Image

The code for xx.date using @Last is shorter and because we can write everything in one expression, no IF if needed.

NPR Tip Image

@Last approach has the advantage that you are not affecting the value of run.time, so if you used multiple fields on your report to show all activity, the code in the xx.date field would not cause problems. @Prev has the advantage of leaving run.time equal to the most recent run so you could put xx.date field on the picture (establishing run.time) and then use the field @run.user and it would be populated with the most recent run user.

Here is example output from a MAGIC site:

NPR Tip Image

If we use the @Last approach and add some multiple fields, we can add activity listing to our report:

NPR Tip Image

The xx.act.date field converts run.time with %Z.date.in.magic. We would not want to use the xx.date in the set of multiple fields because that would give us the most recent run date, not each run date.

NPR Tip Image

For Client Server, you need to add FNC=LST for the field to work.

NPR Tip Image

Here is sample output:

NPR Tip Image

Three example reports (both C/S and MAGIC formats) have been placed in our report library:

Show Elapsed Time for report run: BAR.PAT.zcus.is.eupdate.et

Doctors created/edited on/after selected date:

C/S: MIS.DOC.zcus.is.last.updated.since

MAGIC: MIS.DOC.DICT.zcus.is.last.update.since

NPR reports last run run on/after selected date:  NPR.REP.zcus.is.eupdate.last.run.since

Visit our report library at http://www.iatric.com/Information/NPRReportLibrarySearch.aspx.

You can find additional Report Writing Tips on our website at http://www.iatric.com/Information/NPRTips.aspx, as well as information about our on-site Report Writer Training and Report Writing Services.

To subscribe for email notifications for new Report Writing classes, please follow this link:

http://www.iatric.com/Information/Classes.aspx.

For more information, please contact Karen Roemer at 978.805.3142 or email
karen.roemer@iatric.com
.

This article originally appeared in the March 2015 issue of Iatric Systems Updates! newsletter.

March 23, 2015, 12:02 pm

Bristol Hospital CIO Shares Keys to EHR Success

When MEDITECH customer Bristol Hospital (Bristol, CT) set out on its Stage 7 journey, CIO Dave Rackliffe focused on creating “a safety-first environment in the hospital.” The concept resonated with clinicians.

“We made the case that this isn’t about a recognition or an achievement — this is best practice. And the general hospital population really got onboard with this,” says Rackliffe, who shares his secrets for reaching the pinnacle of EHR optimization with HFMA.

Read more at meditech.com.

March 23, 2015, 12:00 pm

MUSE Tuesday Training Workshops

COST TO REGISTER FOR WORKSHOP $50 EACH
OR $100 FOR AN ALL DAY WORKSHOP
(You must be attending the 2015 International Conference to register for a Tuesday Workshop)

Check them out or register at museweb.org.