The Best Damn Healthcare System In The World

05 Mar 2013 • #

Back in November, you may recall that a gangrenous vestigial organ was cut out of my abdomen. 105 days later, I think I can finally say that the claim has been processed to the satisfaction of both the hospital and the insurance company. This has required a nontrivial amount of back and forth between myself, Aetna, the Norwalk Hospital, my local benefits coordinator, and by extension our insurance broker.

Within a couple of weeks of the surgery, I got my first Explanation of Benefits. Unlike the hospital, the surgical office was extremely prompt in getting information to the insurance company. Unfortunately, in a lot of pain and a few hours from dying, I didn’t think to ask the emergency on-call surgeon whether or not he was in-network. I guess that’s what I should have asked when he asked me if I had any questions. The same probably goes for the anesthesiologist for those taking notes. He or she will also ask you if you have any questions, and you might want to find out if they’re in network too. Chances are they are not. I don’t know what I would have done had I the foresight to ask these questions, since “can I wait until somebody in-network shows up?” seems like a dumb question when you’re about to die.

So, my first explanation of benefits covered about 15% of the overall cost of the surgery, and largely related to the surgeon’s fees. Since the surgeon wasn’t in-network, that meant I paid over a grand out of pocket.

Incidentally, during intake the person doing my intake clearly wanted to go home and wasn’t really paying attention, so she transcribed my address incorrectly. I could forgive her for not being able to understand me through “AUGGGGGGGGGGGGGGGH I’M DYING,” except I handed her my driver’s license to read from. So, in all honesty, she was just completely incompetent. This made matters interesting because my billing addresses with all of the various medical facilities and companies involved in my ER intake and eventual surgery had the wrong address as a result. One might think since this was the “Norwalk Hospital” and everybody involved was part of the “Norwalk Hospital System” that this would be one entity, but no, this is the American medical system. I still don’t understand how the various entities, companies, and facilities fit together. This ultimately had no impact on the billing and claims process, but it did mean I had to spend over an hour and a half on different phone numbers updating billing information. This was important to me to make sure I actually got the bills and my credit wasn’t destroyed by somebody else’s incompetence. Not that that’s happened before or anything.

January rolls around and the first more or less full EOB shows up, covering the remaining five-figure sum. The claim lists a bunch of charges and has a half-dozen explanation codes for why nothing is going to be paid. Mostly they say nothing, beyond “the hospital hasn’t gotten us something we asked for, so you’re responsible for everything.”

Now, I got this on a Saturday originally, which sent me into a fit, so I tried to deal with it on Saturday. Of course this is impossible, because Aetna doesn’t answer their phone on Saturday, and neither does the hospital’s billing department. Furthermore, the EOB provided no guidance on what to do to resolve the situation, beyond mailing the information directly to Aetna. I have no idea what I’m supposed to mail directly to Aetna, but I’m sure glad that it’s my job to do that, or else the claim won’t be paid.

I talked to Ann the Virtual Assistant on Aetna’s site, and she indicated I could fax Aetna information about the claim, and I did so. In fact, I provided an answer to each of the seven items required in order for them to process the information. Fax machines. What the fuck. But I did it. I never heard any acknowledgment or response from this, because fuck you? I guess.

Weeks pass, nothing happens. My benefits coordinator at work offers to look into it, and lo and behold a new EOB shows up a few days later. It indicates most of the stuff will be paid and I’m not responsible for the rest of it. It’s now mid-February. Hooray! I can put this behind me. There is a note, though, on this claim. It indicates that if they can’t get an answer from the hospital on the remaining items, they’ll reject the whole claim. Nothing to worry about, right?

Late February, a new EOB shows up rejecting the whole five-figure claim. It even comes with the nice line item of “You owe $xx,xxx.xx.” Knock knock. Who’s there? Aetna. Aetna who? Surprise, fuck you! Or something. Yeah, the hospital didn’t come through, so you’re liable for everything. Aetna says call the provider. The provider says call Aetna. The broker says they’ll call Aetna, but suggest I call the mailman, who killed the barber with a shoe in the foyer. But at least they all agree on one thing: I’m liable for everything if I can’t magically get everybody on the same page.

Honestly, the details just aren’t that interesting and I won’t continue to drone on, but after a few more rounds with all of the involved parties, things eventually got resolved. I believe as of today everybody agrees I owe nothing, and supposedly the hospital was paid and it’s happy with what it got. I retain some nervousness that some other legal entity or corporation involved in my surgery will come out of the woodwork at some point to come, but I’m going to try to forget that fear for now.

I don’t have anything interesting or unique to say, really. In America, it’s the patient’s responsibility to pay a claim if the provider and the insurance company can’t work out their differences. How does this make any sense at all? Along with the game of charging too much and then negotiating prices down to acceptable levels or charging $77 for gauze pads, I can’t say any of it really makes sense. I’m not saying anything new or obvious here, if anything I’m beating the drum on something everybody’s aware of. My case is not unique, and if anything, it’s about as smooth as could be, by supposedly having “good insurance” and a reasonably competent hospital. It doesn’t make sense to me, and yet short of becoming a citizen of another country, I’m not sure there’s much of a chance things will get better in my lifetime.

My New Router

03 Feb 2013 • #

I’ve been running m0n0wall on a soekris net5501 literally without issue or reboot for several years. Prior to that I was operating in a similar configuration, but with a net4801. While that configuration was fantastic, the net4801 could relatively easily reach CPU saturation under heavy concurrent flows or when routing several streams over 30Mbps (my Internet, while not fantastic, can pretty consistently deliver 60Mbps downstream and 8Mbit/s upstream).

I had only two problems, then. The first was that I needed a project. The second was that the net5501 has interfaces at 100Mbps, and I frequently wanted to do inter-port transmissions through the router (for various reasons) that I did not want to run only through the switch. Additionally, there were several features that I wanted to experiment with that would be easier to accomplish with a slightly heavier-weight software package (one that I felt would perhaps struggle on the net5501).

So, I picked up a soekris net6501. This hardware is moderately more powerful (running an Intel Atom instead of an AMD Geode). It has more than double the RAM, uses Intel gigabit NICs, and trivially supports mSSD storage instead of Compact Flash.

I picked up a 20GB Intel SLC mSSD for about a dollar a gigabyte, which seemed like a steal. In addition to being safe to write to regularly (unlike CF, which limited logging and required spooling most things to RAM to avoid destroying the card), it’s absurdly faster.

I selected pfsense as the software stack, having all of the features I’d come to know and love from m0n0wall, but with some extras.

Getting pfsense installed was a bit of a hassle, as I didn’t want to use an embedded image (which foregoes the aforementioned use of the mSSD for bidirectional IO), despite the embedded hardware. The easiest approach ended up being installing the mSSD unformatted, writing a USB key with the live image, and then installing to the SSD from the stick via the serial console.

The serial console was a bit fun because I didn’t have a null modem cable and while the soekris boots at 19200, the live image boots at 9600. This was relatively trivial to work around, but required digging up things I’d forgotten about in the 15 years or so since I’ve used a modem.

After that, things went pretty smoothly. pfsense has a lot of nice convenience features that m0n0wall lacked, and it was pretty straightforward to reinstate all of the previous functionality, along with a few nice changes (such as switching to IPsec from PPTP for iOS VPN tunneling). All told, it seems to be pretty great so far. I suppose I could repurpose the net5501 to be a hot failover CARP, but given its reliability, for my purposes I suspect something else in the current network stack is far more likely to fail before that point.

The only remaining piece in this project, then, is upgrading the switching fabric to something that will support single-switch VLANs, but that should be pretty straightforward.

A Tale of Two Fernets

19 Jan 2013 • #

Of note, this would actually be A Tale of Three Fernets, had I been more patient. I acquired Fernet Stock a few weeks ago and tried it. Unfortunately, it tasted horrible and artificial. Pushing past the syrupy fake caramel flavors and aromas proved impossible, and I dumped the whole bottle.

Additionally, it’s worth noting that this is far from exhaustive. There are a multitude of Fernets out there, these are just two particularly nice examples.

Meet The Contestants

Fernet is a particular type of amaro (Italian for “bitter”). In my encounters, the liqueur is bottled somewhere between 78 and 92 proof, putting it at the same alcohol by volume as a bottle of vodka or gin. As a general rule, it’s a bracing combination of intense bitterness, sweetness, mint, and herbs.

Fernet-Branca

For a good introduction to Fernet-Branca, one can listen to Bill Cosby explain it. I can’t provide a better introduction. Of the Italian Fernets I’ve tried, Fernet-Branca is by far the best. Wayne Curtis also provides a brief introduction at The Atlantic. In particular, he describes its taste as “like Fernet Branca.” Nailed it.

Fernet Branca

I love Fernet as a digestif, it’s enjoyable and calming to my stomach. Later in the evening, I’m more likely to reach for a shot of Fernet on the rocks than my bottle of Tums. But, then, it’s pretty fantastic any time even when you’re not belching up sparrow burps. Fernet prides itself on a lot of different flavor compounds, but most famously corners the market on saffron of all things. I’m not going I say I can pick out the saffron in particular, but it’s all part of the experience.

Fernet Branca

The nose is of caramel (somewhat chemical/artificial smelling, there), mint, and anise, with just a hint of herbal character. On the palate, the (somewhat unpleasant) candy caramel flavor dominates at first, giving way to heavy mint up front, with a crisp and bitter finish – more flavors of baking spice and less of that grassy herbal character on the front-palate and nose.

I love Fernet-Branca.

Fernet Leopold

Fernet Leopold is a relatively new entry from Leopold Brotheres. The bottle isn’t even on their site when I last checked, but it most definitely exists. For lovers of Fernet-Branca, there are some familiar characteristics, but this is definitely a different drink.

Fernet Leopold

Fernet Leopold is the same color but more pale than Fernet-Branca. In every other way it’s stronger and more assertive.

The proof is similar (80 versus 78-proof). Though most of Fernet-Branca’s ingredients are secret, we know that there are three different mints involved in its production. For this liqueur, mine dominates the nose and initial experience on the palate. On the nose there’s a lot of cardamom, baking spices, pine, lavender, aloe, and I’m not sure what else.

Fernet Leopold

On the palate, it hits you with bracing acidity and bitterness, with pine, cardamom, clove, menthol … there’s a lot going on. The finish is quite long, and packed with … cardamom again.

There’s an absurd amount of complexity in this beverage, but it seems to be out of balance; trying hard and not achieving grace. Undoubtedly the more challenging of the pair to enjoy, which is saying a lot for this genre of spirits. On the upside, it does not seem to suffer from the slightly chemical/artificial characteristics of the Fernet-Branca.

I like a little bit of cardamom, but this is far too much. I like the creative twist of the Fernet Leopold. I think it has a lot more potential, but the balance is just not there. With that said, if you love cardamom-heavy amari, this is not one to miss.

Chilled, a lot of the bitterness and acid seems to disappear, leaving a syrupy sweet (not unpleasant) sensation and increased smoothness. Unfortunately, it does not knock out the cardamom, which now even more violently overpowers the rest of the drink.

If you’re a Fernet fan, it’s worth trying a taste, but I’m not sure I’d invest in a bottle at this point unless it’s reformulated.

Review: A Memory of Light

14 Jan 2013 • #

Robert Jordan’s A Memory of Light, completed by Brandon Sanderson, completes the Wheel of Time after fourteen books. I enjoyed several sentimental reactions during the reading. With that said, I felt more relieved to be done with it than left with any real sense of enjoyment or satisfaction. The book opens with action and doesn’t really relent until another 900 pages have passed. Compared to the last dozen books in the series, the pace is frenzied. Hundreds of pages of battle resolve a lot of story lines (and characters), but it gets a bit tedious after a point.

Sanderson did a good job of trying to dig out of the mountain of plot threads he’d been left with. He stuck with Jordan’s inexplicable and arbitrary restrictions on the world he’d built. I admire that he’s been able to conclude and bring closure to a world that Jordan clearly could not. Had Jordan lived another few decades, I have no doubt the series would have two dozens books with the most recent installment covering just thirteen minutes of elapsed time, and we still wouldn’t be at the last battle.

Anybody that’s put in the time in to read the previous 10678 pages is not going to hesitate to read the final 912, no matter how tedious. To Sanderson’s credit, there is an occasional plot twist or dead character to keep the reader awake. At the same time, there are so many omens, so much foreshadowing, and so many plot threads to resolve that there really aren’t many things that can play out to anything but mechanical predictability. I found myself just wondering which of the things were going to happen next, not what next. Oh, and Rand’s whining is kept to a minimum. So that’s good.

In the end, I guess it’s a well-executed ending to a poorly-written series. Good riddance, Wheel of Time. I won’t miss you.

Fun with OpenTSDB

14 Jan 2013 • #

For some reason I decided that RRD and mrtg just weren’t complicated enough tools to monitor my weight. And the temperature of my wine racks. Thus, I went down the rabbit hole that is OpenTSDB.

It’s actually more complicated and protracted than that, as I’d started to build something that, with hubris, I would suggest approaches being like OpenTSDB. I wanted to make a generic data store for metrics (numbers, if you will). I started coding it up and was moderately pleased with where it was heading, and then took a look at what OpenTSDB was on an unrelated venture. Drats, I thought, and deleted everything I’d done.

Of course, that didn’t ignore the incredible height of the technology stack behind OpenTSDB. Getting the dumb thing up and running, despite supposedly taking minutes, was less than trivial. I ran into numerous issues with HBase. The first round of issues, everything more or less seemed to work, but was about ten thousand times slower than was reasonable. Just creating the initial OpenTSDB tables took 30 minutes, and 8 hours of data consumed several gigabytes of space. Ugh. A combination of hard-coding interfaces and disabling IPv6 somehow was the magic salute to sort this one out.

With that beyond me, I thought I was in the clear, until my HBase crashed after being up for just 5 hours. I couldn’t get the damn thing to re-start, either, and the log messages were useless. I kept getting inexplicable socket failures in zk. I sifted through megabytes upon megabytes of logs, and just could not figure out what was going on.

Turns out, I was experiencing an SSD failure due to a bug relating to interactions between SSDs and EXT4 in the Linux kernel. It had caused the filesystem to alternate between pretending it was read-only and just discarding I/O operations. I had forgotten what a pain in the ass Linux is with hardware less than a decade old. Not once could I find a suggestion that there was an I/O issue, as everything just bitched about socket issues again.

Whatever, I’m clearly shitty at getting open source software up and working, and this is all my fault, but I eventually sorted it out. So now I can do stupid stuff like this:

tsdb temperature

I like the idea of this. The stock OpenTSDB front-end is powerful, but not particularly elegant, and is definitely lacking in some regards. Apparently there aren’t any good front-ends for it that are open source, though I guess you can build your own queries or your own entire front-end.

I’m still not delighted by the height of the technology stack, but it’s sort of neat what can be done. Especially if you already have a giant HBase/ZK thing going, it’s probably more than compelling.