Search

Clear filter
Announcement
Anastasia Dyubaylo · May 5

[Video] Prompt the frontend UI for InterSystems IRIS with Lovable

Hi Community! Check out the new video on how to build the frontend UI by prompting it in lovable or (potentially) any spec first REST API in InterSystems IRIS: 📺 Prompt the frontend UI for InterSystems IRIS with Lovable 🗣 Presenter: @Evgeny.Shvarov, Senior Manager of Developer and Startup Programs, InterSystems Share your thoughts or questions in the comments to this post. Enjoy!
Question
Yuhong Snyder · May 5

InterSystems HL7 Interface Specialist certificate test

Hi group, I am trying to take the InterSystems HL7 Interface Specialist certificate test. So is this an open book test? is there any Lab involved with vm? I did the search but I am not able to find such information. I am trying to find out more information before I actually take the test. Thank you Hi Yuhong, The InterSystems HL7 Interface Specialist certification exam is not an open book exam. It consists of a series of 68 multiple choice/multiple response questions. You can read more about the exam here. If you already have the InterSystems HL7 Interface Specialist certification, and that certification is within 6 months of its expiration date, then you have the option of extending your certification by 5 more years by taking the performance-based recertification project. In this project, you are given a vm with an IRIS instance and your task is to create an HL7 production according to the provided specification. You can read more about the recertification project here. Please feel free to ask any more questions here or you can email your questions to certification@intersystems.com I keep getting error with test setup, my camera is setup to let desktop to have access, not sure what's going on, can anyone take a look? # New client instance started at 2025-05-07 08:42:10.364 2025-05-07 08:42:10.369 [01] - INFO: Initiating startup procedure...2025-05-07 08:42:10.379 [01] - INFO: Loading text data...2025-05-07 08:42:10.380 [01] - DEBUG: [Text] System language is 'en', trying to load data...2025-05-07 08:42:10.385 [01] - DEBUG: [Text] Data successfully loaded.2025-05-07 08:42:10.385 [01] - INFO: Initializing runtime connection...2025-05-07 08:42:10.390 [01] - DEBUG: [RuntimeProxy] Trying to connect to endpoint 'net.pipe://localhost/safeexambrowser/runtime/116d120a-aa0c-47e3-af1e-91327b1307a5' with authentication token '0f24ed95-b1b2-4783-bfe8-68e7f7f5a826'...2025-05-07 08:42:10.417 [01] - DEBUG: [RuntimeProxy] Communication channel is opening...2025-05-07 08:42:10.450 [01] - DEBUG: [RuntimeProxy] Communication channel has been opened.2025-05-07 08:42:10.481 [01] - DEBUG: [RuntimeProxy] Connection was established.2025-05-07 08:42:10.481 [01] - INFO: Successfully connected to the runtime.2025-05-07 08:42:10.481 [01] - INFO: Initializing application configuration...2025-05-07 08:42:10.489 [01] - DEBUG: [RuntimeProxy] Sending message 'SimpleMessage -> ConfigurationNeeded'...2025-05-07 08:42:10.640 [01] - DEBUG: [RuntimeProxy] Received response 'ConfigurationResponse' for message 'SimpleMessage -> ConfigurationNeeded'.2025-05-07 08:42:10.640 [01] - DEBUG: [RuntimeProxy] Received configuration response.2025-05-07 08:42:10.640 [01] - INFO: Successfully retrieved the application configuration from the runtime.2025-05-07 08:42:10.640 [01] - INFO: -> Client-ID: 301ad91b-588b-495a-9c9f-6e4eb016c71e2025-05-07 08:42:10.640 [01] - INFO: -> Runtime-ID: 990aaa17-0686-41e3-bf70-7e07be84544a2025-05-07 08:42:10.640 [01] - INFO: -> Session-ID: f9bb5de0-1dda-4b23-ac96-6a5991ab29182025-05-07 08:42:10.640 [01] - INFO: Starting communication host...2025-05-07 08:42:10.652 [08] - DEBUG: [ClientHost] Communication host is opening...2025-05-07 08:42:10.662 [08] - DEBUG: [ClientHost] Communication host has been opened.2025-05-07 08:42:10.662 [08] - DEBUG: [ClientHost] Successfully started communication host for endpoint 'net.pipe://localhost/safeexambrowser/client/0d17f5af-bd90-4f77-9d48-f295f5d9066a'.2025-05-07 08:42:10.664 [01] - INFO: Starting keyboard interception...2025-05-07 08:42:10.664 [01] - INFO: Starting mouse interception...2025-05-07 08:42:10.671 [01] - INFO: Initializing applications...2025-05-07 08:42:11.357 [01] - DEBUG: [ApplicationMonitor] Initialized 325 currently running processes.2025-05-07 08:42:11.359 [01] - DEBUG: [ApplicationMonitor] Initialized blacklist with 46 applications: g2mcomm.exe, obs32.exe, obs64.exe, pcmontask.exe, PCMonitorSrv.exe, strwinclt.exe, SRServer.exe, MS-Teams.exe, remoting_host.exe, CiscoWebExStart.exe, CiscoCollabHost.exe, AA_v3.exe, ptoneclk.exe, webexmta.exe, Teams.exe, join.me.sentinel.exe, join.me.exe, g2mstart.exe, g2mlauncher.exe, Telegram.exe, Zoom.exe, Element.exe, slack.exe, CamtasiaUtl.exe, CamRecorder.exe, CamPlay.exe, Camtasia_Studio.exe, CamtasiaStudio.exe, Camtasia.exe, Discord.exe, RPCSuite.exe, RPCService.exe, RemotePCDesktop.exe, beamyourscreen-host.exe, AeroAdmin.exe, Mikogo-host.exe, chromoting.exe, vncserverui.exe, vncviewer.exe, vncserver.exe, TeamViewer.exe, GotoMeetingWinStore.exe, g2mcomm.exe, SkypeHost.exe, SkypeApp.exe, Skype.exe2025-05-07 08:42:11.361 [01] - DEBUG: [ApplicationMonitor] Initialized whitelist with 0 applications.2025-05-07 08:42:11.362 [01] - INFO: [ApplicationMonitor] Started monitoring applications.2025-05-07 08:42:11.364 [01] - INFO: [ApplicationMonitor] Registered system capture start event with ID = 394e59e9-0d3e-4882-b89c-8d0c91858e72.2025-05-07 08:42:11.364 [01] - INFO: [ApplicationMonitor] Registered system foreground event with ID = 949aaba8-0daa-46bf-8c3c-988e8c535810.2025-05-07 08:42:11.366 [01] - INFO: Initializing working area...2025-05-07 08:42:11.366 [01] - INFO: [DisplayMonitor] Disabled sleep mode and display timeout.2025-05-07 08:42:11.371 [01] - DEBUG: [Taskbar] Calculated physical taskbar height is 60px.2025-05-07 08:42:11.373 [01] - INFO: [DisplayMonitor] Saved original working area for DISPLAY5 (1920x1080): Left = 0, Top = 0, Right = 1920, Bottom = 1008.2025-05-07 08:42:11.374 [01] - INFO: [DisplayMonitor] Trying to set new working area for DISPLAY5 (1920x1080): Left = 0, Top = 0, Right = 1920, Bottom = 1020.2025-05-07 08:42:11.374 [01] - INFO: [DisplayMonitor] Working area of DISPLAY5 (1920x1080) is now set to: Left = 0, Top = 0, Right = 1920, Bottom = 1020.2025-05-07 08:42:11.375 [01] - INFO: [DisplayMonitor] Started monitoring display changes.2025-05-07 08:42:11.375 [01] - INFO: Initializing system events...2025-05-07 08:42:11.376 [01] - INFO: [SystemMonitor] Started monitoring the operating system.2025-05-07 08:42:11.378 [01] - INFO: Initializing shell...2025-05-07 08:42:11.458 [01] - INFO: [Audio] Found 'Speakers (Realtek(R) Audio)' to be the active audio device.2025-05-07 08:42:11.632 [01] - INFO: [Audio] Started monitoring the audio device.2025-05-07 08:42:11.632 [01] - INFO: [Keyboard] Saved current keyboard layout 'English (United States)' [ENG, US].2025-05-07 08:42:11.632 [01] - INFO: [Keyboard] Detected keyboard layout 'English (United States)' [ENG, US].2025-05-07 08:42:11.632 [01] - INFO: [Keyboard] Detected keyboard layout '中文(中国)' [ZHO, Chinese (Simplified) - US].2025-05-07 08:42:11.760 [01] - ERROR: Caught unexpected exception while performing operation 'LazyInitializationOperation'! Exception Message: Access is denied Exception Type: System.ComponentModel.Win32Exception at SimpleWifi.Win32.WlanClient..ctor() at SimpleWifi.Wifi..ctor() at SafeExamBrowser.SystemComponents.Network.NetworkAdapter.Initialize() in C:\Users\appveyor\projects\seb-win-refactoring-phv3mbelx16fm9ou\SafeExamBrowser.SystemComponents\Network\NetworkAdapter.cs:line 92 at SafeExamBrowser.Client.Operations.ShellOperation.InitializeSystemComponents() in C:\Users\appveyor\projects\seb-win-refactoring-phv3mbelx16fm9ou\SafeExamBrowser.Client\Operations\ShellOperation.cs:line 214 at SafeExamBrowser.Client.Operations.ShellOperation.Perform() in C:\Users\appveyor\projects\seb-win-refactoring-phv3mbelx16fm9ou\SafeExamBrowser.Client\Operations\ShellOperation.cs:line 81 at SafeExamBrowser.Core.OperationModel.OperationSequence.Perform() in C:\Users\appveyor\projects\seb-win-refactoring-phv3mbelx16fm9ou\SafeExamBrowser.Core\OperationModel\OperationSequence.cs:line 108 2025-05-07 08:42:11.760 [01] - INFO: Terminating shell...2025-05-07 08:42:11.762 [01] - INFO: [Audio] Stopped monitoring the audio device.2025-05-07 08:42:11.764 [01] - INFO: [Keyboard] Restored original keyboard layout 'English (United States)' [ENG, US].2025-05-07 08:42:11.764 [01] - INFO: Finalizing system events...2025-05-07 08:42:11.764 [01] - INFO: [SystemMonitor] Stopped monitoring the operating system.2025-05-07 08:42:11.766 [01] - INFO: Restoring working area...2025-05-07 08:42:11.766 [01] - INFO: [DisplayMonitor] Stopped monitoring display changes.2025-05-07 08:42:11.766 [01] - INFO: [DisplayMonitor] Restored original working area for DISPLAY5 (1920x1080): Left = 0, Top = 0, Right = 1920, Bottom = 1008.2025-05-07 08:42:11.766 [01] - INFO: Finalizing applications...2025-05-07 08:42:11.768 [01] - INFO: [ApplicationMonitor] Stopped monitoring applications.2025-05-07 08:42:11.768 [01] - INFO: [ApplicationMonitor] Unregistered system capture start event with ID = 394e59e9-0d3e-4882-b89c-8d0c91858e72.2025-05-07 08:42:11.768 [01] - INFO: [ApplicationMonitor] Unregistered system foreground event with ID = 949aaba8-0daa-46bf-8c3c-988e8c535810.2025-05-07 08:42:11.768 [01] - INFO: Stopping mouse interception...2025-05-07 08:42:11.772 [01] - INFO: Stopping keyboard interception...2025-05-07 08:42:11.774 [01] - INFO: The runtime has already disconnected from the client communication host.2025-05-07 08:42:11.774 [01] - INFO: Stopping communication host...2025-05-07 08:42:11.774 [01] - DEBUG: [ClientHost] Communication host is closing...2025-05-07 08:42:11.777 [01] - DEBUG: [ClientHost] Communication host has been closed.2025-05-07 08:42:11.777 [01] - DEBUG: [ClientHost] Terminated communication host for endpoint 'net.pipe://localhost/safeexambrowser/client/0d17f5af-bd90-4f77-9d48-f295f5d9066a'.2025-05-07 08:42:11.780 [01] - INFO: Closing runtime connection...2025-05-07 08:42:11.784 [01] - DEBUG: [RuntimeProxy] Communication channel is closing...2025-05-07 08:42:11.784 [01] - DEBUG: [RuntimeProxy] Communication channel has been closed.2025-05-07 08:42:11.784 [01] - DEBUG: [RuntimeProxy] Disconnected from 'net.pipe://localhost/safeexambrowser/runtime/116d120a-aa0c-47e3-af1e-91327b1307a5'.2025-05-07 08:42:11.784 [01] - INFO: Successfully disconnected from the runtime.2025-05-07 08:42:11.788 [01] - INFO: Application startup aborted! 2025-05-07 08:42:11.790 [01] - INFO: Initiating shutdown procedure...2025-05-07 08:42:11.795 [01] - INFO: Application successfully finalized. # Client instance terminated at 2025-05-07 08:42:11.795 It looks like the exam browser tried to access a Windows wifi api and was prevented from doing so. The reason could be that you didn't start the exam browser with admin privileges or you are using a work computer and your user account doesn't have sufficient privileges to access this wifi api. If using a work computer, then one solution is to contact your IT department and ask to elevate your account privileges so that exam browser can start correctly, or to use your own personal device to take the exam. Feel free to reach out to our exam vendor, for support with starting the Safe Exam Browser. I have got it resolved. Thank you I wish there is more clear statement about how to take the exam. It turned out I need to download the safe exam browser from official site, not through the direct link in the test webpage. I will see what other issue it could have once I get the test done hopefully tomorrow. Hi Yuhong. Good luck on the exam tomorrow! We strongly recommend going through the information on our Taking InterSystems Exams page before your appointment. Please let us know if you have other questions. That page really helps! thank you Shane!
Announcement
Anastasia Dyubaylo · May 7

Winners of the Code Your Way to InterSystems READY 2025

Hi Community, A huge thank you to everyone who participated in the Code Your Way to InterSystems READY 2025 challenge! We enjoyed watching your videos and checking out your projects. And now it's time to announce the winners! 🥇 1st place, a pass and a hotel accommodation go to @ShawntelleCoker for her wp-iris-project app 🥈 2nd place and a pass go to @Francisco.López1549 for his Iris-nator app 🥉 3rd place and a pass go to @Oliver.Wilms for his jupyter-for-money app Our sincerest congratulations to our winners and we look forward to seeing you at the InterSystems Ready 2025!
Announcement
Celeste Canzano · May 13

InterSystems IRIS Development Professional Exam is now LIVE!

Hello community, The Certification Team of InterSystems Learning Services is excited to announce the release of our new InterSystems IRIS Development Professional exam. It is now available for purchase and scheduling in InterSystems exam catalog. Potential candidates can review the exam topics and the practice questions to help orient them to exam question approaches and content. Candidates who successfully pass the exam will receive a digital certification badge that can be shared on social media accounts like LinkedIn. If you are new to InterSystems Certification, please review our program pages that include information on taking exams, exam policies, FAQ and more. If you have ideas about creating new certifications that can help you advance your career, the Certification Team of InterSystems Learning Services is always open to ideas and suggestions. Please contact us at certification@intersystems.com if you would like to share any ideas. Looking forward to celebrating your success, Celeste Canzano - Certification Operations Specialist, InterSystems
Announcement
Anastasia Dyubaylo · May 5

InterSystems FHIR and Digital Health Interoperability Contest 2025

Hi Developers, We are happy to announce the new InterSystems online programming contest dedicated to all things health-related: 🏆 InterSystems FHIR and Digital Health Interoperability Contest 🏆 Duration: May 12 - June 1, 2025 Prize pool: $12,000 The topic Develop any interoperability FHIR solution or Healthcare Interoperability solution or a solution that helps to develop or/and maintain interoperability solutions using InterSystems IRIS for Health, Health Connect, or FHIR server. General Requirements: An application or library must be fully functional. It should not be an import or a direct interface for an already existing library in another language (except for C++, there you really need to do a lot of work to create an interface for IRIS). It should not be a copy-paste of an existing application or library. Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest. The application should work either on IRIS Community Edition or IRIS for Health Community Edition. Both could be downloaded as host (Mac, Windows) versions from Evaluation site, or can be used in a form of containers pulled from InterSystems Container Registry or Community Containers: intersystemsdc/iris-community:latest or intersystemsdc/irishealth-community:latest . The application should be Open Source and published on GitHub or GitLab. The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works. Only 3 submissions from one developer are allowed. NB. Our experts will have the final say in whether the application is approved for the contest or not based on the criteria of complexity and usefulness. Their decision is final and not subject to appeal. Prizes 1. Experts Nomination - a specially selected jury will determine winners: 🥇 1st place - $5,000 🥈 2nd place - $2,500 🥉 3rd place - $1,000 🏅 4th place - $500 🏅 5th place - $300 🌟 6-10th places - $100 2. Community winners - applications that will receive the most votes in total: 🥇 1st place - $1,000 🥈 2nd place - $600 🥉 3rd place - $300 🏅 4th place - $200 🏅 5th place - $100 ❗ If several participants score the same number of votes, they are all considered winners, and the prize money is shared among the winners.❗ Cash prizes are awarded only to those who can verify their identity. If there are any doubts, organizers will reach out and request additional information about the participant(s). Who can participate? Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account! Developers can team up to create a collaborative application. 2 to 5 developers are allowed in one team. Do not forget to highlight your team members in the README of your application – DC user profiles. Important Deadlines: 🛠 Application development and registration phase: May 12, 2025 (00:00 EST): Contest begins. May 25, 2025 (23:59 EST): Deadline for submissions. ✅ Voting period: May 26, 2025 (00:00 EST): Voting begins. June 1, 2025 (23:59 EST): Voting ends. Note: Developers can improve their apps throughout the entire registration and voting period. Helpful Resources: ✓ Documentation: InterSystems IRIS for Health FHIR Components documentation InterSystems Cloud FHIR Server documentation InterSystems Interoperability documentation Healthcare Data Transformations documentation ✓ Tools: Clinfhir - FHIR visualization and developer tool. ✓ Example applications: FHIR Server Template iris-healthtoolkit-template interoperability-embedded-python FHIR HL7 SQL Demo FHIR DropBox HL7 and SMS Interoperability Demo IrisHealth Ensdemo UnitTest DTL HL7 Healthcare HL7 XML FHIR Interoperability Examples FHIR-Orga-dt FHIR Peudoanonimisation Proxy FHIR-client-java FHIR-client-.net FHIR-client-python FHIR related apps on Open Exchange HL7 applications on Open Exchange ✓ Online courses: Interactive Digital Health Interoperability Foundation - An intro course into Digital Health Interoperability productions built with InterSystems IRIS for Health FHIR Data Architecture FHIR Integrations HL7 Integrations Learn FHIR for Software Developers Exploring FHIR Resource APIs Using InterSystems IRIS for Health to Reduce Readmissions Connecting Devices to InterSystems IRIS for Health Monitoring Oxygen Saturation in Infants FHIR Integration QuickStart ✓ Videos: 6 Rapid FHIR Questions SMART on FHIR: The Basics Developing with FHIR - REST APIs FHIR in InterSystems IRIS for Health FHIR API Management Searching for FHIR Resources in IRIS for Health ✓ For beginners with IRIS: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners ✓ For beginners with ObjectScript Package Manager (IPM): How to Build, Test and Publish IPM Package with REST Application for InterSystems IRIS Package First Development Approach with InterSystems IRIS and IPM ✓ How to submit your app to the contest: How to publish an application on Open Exchange How to submit an application for the contest Need Help? Join the contest channel on InterSystems' Discord server or talk with us in the comment to this post. We're waiting for YOUR project – join our coding marathon to win! By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding. Is having a team necessary for participation? No, having a team is not required — you can participate either individually or in a team of 2 to 5 people. Hope this helps! What eval product do I need to select to get FHIR server? Hi @Kevin.Mayfield2935 ! If you have docker on your laptop you can clone this Github project and start it in a docker - it starts InterSystems FHIR server (within IRIS for Health) automatically.
Article
Eduard Lebedyuk · Mar 5, 2022

Running InterSystems IRIS in a FaaS mode with Kubeless

Function as a service (FaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage application functionalities without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. Building an application following this model is one way of achieving a "serverless" architecture, and is typically used when building microservices applications. Wikipedia FaaS is an extremely popular approach to running workloads in the cloud, allowing developers to focus on writing code. This article will show you how to deploy InterSystems IRIS methods in a FaaS way. Install Kubernetes First of all, install Kubernetes 1.16. There are a lot of guides available so that I won't be copying them here, but I'm using minicube. With minicube to run kubernetes, it's enough to execute this command: minikube start --kubernetes-version=v1.16.1 Install kubeless Next, we will install kubeless. kubeless is a Kubernetes-native serverless framework that lets you deploy small bits of code without worrying about the underlying infrastructure plumbing. It leverages Kubernetes resources to provide auto-scaling, API routing, monitoring, troubleshooting, and more. kubectl create ns kubeless kubectl create -f https://github.com/kubeless/kubeless/releases/download/v1.0.8/kubeless-v1.0.8.yaml kubectl get pods -n kubeless Output should be something like this: NAME READY STATUS RESTARTS AGEkubeless-controller-manager-666ffb749-26vhh 3/3 Running 0 83s You also need to install a kubeless client (on the same instance you have kubectl). You can get it here. Installation on Linux is as simple as: sudo install kubeless /usr/local/bin/kubeless Test kubeless First, let's deploy a simple Python function to check that kubeless works. Create test.py: def hello(event, context): return event['data'] To read more about function environment check this doc, generally function accepts two arguments - event and context with this data: event: data: # Event data foo: "bar" # The data is parsed as JSON when required event-id: "2ebb072eb24264f55b3fff" # Event ID event-type: "application/json" # Event content type event-time: "2009-11-10 23:00:00 +0000 UTC" # Timestamp of the event source event-namespace: "kafkatriggers.kubeless.io" # Event emitter extensions: # Optional parameters request: ... # Reference to the request received response: ... # Reference to the response to send # (specific properties will depend on the function language) context: function-name: "pubsub-nodejs" timeout: "180" runtime: "nodejs6" memory-limit: "128M" Now we can deploy our hello function by specifying our file with a function and a runtime: kubeless function deploy hello --runtime python3.7 --from-file test.py --handler test.hello kubeless function ls hello And let's test it: kubeless function call hello --data 'Hello world!' You should receive Hello World! as an answer. Add IRIS config Next we need to add an InterSystems IRIS function handler, to do that open kubeless config for edit: kubeless get-server-config kubectl get -n kubeless configmaps -o yaml > configmaps.yaml kubectl edit -n kubeless configmaps Add this entry to runtime-images array and save: {"ID": "iris","depName": "","fileNameSuffix": ".cls","versions": [{"images": [{"image": "eduard93/kubeless-iris-runtime:latest","phase": "runtime"}],"name": "iris2022.1","version": "2022.1"}]} Restart kubeless controller for the changes to take effect. kubectl delete pod -n kubeless -l kubeless=controller Build IRIS function CRD and publish it Now let's write our first function in InterSystems IRIS: Class User.Test { ClassMethod hi(event, context) As %Status { if $isObject(event) { write event.Text + event.Text } else { write "HELLO FROM IRIS" } quit $$$OK } } Next, we need to build a function CRD: Here's our template: function.yaml apiVersion: kubeless.io/v1beta1 kind: Function metadata: name: !name! namespace: default spec: runtime: iris2022.1 timeout: "180" handler: !handler! deps: "" function-content-type: text deployment: spec: template: spec: securityContext: runAsUser: 51773 runAsGroup: 51773 function: | And we need to fill: name: function name (for kubeless) handler: class.name_method (for InterSystems IRIS) function body: add at the end (don't forget tabs!) So our CRD looks like this: function_demo.yaml apiVersion: kubeless.io/v1beta1 kind: Function metadata: name: iris-demo namespace: default spec: runtime: iris2022.1 timeout: "180" handler: User_Test.hi deps: "" function-content-type: text deployment: spec: template: spec: securityContext: runAsUser: 51773 runAsGroup: 51773 function: | Class User.Test { ClassMethod hi(event, context) As %Status { if $isObject(event) { write event.Text + event.Text } else { write "HELLO FROM IRIS" } quit $$$OK } } This can be easily automated. On Linux execute: sed 's/!name!/iris-demo/; s/!handler!/User_Test.hi/' function.yaml > function_demo.yaml sed 's/^/ /' User.Test.cls >> function_demo.yaml And on Windows (PowerShell): Get-Content function.yaml | ForEach-Object { $_ -replace "!handler!", "User_Test.hi" -replace "!name!", "iris-demo" } | Set-Content function_demo.yaml " " + [string]((Get-Content User.Test.cls) -join "`r`n ") | Add-Content function_demo.yaml Now we need to publish our CRD in kubeless: kubectl apply -f function_demo.yaml Test IRIS function First, let's see that the function is deployed and ready (can take a few minutes the first time): kubeless function ls And now call it: kubeless function call iris-demo --data '{"Text":123}' If you're on Windows, call the function like this (same for all other calls with escaped double quotes): kubeless function call iris-demo --data '{\"Text\":123}' Anyway, the response should be 456 since 123 is a number. HTTP access kubeless also offers HTTP access. To test this, use the kubectl proxy command: kubectl proxy -p 8081 Next, send this request using your preferred REST API client: GET http://localhost:8081/api/v1/namespaces/default/services/iris-demo:http-function-port/proxy/ {"Text":111} Here's how it looks like in Postman: Next, let's publish it on the internet. There are two approaches. Preferably configure ingress as described here. Additionally you can patch function service: kubectl get svc kubectl patch svc iris-demo -p '{"spec": {"type": "LoadBalancer"}}' kubectl get svc Clean up To remove a deployed function call: kubectl delete -f function_demo.yaml Conclusion While this is undoubtedly a proof-of-concept and not a production-grade solution, this approach demonstrates that it's possible to run InterSystems IRIS workloads using the serverless, FaaS approach. Links Minicube Kubeless InterSystems IRIS runtime Great article ! Is it possible to use a custom image from a local docker registry with Kubeless ? Yes, it's possible. fantastic @Eduard.Lebedyuk ! Thanks, Ron!
Article
sween · Feb 18

OMOP Odyssey - InterSystems OMOP, The Cloud Service (Troy)

InterSystems OMOP, The Cloud Service (Troy) An Implementer's approach into the OHDSI ( pronounced "Odyssey" ) Community through an Expiring Trial of InterSystems OMOP Cloud Service.What is it? The InterSystems OMOP, available as a HealthShare service through the InterSystems Cloud Services Portal, transforms HL7® FHIR® data into the Observational Medical Outcomes Partnership (OMOP) Common Data Model (CDM). The InterSystems OMOP looks at FHIR data stored in an S3 bucket and automatically transforms and sends the data to the cloud-hosted repository in the OMOP CDMO format. You can then use external Observational Health Data Sciences and Informatics (OHDSI) tools, such as ATLAS or HADES, in conjunction with a database driverOpens in a new tab, such as JDBC, to perform analytical tasks on your data. Abridged: It transforms S3 Hosted FHIR Bulk Export Data to the OMOP CDM to a Cloud Hosted IRIS or a postgres flavored database of your choice. Going to take the above for a spin here from "soup to nuts" as they say and go end to end with an implementation surrounded by modern powerful tools and the incredible ecosystem of applications from the OHDSI Community. Will try not to re-hash the docs, neither here or there, and surface some foot guns 👣 🔫 along the way. Everything Good Starts with a Bucket When you first provision the service, you may feel immediately that you are in a chicken and egg situation when you get to the creation dialog and prompted for S3 information right out of the gate. You can fake this best you can and, and update it later or take an approach that is less hurried where you understand how you are provisioning an Amazon S3 Bucket for transformation use. Its a modern approach implemented in most Cloud based data solutions to share data, where you provision the source location yourself, then grant the service access to interact with it. Provision Bucket and Initial Policy Stack Create the Deployment for the Service Update the Bucket Policy constrained to the Deployment We can click the console to death , or do this with an example stack. s3-omop-fhir-stack.yaml --- AWSTemplateFormatVersion: '2010-09-09' Description: AWS Cloudformation Stack that will create the S3 Bucket and Policy for the OMOP Server Parameters: BucketName: Description: The name of the bucket to use to upload FHIR Bundles for Transformation. Type: String AllowedPattern: "^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$" PolicyfromOMOPConfiguration: Description: The name of the bucket to use to upload FHIR Bundles for Transformation. Default: "arn:aws:iam::1234567890:role/skipper-deployment-*-Role" Type: String Resources: OMOPFHIRTransactionBucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub ${BucketName} PublicAccessBlockConfiguration: BlockPublicAcls: true BlockPublicPolicy: true IgnorePublicAcls: true RestrictPublicBuckets: true OMOPBucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref OMOPFHIRTransactionBucket PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: AWS: - !Sub ${PolicyfromOMOPConfiguration} Action: - "s3:GetObject" - "s3:GetBucketLocation" - "s3:ListBucket" Resource: - !Sub "arn:aws:s3:::${BucketName}" # Bucket itself - !Sub "arn:aws:s3:::${BucketName}/*" # FHIR Objects within the bucket Create the stack anyway you want to, one way is to use the aws cli. aws cloudformation create-stack --stack-name omopfhir --template-body s3-omop-fhir-bucket.yaml --parameters ParameterKey=BucketName,ParameterValue=omop-fhir Create some initial keys in the bucket to use for provisioning and the source folder for FHIR ingestion. aws s3api put-object --bucket omop-fhir --key Transactions/in --profile pidtoo aws s3api put-object --bucket omop-fhir --key termz --profile pidtoo You should now be setup to provision the service with the following, pay attention to the field asking for the arn, is actually asking for the arn of the bucket despite the description asking for the name... small 👣🔫 here.After the deployment is created, head over to the "Configurations" navigation item inside the "FHIR to OMOP Pipeline" deployment and grab the policy by Copying it to your clipboard. You can just follow the directions supplied there, and wedge this into your your current policy or just snag the value of the role and update your stack. aws cloudformation update-stack --stack-name omopfhir --template-body s3-omop-fhir-bucket.yaml --parameters ParameterKey=PolicyfromOMOPConfiguration,ParameterValue="arn:aws:iam::1234567890:role/skipper-deployment-4a358965ec38ba179ebeeeeeeeeeee-Role" Either way, you should end up with a policy that looks like this on your source bucket under permissions... (account number, role fuzzed) Recommended Policy { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::123456789099:role/skipper-deployment-33e46da9bf8464bbe5d1411111-Role" }, "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::omop-fhir", "arn:aws:s3:::omop-fhir/*" ], "Sid": "IRIS Cloud Bucket Access" } ] } I used a more open policy that allowed for the opening the root account, but constraining on the buckets. This way I could support multiple deployments with a single bucket (or multiple buckets). Not advised I guess, but a second example for reference to support multiple environments in a single policy for IAC purposes. Root Account { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111:root", ### Entire accounts(3) "arn:aws:iam::222:root", "arn:aws:iam::333:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::omop-fhir", "arn:aws:s3:::omop-fhir/*", "arn:aws:s3:::omop-fhir2", "arn:aws:s3:::omop-fhir2/*" ], "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::111:role/skipper-deployment-*-Role", "arn:aws:iam::222:role/skipper-deployment-*-Role", "arn:aws:iam::333:role/skipper-deployment-*-Role" ] } } } ] } That's our source for the transformation, now lets move on to the target, the OMOP Database. Meet OMOP Lets take a quick look over to the other deployment "OMOP on IRIS" and meet the Common Data Model. The OMOP (Observational Medical Outcomes Partnership) database is a monument on how you boil ridiculous complexity to support multiple sources into a common data model, referred to as the CDM. Any further explanation outside of the community would be an exercise in cut and paste (or even worse generative content), and the documentation in this community is really, really well done. Navigating to the "SQL Query Tools" navigation and you can see the InterSystems implementation of the Common Data Model, shown here next to the infamous diagram of OMOP Schema from the OHDSI community. That's as far as we go with this work of art, let's investigate another option for using the service for transformation purposes only. BYODB (Bring Your Own Database) We got a database for free when we provisioned last time, but if we want to target another database, we can surely do that as the service at this time of writing supports transforming to flavors of Postgres as well. For this we will outline how to wrangle an external database, via Amazon RDS, and connect it to the service. Compute I'll throw a flag here and call another 👣🔫 I refer to as "Biggie Smalls" in regards to sizing your database for the service if you bring your own. InterSystems does a pretty good job of sizing the transform side to the database side, so you will have to follow suit and consider the fact that the speed of your transform performance is dependent on the sql instance you procure to write to, so do so accordingly. This may be obvious to some, but witnessed it and thought Id call it out, as I went cheap with RDS, Google Cloud SQL et al, and the persistence times of the FHIR Bundles to the OMOP database were impacted. Having said all that, I do exactly the opposite and give Jeff Bezos the least amount of money possible for the task regardless, with a db.t4g.micro postgres RDS Instance. We expose it publicly and head over to download the certificate bundle for the corresponding region your database is in... make sure its in .pem format.Next, however you interact with databases these days, connect to your db instance and create a DATABASE and SCHEMA: Load OMOP CDM 5.4 Now we get a little help from our friends in the OHDSI Community to provision the supported schema at version 5.4 in RStudio with OMOP Common Data Model schema using OHDSI Tools. install.packages("devtools") devtools::install_github("OHDSI/CommonDataModel") install.packages("DatabaseConnector") install.packages("SqlRender") Sys.setenv("DATABASECONNECTOR_JAR_FOLDER" = "/home/sween/Desktop/OMOP/iris-omop-extdb/jars") library(DatabaseConnector) downloadJdbcDrivers("postgresql") We now have what we need and can connect to our postgres instance and created the tables in the OMOPCDM54 we provisioned above.Connect cd <- DatabaseConnector::createConnectionDetails(dbms = "postgresql", server = "extrdp-ops.biggie-smalls.us-east-2.rds.amazonaws.com/OMOPCDM54", user = "postgres", password = "REDACTED", pathToDriver = "./jars" ) Create CommonDataModel::executeDdl(connectionDetails = cd, cdmVersion = "5.4", cdmDatabaseSchema = "omopcdm54" ) Barring a "sea of red", it should have executed successfully.Now lets check out work, we should have an external postgres OMOP database suitable for using with the service. Configure OMOP Cloud Service We have the sources, we have the targets, lets configure the service to glue them together to complete the transformation pipeline from FHIR to the external database.InterSystems OMOP Cloud Service Should be all set!The OMOP Journey continues...
Announcement
Anastasia Dyubaylo · May 15

InterSystems Ready 2025 sessions to sink your teeth into

Hey Community, We're happy to announce that there's a preliminary list of sessions available for you to peruse at your leisure while waiting for the Ready 2025! At InterSystems READY 2025 we are planning over 60 individual sessions. We have sessions for everyone on a wide variety of topics and technologies. All the sessions are divided into 8 categories based on the points of interest: Put AI into Action Transform Health Plans Boost Product Impact Get Health Data Connected Secure. Fast. Scalable. Robust. Develop Innovative Solutions Maximize Your Data Architecture Make the Most of the Cloud We're still finalizing the session descriptions and schedule. Stay tuned for updates and more information soon!
Announcement
Anastasia Dyubaylo · May 22

[Webinar] Unlocking the Power of InterSystems Data Fabric Studio

Hey Community, We're excited to invite you to the next InterSystems UKI Tech Talk webinar: 👉Unlocking the Power of InterSystems Data Fabric Studio ⏱ Date & Time: Thursday, May 29, 2025 10:30-11:30 UK 👨‍🏫 Speaker: @Saurav.Gupta, Data Platform Team Lead, InterSystems Business leaders across every industry – including healthcare, financial services, supply chain, manufacturing, and the public sector – struggle with accessing unified, timely data spread across applications, data feeds, data warehouses, data lakes, and data marts. Join us for our next exclusive Tech Talk Webinar hosted by InterSystems expert Saurav Gupta as he introduces InterSystems Data Fabric Studio™—the latest innovation designed to offer a new approach to accessing data, delivering the right data to the right person at the right time, in a secure and controlled environment. It's a fully managed, self-service, cloud solution with all the necessary components to create and maintain an enterprise data fabric. An enterprise data fabric is a new architectural approach that speeds and simplifies access to data assets across the entire business. It accesses, transforms, and harmonises data from multiple sources, on demand, to make it usable and actionable for a wide variety of business applications. >> REGISTER HERE <<
Announcement
Anthony Jackson · Jun 3

InterSystems HealthShare developer interoperability Developer/Lead

Summary: Duties and Responsibilities: Design and implement healthcare data integration solutions using the InterSystems platform /HealthShare platform, ensuring data interoperability across various healthcare systems. Develop and maintain data mappings and transformations to ensure accurate data exchange between systems, leveraging IRIS API’s, HL7, FHIR, and other healthcare data standards. Build and maintain interfaces to connect health information systems, including clinical applications, EHR, and other healthcare data sources. Work closely with cross-functional teams, including developers, business analysts, and healthcare professionals, to gather requirements, design solutions, and implement integrations. Create and maintain comprehensive documentation for integration solutions, including interface specifications, data mappings, and test plans. Identify opportunities to improve integration processes and solutions, contributing to the overall efficiency and effectiveness of healthcare data exchange. Education and Skills: Experience with interoperability tools (like InterSystems), such as NextGen Mirth or "Availity" or "Infor" or "IRIS" or Cloverleaf or Rhapsody or Ensemble etc. Experience and expertise with InterSystems IRIS, InterSystems HealthShare. Familiarity / Experience working with Medical Claims data Experience with Amazon Web Services (AWS). Experience developing Continuous Integration / Continuous Delivery (CI/CD). Knowledge and understanding of agile methodologies Please send your profile to : Antony.Jackson@infinite.com antonyjacks@gmail.com
Question
Laura Blázquez García · Jun 9

Protocol Error between the Web Gateway and InterSystems IRIS

I have created a new docker stack with webgateway and IRIS for Health 2025.1. I have mapped the posts of wegateway like this: 8743:443 8780:80 I can access IRIS portal through 8743 without problems. I also have created a FHIR repository, and I'm able to access it through 8743 port. I have a web application, in another server with another domain, that connects to this FHIR repository. I have configured in FHIR endpoint the allowed origin to the domain of this application. But when I try to connect from this application to FHIR repository I have this error on Webgateway: Protocol Error between the Web Gateway and InterSystems IRIS This is a second instance that I'm configuring, with the first one I didn't see this error. Could this be because first instance runs in 8443 port? Or maybe it is because 2025.1 version? I don't know what to do...
Announcement
Anastasia Dyubaylo · Jun 10

[Video] Foreign Tables in InterSystems IRIS 2025.1

Hi Community, Our Project Managers created a series of videos to highlight some of the interesting features of the new 2025.1 release. Please welcome the first one of them: ⏯ Foreign Tables in InterSystems IRIS 2025.1 The InterSystems IRIS 2025.1 release introduces powerful new features for data management, including full support for foreign tables in production. It adds fine-grained privileges for managing access to foreign servers and querying them, plus a new command for sending direct SQL queries to external relational databases. New table conversion options also allow switching between row and column layouts for better analytics performance. 🗣 Presenter: @Benjamin.DeBoe, Manager, Analytics Product Management, InterSystems Want to stay up to date? Watch the video and subscribe for more!
Announcement
Jonathan Gern · Jun 16, 2020

Intersystems Solutions Engineer- Full Time

My organization is looking for a full time Intersystems Solutions Engineer to join the team. Based in NY, the Solutions Engineer will design technical architectures to support efforts across the health system focused on clinical data exchange with other provider organizations and payors.
Question
Robert Bee · Feb 13, 2019

Intersystems Cache and MS Access Passthrough

Edit:May have found the issue but not the solution."SELECT * FROM wmhISTORYdETAIL" runs as a passthrough without asking for the DNS.but'SELECT Count([wmhISTORYdETAIL].[HistHMNumber] AS CountOfHistHMNumber FROM [wmhISTORYdETAIL] WHERE ((([wmhISTORYdETAIL].[HistMovType])='Receipt') AND (([wmhISTORYdETAIL].[HistMovDate])>=Date()-1) AND (([wmhISTORYdETAIL].[HistMovDate])<Date()));'asks for the DNS but both are linked to a table that has the password saved.Any Ideas please?RobHiI have created an MS Access database with a passthrough query to our Intersystems Cache WMS system. If I use "SELECT * from thetable" as the passthough query I can use VB.NET to query the passthrough and it works fine but this dataset getting rather large so I changed it to"Select field1, field2, filed3 from thetable" but the passthrough no longer works as it did.....it works in MS Access but not from the VB.NET app.The VB.Net Query is:SELECT Count([xxx].[HistHMNumber] AS CountOfHistHMNumber FROM [xxx] WHERE ((([xxx].[HistMovType])='Receipt') AND (([xxx].[HistMovDate])>=Date()-1) AND (([xxx].[HistMovDate])<Date()));where [xxx] is the passthrough querybut now I get an ODBC error in the VB.Net app"System.Data.OleDb.OleDbException: 'ODBC--call failed.'"The error/issue appears to be in the SQL but if Im lift it and paste it into the MS Access database. it works?!?!Any help would be appreciated.Many ThanksRob Hello Robert, Did you resolve this or log with our helpdesk? Regards David Underhill @ Chess
Question
Kurt Hofman · Jul 3, 2019

Using Intersystems Caché as a LDAP server

We would like to use our Caché-server as the source for our PABX-addressbook.The PABX only supports LDAP.Is it possible to use our Caché-instance as an LDAP-server ?Regards, Kurt Hofman. The native Cache LDAP support is only for an LDAP client.