Thursday, August 16, 2012

F30 Pre-Release

We have received a pre-release of F30 from our development group to accommodate a DRG Assignment Service (DAS) client who wanted to try out F30 ahead of its official release on October 1st, 2012.

We put the pre-release F30 through our basic validation process, upgraded our DAS system and have used it successfully.

We are in the process of finishing the internal F30 roll-out.

Barring changes from CMS or bug reports, this will become our official F30 release on October 1st, 2012.

Thursday, May 31, 2012

DRG Weights

QUESTION

How do I check the DRG weights in your software?

ANSWER

You can confirm our weights by cross-checking against the source:

http://www.herc.research.va.gov/resources/faq_f03.asp

Wednesday, May 2, 2012

Calling mhicd()

There is some confusion, partly caused by bad documentation on our part, about calling mhicd(), the function which gives you the short description of the specified ICD9cm code.


ORIGINAL EMAIL

I get the following error message when I try to compile the examples in DRGMAN.pdf.
        'mhicd' : function does not take 4 arguments...
Can it be that the version differs?



ANSWER


You are right, the example is wrong, it is missing the final argument. We will fix that as soon as we can.

The mhicd() function takes 5 arguments:

(1) which kind of code: D=diagnosis, P or S=procedure
(2) the file name to use as the ICD9 look up table
(3) the ICD9 code to be looked up
(4) the buffer into which to put the name
(5) the length of the buffer
 
So the examples should look like this:


Visual BASIC

Private Sub dx_Change(index As Integer)
    Dim retval As String * 24
   
    Call mhicd("d", _
        Command & "/icd9.tab", Me.dx(index).Text, retval, 23)
    Me.ddesc(index).Caption = retval
End Sub


C VERSION


    if ((i=mhicd("d","icd9.tab","56409",retval,23))) {
        printf("Error from mhicd(): %d\n",i);
    } else {
        printf("%s\n",retval);
    }

Tuesday, April 3, 2012

C-Callable Shared Object Version?

QUESTION

How do I figure out which version of the C-Callable Shared Object I am using?


ANSWER

There is no good way because as of this writing, April-2012, the C-Callable Shared Object's API is missing the usual method for retrieving this information.

Instead, to see if your shared object will support a given version, you have to use the errdesc() function, like so:

-------------------------sample code starts

/* declare the functions inside the shared object: */
char * mhdrg();
extern char * errdesc();

int main() {
    char * retval;
    char * p;
    char * a[RETURNED];
    char * expected;
    int i;

    /* call the grouper, store results in reval */
    retval = mhdrg(
        "f29",                  /* which DRG version you want */
        "/drbd/mnh/src/SWIG",   /* path to masks files */
        "1",                    /* discharge status */
        "49",                   /* patient age on admission */
        "2",                    /* patient sex (1=male, 2=female) */
        /* ICD DX codes */
        //"99679   25041   5859    2767    25051   36904   25061   3371    40290   2859                    ",
        "71500  Y",
        /* ICD procedure codes */
//       0123456012345601234560123456
//      "3942   3993   3995                                                                  ",
        "8134   8135   ",
        8,                      /* length of each ICD DX code */
        7                       /* length of each ICD procedure code */
    );

    /* if there was an error, alert the user */
    if (retval == NULL) {
        printf("M+H grouper argument or environment error: %s\n", errdesc());
        exit(-1);
    }

    /* show the raw return value */
    printf("Raw return value from mhdrg:\n%s\n\n",retval);

    /* deconstruct return from mhdrg() */
    p = strtok(retval,DELIM);
    for (i = 0; i < RETURNED && p != NULL; i++) {
        a[i] = p;
        p = strtok(NULL,DELIM);
    }

    puts("Deconstructed return value from mhdrg:");
    printf("rc=%s, mdc=%s, drg=%s, ovn=%s, weight=",a[0],a[1],a[2],a[3]);
    printf("%s, mean=%s, porm=%s\ndesc=%s\ndx flags:%s, px flags: %s\n",a[4],a[5],a[6],a[7],a[8],a[9]);

    /* last two return values are bit-strings of which ICD codes were
     * used in the grouping
     */

    puts("\nSignificant ICD codes:");
    p = a[8];
    for (i = 0; i < 32 && p[i] != '\000'; i++) {
        if (p[i] == '1') {
            printf(" * DX code %2d was used\n",(i+1));
        }
    }
    p = a[9];
    for (i = 0; i < 32 && p[i] != '\000'; i++) {
        if (p[i] == '1') {
            printf(" * Proc code %2d was used\n",(i+1));
        }
    }

    exit(0);
}

Saturday, March 3, 2012

Access-DRG Versions

In order to keep up with MS-Access, we have had to split our Access-DRG product into two different products:
  1. Access-DRG/2003, which should run under MS-Access 2000, 2002 and 2003. This is the good old ".mdb" version
  2. Access-DRG/2007, which should run under MS-Access 2007. This is the new-fangled ".accdb" version
We have updated our product catalog and our retail web site, so you should now be able to get the version you need.

Note that this product is more-or-less useless without the VB-callable DLL, but the current VB-callable DLL is included with your Access-DRG purchase.

In the normal course of events, we expect you to buy Access-DRG once and VB-DLL subsequent year. You only need to buy Access-DRG again if and when Microsoft changes MS-Access enough to require a new app.

Thursday, March 1, 2012

Re-release of Windows Installers

We received a bug report that our windows installer for our VB-callable DLL did not work properly under at least some Windows 7 installations.

We use the Nullsoft Scriptable Installer System (NSIS) to create all of our windows installers. So rather than try to debug someone else's rather complex system, we did the usual Windows thing: we upgraded and tried again. And now it all works, hurray.

Just to be sure, we recreated all of our windows installers (see below) so there should be no other problems, at least until Windows 8 is released.

File NameProduct CodeO/SEnvVerComment
mhdrg.exeCDLLwin32f29.1f29.1, new NSIS
mhi9tabf26.exeCICDwin32f29.1
mhdrgvb.exeVBDLLwin32f29.1
mhvbdrg.exeVBDRGwin32vb5f29.1
mhicdvb.exeVBICDwin32f29.1
cgi-drg.exeW32CGIDRGwin32f29.1
drgfilt.exeWINFILTwin32f29.1
mhmasksXX.exeWINMASKwin32all of them:
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, v3

Friday, January 13, 2012

Will There Be an X29? If So, When?

QUESTION

We are interested in an ICD-10 experimental grouper for version 29. We see that you have one for X28. Will you do one for X29? If so, when?

ANSWER

CMS hasn't released v29 for ICD-10 yet. It is built and we're trying to persuade them to post it on their site as early in January as they are back to work. 10 minutes after they've done that, we can be the first to offer X29, but we can't do so before.