How A Failed Hospital Algorithm Could Save Lives

Thomas Northcut / Getty Images

Sepsis is one of the biggest hospital hazards you’ve maybe never heard of. When the body overreacts to an infection, it can trigger widespread inflammation that can in turn cause tissue damage and organ failure. It causes one-third to one-half of all deaths in US hospitals.

But because sepsis’ symptoms, like fever and difficulty breathing, sometimes look a lot like other illnesses, it can be hard to detect, especially in the early stages. So a team at Banner Health, a hospital system in Phoenix, Arizona, turned to computer science for a solution. Maybe they could develop an algorithm that constantly monitored electronic health records and warned hospital staff in real time when patients were at high risk for sepsis.

It didn&;t work. At least, not in the way Banner had hoped for.

Five years after Banner put the alert in place, it turns out to not have done a very good job of diagnosing sepsis. But the team behind it, led by Dr. Hargobind Khurana, discovered it had an unexpected upside: It was good at identifying patients who were generally much sicker than average, even if they didn&039;t have sepsis. Although the alert mostly failed at its main goal, it ended up having a different, perhaps even more powerful potential: steering clinicians to their most vulnerable patients.

Compared to patients who didn’t set off the alert, those who triggered it had four times the chance of dying the next day.

Algorithms have infiltrated almost every part of our lives, quietly yet deftly shaping both the mundane — calendar alerts, Facebook ads, Google predictions — and the vital. One of the most critical roles algorithms play is in electronic medical record software, which hospitals and doctor’s offices use to track and manage patients’ health and illnesses. Algorithm-based alerts are supposed to point out important information hidden in mountains of data — things like when someone’s medication needs to be refilled, or when a patient has an unusually high heart rate.

At their best, these alerts save busy doctors and nurses precious decision-making energy and draw attention to dangers that would otherwise go unnoticed. Too often, however, they dilute their usefulness and urgency by beeping, buzzing, and flashing tens of thousands of times a day, often without a good reason.

Banner Health’s experiment demonstrates some of the core challenges of merging health care with 21st-century digital automation. It’s a continuing struggle despite the fact that the US government has poured billions into digitizing medical records in hopes of making them safer over the past few decades.

“It’s hard to create a good alert. And it’s hard to get buy-in from doctors and nurses because it’s ‘just another thing’ to do,” Khurana, Banner’s director of health management, told BuzzFeed News. “How do we keep that balance of not just expecting them to do more and more work, but how do we make sure the patient is taken care of? … How good do the alerts need to be? … Everybody in the health field is trying to figure out the answer to this.”

Moodboard / Getty Images

Banner Health started working on the alert in 2009; Khurana joined two years later. At first, they looked at the common criteria for sepsis and organ dysfunction, like high breath and heart rates, unusually high or low body temperature, and off-balance chemical levels in someone’s blood and organs. Then they used this criteria to design an alert that continuously analyzed electronic medical record data from medical device sensors and other sources. The alert would fire whenever a patient showed two of four symptoms for sepsis and at least one of 14 symptoms for organ dysfunction — if both of those things happened within eight hours of each other.

Khurana added the alert to Banner Health’s Cerner electronic medical record software, which, like other programs, comes with its own built-in alerts (but did not at the time have a sepsis alert). From April 2011 to June 2013, the sepsis algorithm monitored more than 312,000 patients across the emergency department, inpatient, and intensive care units of Banner Health’s 24 hospitals.

Weary, overworked staff are prone to ignore even alerts that point out signs of danger.

Not everyone was thrilled, Khurana recalls. Some nurses and doctors complained that not every patient flagged by the algorithm actually had sepsis — but the caregivers still had to evaluate the patients, override the alerts, and document it. Those steps may take just a few minutes, but the many false alarms made some staff members doubt if the algorithm was working at all.

A colleague who helped develop the alert, Dr. Nidhi Nikhanj, recalls similar sentiments. “There was certainly was a lot of skepticism, especially from those who had to actually answer the alerts, because of the extra workload it would bring on our shoulders,” he said.

These clinicians were grappling with a widespread phenomenon in health care dubbed “alarm fatigue.” In a 2013 report, the Joint Commission, a health care accreditation nonprofit, found that several hundred of alerts can fire per patient per day, which amounts to tens of thousands of buzzes or beeps throughout an entire hospital every day. But 85% to 99% of these warnings don’t actually require clinicians to intervene, often because the alerts&039; settings are too narrow or broad to correctly identify patients in need. Weary, overworked staff are then prone to ignore even alerts that point out signs of danger.

Alerts are best when they “continually tell physicians what they’re really not aware of,” said Lorraine Possanza, a risk management analyst at the ECRI Institute, a nonprofit that studies patient safety issues. “If you’re continuing to give them info they already know, the likelihood of them bypassing that alert, or ignoring the alert, or becoming overwhelmed by the number of alerts, is just much more likely.”

This May, nearly five years after the experiment started, Khurana’s team crunched the data and published the results in the American Journal of Medicine. His colleagues’ complaints had been partly accurate: The alert didn’t always flag patients with sepsis. More precisely, only about one-quarter of patients the alert flagged had the condition.

The patients identified by the alert did turn out, however, to be much sicker than average in general. This correlation wasn’t completely surprising, given how sepsis symptoms are known to overlap with other severe illnesses.

The algorithm identified a small minority of patients who accounted for nearly 90% of all deaths in the hospital.

But Khurana was taken by just how sick this group was by virtually every measure. The algorithm identified a small minority of patients — about one-fifth — who accounted for the overwhelming majority — nearly 90% — of all deaths in the hospital. Compared to patients who didn’t set off the alert, those who triggered it had four times the chance of dying the next day. They were also more likely to suffer chronic medical conditions, such as chronic kidney disease and obstructive pulmonary disease, and to stay in the hospital twice as long.

“We expected it would be sicker patients, and the rates would be higher, but not this high,” Khurana said. In other words, the data showed that the alert had the potential to bring sick, in-need patients to clinicians’ attention — just not quite the patients that the Banner Health team had first set out to find.

Since the initial data analysis of the alert in early 2014, clinicians at Banner Health have come to perceive the algorithm in a new light, Khurana said. The question it used to prompt, as he put it, was: “‘Does a patient have sepsis?’ If not, move on.”

Now, he said, the alert inspires clinicians to take a second look and ask themselves, “Is the patient sicker than what I expected? Is there anything I can do to look at a patient’s care plan and do things differently?” Khurana said those things include moving a patient to an intensive care unit, checking in on them more frequently, and re-evaluating their diagnosis and treatment.

Brianajackson / Getty Images

The team hasn’t crunched the numbers yet to definitively know how, or if, these interventions are improving patient health. But after seeing the first set of results, staff members are more willing to embrace the algorithm’s potential. “Because of a new enthusiasm and renewed interest in this, we were able to get a lot more buy-in,” Khurana said.

Electronic health record alerts are near-perpetual works-in-progress — as unnerving as that might be to hear.

While his team still wants to create a fully functioning sepsis alert, their main focus at the moment is refining the original algorithm to better identify the sicker-than-average patients. One insight from the first time around, for example, was that patients who triggered the alerts and had elevated lactic acid levels were likelier to die than alert-triggering patients with normal levels. (High levels can mean that the body is not getting enough blood supply.)

Taking this into account, their revamped alert doesn’t fire if a patient has normal lactic acid levels, and generally has stable vital signs. It’s too early to know if the tweak has made the algorithm more accurate or helped save more lives; answers to those questions will be revealed in future studies. But there are promising signs so far. “This has helped us filter out a lot of the false negatives,” Nikhanj said.

What Banner learned is that electronic health record alerts are near-perpetual works-in-progress — as unnerving as that may be for patients to hear. It’s likely that no one will ever come up with a set of algorithms that saves patients’ lives 100% of the time, but clinicians and programmers can’t stop trying to get there.

Depending entirely on algorithms was never the point, anyway. The goal, says John Gresham, a vice president at Cerner, the company making Banner Health’s electronic health record software, is to “guide the clinicians to make a different decision or to intervene more quickly. Not [to] take care out of the hands of the physician, but guide them to make a better clinical outcome.”

Quelle: <a href="How A Failed Hospital Algorithm Could Save Lives“>BuzzFeed

Build cloud apps at warp speed

One of your best customers just tweeted about a problem with your product and you want to respond to them ASAP. It would be great if you could automatically catch this type of communications and automagically respond with either the right documentation or escalate this to your support team. But the thought of writing an application to handle this event, with all that entails – allocating VMs, assigning staff to manage either the IaaS instances or the cloud service, not to mention the cost of development, (which might include software licenses) all that seems like a lot just to recognize and handle a tweet.

What if you could catch the tweet, direct it to the right person and respond to the customer quickly with no code and no infrastructure hassles: no systems-level programming, no server configuration step, not even code required – just the workflow. Just the business process.

It’s possible in the new era of .  With newly introduced capabilities in the Microsoft Cloud – Microsoft Flow, Microsoft PowerApps, and Azure Functions, you can design your workflow in a visual designer and just deploy it.

Now in preview, these new cloud offerings foreshadow the future of cloud applications.

Intrigued? Read on.

Take a look to the left. There’s the Microsoft Flow designer being set up to tell your Slack channel any time somebody complains about your product. 

That’s it. One click and voila: your workflow is running!

(And there’s the result in Slack!)

But perhaps your smart support representative contacts the unhappy customer – who it turns out has a valid issue. Your rep takes down the relevant information and starts a new workflow to have the issue looked at.

Need a server for that? No! With Microsoft Power Apps, you can visually design a form for your rep: and it can kick off a Flow.  Want that app mobile-enabled on any smartphone? No problem, as you see below. And as it shows you use the Common Data Model available in PowerApps enabling a lingua franca between applications.

If you need more sophisticated, or custom processing, your developers can create Azure Functions on the event, say, updating an on-premises or cloud-based sentiment analysis engine with the tweet, or invoking a marketing application to offer an incentive. Again: no server. (In fact, no IDE either: your devs write their business logic code directly on the Azure portal and deploy from there.)

So why do I say Microsoft Flow, PowerApps and Functions presage a new model of cloud applications? Because increasingly, cloud apps are evolving toward a lego-block model of “serverless” computing: where you create and pay only for your business logic, where chunks of processing logic are connected together to create an entire business application.

Infrastructure? Of course it’s there (“serverless” may not be the best term), but it’s under the covers: Azure manages the servers, configures them, updates them and ensures their availability. Your concern is what it should be: your business logic.

This is potentially a seismic shift in how we think about enterprise computing.

Think about it: with PowerApps your business users can quickly create apps, and with Microsoft Flow, create business processes with a few clicks. With Flow’s bigger cousin, Azure Logic Apps, you can quickly connect to any industry-standard enterprise data source such as your local ERP system, a data warehouse, support tools and many others via open protocols and interfaces such as EDIFACT/X.12, AS2, or XML. And you can easily connect to a wide variety of social media and internet assets, like Twitter, Dropbox, Slack, Facebook and many others. With Functions you can catch events generated by Logic Apps and make decisions in real time.

And you haven’t deployed a single server. What code you’ve written is business logic only; not administration scripts or other code with no business value. Your developers have focused on growing your business. And, most importantly, you’ve created a rich, intelligent end-to-end application –by simply attaching together existing blocks of logic.

Like Lego blocks. Other cloud platforms offer serverless options, but none as deep and as varied as Microsoft’s, empowering everyone in your organization, from business analyst to developer, with tools appropriate to their skills. For enterprises, the implications could not be more profound.

Maybe it’s appropriate, on this fiftieth anniversary of Star Trek, that with tools on the Microsoft Cloud, you can run your business at warp speed using Azure.
Quelle: Azure

Explore Microsoft Cloud Platform System – delivering Azure experiences in an integrated system

Are you getting ready for your upcoming Ignite trip? Are you ready to learn how Microsoft Cloud Platform System (CPS) can help you get started with cloud without breaking the integrity of your existing virtualized environments? Join us at BRK2260 session “Explore Microsoft Cloud Platform System – delivering Azure experiences in an integrated system” to learn all about our hybrid cloud vision, new developments, and new possibilities that enable IT organizations to get the best of both public and private cloud infrastructures. Also learn about how you can take advantage of various technologies from Microsoft today to start your cloud journey and plan your investments so that they are aligned with the future. As part of the session, we’d like also to share with you on some real-life customer examples, and use-cases, that are based on CPS as well as best practices.

My name is Cheng Wei, a program manager on the Azure Stack team. And together with my colleagues Walter Oliver & John Haskin, we can’t wait to share with you on all these exciting topics at Ignite and would love to hear what’s hot in your mind and what you would like to discuss with us around this subject.

During the session, you can expect to hear from us on the following areas:

Explain Microsoft’s hybrid cloud vision
Introduce CPS product family (CPS Premium and CPS Standard)
Explain WAP / CPS and Azure Stack co-existing strategy and experience
Demo the experiences after connecting WAP to Azure Stack

Please note that not everything we’ll share at this session will be available at the Technical Preview 2 release. So don’t miss this opportunity to come learn and see the demo of how to continue your cloud investment with WAP/CPS today and connect them with Azure Stack next year when it’s released!

Again, if you’re coming to Ignite, we&;d love to hear your thoughts on if there is anything else you’d like to see and hear from this session, or if you have any specific questions that you’d like to start discussing with us. Feel free to follow us @cheng__wei, @walterov, and @AzureStack for more updates on this and other Microsoft Azure Stack session topics.

Thanks and look forward to meeting some of you at @MS_Ignite!

Quelle: Azure

New Filtering Options for AWS Cost Explorer

AWS Cost Explorer is a tool that helps you to visualize, understand, and manage your AWS spending. You can view your spend by service or by linked account, with your choice of daily or monthly granularity. You can also create custom filters based on the accounts, time period, services, or tags that are of particular interest to you.
Quelle: aws.amazon.com

Refreshing user logins in App Service Mobile Apps

Azure App Service&;s Easy Auth feature has made enabling app authentication extremely simple, whether you are working with client flow or server flow. Still, if you&039;ve worked with token-based authentication in the past, token expiry and refresh can be a hassle. Depending on the authentication provider, token expiry can range widely from minutes to months. Facebook has a 60-day expiry, while other common providers like Google, Azure AD, and us at Azure Mobile Apps have a 1-hour expiry. You probably had to handle these in your codes to ensure app user authentication and client experience, similar to what Adrian Hall detailed in his 30 Days of Azure Mobile Apps: Day 7 – Refresh Tokens post.

To simplify this token refresh experience, we recently baked Auth 2.0’s Refresh Token into Easy Auth&039;s client SDKs! Instead of adding your own refresh logic for authentication, here’s how you can use the built-in token refresh feature in our Managed Azure Mobile Client SDK 2.1.0. or later versions to keep app users logged in.

This feature is only available for server-managed authentication flow. And given the balance between security and an app&039;s possible inactivity during the weekend, refresh tokens can be obtained as long as the Mobile Apps authentication token has not expired for more than 72 hours (see Chris Gillum&039;s post for more details).

How to Use Refresh Tokens with Your Identity Provider

We assume that you have successfully set up desired identity providers with your Mobile App following how-tos for Microsoft Account, Google, or Azure Active Directory (Facebook and Twitter are not supported). 

Microsoft Account

Enable wl.offline_access scope on Portal > Settings > Easy Auth > Authentication / Authorization > Microsoft Account:

Then the following snippets will help you refresh users in a server-managed authentication workflow:

MobileServiceUser user = await client.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount);
//…
user = await client.RefreshUser();

Google

In server-managed authentication workflow, pass in additional parameter (access_type=offline) in MobileServiceClient.LoginAsync().

MobileServiceUser user = await client.LoginAsync(MobileServiceAuthenticationProvider.Google,

new Dictionary<string, string>() {{ "access_type", "offline" }});
//…
user = await client.RefreshUser();

AAD

After configuring your AAD client secret on Azure Resource Explorer (see the Azure Resource Explorer snippets here if you don&039;t know how), pass in an additional parameter in MobileServiceClient.LoginAsync() in your server-managed authentication flow.

MobileServiceUser user = await client.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory,

new Dictionary<string, string>() {{ "response_type", "code id_token" }});
//…
user = await client.RefreshUser();

 

Handling Refresh Failures

RefreshUser would work only if all following requirements are satisfied:

The identity provider supports OAuth 2.0’s Refresh Token. Microsoft Account, Google and Azure Active Directory support Refresh Token, while Facebook and Twitter do not.
Permission/scope required for using Refresh Token is granted by the developer, e.g. wl.offline scope for Microsoft Account, offline access_type for Google account, code reponse_type for Azure Active Directory account.
Access token or refresh token is not revoked by the developer.
MobileServiceAuthenticationToken has not expired for more than 72 hours.

Here are some errors that you can be experiencing with the refresh call.

Error

Why?

What to do?

400 Bad Request

Lack of offline permission/scope

Identity provider (i.e. Facebook, Twitter) does not support refresh token

Prompt user to login again

401 Unauthorized

MobileServiceAuthenticationToken is invalid

MobileServiceAuthenticationToken expired for more than 72 hours

Prompt user to login again

403 Forbidden

Access token revoked

Refresh token revoked

User permission revoked

Prompt user to login again

 

Give it a try and let us know what you think!
Quelle: Azure

Create an Office 365 dev/test environment in Azure

With the Office 365 dev/test environment in Azure, you can follow step-by-step instructions to configure a simplified intranet in Azure infrastructure services, an Office 365 Enterprise E5 subscription, and directory synchronization for Azure Active Directory (AD). With this new dev/test environment, you can:

Perform Office 365 application development and testing in an environment that simulates an enterprise organization.
Learn about Office 365 Enterprise E5 features, experiencing them from a consequence-free configuration that is separate from your organization’s infrastructure and Office 365 subscription and your personal computer.
Gain experience setting up directory synchronization between a Windows Server AD forest and the Azure AD tenant of an Office 365 subscription.

Do all of this for free with Office 365 Enterprise E5 and Azure trial subscriptions.

Build out the Office 365 dev/test environment with these steps:

Create a simulated intranet in Azure infrastructure services.
Add an Office 365 Enterprise E5 subscription.
Configure and test directory synchronization between the Windows Server AD forest of your simulated intranet and the Office 365 subscription.

Here is the progression:

Once complete, you can connect to any of the computers on the simulated intranet with Remote Desktop connections to perform administration, app development, and app installation and testing.

This dev/test environment can also be extended with an Enterprise Mobility Suite (EMS) trial subscription, resulting in the following:

With the Office 365 and EMS dev/test environment, you can test scenarios or develop applications for a simulated enterprise that is using both Office 365 and EMS.
Quelle: Azure