Tuesday, November 22, 2011

Disease Costing


I would like to know if the DRG batch Grouping come with already grouped diseases with costing?
If not how do we get disease grouping that we can begin to work with?


The short answer is that our software does not perform any financial calculations. However, the output of our DRG Assignment Engine (DAE) can be used as the input to many such calculations.

As we understand it, "disease costing" is the calculation of what an individual, group or community spends, directly or indirectly, as a result of a given health condition or conditions.

In the US, the DRGs were used as the basis of a prospective payment system for hospitals; each DRG is assigned a weight to represent the expected resource utilization (cost) of a typical inpatient stay for that DRG.

For more information, consult our manual's Reimbursement section.

In our experience, the usual method for disease costing using DRGs is to match either hospital-specific or regional "factors" with DRGs, so multiplying the factor times the DRG weight gives the expected disease cost for an individual case. Multiply again by the number of cases and you have the theoretical disease cost for the population under study:

Disease cost = (Number of cases with this DRG) x ((DRG weight) x (DRG factor))

We do not endorse or recommend any particular set of factors. We generally find such sets of factors to be published by the World Health Organization or local universities engaged specifically in this kind of research.

We are happy to provide support for implementing disease costing on a consulting basis.

Saturday, November 19, 2011

Issue Downloading Software


I get a 403 forbidden error when trying to download the software I just
purchased, please advise. Details follow:

Forbidden. You don't have permission to access /downloads/DRGGroupers-613596.zip on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request


This was a problem with our web site building configuration. We have resolved this problem, both on the active site and in our development environment. We apologize for the inconvenience.

Friday, November 11, 2011

Why You Should Email Before Uploading Files

Last night there was an unannounced upload to our drop box. We generally ignore unannounced uploads and allow them to be automatically deleted after a few days, on the assumption that it was a mistake or an attack. We happened to have the time to inspect last night's upload and deleted it immediately as it was obviously an attack.

It was named "s.php" but upon inspection with a text editor, far from any web server environment in which it might run, it turned out to be a rather old attack, c99shell.

This is an example of why we require that customers alert us via email before uploading files. It is a shame that we have to have this policy, but we do have to have it.

Thursday, November 10, 2011

Dropbox Support?


Do you support Dropbox (www.dropbox.com) for exchanging files?


Not yet; internally we have been trying out Dropbox and really like it, but we need to make sure that it meets our privacy standards first, and then we need to figure out how many of our clients are using it. We are certainly open to using it to exchange files; we should be able to accommodate individual cases as we continue our evaluation, so send us email if this is how you want to send or receive files.

Tuesday, November 1, 2011

Question About DRG27


Hey there I currently have your v27 software and we recently put this into production for the current year.

My question is if it's backward compatible ?  I need to go back 3  years in my dataset and assign a drg value.  Can I use your software version to do this ? will it look at the service dates and assign a previous version ?  Or, must I buy a previous version or versions and apply based on the year ?

Thanks for your help.


(Before we start, I should point out the current version is F29, not F27; you can see the complete list of versions here:


For the purposes of this answer, I will assume that you knew this already and that you wanted F27.)

In order to assign DRGs for a given version, you need two things:
  1. Logic, which we encode in software
  2. Code attributes, which we encode in masks files
The software is always for a given version; in your case, that is F27. The software is backwardly compatible, provided that you have the masks files for previous vesrions.

So if  you have software for F27 and want to assign DRGs for F24, then all you would need to do is to buy the masks file ($100 from our on-line store at the above link) for F24. In fact, you can buy masks files for any version before F28 and then be able to assign DRGs for that version.

File Upload

Customers often need to send us files as part of our DRG Assignment Service (DAS) and customers sometimes need to send us files as part of getting technical support.

To handle either case, we have added a File Upload page, powered by TransferBigFiles.com. This upload page is available from the navigation bar at the top of any of our web pages from our main site:


You can also reach it directly at


Please let us know what you think.

Friday, October 21, 2011

Phone Support

We have overhauled our internal phone system, in order to separate ourselves a bit from our parent company, M+H Consulting.

Since we have people in Oregon, Massachusetts and Connecticut, we know that our internal communication has sometimes been lacking.

You will still call 203-481-4885, but the extensions have changed:
  • Extension 104: Sales Support
  • Extension 105: Tech Support
With our new phone system, messages actively follow us around, so we hope to cut down on response time.

Wednesday, October 19, 2011

Where Is My Software?


We just purchased the above referenced software on our Purchase Order
Number XXXXXXXXX.  The Pay-Pay Receipt number is XXXX-XXXX-XXXX-XXXX.  At
the time the order was placed there was no shipping method specified.
Could we have the software emailed to us?


We are happy to email confirmed purchases. Your file is on its way, assuming that no email firewall between us intercepts it because it contains a .EXE file.

(If the email is rejected, we will send it via TransferBigFiles.com, a third party service. They will send you an email and you can use the link in that email to pull down your purchase.)

We hear that a purchase did not go through at least once a month, so we are writing up this answer in case our process is not intuitive.

The typical purchase should go like this:
  1. You place the order
  2. Our system confirms the payment
  3. The software should start to download during your session
  4. As a back up, an email is sent to you with a link

F29 Release: AIX Support

We have just released DRGFilt for AIX.

The version of AIX under which we built and tested this executable is this:

AIX host-name 1 6 00C1FB204C00

We can build any of our Unix-based products for AIX, but DRGFilt is the only one popular enough to be in the on-line store: all others are built on-demand.

F29 Release: When AIX Support?


When will the DRG for AIX be available for version 29?  I didn't see
anything on the tech blog about an ETA.

Excellent question, it should be available in about two hours (ie, about Noon Eastern Time today). Sorry for the poor communication.

Thursday, October 13, 2011

F29 Release: Web Site Updated

Our web site has been updated. This completes our initial F29 release.

F29 Release: Product Catalog

Our product catalog is fully assembled except for the porting lab products, which are not done yet:

  • AIX DRGFilt

F29: Support Changes

As of F29, we no longer support the ICL rapid application development environment (IDE, BDE).

We have decided to continue support for 32 bit Linux this year, but we are on the fence about that, so we are going to take a poll about 32 bit Linux support for next year.

F29 Manual: What Changed

We have revised our manual for F29. Here is what changed with the F29 version of the manual:
  • updated various dates in the text
  • fixed typo "appeneded" in various chapters
  • chapter 3: added documentation of bit string DAE outputs, per this tech support question.

Wednesday, October 12, 2011

F29 Standing Orders Have Been Filled

Our pre-ordered F29 orders and our standing orders have been filled.

Left to do:
  • publish an updated manual
  • update our on-line store
  • release the updated web site

F29 Release: Windows Validation

Win32 DRGFilt...Passed
Win32 C-callable DLL...Passed
Win32 VB-callable DLL...Passed
Win32 VB-DRG / VB-callable DLL compatibility...Passed
Win32 CGI-DRG...Passed
Win32 F29 ICD9 table...Passed
Win32 ICD labeling DLL...Passed

Win32 F29 masks installer...Passed
Win32 C-callable DLL installer...Passed
Win32 VB-callable DLL installer...Passed

Our windows product line is validated and ready for shipping.

Tuesday, October 11, 2011

F29 Release: Linux Validation

F29 Linux Product Validation Log

Masks for F29...Passed
DAE Regression Test...Passed
Linux DRGFilt for F29...Passed
Demo Linux version of DRGFilt...Passed
Linux C Shared Object for F29...Passed
Linux Perl Shared Object for F29...Passed
Linux PHP Shared Object for F29...Passed
Linux CGI-DRG for F29...Passed


Masks for F29...Passed
Validated the masks file against official list, which we found here. Not that some MS-DRGs are not defined, such as 9, 18, 19, etc.

DAE Regression Test...Passed
Ran the latest DAE through our regression testing suite.

[Tue Oct 11 16:33:41 2011]     | --------SUMMARY-----------
[Tue Oct 11 16:33:41 2011]     |   v29: Ok
[Tue Oct 11 16:33:41 2011]     |   v28: Ok
[Tue Oct 11 16:33:41 2011]     |   v27(poa): Ok
[Tue Oct 11 16:33:41 2011]     |   v27: Ok
[Tue Oct 11 16:33:41 2011]     |   v26(poa): Ok
[Tue Oct 11 16:33:41 2011]     |   v26: Ok
[Tue Oct 11 16:33:41 2011]     |   v25: Ok
[Tue Oct 11 16:33:41 2011]     |   v24: Ok
[Tue Oct 11 16:33:41 2011]     |   v23: Ok
[Tue Oct 11 16:33:41 2011]     |   v22: Ok
[Tue Oct 11 16:33:41 2011]     |   v21: Ok
[Tue Oct 11 16:33:41 2011]     |   v20: Ok
[Tue Oct 11 16:33:41 2011]     |   v19: Ok
[Tue Oct 11 16:33:41 2011]     |   v18: Ok
[Tue Oct 11 16:33:41 2011]     |   v17: Ok
[Tue Oct 11 16:33:41 2011]     |   v16: Ok
[Tue Oct 11 16:33:41 2011]     |   v15: Ok
[Tue Oct 11 16:33:41 2011]     |   v14: Ok
[Tue Oct 11 16:33:41 2011]     |   v13: Ok
[Tue Oct 11 16:33:41 2011]     |   v12: Ok

Linux DRGFilt for F29...Passed
Validated the DAE with DRGFilt against the test data set with this control file:

age  000 03
sex  003 01
ds   004 02
dxl  000 08
poa  000 07
dx   023 96
sgl  000 07
surg 223 98
exmp 006 01
# these are written out by us
drg  607 03
mdc  610 02
rc   612 02
dflg 614 15
sflg 629 15

Using our validation script, we compare the incoming DRG at offset 603 to our DRG at offset 607, the incoming MDC at 600 with ours at 610, the incoming RC at offset 598 with ours at 612.

Demo Linux version of DRGFilt...Passed
This free version only does F10. Validated it against our internal F10 dataset of 35,451 records.

Interactive Test Cases
We don't run the entire test dataset through our interactive UIs because it would be too much work for too little gain. Once we validate the core DAE, we validate the UIs with a sample of the official test dataset. This year that sample looks like this:

   Age: 049
   Sex: F
  Disp: 01
   MDC: 21
   DRG: 908
  DX's:  Code :E:P where E=exempt flag P=present on admission flag
  DX01: 99679 : :
  DX02: 25041 : :
  DX03: 5859  : :
  DX04: 2767  : :
  DX05: 25051 : :
  DX06: 36904 : :
  DX07: 25061 : :
  DX08: 3371  : :
  DX09: 40290 : :
  DX10: 2859::

Proc's:  Code
  SG01: 3942  
  SG02: 3993  
  SG03: 3995
   Age: 059
   Sex: M
  Disp: 01
   MDC: 01
   DRG: 074
  DX's:  Code :E:P where E=exempt flag P=present on admission flag
  DX01: 3564  : :
  DX02: 2639  : :
  DX03: 311   : :
  DX04: 2761  : :
  DX05: 5601  : :
  DX06: 5180::

Proc's:  Code
  SG01: 9383  
  SG02: 9339

   Age: 050
   Sex: M
  Disp: 01
   MDC: 04
   DRG: 182
  DX's:  Code :E:P where E=exempt flag P=present on admission flag
  DX01: 1628::

Proc's:  Code
  SG01: 324   
  SG02: 3409  
  SG03: 8965  
  SG04: 9396

   Age: 077
   Sex: F
  Disp: 03
   MDC: 08
   DRG: 563
  DX's:  Code :E:P where E=exempt flag P=present on admission flag
  DX01: 81611 : :
  DX02: 25081 : :
  DX03: 2512  : :
  DX04: E8849 : :
  DX05: 3319  : :
  DX06: 04110 : :
  DX07: 8831::

Proc's:  Code
  SG01: 7904  
  SG02: 9659  
  SG03: 8659

   Age: 081
   Sex: F
  Disp: 01
   MDC: 02
   DRG: 117
  DX's:  Code :E:P where E=exempt flag P=present on admission flag
  DX01: 3659::

Proc's:  Code
  SG01: 1279

Linux C Shared Object for F29...Passed
Validated the Linux C shared object with this test case, to also confirm that the used codes bit flag handling is now correct:

   Age: 055
   Sex: F
  Disp: 01
   MDC: 08
   DRG: 455
  DX's:  Code :E:P where E=exempt flag P=present on admission flag
  DX01: 71500 : :Y

Proc's:  Code
  SG01: 8134  
  SG02: 8135

Raw return value from mhdrg:
0^8^455^29^5.6449^0.00^ ^COMBINED ANTERIOR/POSTERIOR SPINAL FUSION W/O CC/MCC                  ^1^11

Deconstructed return value from mhdrg:
rc=0, mdc=8, drg=455, ovn=29, weight=5.6449, mean=0.00, porm=
dx flags:1, px flags: 11

Expected result: RC: 0 MDC: 08 DRG: 455

Significant ICD codes:
 * DX code  1 was used
 * Proc code  1 was used
 * Proc code  2 was used

Linux Perl Shared Object for F29...Passed

Validated the Perl shared object against the same test case as C shared object.


Linux PHP Shared Object for F29...Passed
Validated the Perl shared object against the same test case as C shared object.

Linux CGI-DRG for F29...Passed
Validated the Linux CGI-DRG against same test case as C shared object.

Expected F29 Release: still 10/12/11

Development has turned over the ICD9 F29 DAE to us for validation, a process we expect to complete in time for a release tomorrow.

The ICD10-prototype-for-F28, which we call X28, will be out of development soon.

Version 29 of ICD10 won't be released until January, 2012, so development won't be done with X29 until the end of January, 2012, at the earliest.

Sunday, October 9, 2011

Expected F29 Release: 10/12/11?

When we predicted that we would do a release on 10/10/11, we forgot that 10/10/11 is a holiday hereabouts and that we are closed for business. We will need at least a day to get ready after we get back to work, so we are looking at 10/12/11 at the earliest now.

Saturday, October 8, 2011

Web Site Overhaul for F29

As part of our annual release this year, we are overhauling our web site.

We expect to release the new web site when we release the new version. We still expect to do the release sometime on October 10th, 2011.

We hope that the streamlining will make the site more useful to our customers. Let us know if it does not.

Friday, October 7, 2011

Expected F29 Release: 10/10/11

We were not able to get our release out yesterday; we currently expect to do the release on Monday, October 10th.

Tuesday, October 4, 2011

Codes Used in DRG Assignment, Continued


This is a follow-up to an earlier question.
When I use this.......
$retval = mhdrgc::mhdrg(
         #'f26p',                        # which DRG version you want
         'f28',                        # which DRG version you want
         '/home/programmer/grouper',        # path to masks files
         '1',                        # discharge status (home)
        '72',                        # patient age on admission
        '2',                        # patient sex (1=male, 2=female)
        # ICD DX codes
         '3313    3312    Y49320  Y5990   N7812   Y3051   Y73300  Y3004   Y3320   Y71598  Y412    ',
        # ICD procedure codes
        '0331            ',
        '8',                        # length of each ICD DX code
        '7',                       # length of each ICD procedure code
I'm putting in 11 DX codes and 1 procedure code.

What I get back is this...
0^1^57^28^0.9350^0.00^ ^DEGENERATIVE NERVOUS SYSTEM DISORDERS W/O MCC                         ^1^0

The blog states ...
"The strings are positional: 1001 means that the first code was used, codes two and three were not but code four was. "

Shouldn't the output be more like 
0^1^57^28^0.9350^0.00^ ^DEGENERATIVE NERVOUS SYSTEM DISORDERS W/O MCC                         ^10000000000^0

That is, 3313 was used, but the other ten weren't?


You are referring to the bitstrings of which diagnoses or procedures that were used in the DRG assignment. For the DRGFilt product, these are sflg and dflg keywords.

You are correct, there is a bug in the interface routine. What we see at the lowest level, when we run your example through our testbed, is this:

Diagnosis flags=(100000000000000000000000000000)
Procedure flags=(000000000000000)

So somewhere between the DAE and the Perl interface,the output is being stripped of trailing zeroes, which is not what we want in this case.

We have opened an internal bug and expect to have this fixed in the upcoming release.

Sunday, October 2, 2011

Expected F29 Release: 10/06/11

Due to popular demand, this year we are publishing an expected release date for a version.

We expect to release support for version 28 of the US Federal DRG assignment algorithm, active as of October 1st 2011, on October 6th, 2011.

If you have pre-ordered from us, we expect you to have your software by close of business on October 6th, 2011.

We expect to publish an updated manual at the same time.

Tuesday, September 20, 2011

ICD10 Readiness

As a business partner, we are contacting you to establish what your
current ICD-10 readiness posture is and if your organization has a
comprehensive action plan designed to assure that your systems and data
will be able to accurately transact both ICD-9 and ICD-10 codes.


We are well on our way to full ICD10 support; we expect to maintain backward compatibility for ICD9. For details, see the "ICD10-Based DRG Prototype" link at the top of this page.

Monday, September 19, 2011



what version of DRGs are being used in your batch filter program APR or MS ?


We support only the US Federal DRG assignment algorithm. This algorithm is also called the "MS DRGs" (Medicare & Medicaid Services) and the "CMS DRGs" (Center for Medicare and Medicaid Services).

We used to support New York state DRGs and a few others, but we got out of that business a while ago.

APR (All Payor, Refined) DRGs are a 3M thing and you find more information on their web site:


Friday, September 9, 2011

How Many DX Codes?


Your documentation states that the groupers currently only utilize up to nine diagnosis codes. Are you planning on increasing that number to 25 in conjunction with the recent changes CMS has implemented?


Our ICD9-based DRG Assignment Engine supports up to 15 diagnosis codes. Our ICD10 prototype currently supports 30 diagnosis codes, but we only commit to supporting the expected 25.

Wednesday, September 7, 2011

Annual Release Dates


I just wanted to get a status update on the release date of the new grouper for this year and get on the list to obtain it as soon as possible.


Our products track with the US Federal (CMS) versions. They release on or about October 1st every year. We try to release as close to October 1st as we can. We usually release within five business days of October 1st. On rare occasion, we are later or earlier.

We cannot guarantee a release date as the CMS releases vary greatly in size and complexity.

We are aware that many of our customers need the release to be as close to October 1st as possible, so we are working hard this year to make sure that this happens, even as ICD10 looms over us.

Tuesday, August 30, 2011

Codes Used in DRG Assignment?


Hi Tech Support,

The PDF is very informative but it appears to be missing explanation of a couple of the output codes. I get ten bits of info but only first eight appear to be documented in the grouper's documentation PDF ("UNIX Embeddable Grouper API": pages 31-32). Those are .......

1. Grouper return code
2. Major Diagnostic category of assigned DRG
3. DRG assigned to patient encounter
4. DRG version number used to assign DRG
5. The weight of the DRG
6. Geometric mean length of stay for DRG
7. PorM flag
8. DRG description

The string I had returned to me by the grouper was....

It's the last two fields of "1" and "0" that appear to be undocumented.

The last question I have is regarding the significance of diagnosis codes. When feeding a list of diagnosis codes into the grouper, is there a way to determine which of the diagnosis codes were significant in the grouper's decision making? I ran across something like that on page 22 (section labeled "Output") of the PDF that you folks package with the grouper.

Thanks so much for all of your assistance.


The lack of documentation for these fields is definitely an oversight, thank you for pointing this out. We will include these fields in the updated manual when we release it this coming October.

Those two fields are ASCII-ified bit strings of which codes were used in the DRG assignment. The first field is a string of diagnosis bits and the second string is a string of procedure bits. The strings consist of either an ASCII '1' or an ASCII '0'. A one means "this code was used" and a zero means "this code was not used."

The strings are positional: 1001 means that the first code was used, codes two and three were not but code four was.

Friday, August 19, 2011

ICD10 Transition?


How are you handling the transition to ICD10, especially the years that both ICD9 and ICD10 are supported?


The prototype ICD10 grouper we built was x28 -- FY2011 ICD-10 codes and grouper logic equivalent to f28. The FY2012 ICD-10-PCS (procedure) codes are published, and the FY2012 ICD-9 MS-DRG grouper (f29) will be available in early October 2011, but the FY2012 ICD-10-CM diagnoses are not going to be released by NCHS until December 2011. Hence, no FY2012 ICD-10 MS-DRG grouper (x29) can be produced before January 2012.
The plan is that starting FY2013, there will be no changes to ICD-9 and the FY2013 ICD-10 codes will be available on or before October 1, 2012, so f30 will be the same as f29 and x30 will be available for the start of FY2013. For testing purposes, users coding in ICD-10 will have to code in the FY2011 ICD-10 and use the x28 grouper until January 2012.