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.
Please check the FAQ first, it really is a list of answers to our most frequently-asked questions.
Thursday, August 16, 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
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);
}
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);
}
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:
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.
- Access-DRG/2003, which should run under MS-Access 2000, 2002 and 2003. This is the good old ".mdb" version
- Access-DRG/2007, which should run under MS-Access 2007. This is the new-fangled ".accdb" version
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.
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 Name | Product Code | O/S | Env | Ver | Comment |
|---|---|---|---|---|---|
| mhdrg.exe | CDLL | win32 | f29.1 | f29.1, new NSIS | |
| mhi9tabf26.exe | CICD | win32 | f29.1 | ||
| mhdrgvb.exe | VBDLL | win32 | f29.1 | ||
| mhvbdrg.exe | VBDRG | win32 | vb5 | f29.1 | |
| mhicdvb.exe | VBICD | win32 | f29.1 | ||
| cgi-drg.exe | W32CGIDRG | win32 | f29.1 | ||
| drgfilt.exe | WINFILT | win32 | f29.1 | ||
| mhmasksXX.exe | WINMASK | win32 | all 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
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.
Subscribe to:
Posts (Atom)