Setting aside the moral question for a moment, this seems like a terrible idea from a business perspective. Say nothing of the potential revenue they're turning away over their (bigoted) political views, they'll also lose business from bad PR.
It is using JSON (or XML), but the underlying data model is largely carried over from V3 (or more specifically, the RIM). The problem with HL7 isn't the data format itself, but how information is encoded and the amount of variation that exists. The parent comment was a little misleading in posting a V2 message since that isn't what Apple is using, but as someone who works with HL7 on a regular basis V2 is actually more straightforward to work with a lot of the time.
FHIR is definitely a step in the right direction but it is plagued with the same issues as their other "standards" so I'm not holding my breath.
Very confusing. You say it uses JSON/XML (for data encoding) and also the "problem" is "how information is encoded". What is the encoding problem? And how could JSON/XML be the problem? These are fairly simple encoding formats and well understood.
Are you referring to the data model as the problem? How exactly?
The data model is a big part of the problem. There are lots of different ways to encode the same information within HL7. People refer to different "flavors" of HL7, different ones for different implementations (and implementations are not just vendor specific, but site specific — EHR software is very heavily customized for each health system). Add to that doctors and nurses entering information in their own ways within a given health system (since the software isn't very clear or usable), and the data that's getting transferred is a huge mess.
Beyond that, a lot of the most important information is encoded in free text fields, and so isn't directly analyzable. And even when information is mapped to codes from standard medical ontologies, there's no guarantee that when that information is transferred in HL7 formats it includes the code from the ontology.
It's not at all clear what the optimal way to structure medical information should be, so it's no surprise that there's a huge amount of variance out in the world. HL7 is quite old (v2 was made in 1989), and every new variant has to support the existing variants. EHRs were originally designed around billing and administrative workflows, so it's also not surprising that the data structures aren't great for analyzing data or treating patients.
Not the poster you were replying to, but I do healthcare data integration for my day job.
The problem is that HL7 is ostensibly a standardized interchange format, but there's enough ambiguity in the spec that literally every vendor implements things differently which leads to... my job existing.
Vendors implement the spec selectively. They may or may not support any given message trigger. They may have a different idea of what exactly constitutes something as basic as a patient account number and choose to send it in an unexpected field. Or send a piece of data you weren't expecting at all there. There may be a business case for capturing data that wasn't in the spec for a version of HL7 being used -- email addresses are common one today --
that lead to user-defined fields being added ad-hoc.
Honestly, working with HL7 v2 messages like posted above isn't really any substantially harder than working with CSVs. The real headache comes from actually integrating the underlying data.
Poster of the V2 message here. You describing the integration problem and that is the exact problem faced. As far as I understand it, isn't integration exactly what the format is for? It doesn’t do it well.
The standard will generally get you 80-90% of the way there.
There are a lot of factors that go into why the standard fails to be plug-and-play. The fact that v2 is essentially a glorified, somewhat standardized CSV instead of a prettier JSON has next to nothing to do with it.
troyastorino's sibling comment nails a lot of it. There's no standard model for the underlying data, which makes it incredibly difficult, if not impossible, to have a standard transmission format for the data. Literally every individual facility you'll look at is unique and will have their own registration workflows, code sets, etc.
The old V2 spec isn't what I'd call good, but it works. It's ugly to look at, but it's not difficult to work with, either.
The problems you're addressing, however, are far more fundamental to the industry itself and aren't going to be solved by an interchange format.
Maybe so, but I would argue a lot of the key information isn't that different for each type of medical event. (I'm leaving aside scheduling and insurance claims for now because I'm less familiar with things there but there are still probably some commonalities).
Each medical event should have:
- Patient it relates to
- Date it happened (possibly date it started and date it ended instead)
- Who did/prescribed/ordered it
- List of medical codes+coding system tuples that happened on that event
There's tons of other information of course, but these very basic things are universal and should always be in the same place (I refer to FHIR in this case, but format is somewhat irrelevant if the API is good). I understand they're not for historic reasons, and that some might complain because it doesn't exactly fit how they think about things, but a consistent API provides more value and I think will lead to better process down the line.
HL7 is moving along with FHIR, and I think it's a good start, I look forward to where it ends up.
>Maybe so, but I would argue a lot of the key information isn't that different for each type of medical event.
Well, I mean, that's pretty much the entire basis of the HL7 segment paradigm.
>- Patient it relates to
This is a much, much, much harder problem than you'd think.
Patients are going to have multiple identifiers attached to them and resolving them cleanly is literally an industry of its own within healthcare.
And that's precisely why it's a common problem during integrations - which identifier gets used how is generally a workflow and design decision made for a specific site-level implementation.
>- Date it happened (possibly date it started and date it ended instead)
>- Who did/prescribed/ordered it
These usually aren't sticking points for integration because they're the easy ones to get people to agree on.
>- List of medical codes+coding system tuples that happened on that event
These aren't really standardized at the industry level beyond ICD-10 diagnosis codes. Things like insurance provider codes, procedure codes, order codes, etc are individual to sites; even things like ethnicity and gender codes are variable by location.
I don't want it to sound like I'm down on FHIR or that I think HL7v2 is the greatest thing since sliced bread because I don't think either is the case.
The point I'm getting at is that there are huge problems with healthcare data interchange that just plain aren't going to be solved by a better interchange format.
That's inherent in the problem domain. The FHIR data model is distinct from the V3 RIM but clearly influenced by it. Health care has a high degree of irreducible complexity. If we oversimplify the model then it won't support important use cases and implementers will be forced to use proprietary extensions.
As a practical matter we can't rely on low-level standards to achieve real interoperability. Since there is often more than one way to model the same clinical information we also need high-level implementation guides with comprehensive examples to show everyone exactly what to do, along with automated conformance testing tools.
I work with FHIR extensively and find the standard to be decent but not great. Perhaps my biggest complaint is around naming strategies.
"What date did this event occur?", can be assertedDate or effectiveDateTime or performedDateTime or any number of things based on resources.
In the old versions it was even hard to know "What's the patient ID associated with this resource?", sometimes it was "patient" sometimes it was "subject". This has gotten better in STU3, and improvements have also been made to the way practitioners are identified as well.
I think there's a ton of irreducible complexity, but there are also common themes and common parts of medicine that should form the foundation of the API. It seems that instead of thinking, "What are the real commonalities here? Lets make them flexible enough to handle 90% of cases, but with a standard interface for extension." HL7 started from a current cumbersome standard and shoehorned it in.
I really am optimistic though, it's getting better all the time and FHIR is actually remarkably extensible to handle corner cases. I really hope it becomes the standard moving forward, especially as it smooths out the rough edges.
If you see a naming discrepancy then just go ahead and submit a tracker to fix it. None of the resources are normative yet and in my experience the work groups are quite willing to fix this kind of stuff as long as you provide sufficient justification. You might need to explain why the change is needed and ensure it doesn't get delayed. Don't sit back and expect someone else to identify and fix the problems; most implementers only work with a few specific resources so they might not even notice inconsistencies.
How would they track pull requests? I agree that it would be nice if it wasn't just restricted to github and the kinds of projects most likely to be hosted there, but it does simplify things on their end.
I do wish they had a way to prevent people from gaming it with fake projects just to get a free T-shirt, especially when there still seem to be others that never receive one. It also just goes against the spirit of the event.
I've worn hearing aids my entire life and manufacturers seeming to focus on miniaturization at the expense of capability always frustrates me. This isn't just driven by business interests though, DSP and EE at that scale are really hard and it's honestly remarkable what modern digital hearing aids can do with such limited resources. It does make me wonder though what would be possible if they just threw a lot of processing power at the problem, like say a Raspberry-pi sized processing unit concealed on the body connected to wireless mics/speakers. This would allow open the possibility to having more than two mics which could help with sound localization, which is something hearing aids are still not very good at.
Maybe it's because BTEs are the only option for someone with my degree of hearing loss, but if given the choice I'd gladly choose (or at least try) a more powerful/sophisticated hearing aid over a more aesthetically pleasing one, all other factors being equal.
What is your specific visual condition, if you don't mind my asking. Most people who I'd characterize as "debilitatingly blind" are lucky if they get any benefit from conventional eyeglasses, let alone "better-than-perfect" vision. I have a significant visual impairment myself (myopia, aphakia, and nystagmus) but I wouldn't put myself in that category.
Astigmatism and severe myopia. They're easily correctable, but without glasses I can't see more than about three inches from my nose. At normal viewing distances I simply cannot even see things other people can see, like letters, small animals or children &c.
Without glasses I'd be severely crippled. I've conducted a few experiments trying to move around in public without them, and it's beyond frightening.
Thanks for sharing, and forgive my sounding skeptical. I lucked out because the aphakia and myopia sort of cancel each other out, I still need glasses but they're primarily for near-distance. If I hadn't undergone cataract surgery as an infant, I'd probably have similar challenges.
CFR 250.2a covers overbooking but only applies before boarding. Since the United employees had no confirmed reserved seats on the aircraft, they cannot be given priority over a customer with a confirmed reserved seat.
The passenger was already boarded, so they cannot rely on oversales rules to refuse service. Instead they need to rely on their Contract of Carriage which does not allow them to eject customers for any reason whatsoever. The most circular thing they could eject him for was failure to follow the terms of the contract of carriage for refusing to disembark. They publicly stated that their reason for asking him to leave was because he was selected by a computer, but this is not allowed by their rule 21.
They had no legal right to refuse him service at that point.
"which does not allow them to eject customers for any reason whatsoever. The most circular thing they could eject him for was failure to follow the terms of the contract of carriage for refusing to disembark"
You should go back to law school. They can eject anyone at any time for any reason.
Yep, and in order to exercise his legal rights in this entirely civil case, he ought to have left the plane called his lawyer then gone before a judge.
This whole act of struggling with the police is never going to get a good outcome. It will only escalate things from a civil matter to a criminal one.
Given that either the police were acting illegally or United must have falsely asserted facts that made the removal legal, it seems to me that it must have become criminal, either on the part of the police or, more likely, United's false police report, before any struggle.
I think it's still up in the air as to if he had any kind of right to his seat.
United asserts, they prioritise their employees gaining seats on the flight because their employees are actually necessary to the operation of this flight and others.
It makes business sense, and its logical.
There's no law on any book that will force someone to serve you, whether it be transportation wise or by letting you have use of their mobile property (land/residences are a special case). United can pick random people at any time to get off the flight, for any reason, and at worst it will be a contractural breach or a violation of a civil statue (like the overbooking clause).
Once he was told to get off, he should have gotten off.
Absolutely not. In order for United to exercise THEIR civil rights in this entirely civil case and sue for lost revenue related to not being able to get their crew to Louisville, they should have let him fly after confirming his refusal to leave and then later pleaded their case before a judge. If United indeed had the right to reject him, they would have been compensated by the doctor.
It was United, not the passenger, who escalated to violence in a purely civil matter. He did not force himself onto the plane, he simply declined to give up the seat he had already been given.
This legal argument would explain both the CEO's twitter statements and the leaked letter.
If airline employees cannot legally contribute to "overbooking" and if a passenger has different rights once seated, then there will be a legal settlement. In that scenario, every communication by United would need to serve dual PR and legal objectives.
So it was stupid business not to offer more money for other people to leave the plane (or to find some other way to move the crew), there's nothing to argue about there.
What did they do that should be illegal?
Overselling each flight makes the tickets cheaper. People want cheaper tickets. So it isn't obvious to me that over selling is wrong. Is the problem that they failed to stop the people boarding before deciding they didn't want to carry them on that flight?
Everyone should note that they called law enforcement and law enforcement used physical force on the passenger.
Should the airlines be prevented from ever contacting law enforcement? Is law enforcement not responsible for their own actions after the airline asks them to do something?
Selling "over-capacity" as stand-by is potentially problematic, as it's not at all clear when you're overcapacity. It's always a probability game. Classifying tickets as "stand-by" as soon as probability > 0 would likely reduce their desirability, resulting in less full planes and higher overall prices.
The opposite setup would not, though. i.e., like refundable tickets, offer non-refundable guaranteed tickets that are locked out of the ticket system. This maintains the current pricing characteristics while offering travellers the option of paying more when it matters to them.
Or a sliding scale of probability of being seated. If your typical ticket has a 99% chance of being seated, most people won't care to pay extra but they know they have the possibility of being booted and cannot possibly complain.
The problem with all of these approaches is they add to the complexity of purchasing a ticket, which consumers generally don't like.
Airlines overbook because people don't show up for flights.
Overbooking means airlines can offer passengers refundable tickets.
Occasionally they get it wrong and have too many people show up. So they offer compensation to get people to voluntarily give up seats. If they can't get people to voluntarily give up seats they have the right to pick who to deny service to (but by law have to pay specific compensation to).
It's a system that works well. It keeps planes as full as possible. It keeps fares as low as possible.
I'm not sure it should change based on one guy who decided he was too important to accept being bumped.
One person who "decided he was too important to accept being bumped"? How about one person who expected the contract that he paid for in good faith to being fulfilled? Someone who made commitments to others based on that contract.
Why is it now that the consumer always has no rights? Don't want your private information sold when using the internet? Don't use the internet.
Don't want to be forcibly removed from a plane in which you followed all the rules for purchasing a ticket that was most likely non-refundable if you didn't show up, lost your rights for privacy by being searched to board the plane, stood in line to board the plane, was on time, boarded the plane to sit in an uncomfortable seat, maybe had to pay extra to store your luggage, then get beat up when you were told they weren't going to honor the contract?
Bumping happens before boarding.The contract doesn't allow for bumping after being seated. They're also required to offer up to $1300 cash if you refuse the $800 voucher.
The post I replied to is written as if it is something different than it is (they write as if the contract guarantees a seat on a flight at a particular time; of course it doesn't).
I think it's a bad situation, but I also think people giving very high priority to price is a big part of the reason that the contract is shit.
Let me correct that for you: 200+ people who decided that United hadn't offered enough incentives/financial compensation to be bumped.
If United ran an escalating auction system - like Delta does on overbooked flights - they would eventually have found someone to volunteer to take the incentive and that person would have voluntarily disembarked. Because they were apparently too cheap to do this, their share price is getting pounded into the ground today.
Whether that gets United's sociopathic CEO to change policy or not remains to be seen. If it doesn't, I'm inclined to agree with the OP: the consumer protection laws, at least for commercial flights, need to be updated so this doesn't happen again.
>Airlines overbook because people don't show up for flights.
That's false. They overbook because it makes them more money and for some reason people just accept it. Pretty much no other industry could get away with doing that to its customers.
Imagine the shit storm that would have unveiled if some random movie theatre sold 110% of its seats for the midnight premier of Star Wars VII and subsequently physically removed people from their seats because their employees also wanted to see the movie and they sold too many tickets.
Hotels do this all the time. They book over 100% occupancy and usually someone cancels at the last minute and there's no problem. If everyone shows up they bump one of the people on the lowest rate. They give them a room at a comparable hotel nearby and some sort of other compensation. Most price-sensitive guests are okay with this trade because they're getting something for free.
They don't have fiascos like this because they aren't foolish enough to let them into the room before removing them. Unsurprisingly, kicking a guest out of a room/plane has a much higher risk of escalation than not letting them in.
That's false. A ton of airline business is refundable business travelers. Your meeting goes late? Take the next flight.
Airlines are catering to their customers, if one didn't offer refundable their competitors would.
If one offered refundable but didn't overbook, 10% of their passengers wouldn't show up for every flight. They'd get killed by competitors who did overbook and could offer cheaper fares because that 10% is nearly pure profit.
And though they've actually made big profits the last couple years, historically airlines are one of the least profitable businesses, possibly even posting net negative profits over the entire industry lifetime. They require massive capital costs to buy expensive airplanes, and alternate profitable and unprofitable years. Warren Buffett said if he had been at Kittyhawk he would have done capitalism a favor and shot the Wright Brothers down.
He was a doctor trying to get to the hospital he works at. In this case he actually is "too important to accept being bumped".
Not that that would justify doing this to anyone else but he had a very good reason to not want to get off the plane.
This is why offering more and more money is a good strategy. There almost certainly were people on the flight willing to get bumped for $1500. But the doctor likely would have turned down nearly any sum of money if it meant putting his patients in danger.
But he's a doctor, not royalty. Hospitals have more than one doctor in case someone can't make their shifts. He was no more important than any other passenger.
Perhaps he or his employer valued his timely flight at $5,000 or more while some other passenger would have gladly taken $501 in cash. Now it looks like United will end paying millions directly in court or settlement costs, plus many more millions in lost revenue due to negative publicity. Hopefully United, by paying his laywers will have bought themselves a clue and start offering real values to Volunteers. And other airlines will learn by proxy if they know what's good for them.
Another way of looking at this would be to point out that internet service and air travel are the only two industries where it is legally allowed to sell people something you know in advance you can't provide.
In a sane world, overbooking would be at best illegal, the airline would realize the savings from the flight they were paid for but didn't actually have to carry the 200 pounds of passenger + luggage.
(That's about $90 worth of fuel on top of the average $350 price for a plane ticket)
At worst, overbooked tickets would be required to be disclosed as such at the time of purchase.
Another way of looking at this would be to point out that internet service and air travel are the only two industries where it is legally allowed to sell people something you know in advance you can't provide.
There's also fractional-reserve banking, hotels, old-style phones, online / mail-order shopping ("sorry, your stuff is in back order"), etc.
Hotels tell you when they're full and stop accepting bookings, nobody is selling anything at FR banking, everywhere I shop online tells me when their stuff is known out of stock, and so on.
Air travel does none of these things. They know they've sold more than they can provide, and do nothing to tell people until the last possible minute just to make a buck.
The airline has to provide you passage. They don't have to provide you passage on the flight you reserved. By doing this the system works more efficiently and your ticket cost is lower.
This is silly. If every plane had every ticket sold and no one showed up, the airlines would make out even better. Less cost of food and drinks, fuel, labor costs in moving baggage. Airlines should HOPE people don't show up and take seats on the plane. This idea that they overbook because people don't show up is a money-grab and when it bites them in the ass I, for one, am glad.
To be honest in that situation overselling would net airlines even more money. That's why airlines oversell.
IMO a better system would be a more market-based solution.
Disallow involuntary bumping except under exceptional circumstances, and require airlines to up theirs compensation until enough people voluntarily bump themselves. Airlines would still oversell but at lower % because the cost is now higher. And people who get bumped are at least given satisfactory compensations.
A lot of comments here are focusing on the pricing and ignoring the 'sandbox' part of the game's description. There is a leaderboard you can try to climb but it is reset monthly and isn't really shoved in your face. Beyond that you're free to set whatever goals you want and go about them however you wish, with the principles of other strategy games (harvest resources, build things, attack enemies, etc.) to give you ideas. It's really a game about you and your code and how it grows and evolves as your goals and strategies become more complex.
Screeps is definitely worth trying, if for no other reason than to learn javascript at a deeper level if you don't use it extensively. I do have a couple of issues though:
The first is that it is quite resource intensive considering its simple 2D visuals, both in the browser and the standalone client. I'm not sure if it is just poor optimization or the javascript runtime but it shouldn't make my machine hot. It'd be nice if this were addressed.
The second issue I have is the workflow, which doesn't lend itself well to source control. The ingame editor works well enough, but its idea of a "branch" is just a named copy of the code directory. I think there is a way to integrate with github but I don't want to upload everything to the cloud just to be able to track changes. It would be nice if this area were looked at and made more flexible so we could use our tools of choice.
Honestly I don't use the game client at all for coding. In my experience you're better off using a simple grunt task to push code to the server, and otherwise developing locally and keeping everything in git. The in game editor sucks, and you can do some fun post processing things with grunt.
The game client is pretty awful performance wise, but they're doing a rewrite that looks like it will be awesome.
I admittedly haven't explored it in great detail, but when I've asked on their Slack channel a lot of people seem to just use the ingame tools which are "good enough".
I think there may be a misunderstanding there. The community has built a ton of third party tools ( https://github.com/screepers ) and even has it's own alliance tracking site ( http://www.leagueofautomatednations.com/ ). I can't imagine anyone just using the ingame tools.
Can confirm, the community tools are awesome. If someone is only playing using ingame, without any of the external stuff, I feel they are missing a large portion of the game.
This is correct. If you buy it on Steam you get access to an offline/local server, in addition to being able to play in the persistent universe for free but with a severely limited CPU cap. There is also a way to purchase CPU time with ingame currency similar to EVE Online.
Some high level "What" comments are useful though even if just for yourself, especially for code that can't be easily broken down into modular units. Even if the code itself is very clean, it's still faster to read that one line comment which summarizes it succinctly in plain English.
I'm in a similar boat. I have a CS background but only took one "Computer Organization" class which wasn't even that good but it gave me a starting point. I wish I'd at least minored in EE. What resources have you found especially useful? I'm using All About Circuits[1] to learn fundamentals of electricity in addition to whatever tutorials I read for particular projects.