At HCA Healthcare (500k employees and contractors), we’re currently experimenting with Elixir for both data integration (to handle parsing, routing and manipulating millions of messages to tens of thousands of connections) and also using it in our data science department.
I know that another Nashville healthcare company, Aspire, is using Elixir heavily in production.
With increased demand for realtime IoT data and predictive analytics, Elixir seems like a great fit for the coming needs in our industry.
We are trying to drive adoption by releasing open source projects in the language. Our first release recently went live for HL7 (the old international standard for healthcare messages).
We should hopefully be releasing an MLLP library (an old streaming protocol used heavily healthcare) and we are currently working on an Elixir FHIR library (the new international healthcare messaging standard).
I’m curious if other healthcare companies are working in Elixir right now? I’d love to connect and help push the language into our industry as I believe it could be incredibly beneficial (and save lives through better healthcare for everyone!).
I work at a healthcare-related company, ScriptDrop that runs on Elixir. We coordinate couriers & pharmacies to get prescriptions delivered to patients. We don’t have a ton of open-source stuff at the moment, but there is this little library:
We use it to handle the “signed overpunch” format that NCPDP D.0 transmissions use for some fields.
We started out using Phoenix + Elixir as “fast Rails” with some extra binary-protocol-handling goodness for D.0. We’re now getting into more Elixir-y things with GenStateMachine.
I’ve never even heard of NCPDP! Will have to read up on it! Awesome!
I know Iora Health uses Elixir and Pill Pack was seriously considering it, but I don’t know if they eventually did.
They actually have a huge Elixir project in Ukraine, it was used to reform and digitalise the healthcare system.
It’s also open source https://github.com/edenlabllc/ehealth.api
Here’s a talk about it:
I have been working on EMR system Helium Health and whole application is written in Elixir. I also have been working on FHIR implementation in Elixir, but since then I have switched the job.
Cool. I had to do a little HL7 once, but so little that I could use very simple template strings. Nice to know this exists for more sophisticated needs.
Wow, an Elixir EMR! that rocks!
It seems that you guys have green wide eyes WOW about Elixir
I have used Elixir about 5 years, in which I use 2 years of Elixir and Phoenix in production for a Pharmacy-related company.
Good things I can say about Elixir:
- Good, simple parallel programming paradigm.
- Kind of stable and not much error prone.
Other than that, I wish I would have chosen Ruby or Python to implement my current production system all the time, all day, every day. Because of the nature of immutable languages, it is a super pain to implement complex business logics that require keeping states and passing states around.
Things I would have finished within one day in Ruby or Python take me about a week in Elixir. And trust me, I write Elixir nearly as well as I write Ruby, and much better than I write Python. Still Elixir productivity is nothing to write home about.
And despite whatever other people say that Elixir is close to Ruby, there is nothing further from the truth. I have worked with Elixir for 5 years, write Elixir code for production system everyday, and I still have to look in docs for function references. Elixir’s syntax is very counter-intuitive. Its syntax is just better than Erlang
This is an interesting perspective. For me it’s the opposite way around.
For low-level details of the code, mutability and direct pointer references make some things much easier (for example, everything having to do with graph algorithms, DOM manipulations, etc). I know because I’ve tried to do these things in Elixir and they are a pain.
However, for higher level program logic, elixir’s immutability seems like a positive thing, although probably less performant.
I know Nedap Healthcare from Netherlands is using Elixir extensively, which is a public knowledge as they posted ads and been hiring Elixir people and also have published open source Elixir code (so so am not breaching any NDA I may or may not have doing so ;)).
Very cool! Their Github profile seems to mostly be in other languages, e.g., they’ve got a deidentification library in Python (which makes sense since it’s NLP-based). I had to write one for our company, but it’s very different (built around maintaining consistent fake identities against real data and lacking NLP).
Can you mention any more about what kind of work they’re using Elixir for?
I only can google and send you links to what is publictly available at the moment, but one of the growing library of Elixir projects they use is at the heart of authorization mechanism: Shield.
Use Google Translate to get more details but this system basically answers the question of “if this user should have access to that patent’s data”. These security checks are being done throughout their systems, as you can imagine, and Elixir is at the core.
Edit: there is also one project I do have permission to share and it’s being used to report COVID-19 cases from care houses. Not much publictly facing but it’s an Elixir/Phoenix app with LiveView parts. My team at AmberBit helped build it.
Awesome, thanks for the info!
I also wrote Elixir code this year to send out alerts when patients from long-term care facilities get Covid tests or positive results after entering a hospital!
We use it heavily at Bridge Connector (also Nashville, but I and 75% of the Elixir devs are remote) where we’re building an “Integration PaaS” (think Zapier) for building healthcare integrations. We’ve been through a couple iterations to come up with a system we think can scale from a business perspective, but the current version seems like we’ve gotten it, and should just be a matter of incremental changes.
We actually use HCA’s HL7 library
I’m really hoping FHIR gets used more widespread. It’s huge, but hopefully it makes integrations simpler.
Hehe awesome! We’re trying to probably solve similar issues in terms of high integration volume with Elixir!
Let me know if you need any features or have any suggestions for the HL7 library!
We also have an MLLP library on github (not Hex yet), not as well documented but it works.
And I’ve been writing a FHIR library – but got sidetracked on some other work before finishing it. I made the mistake of building it from the XSDs they provide. But it turns out they only have about 90% of the data needed to really generate validation code. You have to use the “structure definition” files instead. And the fact that FHIR breaks the JSON standard drove me CrAzY. Can’t use JSON.parse in a browser… can’t use Jason in Elixir (I forked it to make FHIR-Jason, couldn’t convince its author to violate the standard to support the “standard”…
You should visit our currently virtual NashFP (Nashville Functional Programming group) some time!
Nice. If anything comes to mind for the HL7 library I’ll let you know .
A previous healthcare shop I worked that had elixir (CoverMyMeds) used the google/fhir protobuf definitions in a small app a few years ago. I haven’t used them since then, and it was a pretty specific use-case (i.e. didn’t exercise a whole lot of the resources).
I know the state of the protobuf libraries has improved a good bit too. https://github.com/tony612/protobuf-elixir was still pretty new, and exprotobuf/gpb generally worked but there were some validation annoyances in gpb that we kinda hacked around. No matter what though, some of the different ways of using Fhirpath, and references look like they’ll be a pain.
I’ll watch the twitter account for the next NashFP meeting. I went to the one back in February when I was in town, but haven’t attended any of the remote ones yet
Just some extra information, there’s also the Protox library. This forum post gives more information about it:
Hope it is helpful The maintainer @ahamez is also very nice, helpful and quick to respond.
Aaaaand Bridge Connector as a company doesn’t exist anymore
We were building pretty awesome stuff but the CEO made some “questionable” choices, and the board.
I really want them to be able to sell their IP so at least someone can use it :-/
Current place, “prescribeFIT” is also healthcare + elixir working on remote patient monitoring combined with personal coaching and physician oversight. Majority of the existing code is an Express API and Angular 2 frontend, but the mandate is that whenever possible all new features will be in Elixir. I’ve been here about a month and have only written Elixir so far. Lots of Ecto.Multi at the moment and whenever we can finding ways to unwind poorly designed database schemas, or give ourselves more useful intermediate structures when we can’t.
Hi! Ratio PBC* has Elixir apps deployed in both NY and NJ for their pandemic response. I’d love to chat with other Elixir devs in the healthcare space! @darkmarmot I don’t know how many times I’ve recommended to colleagues the keynote of what HCA is doing in Elixir. It’s amazing.
* We spun out of Geometer, of which our former colleague Sax just gave a talk on one of our Elixir projects at Code Beam. Using Elixir to fight Covid-19 - Eric Saxby | Code BEAM V America 2021 - YouTube