tag:blogger.com,1999:blog-37839639290288079532024-03-05T04:20:54.161-08:00DRGGroupers Tech BlogPlease check the FAQ first, it really is a list of answers to our most frequently-asked questions.Unknownnoreply@blogger.comBlogger184125tag:blogger.com,1999:blog-3783963929028807953.post-91718994405387234512021-10-03T15:52:00.002-07:002021-10-03T15:52:18.660-07:00V39 Technical Documentation<p> For future reference, here is a link to our v39 documentation: [<a href="https://brendan-hemingway-66z3.squarespace.com/s/drgmanv39.pdf">link</a>]</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-15564198859559633042021-10-01T15:45:00.004-07:002021-10-03T15:47:13.286-07:00V39 Released<p> As of about 6:54 pm Eastern on October 1, 2021 we released versions of our products which support v39 of the US federal grouping algorithm, which version went into service on October 1st, 2020.</p><p>For a list of what is new and different in this version, please refer to our latest documentation (link to PDF available on our etail site or this blog's main page).</p><div><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-27039218351195651702020-10-06T07:09:00.001-07:002020-10-06T07:11:15.421-07:00V38 Technical Documentation<p> <span face="Arial, Tahoma, Helvetica, FreeSans, sans-serif" style="background-color: white; color: #444444; font-size: 13px;">The link to our v38 technical documentation is here: [<a href="http://www.drggroupers.net/s/drgmanv38.pdf">link</a>]</span><span face="Arial, Tahoma, Helvetica, FreeSans, sans-serif" style="background-color: white; color: #444444; font-size: 13px;"></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-32327670569200392982020-10-06T07:02:00.003-07:002021-10-03T15:47:49.153-07:00V38 Released<p>As of about 9:30 am Eastern on October 6, 2020 we released versions of our products which support v38 of the US federal grouping algorithm, which version went into service on October 1st, 2020.</p><p>We were a bit delayed by COVID-19 related issues and an ancient bug in our exclusions loader (there are many new exclusions in this year's version).</p><p>For a list of what is new and different in this version, please refer to our latest documentation (link to PDF available on our etail site or this blog's main page).</p><div><br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-88928524466227792132020-04-10T10:58:00.001-07:002020-04-10T10:58:58.570-07:00Lowering AIX SupportSince we do not sell enough of them on-line to warrant putting them on-line every year,<br />
we are dropping the AIX version of DRGFilt. We are still able to produce the product, so<br />
we will be making it an on-demand item for at least the coming year. If you want to purchase<br />
the AIX DRGFilt, you will have to send us an email, probably via this tech blog.<br />
<br />
Please note that it may take us up to 5 business days to compile, validate and ship the item after we receive payment for an on-line invoice.<br />
<br />
While we are on the topic, we can build DRGFilt for many more Unix systems than we do. Currently we do not charge extra for custom requests, but we reserve the right to do so.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-24171214652381141132020-04-10T10:49:00.002-07:002020-04-10T10:49:26.561-07:00V37b Released (CMS 37.1 R1)The group responsible for defining the DRGs each year are the Centers for Medicare and Medicaid Services (CMS). They are a part of the US federal government.<br />
<br />
Normally, each version DRGs is released on October 1st, the start of their fiscal year. So it was with version 37 on October 1st, 2019. A little while later we followed suit with our implementation of their algorithm.<br />
<br />
On April 1st, 2020, CMS 37.1 release 1 (37.1 R1 in their terms) was released in response to the COVID-19 pandemic. <a href="https://www.aha.org/news/headline/2020-03-23-new-covid-19-ms-drg-assignment" target="_blank">This</a> is a link to an AHA article on the subject.<br />
<br />
This update also includes provision to support diagnosis of vaping. You can find a CMS bulletin about the support <a href="https://www.cms.gov/files/document/icd-10-ms-drgs-version-371-effective-april-1-2020.pdf" target="_blank">here</a>.<br />
<br />
Since this release supercedes v37 and v37a, we are <u>replacing</u> our v37 offerings with their v37b counterparts. For the most part, you can tell the difference by looking at the software's internal version number, which should be reported as "v37b".<br />
<br />
However, in order to minimize the pain of upgrading, all the software still expects "v37" as the input and output version numbers and the masks file has the same name. You can tell the difference between the mask files, despite their names, by their md5sum values:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">0056716453280971ae09e915fb2c738a drgmasks.v37 <---------v37b</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">dec337b97acaa2c50fb6738a6727b332 drgmasks.v37.0 <-------v37 & v37a</span><br />
<div>
<br /></div>
Any customer who purchased a V37 product will be offered a free upgrade.<br />
<br />
Any customer who purchases a V37 product going forward will be v37b.<br />
<br />
You can confirm that you are running v37b by using either of the two new diagnosis codes and seeing that they are properly handled:<br />
<br />
<table border="1" cellspacing="3" colspan="3">
<tbody>
<tr><th>Code</th><th>Description</th><th>CC</th><th>MDC</th><th>DRGs</th></tr>
<tr><td>U07.0</td><td>Vaping-related disorder</td><td>N</td><td>04</td><td>205, 206</td></tr>
<tr><td>U07.1</td><td>COVID-19</td><td>MCC</td><td>04</td><td>177, 178, 179</td></tr>
<tr><td colspan="3"></td><td>15</td><td>791, 793</td></tr>
<tr><td colspan="3"></td><td>25</td><td>974, 975, 976</td></tr>
</tbody></table>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-72620056633815555462020-02-06T14:19:00.001-08:002020-02-06T14:19:11.451-08:00Bug Fix For DRGFiltWhen 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.<br />
<br />
The patched versions are as follows:<br />
<br />
<ul>
<li>v33a</li>
<li>v34b</li>
<li>v35b</li>
<li>v36a</li>
<li>v37a</li>
</ul>
<br />
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.<br />
<br />
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.<br />
<br />
The bad news is that the weights were wrong.<br />
<br />
Here are the steps we have taken to correct this issue:<br />
<br />
<ol>
<li>We have patched the sources and built new DRGFilt executables: v33a, v34b, v35a, v36a and v37a.</li>
<li>We have sent updated versions to any and all clients who purchased the buggy products.</li>
<li>We have updated our on-line store with the new executables.</li>
<li>We have posted this message on our Tech Blog</li>
<li>We are updating our QA process to make sure that we do not have weight reporting problems ever again.</li>
</ol>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-70053452025226196392020-01-30T14:05:00.000-08:002020-01-30T15:00:29.425-08:00Updated VB.NET Sample CodeWe recently had to help a customer get our DLL to work in their VB.Net environment because our sample code was so out of date. In order to spare other customers this pain, we post this code example. Note that this code is for version 37 (v37); change the version to match your particular situation.<br />
<br />
<hr />
<div>
Option Explicit On</div>
<div>
Imports System.Deployment</div>
<div>
Imports System.Runtime.InteropServices</div>
<div>
<br /></div>
<div>
Module Module1</div>
<div>
Private Declare Function mhdllver Lib "vbdrgv37.dll" (ByVal Buf As String,</div>
<div>
ByVal BufLen As Int32) As Integer</div>
<div>
<br /></div>
<div>
Private Declare Function mhdrg1 Lib "vbdrgv37.dll" (ByRef drg As Int32,</div>
<div>
ByVal DRGVersion As String, ByVal MasksPath As String, ByVal DischStat As String,</div>
<div>
ByVal PtAge As String, ByVal PtGender As String, ByVal DXList As String,</div>
<div>
ByVal ProcList As String, ByVal POAPresent As String, ByVal ExemptFlag As String) As Int32</div>
<div>
<br /></div>
<div>
Private Declare Sub mhinfo Lib "vbdrgv37.dll" (ByVal drg As Int32,</div>
<div>
ByVal DRGVersion As String, ByVal MasksPath As String, ByRef mdc As Int32,</div>
<div>
ByRef weight As Double, ByRef los As Double, ByVal Desc As String, ByVal DescLen As Int32)</div>
<div>
<br /></div>
<div>
Private Declare Function mhdrgver Lib "vbdrgv37.dll" (ByVal MPath As String,</div>
<div>
ByVal Buf As String, ByVal BufLen As Int32) As Int32</div>
<div>
<br /></div>
<div>
Private Declare Sub mherrdesc Lib "vbdrgv37.dll" (ByVal errBuffer As String, ByVal errLength As Int32)</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Sub Main()</div>
<div>
AssignDRG()</div>
<div>
End Sub</div>
<div>
<br /></div>
<div>
Public Function AssignDRG()</div>
<div>
Dim ReturnCode As Integer</div>
<div>
Dim drg As Int32, mdc As Int32</div>
<div>
Dim Desc As String</div>
<div>
Dim descLen As Int32</div>
<div>
Dim weight As Double, los As Double</div>
<div>
Dim masksdir As String</div>
<div>
<br /></div>
<div>
Dim myver As String, mydstat As String, myage As String, mysex As String, myexempt As String, mypoa As String</div>
<div>
Dim mydxstring As String</div>
<div>
Dim mypxstring As String</div>
<div>
Dim pos As Int32</div>
<div>
<br /></div>
<div>
' Hardcoded in this example</div>
<div>
masksdir = "C:\Program Files (x86)\MandH\MASKS\" & ControlChars.NullChar</div>
<div>
<span style="white-space: pre;"> </span>' Ideally, got from registry. Old VB-for-Access example:</div>
<div>
<span style="white-space: pre;"> </span>' masksdir = QueryValue("Software\MandH\", "BaseDir") & "\Masks\"</div>
<div>
<br /></div>
<div>
myver = "v37e"<span style="white-space: pre;"> </span>' version 37, exempt from HAC rules</div>
<div>
mydstat = "1"</div>
<div>
myage = "77"</div>
<div>
mysex = "1"</div>
<div>
mydxstring = "I2119^"<span style="white-space: pre;"> </span>' ^ terminates the string; any of ,|-+ separate fields; ~ is followed by PoA</div>
<div>
mypxstring = "02703ZZ^"</div>
<div>
mypoa = "N"<span style="white-space: pre;"> </span>' no POA because no HAC rules</div>
<div>
myexempt = "X"<span style="white-space: pre;"> </span>' crazy way this works: X = exempt, Z = not exempt</div>
<div>
descLen = 80<span style="white-space: pre;"> </span>' left over from dumb ASCII terminal days; use whatever you like</div>
<div>
<br /></div>
<div>
' these should come back from the DLL call</div>
<div>
drg = 0</div>
<div>
mdc = 0</div>
<div>
weight = 150</div>
<div>
los = 10</div>
<div>
Desc = Space(descLen)</div>
<div>
<br /></div>
<div>
<span style="white-space: pre;"> </span>' confirm which DLL we have loaded</div>
<div>
drg = mhdllver(Desc, descLen)</div>
<div>
' deal with char ASCIIz (null-terminated string)</div>
<div>
pos = InStr(1, Desc, ControlChars.NullChar, CompareMethod.Binary)</div>
<div>
Console.WriteLine("DLL Version: " & Desc.Substring(0, pos))</div>
<div>
<br /></div>
<div>
<span style="white-space: pre;"> </span>' Assign the DRG for this age, sex, discharge status, exemption, diagnoses and procedures</div>
<div>
ReturnCode = mhdrg1(drg, myver, masksdir, mydstat, myage, mysex, mydxstring, mypxstring, mypoa, myexempt)</div>
<div>
Console.WriteLine("DLL.mhdrg1 returned RC=" & ReturnCode.ToString)</div>
<div>
<br /></div>
<div>
If ReturnCode = 0 Then</div>
<div>
Console.WriteLine("DLL.mhdrg1 returned DRG=" & drg.ToString)</div>
<div>
Call mhinfo(drg, myver, masksdir, mdc, weight, los, Desc, descLen)</div>
<div>
Console.WriteLine("DLL.mhinfo returned ver=" & myver & " " _</div>
<div>
& "MDC=" & mdc.ToString & " " _</div>
<div>
& "Weight=" & weight.ToString & " " _</div>
<div>
& "LOS=" & los.ToString & " ")</div>
<div>
Console.WriteLine("Desc=[" & Desc & "]")</div>
<div>
Else</div>
<div>
Call mherrdesc(Desc, descLen)</div>
<div>
Console.WriteLine("Error: " & Desc)</div>
<div>
End If</div>
<div>
<br /></div>
<div>
<span style="white-space: pre;"> </span>' Should produce this output:</div>
<div>
<span style="white-space: pre;"> </span>' DLL Version: mhdrgv37.dll v2.10 (c) 2015 M+H Consulting, LLC: v37</div>
<div>
<span style="white-space: pre;"> </span>' DLL.mhdrg1 returned RC=0</div>
<div>
<span style="white-space: pre;"> </span>' DLL.mhdrg1 returned DRG=251</div>
<div>
<span style="white-space: pre;"> </span>' DLL.mhinfo returned ver=v37e MDC=5 Weight=1.683 LOS=2.2</div>
<div>
<span style="white-space: pre;"> </span>' Desc=[PERC CARDIOVASC PROC W/O CORONARY ARTERY STENT W/O MCC ]</div>
<div>
<br /></div>
<div>
Return ReturnCode</div>
<div>
End Function</div>
<div>
<br /></div>
<div>
End Module</div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-31992116983204324952019-10-02T15:25:00.000-07:002019-10-02T15:25:30.771-07:00V37 ReleaseEarlier today, we released versions of our products which support v37 of the US federal grouping algorithm, which version went into service on October 1st, 2019.<br />
<br />
What's new with this year's release?<br />
<br />
<ul>
<li>Our 64 Bit Linux PHP, Perl and C objects are now created on a new platform, a cloud server.<br /></li>
<li>Our 32 Bit Linux products are one step closer to being retired: we are running out of platforms on which to build them. Please leave a comment if you are still using 32 bit executables.<br /></li>
<li>On a Windows 7 computer, our VB DLL is triggering warnings from Norton when we install it on a computer which runs Norton. These warnings can be safely ignored.<br /></li>
<li>We are planning on putting previous versions of our DRG Manual on-line for reference, attached to entries in this blog.</li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-79273907912960606012019-10-01T15:49:00.000-07:002019-10-02T15:49:58.408-07:00V37 ManualThe link to our v37 technical documentation is here: [<a href="http://www.drggroupers.net/v37/v37-drg-manual" target="_blank">link</a>]Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-62424774661963346542019-08-02T12:17:00.003-07:002019-08-02T12:17:32.407-07:00Which Executables Work With Which Masks Files?QUESTION:<br />
Which Executables Work With Which Masks Files?<br />
<br />
ANSWER:<br />
Our code base is effectively split into the original branch which supports ICD9cm codes and the new branch which supports ICD10 codes.<br />
<pre class="moz-quote-pre" wrap="">
</pre>
The original branch has version numbers which begin with f (for "federal") while the new branch has version numbers which start with v. The original branch starts with f2 and ends with f32. The new branch starts with v33 and is currently up to v36.<br />
<br />
In order to assign a DRG, you need both the logic (which we encode in the software) and the attributes or "masks" (which we encode in masks files).<br />
<br />
The original branch is backwardly compatible: f32 has all the logic for some early version (f6, I believe) up and including f32. (The versions are internally designated with letters, so each executable can only support 26 versions. We have an executable and masks which support f2-f5 but that combination is a special order item).<br />
<br />
The new branch is not backwardly compatible: v33 only supports v33, v34 only supports v34, etc. So v36 cannot use v34 masks because it does not have v34 logic in it.<br />
<br />
We have a project on the books to combine all the logic into a backwardly compatible super-set, but currently this project is inactive.<br />
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-61926758572563018242018-12-20T09:11:00.000-08:002018-12-20T09:11:18.397-08:00Discharge DispositionDischarge disposition has, alas, been coded by at least two different standards: UB82 and UHDDS. We try to support both but it has been years since we say UHDDS codes so we are not sure how much longer we will support them.<br />
<br />
Here is the mapping we usually use:<br />
<br />
"0 - Unknown"<br />
"1 - Home"<br />
"2 - Other Hosp"<br />
"3 - SNF"<br />
"4 - ICF"<br />
"5 - Other Inst"<br />
"6 - Home Care"<br />
"7 - AMA"<br />
"20- Expired"<br />
<br />
As bit-bashers, we are happy with this rather simple listing. If you want to know more, check out these links:<br />
<br />
<a href="https://www.cms.gov/Medicare/Medicare-Contracting/ContractorLearningResources/downloads/JA0801.pdf">https://www.cms.gov/Medicare/Medicare-Contracting/ContractorLearningResources/downloads/JA0801.pdf</a><br />
<br />
<a href="https://www.resdac.org/cms-data/variables/patient-discharge-status-code">https://www.resdac.org/cms-data/variables/patient-discharge-status-code</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-80305039708842772542018-09-30T10:09:00.002-07:002018-10-03T17:35:53.502-07:00V36 ValidationLooks like 460 cases fail, with 57 underlying DRGs. That should not be too bad.<br />
<br />
Update Sun Sep 30 7:11pm Eastern: we are close, but not close enough to pull the trigger tonight. We are expecting to finish validation and do the release by the end of business tomorrow.<br />
<br />
Update Mon Oct 1 7:04pm Eastern: we are down to two DRG definitions which have issues; we ran into issues interpreting the specs for some of the pseudo-code, requiring us to slog through the IBM 360 assembler version. But we are now very confident that we will finish validation early tomorrow and do the release tomorrow afternoon.<br />
<br />
Update Tue Oct 2 11:22am Eastern: the official test data set passes through our DRG engine without any issues, so QA is done and we are starting the release process.<br />
<br />
Update Wed Oct 3 2:11pm Eastern: our usual 32 bit Linux environment is out of action and we have to move to the backup environment which is taking some time. It is not clear how many more 32 bit Linux releases we will do.<br />
<br />
Update Wed Oct 3 8:34pm Eastern: our back up 32 bit Linux environment has been configured and our development system ported to it and now we have 32 bit Linux executables again.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-65444220693927367312018-09-29T19:17:00.003-07:002018-09-29T19:17:22.033-07:00V36 Masks & WeightsThe V36 masks and weights file has been built and validated. The logic module is still under construction. This year's differences from last year are pretty massive. Validation is going to be epic this year.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-43192286426958192252018-09-28T15:18:00.001-07:002018-09-28T15:18:20.860-07:00V36 BeginsWe have downloaded the latest files from CMS and have begun the development process. Sadly for us, the logic file has been formatted in such a way as to make discerning differences from the previous version rather painful, but as soon as we have a sense of what we are dealing with, we will update this blog with an expected release date.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-62477708695093351352018-05-21T12:08:00.000-07:002018-05-21T12:08:21.264-07:00Backward Compatibility in ICD10 Versions<b>QUESTION:</b><br />
<br />
<i>Hello, we have used your grouper for several years now, but v35 is the first one that hasn't seemed to be backward compatible to old masks. It groups fine under 35, but if we try to use the 34 mask with the cdrgv35a binary it doesn't return anything. Is this a known issue or something others have dealt with?</i><br />
<br />
<b>ANSWER:</b><br />
<b><br /></b>
Alas, this is a feature: starting with v32 (our first ICD10-based production release), we gave up backward compatibility for the logic component.<br />
<br />
(Note that versions which begin with 'f' are ICD9-based while those that begin with 'v' are ICD10-based. Those that begin with 'x' are experimental.)<br />
<br />
The CMS release process changed dramatically, so our release process had to change dramatically as well. In order to assign v34 DRGs you will need the v34 DLL.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-75062265320031112012018-04-03T11:30:00.001-07:002018-04-03T11:30:16.256-07:00Release v35a<b>Executive Summary</b><br />
<br />
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.<br />
<br />
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;<br />
<br />
2. The mean attribute of 73 DRGs were wrong due to a difference in the CMS input files;<br />
<br />
3. The mean attribute was not handled correctly by our helper app interface, which affected DLLs, libraries and shared objects (but NOT DRGFilt);<br />
<br />
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).<br />
<br />
So DRGFilt customers need only use the new drgmasks.v35 file that comes with the v35a release.<br />
<br />
Here is how to know if you have the right masks file: we use the MD 5 Sum:<br />
<br />
(<a href="https://en.wikipedia.org/wiki/Md5sum">https://en.wikipedia.org/wiki/Md5sum</a>)<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">9117f5ff47cc11df5ef4dfc7c195c30f v35/drgmasks.v35</span><br />
<span style="font-family: Courier New, Courier, monospace;">7ce8af1b3a9aa50f605de3f2dabe4ae3 v35a/drgmasks.v35</span><br />
<br />
<b>Details</b><br />
<br />
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:<br />
<br />
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<br />
<br />
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.<br />
<br />
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.<br />
<br />
Going forward we expect the new validation process to catch any future issues with the masks files.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The descriptions are given below: first the CMS long description and our modified, shortened version.<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 023</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">CRANIOTOMY W MAJOR DEVICE IMPLANT OR ACUTE CNS PDX W MCC OR CHEMOTHERAPY IMPLANT OR EPILEPSY W NEUROSTIMULATOR</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">CRANIOTOMY W MAJOR DEVICE IMPLANT OR ACUTE CNS PDX W MCC OR CHEMOTHERAPY</span><br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 061</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLYTIC AGENT W MCC</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLY</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 062</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLYTIC AGENT W CC</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">ISCHEMIC STROKE, PRECEREBRAL OCCLUSION OR TRANSIENT ISCHEMIA W THROMBOLY</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 246</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">PERCUTANEOUS CARDIOVASCULAR PROCEDURES W DRUG-ELUTING STENT W MCC OR 4+ ARTERIES OR STENTS</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">PERCUTANEOUS CARDIOVASCULAR PROCEDURES W DRUG-ELUTING STENT W MCC OR 4+</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 248</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">PERCUTANEOUS CARDIOVASCULAR PROCEDURES W NON-DRUG-ELUTING STENT W MCC OR 4+ ARTERIES OR STENTS</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">PERCUTANEOUS CARDIOVASCULAR PROCEDURES W NON-DRUG-ELUTING STENT W MCC OR</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 469</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY W MCC OR TOTAL ANKLE REPLACEMENT</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 470</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY W/O MCC</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 829</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER PROCEDURE W CC/MCC</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">DRG 830</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">------------------------------------------------------------------------</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER PROCEDURE W/O CC/MCC</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">MYELOPROLIFERATIVE DISORDERS OR POORLY DIFFERENTIATED NEOPLASMS W OTHER</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-36519680413554450052017-12-05T08:44:00.000-08:002017-12-05T08:45:56.814-08:00How Indicate Exemption When Calling Our Software<div wrap="">
<b><span style="font-family: inherit;">QUESTION</span></b></div>
<pre wrap="">Please, can you tell me which are the valid values for variable “Exempt” for version 34? I was not able to find anything in the grouper documentation.</pre>
<pre wrap=""> </pre>
<div wrap="">
<span style="font-family: inherit;"><b>ANSWER</b></span> </div>
<pre wrap=""></pre>
<div wrap="">
When the Hospital Acquired Condition (HAC) rules were introduced, some organizations were exempt from them. This meant that our APIs to our DRG Assignment Engine (DAE) had to expanded to accommodate this concept.</div>
<div wrap="">
<br /></div>
<div wrap="">
As laid out in this post <a href="https://drggrouperstechblog.blogspot.com/2015/10/poa-logic-indicator-exempt-flag.html" target="_blank">here</a>, there are three different levels of exempt:</div>
<ol>
<li> Organization (batch) level: put the exempt flag in the version and all the records will be assumed to be exempt.</li>
<li>Record level: put the exempt flag in the record sent to the DAE and that particular record will be exempt.</li>
<li>Diagnosis level: make the PoA flag for a given Dx code the "exempt" value and that particular Dx code will be exempt.</li>
</ol>
To send the exempt flag at the batch level, append a lowercase 'e' to the version number, eg '33e'.<br />
<br />
To send the record level flag to any API which allows it, pass Exempt flag parameter as nothing (not exempt) or as X. To send the record level flag to DRGFilt, set the "exmp" flag to either X or 1.<br />
<br />
To send the exempt flag at the code level, check out this post <a href="https://drggrouperstechblog.blogspot.com/2015/10/present-on-admission-poa-indicators.html" target="_blank">here</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-49663144954495862832017-12-04T10:01:00.002-08:002017-12-04T10:01:52.285-08:00DRG Return Code of 9QUESTION<br />
<br />
<pre wrap="">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.</pre>
<br />
<br />
ANSWER<br />
<br />
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:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> "Bad principal diagnosis.", /* 1 */<br /> "Bad prin dx for MDC ....", /* 2 */<br /> "Invalid age ............", /* 3 */<br /> "Invalid sex ............", /* 4 */<br /> "Invalid discharge status", /* 5 */<br /> "Unspecified DRG error...", /* 6 */<br /> "Invalid prin diagnosis..", /* 7 */<br /> "No DRG file this version", /* 8 */<br /> "HAC POA invalid.........", /* 9 */<br /> "DRG number too high.....", /* 10 */<br /> "Error in DRG file ......" /* 11 */</span><br />
<br />
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).<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-12126561785350885812017-11-01T12:46:00.002-07:002017-11-01T12:46:41.611-07:00V35 Test Data SetWe have put up the V35 test data on our etail site: <a href="http://www.drggroupers.net/about/">http://www.drggroupers.net/about/</a> as a free download in case you need the data to debug any of our products.<br />
<br />
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.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Archive: testdbv35.zip</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Length Date Time Name</span><br />
<span style="font-family: Courier New, Courier, monospace;"> -------- ---- ---- ----</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 169339 10-30-17 12:52 drgmanv35.pdf</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 13407058 10-30-17 12:52 testdbv35.txt</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 1055839 10-30-17 12:52 testdbv35.csv</span><br />
<span style="font-family: Courier New, Courier, monospace;"> -------- -------</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 14632236 3 files</span><br />
<div>
<br /></div>
<div>
The DRGFilt .INI file groups which correspond to these files are these:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">[fixed]</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">format = fixed ; input file format</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">verbose = 0 ; 0 = no debugging information, 1 = debugging information</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">blip = 1000 ; give progress report every 1,000 records</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">blipeol = 0 ; 1=newline for progress report, 0=carriage return</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">batchver = 35 ; assign version 35 DRGs to this batch</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">maskdir = . ; directory in which to find drgmasks.v35</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; fixed-width input variables: name = length@offset</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">age = 3@0</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">sex = 1@3</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">ds = 2@4</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">dxl=8 ; dx length does not require an offset</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">poa= 7</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">dx = 200@23</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">mnh@jackal-n2:/drbd/mnh/src/drgs/v35/src$ cat v35.ini</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; new format DRGFilt control file, with different groups for different purposes</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; Tue Oct 11 09:52:42 EDT 2016 BFH change path in [cgi] to match new server</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; Sun Oct 2 10:19:10 EDT 2016 BFH set to v34</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; Thu Oct 12 11:34:36 EDT 2017 BFH set to v35</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">;---------------</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; this group is to process the standard fixed-width input file from CMS</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">;---------------</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">[fixed]</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">format = fixed ; input file format</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">verbose = 0 ; 0 = no debugging information, 1 = debugging information</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">blip = 1000 ; give progress report every 1,000 records</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">blipeol = 0 ; 1=newline for progress report, 0=carriage return</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">batchver = 35 ; assign version 35 DRGs to this batch</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">maskdir = . ; directory in which to find drgmasks.v35</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; fixed-width input variables: name = length@offset</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">age = 3@0</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">sex = 1@3</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">ds = 2@4</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">dxl=8 ; dx length does not require an offset</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">poa= 7</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">dx = 200@23</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">sgl=7@0 ; pr length, offset is optional & ignored</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">surg= 175@223</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">exmp = 1@6</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; -----</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; these are already present from the CMS grouper:</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; you could overwrite the incoming values if you wanted to</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; drg = 3@603</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; mdc = 2@600</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; rc = 2@598</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; -----</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; these are written out by DRGFilt</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">rc = 2@1760</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">mdc = 2@1762</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">drg = 3@1764</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
</div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">[csv-validate]</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">format = csv (,) ; separator character is in parens</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">base = 0 ; indices are zero-based</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">;base = 1 ; indices are one-based</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">inheaders = 1 ; 1=input column headers, 0=no input column headers</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">outheaders = 0 ; 1=want column headers, 0=no headers</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">crlf = 0 ; type of end-of-line: either crlf or lf</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">blip = 1000</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">blipeol = 0 ; 1=newline for progress report, 0=carriage return</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">maskdir = .</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">batchver = 35</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">infile = testdbv35.csv</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">outfile = testdb.validate.csv</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">verbose = 1</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; input variables: name = index</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">inid = 0</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">age = 1</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">sex = 2</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">exmp = 3</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">ds = 4</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">dx = 5-29</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">poa = 30-54</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">surg= 55-79</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">; these are written out by DRGFilt</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">outid = 0 ; patient ID from input</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">drg = 1</span></div>
<div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-44371969077408538302017-10-31T14:37:00.003-07:002017-11-01T13:41:13.146-07:00V35 Released!Our etail site is now live with the v35 versions of all our products.<br />
<br />
<a href="http://www.drggroupers.net/">http://www.drggroupers.net/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-82802593878740019712017-10-30T12:40:00.000-07:002017-11-01T08:49:19.060-07:00V35 AIX PortOur v35 AIX port is done and validated.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-7476926807965938902017-10-22T16:58:00.000-07:002017-11-01T08:49:46.868-07:00V35 Windows Products ValidatedOur 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.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-85321332170593364102017-10-22T13:07:00.000-07:002017-11-01T08:57:37.062-07:00V35 Linux Products ValidatedThe v35 Linux products, both 32-bit and 64-bit, have passed validation. On to the Windows products.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3783963929028807953.post-26649432514816913402017-10-18T10:57:00.000-07:002017-11-01T08:34:06.787-07:00V35 Basic Validation DoneOur DRG Assignment Engine (DAE) has passed validation.<br />
<br />
We found our bug: handling a few of the new attributes was buggy. Specifically attributes in byte 27 and above.<br />
<br />
So now our basic v35 engine works and we are busy embedding it in all our products.Unknownnoreply@blogger.com0