Jeez. The hits just keep on coming. My email client fritzed out and corrupted/truncated the message I intended to send. Here is the correct message. Please ignore the previous one.

>> In any case, having a unique data type for dates precludes the value from
> being treated as anything other than a date. One can't do math on a VFP
> date value and get a result that can be interpreted as currency, unless one
> is completely clueless as a programmer.

(ldEndDate - ldStartDate) * lyPenaltyPerDay = lyResult in currency

(ldEndDate - ldStartDate) is the relevant calculation here. That's where the math is being done on date values. The rest is math on ordinary numbers. Of course you can multiply any number by any other number and call it currency. (Heck, in C++ you can multiply single characters by other single characters and get a numerical result--if you don't know what you're multiplying.) Of course, if the result has more than two decimal places it can't actually BE currency but you can call it anything you want.

Apparently, though, I failed to communicate. :)

If one uses a unique date type to store dates instead of making special cases for ordinary integers or strings of digits, and then names one's variables to indicate they are dates, then unless one is completely clueless one is not going to assume that the result of math specifically and only on those variables is going to be currency. If one doesn't name date variables to indicate they are dates, I would submit that one is also completely clueless.

> And as I understand it, some of the big-iron database systems are
> beginning to offer unique date data types now.
>

Which ones? Oracle, DB2, Ingres, Postgres have had data types since the
Pleistocene.

DATE data types are fairly rare in the industry; most are DATETIME, as
there are often needs to store the time as well as the date. This wasn't
such a good idea, imho, because it makes date math (that nearly EVERYONE
needs) really unpleasant.

Right. I was referring specifically to DATE types, not DATETIME, and I can't recall specifically what I read but I am pretty sure that somebody posted something on this list within the last 6-8 months or so about a big-iron database getting a DATE data type.

Meanwhile, in the situation described, a user entered a date value into a
> control that was intended to accept medical service co-payment dollar
> values. Based on how much this ended up costing, I would guess the user did
> it over and over and over, and the values were added up over time. If so,
> it strongly implies that the user interface was poorly designed, since
> users typically don't make the same mistake hundreds of times in a row.
>

No, they typed the date June 17, 1957, by typing one number after the
other, just as you would enter a date, 6171957.

The error reported was 6,171,957 dollars. Coincidence?

Okay. We are talking about the software that was used to submit a bill here, not the software that processes bills for payment. But since I raised the issue of formatting/masking/validation, I'll continue to the bitter end.

1. Wouldn't one associate only pretty recent dates with co-pay amounts? Presumeably you would enter a date of service on which the co-pay was paid or came due. Assuming the user had an actual date in mind to enter and wasn't just fat-fingering gibberish, than June 17, 1957 could only be a birthdate in a medical billing context. It could not be a co-pay date for data that was entered during the period audited. Medicaid didn't even exist in 1957.

So, why was the interface designed such that a data entry operator could confuse a birthdate with a date of medical service? One-time patient demographic data entry should be completely separated from many-to-one service records in the GUI.

2. In any case, I continue to maintain that the system should have applied a limit on the number of pre-and-post decimal digits that could be entered for a co-payment, and, perhaps, used a picklist of acceptable values for the service type being entered. This would have made it impossible for a user to make such an error.

Once again, I'll note that in this case, the error WAS caught and FLAGGED
by the software. It was the decision of the agency doing the processing
that they would rather pay the wrong amount and catch the problems in the
audit, than flag a large number of entries and have to manually review
them. The audit did catch this issue along with thousands of others, and
managed to collect back nearly all of the money. In the first pass, they
lost 7.8 million out of 25-ish BILLION, 99.7% accuracy, and recovered
nearly all of that in the audit phase.

All large scale processed (178 million claims processed) need auditing and
monitoring. It did its job. It identified problems (the audit department
notes the problems had been noted and improvements recommended). If you
read the audit report, all the way to the end of the 22 pages, you'll see
the system worked, the money was recovered, the screw-ups made the
newspaper, the 99% first-pass accuracy was followed up with 90% recovery of
the remainder. The perfect is the enemy of the adequate.

From the report: "For example, many claims we reviewed were subjected to the eMedNY edit "Medicare/MCO Payer Amounts Not Reasonable." However, the edit was "set to pay" (as opposed to pend or deny) a questionable claim. If this edit was set to pend or deny payment, eMedNY could have prevented the aforementioned overpayment (totaling $6,171,957) when a date was entered into the field designated for a copayment."

This certainly implies that the software had a user-configurable setting for what happens when a questionable claim comes in. Let's ASSuME that's true and not that the behavior was in fact hard-coded.

Why would such software be designed to automatically pay ANY invalid or questionable claim without prompting a review by a human first? How is that good design?

Ken Dibble
www.stic-cil.org


_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/5.2.1.1.1.20130217122537.01fc0...@pop-server.stny.rr.com
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to