Clear filter
Article
Bob Schat · Feb 10, 2022
The InterSystems Iris Fhirserver running on a Raspberry Pi Raspberry running as a FHIRserver
Raspberry running as FHIRserver
About a year ago I wrote some articles about the installation of the HAPI FHIRserver on a Raspberry Pi. At that time, I only knew the basics of the FHIR standard, little about the technology behind FHIR-servers and not much more about the Raspberry. By trying, failing, giving up and trying again I learned a lot.More than a year later I’m still a “perseverant amateur”, but meanwhile I built up a full FHIR environment with Raspberries, a number of applications in HTML/JavaScript/jQuery/Bootstrap and some applications in PHP. I did some work with authentication- and authorization servers on the Raspberry and some experiments with SMART on FHIR.
Most of it works, although sometimes without me knowing what the difference is between the last non-working version and the success I obviously created. I ‘m still surprised daily. Looking back, I should properly have studied systems development (I’ve a degree in forestry and currently volunteer a lot in that area. But that is different story).
Please be aware that a Raspberry Pi is ok to experiment with, but is not suitable for productional situations. So don’t use the Raspberry as a productional system in healthcare or any other situation in which reliability, continuity, security, privacy etc is needed or expected. It’s a perfect and cheap computer to experiment and it exceeds my expectations time after time, but it isn’t of “industrial strength”.
The InterSystems FHIRserver
At the time I have chosen the HAPI FHIR server because of its availability and because I succeeded quite soon to get some results with it. A former colleague, who is working for InterSystems now already suggested to experiment with InterSystems’ FHIRserver too.
I know InterSystems quite well (or should I say “I.know”😉) and it sounded like fun, but at that time, more than a year ago, a suitable version of Iris wasn’t available for ARM -processors (the Raspberry runs on ARM). Apart from that is the community version of Iris distributed as a Docker-container and I knew less than nothing about Docker.
From Raspbian towards Ubuntu
Meanwhile a year has passed. There is a new and even more powerful Raspberry Pi available (while stocks last…). The new Raspberry 4, like the Raspberry 3, supports 64-bits Unix. The IRIS community version is available for ARM too and I learned somewhat more about containers and Docker.
With all these improvements, the nonsensical “lock down” we had in the Netherlands at the end of last year became an opportunity to start a new experiment in which I would try to get the community version of IRIS running on a Raspberry Pi .
Looking back this was quite easy. In fact, there are only three attention points:
You’ll need a Raspberry supporting 64 bits. This means either a Raspberry 3 or 4 .
I didn’t succeed with (64 bits) Raspbian (which is quite new by the way). But I succeeded with 64 bits Ubuntu.
The InterSystems FHIRserver seems to be more judgemental about the FHIR-calls than the HAPI FHIRserver. I will explain this later in an additional publication, but I don’t think this is bad. Being the central repository in an (health-)care environment you should be strict regarding the standards, otherwise it will be “garbage in – garbage out”.
It took however some time for me to understand while applications that ran ok with the HAPI FHIRserver failed running with IRIS. Spoiler alert: the problem was in my applications.
It is however fun and more than worthwhile to see a little computer like a Raspberry Pi, at costs less than 100 Euros, running the full InterSystems IRIS platform, complete with management portals, Ensemble, Caché and a FHIRserver.
In the next paragraph I’ll explain step-by-step what I did to get there. That will not be a lengthy story about the history of Ubuntu, the philosophy behind Docker etc. If you’re interested in that, please visit the Internet. I will focus on the “happy flow” and only when relevant mention where I firstly went wrong.
Installing the InterSystems FHIRserver
Phase 1. Ubuntu 64-bits
1. Format your SD-card and put the 64-bits version of Ubuntu for ARM-processors on it. The compressed version was named “ubuntu-20.04.3-preinstalled-server-arm64+raspi.img.xz” in my case and you’ll find it on http://cdimage.ubuntu.com . (Of course you have to decompress the .img file before putting it on the SD-card!).
Don’t use RaspberryPi-imager because that gives an incorrect version. I used Win32DiskImager.
2. Start your Raspberry with the new image. Change (and memorize!) the password for the ubuntu-account. wachtwoord van het ubuntu-account.
3. Your Raspberry is running Ubuntu now, but we are not ready yet.
Look at this:
This Ubuntu-version still is 32-bit !
We’re going to cure that now
1. Log in on your Pi
2. sudo rpi-update
3. sudo reboot now
5. sudo copy /boot/config.txt /boot/config-ok.txt (in case of errors we’ve got an escape)
6. sudo nano /boot/config.txt Add under [pi4] the text : arm_64bit=1
8. Save boot/config.txt (in nano: <ctr>O )
9. Exit from nano (<ctrl>X)
10. sudo reboot now
And now we’re running 64 bits. See for yourself:
Make a notation of your Pi’s IP-address (sudo hostname -I where I is the I from "Island") and you can put it away since in Ubuntu SSH is enabled by default.
Phase 2: Docker
1. sudo curl -fsSL https://get.docker.com -o get-docker.sh
2. sudo sh get-docker.sh
This will result (after a while) in an extensive notification of Docker about using it as a “non-priviliged user” .
3. sudo usermod -aG docker $USER
4. Log off and log on again
5. docker container run hello-world
Docker now looks for a “hello-world” image on your system. It will not find it there and than will download it from the Docker-repository. After that Docker puts the image in a container on the Pi and starts the “hello-world” image.
You can see that confirmed by another block of text from Docker, including the “Hello from Docker” welcome message.
Fase 3: The Docker image for InterSystems’ IRIS FHIRserver
1. Give the following command in one time:
sudo docker run --name my-iris -d --publish 9091:1972 --publish 9092:52773 containers.intersystems.com/intersystems/irishealth-community-arm64
Now a lot of events happen after eachother:
Docker will get the “community edition” from Irishealth and puts it in your local Docker repository.
Docker starts the community edition in a docker container named “my-iris”.
Docker maps port 1972 of IRIS, running in the container, to port 9091 of your Raspberry.
Following the same pattern, port 52773 of IRIS (in the container) becomes port 9092 on your Raspberry.
You can see what happened by:
2. sudo docker container ls But there is another, much more impressive way to experience it.
Phase 4. Start the InterSystems IRIS for Health Fhirserver
Start a webbrowser in your network, for example on your PC en go to:
<ip-address-of-your-Raspberry>:9092/csp/sys/UtilHome.csp .
You’ll see the managementportal of IRIShealth. The portal automatically adjusts to the language on your PC.
The standard account is _SYSTEM (with a leading underscore) and the initial password is SYS (without underscore). IRIS requires to change the password immediately.
Now you’re able to configure the IRIS for Health FHIRserver and start it up, following the instructions on: https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=HXFHIR_server_install
You have to configure a “Foundation” and to define an “Endpoint” (FHIR 3 or 4).
The “endpoint” will result in the URI on which you can access the FHIRserver. In my case the “Patient” resource is on http://192.168.1.29:9092/csp/healthshare/fhironpi/fhir/r4/Patient (doesn’t work from outside!)
Conclusion
Has this been worth the trouble? Yes, more than that! To start with: there wasn't much trouble. I didn't succeed with Raspbian, but that was solved easily. And having the IRIS-for-health platform running on device like a Raspberry Pi is impressive. All the dashboards (DeepSee), dataconversion-tools, Ensemble (an Enterprise Service Bus plus a lot of extra tools), CSP-pages and Caché (a multi-dimensional database) seem to be available to experiment with and even I.know for natural language processing is visible in the management portal. The IRIS-for-health platform offers much more than a FHIRserver allone and far too much to describe in one article.
For me personally IRIS-for-health has an extra bonus since I worked (as an architect) with Ensemble almost as soon as it was there and apart from that IRIS-for-health's earliest start was in the second half of the 2-th century. The MUMPS development environment for healthcare applications (MUMPS: Massachusetts General Hospital Utility Multi-Programming System) ran mostly on VAX computer systems of Digital Corp. And my professional career in IT started at that time with VAXes.
MUMPS, Caché, Ensemble and today the IRIS-for-Health platform have great stability and require relatively modest support and maintenance. The documentation of the InterSystems products is extensive and easy to find.
I will experiment more with IRIS and the FHIRserver and I promise to at least publish one more article: about my "struggle" with a strict adherence to the FHIR-standard!
Stay healthy, keep thinking, play on!
Bob Nice article!
Thanks for sharing, Bob ;) very good attempt, genius idea. How stable is this scheme? Interesting article and well written. What could the potential use cases be? Can the functionality be stripped down to bear minimum to reduce the application foot print and enhance the integration capabilities for smart home devices? Hi Yankai, thank you. The InterSystems FHIR server as I wrote about is now running for 20 days without any interruption. It is -of course- not heavily used, only for my own testing purposes. A Raspberry Pi is IMHO not suitable for critical applications like airplane-control, critical healthcare systems etc and I don't think InterSystems will support "IRIS on Raspberry" . But the combination of the Raspberry Pi and IRIS appears to me, based on my modest usage, as to be pleasantly stable. Which is in line with my earlier experiences with Caché and Ensemble.
ubuntu@Ubuntu01:~$ uptime 15:26:47 up 20 days, 3:19, 1 user, load average: 0.02, 0.03, 0.00 Thank you Ravi. Some use cases could probably be found in (portable) healthcare devices that don't need 99.998% of 24x365 availability. I don't think stripping down functionallity would be necessary since this would require development and maintenance of a "special Raspberry" version of IRIS. The licensing part would be another story ;-). But because small computers like the Raspberry Pi (and Raspberry Zero) are so powerful today (and inexpensive) a lot of new applications can be thought of. If there are situations (I think mostly in the care/healthcare area) where FHIR and integration are needed in a small platform this certainly could be an option. I don't think however that for really critical applications, where health, lifes or welbeing can be dependant of this would be an advisable direction. And -from another perspective- we should take care not to desperately find a problem for this solution. Over all I'm already very happy with the opportunity to play around with IRIS and FHIR without big expenses. IRIS isn't suitable (nor meant to be) running on the edge or inside containers for that matter.As its name implies it is a Data *Platform* a framework on its own for running large-scale mission-critical applications.IRIS Agents or ECP Clients or whatever you will call them could extend IRIS to the realm of containers and edge applications.
Even in the global masters rewards where they have an RPi available with IRIS preinstalled, it's running on Ubuntu, not Raspbian, so that part didn't surprise me.
As python becomes more widely adopted in IRIS and word gets out about it, I won't be surprised if some of the RPi community shows up with some pretty cool projects using IRIS Community since a lot of them are python developers. InterSystems tends to lean into health care as the main thing, but there you've got a device that you can connect all kinds of sensors and gizmos to that may lend themselves well to other fields. Let's not be hasty dismissing it because it can't run an entire hospital.
Announcement
Anastasia Dyubaylo · Dec 15, 2021
Hey Developers,
Learn about the InterSystems Partner Directory, its value to partners, and how to join:
⏯ Partner Directory New Services for InterSystems Partners & End Users
🗣 Presenter: Elizabeth Zaylor, Partnerships & Alliances, InterSystems
See you at https://partner.intersystems.com!
Announcement
Olga Zavrazhnova · Dec 5, 2021
Hey Community,
This is the time to show our passion for the InterSystems Developer Community! We're so proud to announce that InterSystems Global Masters is a finalist for an Influitive BAMMIE Award for Most Passionate Community🤩🤩🤩
Certainly, this is because of you, our great community members!
BUT, for us to win, we'll need to get more votes than other finalists - so we need your votes!
🚀 PLEASE press "You've got my vote" > in this challenge <
Vote every day till December 9 to show that we have the most engaged community!
Let's WIN together!
3-days left! Video from Olga :)
Hey Community, only 3 days are left to vote for Global Masters! Community!
We really need your support!!! Please vote for us 🙏🏼 Vote Community! Vote, please! We have to support our dev community! Today is the last voting day! Please press the button for us in this challenge https://globalmasters.intersystems.com/challenges/2982Thank you, Community, for support! Fingers crossed!
Announcement
Anastasia Dyubaylo · Sep 20, 2021
Hey Developers,
Get an introduction to Apache Kafka, a popular event-streaming platform, and see a demonstration of the upcoming Kafka integration with InterSystems IRIS Interoperability:
⏯ Kafka! Integrating the World's Favorite Stream Processor with InterSystems IRIS
🗣 Presenter: Helen Bang, Systems Developer, InterSystems
Subscribe to InterSystems Developers YouTube. Enjoy and stay tuned!
Question
Sudarshan Chandrashekar · Oct 4, 2021
Folks,
I am looking to migrate a few legacy debt collection applications built using InterSystems Cache to AWS. Does anyone here have any experience, ideas and best practices on migrating Cache products to the public cloud?
Regards
Sudarshan
+1-917-685-3551 AWS offers EC2, and it will be just virtual machines. And it will be possible to migrate any of your instances quite easy, if you would choose the same environment. If you have windows on your server, you can have Windows there as well. It's the easiest way. You would need to install the same version of the InterSystems platform you use, and repeat the configuration, copy necessary information and that's it. But for sure, could be some other options.
But AWS also suppose support for containers, this could be more difficult. And the best would be if you would use IRIS. I can help with this migration if you wish.
Announcement
Anastasia Dyubaylo · Oct 19, 2021
Hey Developers,
Planning to attend the Focus Sessions of InterSystems Virtual Summit 2021? Don't miss the session dedicated to InterSystems Developer Community, Open Exchange & Global Masters!
⚡️ "Win. Win. Win with InterSystems Developer Ecosystem" VSummit21 session ⚡️
🎁 Note: All session attendees get a special prize.
Speakers: 🗣 @Anastasia.Dyubaylo, Community Manager, InterSystems 🗣 @Lena.Evsikova, Product Owner of InterSystems Open Exchange🗣 @Olga.Zavrazhnova2637, Customer Advocacy Manager, InterSystems
Learn how to succeed with the InterSystems Developer Community, Global Masters gamification hub, and Open Exchange application gallery.
Interests: Developer Experience, InterSystems IRIS, User Communities
Our Focus Sessions are available on-demand for viewing from Wednesday, October 27!
So!
Join our session to enjoy the full experience of InterSystems Technology and our Ecosystem for Developers! Looking forward to it!! I will be there! @Olga.Zavrazhnova2637@Lena.Evsikova @Anastasia.Dyubaylo Just watched your presentation. It was really GREAT !!You raised the level of presentation significantly.The most attractive presentation for me so far.It will be hard to top you.CONGRATULATIONS ! So happy to hear that, Robert! Thank you! I completely agree with @Robert.Cemper1003! Great job highlighting the D.C., OEX and Global Masters!! Thank you, Robert! So happy to hear such feedback 😊 Thank you, Ben ☺️ Very good presentation. They are a true trio of pocker aces to win
And all the crew that are in the same ship
Announcement
Anastasia Dyubaylo · Nov 9, 2021
Hey Community!
New video is already waiting on InterSystems Developers YouTube:
⏯ Introducing the InterSystems IRIS Smart Factory Starter Pack for Manufacturing
See how InterSystems IRIS® data platform and the Smart Factory Application Starter Pack enable manufacturers to fast-track their smart factory initiatives. The package combines operational technology systems and real-time signals from the shop floor with enterprise IT and analytics systems, enabling manufacturers to improve quality and efficiency, respond faster to events, and predict and avoid problems before they occur.
Presenters: 🗣 @Joseph.Lichtenberg, Director, Product and Industry Marketing, InterSystems 🗣 @Marco.denHartog, Chief Technology Officer, IT Visors🗣 Marcel Artz, Chief Information Officer, Vlisco
Enjoy and stay tuned!
Announcement
Pete Greskoff · Nov 19, 2021
November 19, 2021 - Advisory: Apache Web Server provided with InterSystems kits – Vulnerability reports
InterSystems kits include an Apache web server, which provides a convenient way for customers to interact with the Caché/IRIS Management Portal without needing to install an external web server; however, this web server should never be used for production instances, and customers must install a web server that fits their specific needs and security/risk requirements.
Recent tests have noted some security issues with the currently included Apache web server. Because this is a third-party technology that InterSystems does not control, InterSystems recommends installing a web server version directly obtained from Apache or another third party and disabling the included Apache web server. Our product documentation includes instructions on how to disable the web server provided with our kits. In addition, Apache also offers uninstall instructions that can be found on the Apache website.
InterSystems plans to include a more recent version of the Apache web server in upcoming releases. Similar to the current version, this version also cannot be used for production instances. In future releases of our products, InterSystems will not ship or install any web server; we will provide further updates with the specifics of our plans. We have always used independent web servers for production.
However, with the release of container deployment, can I get clarity on the webgateway container provided by ISC is NOT affected by the same vulnerabilities? I understood this to be a full apache instance with modules pre-installed.
If so, are there any recommended practices one should use for this container in a production environment? Hi @Trevor.Strong
The container image simply installs the standard Apache package in the container and adds the CSP add-on.
For any update on the Apache web server we should all keep an eye on https://www.cvedetails.com/product/66/Apache-Http-Server.html?vendor_id=45 and consider patching/upgrading/re-building as necessary and according to the security policies and best practices of the organizations we work for.
HTH
Announcement
Anastasia Dyubaylo · Feb 1, 2022
Hi Community,
New video is already on InterSystems Developers YouTube! Learn about the easy process of migrating to InterSystems IRIS:
⏯ Join Us on a Journey from Caché/Ensemble to InterSystems IRIS
🗣 Presenter: @Jeffrey.Morgan, Sales Engineer, InterSystems
Enjoy and stay tuned!
Announcement
Anastasia Dyubaylo · Aug 4, 2022
Hey Community,
We're excited to announce that Community webinars are back!
Let us invite you all to @Ron.Sweeney1582's webinar on Scaling InterSystems FHIR Server on Amazon Web Services with ECP.
Join this webinar to make a technical deep dive, see a demonstration, and benchmark horizontal scaling InterSystems FHIR Server on Amazon Web Services with Enterprise Cache Protocol (ECP).
⏱ Date & Time: Thursday, August 18, 8 AM ET | 2:00 PM CEST👨🏫 Speaker: @Ron.Sweeney1582, Full Stack Architect at Integration Required
About Integration Required: We are a full-stack technical delivery team for your InterSystems® workloads, tailored to meet the requirements of your security posture and organizational deployment standards. With a decade of InterSystems® partnerships and rigorous adherence to customer satisfaction, we are trusted to best practice.
So...
Don't miss this opportunity to learn more about scaling FHIR, ECP and AWS and how to mix it all!
>> REGISTER HERE << Hi Devs,
Don't miss the upcoming webinar with @Ron.Sweeney1582!
Already 27 registered people. 😎
Registration continues >> click here <<
Hurry, only a week left! 🔥 Developers,
The upcoming webinar will be tomorrow!
Don't miss this opportunity to learn more about scaling FHIR, ECP and AWS and how to mix it all!
For registration >> click here << Hey Community,
The webinar will start in 15 mins! Please join us in Zoom.
Or enjoy watching the live stream on YouTube: https://youtu.be/DBGvt0jd4yI Hi. I fell asleep before it started :)
Is there a recording available? do we hv replay for this? Thx! Hi Michael,
Anastasia mentioned rerun is at: https://youtu.be/DBGvt0jd4yI Hey everyone!
The recording of this webinar is available on DC YouTube:
▶️ [Webinar] Scaling InterSystems FHIR Server on Amazon Web Services with ECP
Big applause to our awesome speaker @Ron.Sweeney1582 👏👏👏
And thanks everyone for joining! Really enjoyed the webinar @Ron.Sweeney1582
Great content, insights and results, and thanks for the mentions
Announcement
Janine Perkins · Mar 15, 2016
Have you ever needed to find a record for a particular person in your inbound data stream? Searching messages will enable you to find messages using an array of search capabilities.Searching Messages Using the Message ViewerSearching Messages Using the Message Viewer introduces the Message Viewer and details how to access it,and describes the process for modifying the message list display. Learn More. Nice little course, thanks!
Announcement
Janine Perkins · May 5, 2016
Learn how to push an application to both an iOS and an Android device.Configuring a Mobile Device for Application DeploymentThis course discusses the process needed to push an application to both an iOS and Android device. Learners can choose which device they would like to learn about, or they can step through both to understand the settings and steps needed to push to both device types. Learn More.
Announcement
Janine Perkins · May 31, 2016
Learn the basics about HealthShare Information Exchange, the architecture and common ways it is used.Find out how to perform a patient search, identify the main parts of HealthShare Information Exchange and the main purposes of each. Learn More.*This course is available to our HealthShare customers only.
Announcement
Janine Perkins · Jul 29, 2016
Learn why and when to use FHIR in your applications, common use cases for it, the general architecture of FHIR data, and the tools available to you in InterSystems HealthShare Health Connect. Learn More. Thank you for the online course! Very much needed.The course videos below are not available. Getting an error "No playable video sources found":WHAT IS FHIR?FHIR VS. HL7V2, HL7V3, AND CDAFHIR ARCHITECTUREAlso, it would be nice to get access to the custom code show in "FHIR IN HEALTHSHARE DEMONSTRATION", specifically, "Summit.BPL.V2ToFHIR." I'm sure many developers would like to know how to convert good old HL7v2 messages to FHIR resources using HealthConnect. Video's are not available. We've re-uploaded the videos and are working again. Please try the course again and let us know if there any further problems.
Announcement
Janine Perkins · Feb 23, 2016
Are you going to be building an integration with Ensemble or HealthShare? Take the following course to learn about the core architecture in building an integration, the parts and pieces involved and the most common ways that data flows through that architecture.Integration Architecture: Ensemble and HealthShareLearn about the basic architecture of InterSystems' solution for integration. This course is for people who have purchased either Ensemble and HealthShare. This course covers the main parts of integration, each part's function and how data flows through that architecture. Learn More.