Showing posts with label v35. Show all posts
Showing posts with label v35. Show all posts

Thursday, February 6, 2020

Bug Fix For DRGFilt

When validating some of our other software, we discovered a long-standing bug in our DRGFilt product which supports ICD10 codes, both the Linux and Windows implementations. This bug is in versions v33, v34 and v34a, v35 and v35a, v36 and v37.

The patched versions are as follows:

  • v33a
  • v34b
  • v35b
  • v36a
  • v37a

The bug does not affect DRG assignment; it only affects reporting of the DRG weight. Specifically, unpatched executables  report the DRG weight as 10 times greater than it is. Thus 1.2345 was reported as 12.3450.

The good news is that if you are using the weights for their usual purpose, predicting relative resource consumption, you code worked because all the weights were increased by the same factor.

The bad news is that the weights were wrong.

Here are the steps we have taken to correct this issue:

  1. We have patched the sources and built new DRGFilt executables: v33a, v34b, v35a, v36a and v37a.
  2. We have sent updated versions to any and all clients who purchased the buggy products.
  3. We have updated our on-line store with the new executables.
  4. We have posted this message on our Tech Blog
  5. We are updating our QA process to make sure that we do not have weight reporting problems ever again.

Tuesday, April 3, 2018

Release v35a

Executive Summary

On March 30th, 2018 we re-released v35 as v35a to fix a couple of issues. We are sending our free uploads to all the customers who purchased v35  products.

1. The descriptions of ten DRGs (out of the 754) were truncated in the DRG masks file which was part of our initial v35 release;

2. The mean attribute of 73 DRGs were wrong due to a difference in the CMS input files;

3. The mean attribute was not handled correctly by our helper app interface, which affected DLLs, libraries and shared objects (but NOT DRGFilt);

This issues did not impair the ability of our software to assign version35 DRGs, or the weights returned for any DRG assigned. But ten of the descriptions were truncated and 73 of the means were wrong in the reference file and some of the software mishandled the number decimal places in the Geometric Mean Length of Stay (GMLOS).

So DRGFilt customers need only use the new drgmasks.v35 file that comes with the v35a release.

Here is how to know if you have the right masks file: we use the MD 5 Sum:

(https://en.wikipedia.org/wiki/Md5sum)

9117f5ff47cc11df5ef4dfc7c195c30f  v35/drgmasks.v35
7ce8af1b3a9aa50f605de3f2dabe4ae3  v35a/drgmasks.v35

Details

A client reported that a DRG description was wrong, which we quickly  confirmed. Confirming the problem led us to review our mask file creation process and to build a new validation process. We found that the input file from CMS had changed slightly and caused two problems:

1. The DRG description lengths were sometimes much longer than they used to be, so our current maximum of 72 characters was too short for these DRGs: 23, 61, 62, 246, 248, 469, 470, 829, 830

2. The DRG means were imported with the wrong number of implied decimal places for means which were whole numbers, 4.0 became 0.4.

3. For the interface to the DLL, shared objects and libraries, someone fixed the decimal point handling for the part of system, which is why the masks file passed the old validation process.

Going forward we expect the new validation process to catch any future issues with the masks files.

As for the descriptions, we had two choices: (a) to try to edit the descriptions to fit in the current space or (b) to expand the length of the DRG description field in the masks file.

For this year, we decided to go for option (a) to minimize disruption with our software and with our customer's software. The choices we made, which we ran by an outside Medical Records expert before releasing, are listed below.

But as we underestimated the difficulty with shortening the descriptions so starting next year we expect to simply size the DRG description field to accomodate the longest DRG description for any given version.

The descriptions are given below: first the CMS long description and our modified, shortened version.

DRG 023
------------------------------------------------------------------------
CRANIOTOMY W MAJOR DEVICE IMPLANT OR ACUTE CNS PDX W MCC OR CHEMOTHERAPY IMPLANT OR EPILEPSY W NEUROSTIMULATOR
CRANIOTOMY W MAJOR DEVICE IMPLANT OR ACUTE CNS PDX W MCC OR CHEMOTHERAPY

DRG 061
------------------------------------------------------------------------
ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLYTIC AGENT W MCC
ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLY

DRG 062
------------------------------------------------------------------------
ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLYTIC AGENT W CC
ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLY

DRG 246
------------------------------------------------------------------------
PERCUTANEOUS CARDIOVASCULAR PROCEDURES W DRUG-ELUTING STENT W MCC OR 4+ ARTERIES OR STENTS
PERCUTANEOUS CARDIOVASCULAR PROCEDURES W DRUG-ELUTING STENT W MCC OR 4+

DRG 248
------------------------------------------------------------------------
PERCUTANEOUS CARDIOVASCULAR PROCEDURES W NON-DRUG-ELUTING STENT W MCC OR 4+ ARTERIES OR STENTS
PERCUTANEOUS CARDIOVASCULAR PROCEDURES W NON-DRUG-ELUTING STENT W MCC OR

DRG 469
------------------------------------------------------------------------
MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY W MCC OR TOTAL ANKLE REPLACEMENT
MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY

DRG 470
------------------------------------------------------------------------
MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY W/O MCC
MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY

DRG 829
------------------------------------------------------------------------
MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER  PROCEDURE W CC/MCC
MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER

DRG 830
------------------------------------------------------------------------
MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER  PROCEDURE W/O CC/MCC
MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER

Monday, December 4, 2017

DRG Return Code of 9

QUESTION

I have a doubt with the return code “9”, whose description in the manual says “means that the DRG to be labelled is too high for the specified DRG version or that there was a HAC violation”, while in the web grouper the description is “ERROR: Grouper error 9 (DRG number too high)”. I don’t know exactly how to understand this description. I made some tests and found that sometimes the problem is with the POA not informed, but this is not always the explanation. I’m working with version 34.


ANSWER

The short answer is that the description of return code 9 that you are getting is out of date. Starting with our support of ICD10 (v33), the description should be the one you see below:

    "Bad principal diagnosis.",         /* 1 */
    "Bad prin dx for MDC ....",         /* 2 */
    "Invalid age ............",         /* 3 */
    "Invalid sex ............",         /* 4 */
    "Invalid discharge status",         /* 5 */
    "Unspecified DRG error...",         /* 6 */
    "Invalid prin diagnosis..",         /* 7 */
    "No DRG file this version",         /* 8 */
    "HAC POA invalid.........",         /* 9 */
    "DRG number too high.....",         /* 10 */
    "Error in DRG file ......"          /* 11 */


HAC stands for Hospital-Acquired Condition and POA stands for Present on Admission. So an RC of 9 means that you wanted HAC processing (ie you did not specify that the organization is "exempt") but there was something wrong with the POA flag (either missing or an illegal value or was presented in a way which our DRG Assignment Engine could not parse).


Wednesday, November 1, 2017

V35 Test Data Set

We have put up the V35 test data on our etail site: http://www.drggroupers.net/about/ as a free download in case you need the data to debug any of our products.

Specifically, we offer testdbv35.zip which contains our catalog, the CMS data set in the original fixed-width format (testdbv35.txt) and also in comma-separated value (CSV) format.

Archive:  testdbv35.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
   169339  10-30-17 12:52   drgmanv35.pdf
 13407058  10-30-17 12:52   testdbv35.txt
  1055839  10-30-17 12:52   testdbv35.csv
 --------                   -------
 14632236                   3 files

The DRGFilt .INI file groups which correspond to these files are these:

[fixed]
format = fixed          ; input file format
verbose = 0             ; 0 = no debugging information, 1 = debugging information
blip = 1000             ; give progress report every 1,000 records
blipeol = 0             ; 1=newline for progress report, 0=carriage return
batchver = 35           ; assign version 35 DRGs to this batch
maskdir = .             ; directory in which to find drgmasks.v35

; fixed-width input variables: name = length@offset
age =   3@0
sex = 1@3
ds =  2@4
dxl=8           ; dx length does not require an offset
poa= 7
dx = 200@23
mnh@jackal-n2:/drbd/mnh/src/drgs/v35/src$ cat v35.ini
; new format DRGFilt control file, with different groups for different purposes
; Tue Oct 11 09:52:42 EDT 2016 BFH change path in [cgi] to match new server
; Sun Oct  2 10:19:10 EDT 2016 BFH set to v34
; Thu Oct 12 11:34:36 EDT 2017 BFH set to v35

;---------------
; this group is to process the standard fixed-width input file from CMS
;---------------
[fixed]
format = fixed          ; input file format
verbose = 0             ; 0 = no debugging information, 1 = debugging information
blip = 1000             ; give progress report every 1,000 records
blipeol = 0             ; 1=newline for progress report, 0=carriage return
batchver = 35           ; assign version 35 DRGs to this batch
maskdir = .             ; directory in which to find drgmasks.v35

; fixed-width input variables: name = length@offset
age =   3@0
sex = 1@3
ds =  2@4
dxl=8           ; dx length does not require an offset
poa= 7
dx = 200@23
sgl=7@0         ; pr length, offset is optional & ignored
surg= 175@223
exmp = 1@6
; -----
; these are already present from the CMS grouper:
; you could overwrite the incoming values if you wanted to
; drg = 3@603
; mdc = 2@600
; rc = 2@598
; -----

; these are written out by DRGFilt
rc  = 2@1760
mdc = 2@1762
drg = 3@1764

[csv-validate]
format = csv (,) ; separator character is in parens
base = 0 ; indices are zero-based
;base = 1 ; indices are one-based
inheaders = 1           ; 1=input column headers, 0=no input column headers
outheaders = 0 ; 1=want column headers, 0=no headers
crlf = 0 ; type of end-of-line: either crlf or lf
blip = 1000
blipeol = 0 ; 1=newline for progress report, 0=carriage return
maskdir = .
batchver = 35
infile = testdbv35.csv
outfile = testdb.validate.csv
verbose = 1

; input variables: name = index
inid = 0
age =  1
sex = 2
exmp = 3
ds =  4
dx = 5-29
poa = 30-54
surg= 55-79

; these are written out by DRGFilt
outid = 0 ; patient ID from input
drg = 1

Tuesday, October 31, 2017

V35 Released!

Our etail site is now live with the v35 versions of all our products.

http://www.drggroupers.net/

Monday, October 30, 2017

Sunday, October 22, 2017

V35 Windows Products Validated

Our Windows-based products passed validation. The only issue was the ever-annoying leading zeroes problem in MS-Excel. We find that importing the test database CSV always raises this issue: if imported as a CSV, leading zeroes are stripped from procedure codes which mangles those procedure codes.

V35 Linux Products Validated

The v35 Linux products, both 32-bit and 64-bit, have passed validation. On to the Windows products.

Wednesday, October 18, 2017

V35 Basic Validation Done

Our DRG Assignment Engine (DAE) has passed validation.

We found our bug: handling a few of the new attributes was buggy. Specifically attributes in byte 27 and above.

So now our basic v35 engine works and we are busy embedding it in all our products.

Thursday, October 12, 2017

V35 Validation Hiccup

We have hit a snag validating our v35 implementation. We have a single case in the test database which does not group correctly. We are doing a deep dive into our implementation.

Tuesday, October 10, 2017

V35 Changes Are Modest

We have reviewed the v35 version and compared  v35 to v34 and found some modest logic changes and several new attributes for diagnoses and procedures. So we are hoping that implementing v35 will go quickly and smoothly.

Monday, October 9, 2017

Finally Found The CMS Distribution

Our attempts to get the CMS distribution on which we base our upgrade finally paid off.

For years now we found the CMS distribution on the NTIS (National Technical Information Service) web site but this year we could not find it.

Finally, today, we found the CMS distribution on the CMS web site in this file:  MS-DRG-MCE-Software-2017.zip.

So we are finally off to the races.

Sunday, October 1, 2017

V35 Manual

This is where you will find the technical documentation for the v35 versions of our products: [link]