Has anyone tried to authenticate IRIS client in Snowflake using Key Pair Auth as described in this doc?
I have been struggling sometime with trying to take a FHIR Bundle Response, extract the "entry.resourceType", extract the MRN and Name from the Patient FHIR Response...
Going through learning.intersystems.com, it suggested that I try using fhirPathAPI to parse and search my response for certain values, however I am not sure my syntax is correct. Using the AI code, it suggested to set my tree = "Bundle.entry.resource.resourceType"
ClassMethod Transform(source As HS.FHIRServer.Interop.Response, target As osuwmc.Epic.FHIR.DataStructures.I was wondering if anyone had a way to automate creating the Query String for a FHIR Request?
Using HS.FHIRServer.Interop.Request in my development I have to specify the following...
.png)
I was wondering.... if my source had variable number of fields if there was a way to automate the build for the QueryString when doing a Patient Search?
I am trying to replicate a way to use FHIR as a way to query the EMR instead of using a MS SQL Stored Procedure that is populated via HL7 ADT to query.
Using a WSDL and the SOAP wizard I created a WebServiceClient, and Operation to send an encoded message to a Vendor. But the vendor is now sending back an HL7 in the SOAP response.
I tried updating the Operation to Extend EnsLib.HL7.Operation.ReplyStandard, but still use the EnsLib.SOAP.OutboundAdapter. When I did this it broke my Operation and would not compile with the following error...
ERROR #5478: Keyword signature error in osuwmc.Nutrition.HL7SoapOperation:Method:SendMessage, keyword 'method argument/s signature' must be 'EnsLib.HL7.Message,EnsLib.HL7.
I am looking for a way to capture Data Quality issues with the Source data that is populating HealthShare Provider Directory. 1 way is to use Managed Alerts, but since it could be multiple Providers and different messages it seems silly to alert on every message that has the error. Instead, I was thinking of using the Workflow Engine so it could populate a Worklist for someone to review and work.
Looking over the Demo.Workflow Engine example, I am not comprehending on how to send a task to the Workflow manager to populate the worklist from a DTL.
According to the Documentation EnsLib.Workflow.TaskRequest has the following fields...
- %Action
- %Command
- %FormFields
- %FormTemplate
- %FormValues
- %Message
- %Priority
- %Subjext
- %TaskHandler
- %Title
- %UserName
I want to be able to capture the Source, Session ID, and any other Identifiers outside of the Error so it will show up on the Task List.
I am struggling how to build a csp template for me to be able to capture additional fields to send to the Workflow
Hey Developers,
Enjoy the new video on InterSystems Developers YouTube
⏯ HealthShare Vision & Roadmap - Fueling Faster AI Adoption Through Trusted Health Data @ READY 2025
I'm new to HealthShare. I've installed a demo using the HS.Util.Installer helper, now I'm playing with its FHIR Gateway (which is the HSFHIR namespace). When I try to create a new resource of type Patient using HTTP POST, HealthShare responses with
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "not-supported",
"diagnostics": "<HSFHIRErr>InteractionNotSupported",
"details": {
"text": "Interaction 'create' is not supported for resource type 'Patient'.Hi Developers!
Consider I have a persistent class derived from %Persistent and I want it to be derived from %JSON.Adaptor to enjoy all the JSON features.
Can I do it programmatically?
So, it'd be wonderful to have a method in some util class that makes it happen? Something like:
Do ClassUtil.AddAncestor("MyPackage.MyPersistentClass","%JSON.Adaptor")
Any ideas?
You probably know this situation:
Some time ago, you found a very special $ZU function for a very specific type of problem. Some kind of mystical formula. It became popular and was used by many developers throughout your code and across all your installations.
Several versions and updates later, you are informed by ISC that your mystical $ZU is deprecated and no longer supported. You are advised to replace it with a new $something().
So, how do you find and document the usage of this mysterious code?
It might be located in classes, in MAC, INT, or INC code.
I built a BP, that every time that a message is received from a BS, it executes
set isAuth=##class(%SYS.OAuth2.AccessToken).IsAuthorized("EpicFHIRPOC",,,.accessToken,.idtoken,.responseProperties,.error)
if 'isAuth {
set tSC=##class(%SYS.OAuth2.Authorization).GetAccessTokenClient("EpicFHIRPOC", "*",, .error)
set isAuth=##class(%SYS.OAuth2.AccessToken).IsAuthorized("EpicFHIRPOC",,,.accessToken,.idtoken,.responseProperties,.error)
}To save time, I was thinking of just creating a BS that goes out and gets the Authorization Token every hour.
When working with InterSystems Interoperability (Iris / Health Connect / Ensemble), configuration data is often spread across many production items: services, processes, operations, adapters, and their settings.
A common operational or security need is to answer questions like:
- Which interfaces reference file system paths?
- Where are directories, network shares, or absolute paths configured?
- Can I quickly audit or document this information across all my productions?
The ObjectScript utility below solves exactly that problem by exporting selected configuration settings into a CSV file.
Here is what is currently used.
..CurrentDateTime("%Y%m%d%H%M%S")
The format is not the issue.
I need to make it our current time as it is five hours ahead.
How can I access the header property of either of these.
.png)
Or, if I can't do that, subtract five hours or the equivalent time in seconds.
example, if I receive 20201224161922, how can I make it 20201224111922?
Thanks,
Jonathan
Embeddedpy-bridge: A Toolkit for Embedded Python
Overview
Embedded Python is a game-changer for InterSystems IRIS, offering access to the vast Python ecosystem directly within the database. However, bridging the gap between ObjectScript and Python can sometimes feel like translating between two different worlds.
To make this transition seamless using embeddedpy-bridge.
This package is a developer-centric utility kit designed to provide high-level ObjectScript wrappers, familiar syntax, and robust error handling for Embedded Python.
As I am iterating through the FHIR JSON Response from a Patient Search, I am running into an issue where the extracted values are not being popualted into the Response object that I have created. If I do a $$$LOGINFO on them they will show up in the Object log, however if I try the following for example I get an error.
set target.MRN = identifier.value
|
Here is my Ens.DataTransform
Class osuwmc.Epic.FHIR.DTL.Hi developers!
There is a neat feature of ObjectScript classes - Query element, which allows you to write in a clear SQL (without any & or ()), pass parameters to it and call it from ObjectScript as do QueryNameFunc() or via Call SQLProcedureName via SQL, .e.g.
Query MyQuery(p as %String) as %SQLQuery [SQLProc]
{
SELECT * FROM MyTable
WHERE Name=:p
}All works fine, but when I tried to use the same for a DELETE statement see the following error:
SELECT expected, DELETE found ^ DECLARE Q1 CURSOR FOR DELETE
Is the Query element for SELECT only? What am I doing wrong? )
I am trying to centralize our FHIR queries into a single BP object that would send the FHIR query to the EMR, interpret the response into a %Persistent structure that could be sent back to the requestor. In theory it seemed like it would work but I am running into an issue..
"Warning on Message body 5@osuwmc.Epic.FHIR.DataStructures.PatientSearch.Record'
/ 229 because Status 'ERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>Transform+3 ^osuwmc.Scott.FHIR.DemoOutboundHL7Message.1 *DocType,osuwmc.Epic.FHIR.DataStructures.PatientSearch.Record -- logged as '-'
number - @'
I'm trying to login and seeing the message 'Unexpected request - client_id'. Could you please have a look?
The Rut
Up until early this year, I haven't been not doing much coding at all -- I had gotten sick of it.
After many years as a hands-on software engineer and data scientist, I got burned out around 2015. I switched to business development roles focused on "external innovation," then joined InterSystems in 2019 as a product manager. I missed the creative aspects of coding, but not the tedium. The endless cycle of boilerplate, debugging, and context-switching had left me creatively depleted.
Hi developers!
Happy holidays!
In ObjectScript there is neat option to log errors - call Log() method of an exception intance, e.g.:
ClassMethod MyMethod() {
Try {
w 1/0
}
Catch e {
do e.Log() // logging error in the app log
write "the error happened: "_e.DisplayString()
}
}Is there anything like that for Embedded Python? e.g:
ClassMethod MyMethod() [Language = python] {
try:
print(1/0)
except ZeroDivisionError as e:
// how can I log e into IRIS App Error Log here?
print("Caught exception: " + str(e))
}Any ideas?
Hey Developers,
Enjoy the new video on InterSystems Developers YouTube
⏯ Inside Vector Search - Technical Innovations In InterSystems IRIS @ READY 2025
How to Build Applications with LangGraph: A Step-by-Step Guide
Tags: #LangGraph #LangChain #AI #Agents #Python #LLM #StateManagement #Workflows
Hi everyone, I want to tell you a little about LangGraph, a tool that I'm studying and developing.
Basically traditional AI applications often face challenges when dealing with complex workflows and dynamic states. LangGraph offers a robust solution, enabling the creation of stateful agents that can manage complex conversations, make context-based decisions, and execute sophisticated workflows.

I'm a huge sci-fi fan, but while I'm fully onboard the Star Wars train (apologies to my fellow Trekkies!), but I've always appreciated the classic episodes of Star Trek from my childhood. The diverse crew of the USS Enterprise, each masterminding their unique roles, is a perfect metaphor for understanding AI agents and their power in projects like Facilis. So, let's embark on an intergalactic mission, leveraging AI as our ship's crew and boldly go where no man has gone before!
InterSystems FAQ rubric
The default settings for Stay Connected and Pool Size for business hosts using the TCP adapter are as follows:
PoolSize = 1
If a network problem causes a connection to a business host to be lost, the production side will be unable to detect this and will not accept new connections. In this situation, no event is recorded in the event log. If StayConnected is set to its default value (-1), connections will not time out, and you will need to restart the business host before it can accept new connections.
Hi noble developers!
Have a question/discussion. Sometimes, while developing, we'd need to connect VSCode directly to a remote server (e.g., stage one) for debugging purposes. And after change back to local one. And then to remote again.
How do you perform this switching in VSCode in a convenient way?
I have several settings.json files (settings_local, settings_remote) which I put to a main settings.json when I need to make VSCode to connect to switch the connection:

Is it the best practice?
Hi,
Our production FHIR server is populated by several processes from several sources,
some of those sources send test data or wrong data (by mistake or as part of an integration test),
the data is consumed by our BI every 15 minutes.
when I mark a resource as test (using meta security) BI knows to update it on their system.
everything is fine up to here (except that there is test data in Prod)
my problem is that if someone send the same patient again it will recreate the patient without the security tag.
any thoughts?
Hi Community,
As part of our birthday celebration, we’ve put together a special timeline video showcasing the key milestones, growth, and achievements of the Developer Community and its Ecosystem over the past decade 🎆
Take a look at how far we’ve come, and how much we’ve built together:
InterSystems IRIS embedded vector search capabilities lets us search unstructured and semi-structured data. Data is converted to vectors (also called ‘embeddings’) and then stored and indexed in InterSystems IRIS for semantic search, retrieval-augmented generation (RAG), text analysis, recommendation engines, and other use cases.
This is a simple demo of IRIS being used as a vector database and similarity search on IRIS.
Prerequisites:
- Python
- InterSystems IRIS for Health - as it will be used as the vector database
Repository: https://github.
InterSystems API Manager (IAM) is a core component of the InterSystems IRIS Data Platform, offering centralized API management with a strong emphasis on security. IAM simplifies the entire API lifecycle, from creation to retirement, and provides a developer portal for easy API discovery and integration. Access control features allow administrators to define precise permissions, and IAM seamlessly integrates with the IRIS Data Platform, enhancing data management and integration capabilities.
Features of IAM include:
- API Gateway: Centralized API management and security hub.
You send an HTTP request and get back an HTTP error but with an HTML error page which you didn't expect... what's happening?... 🤔
Specifically for example, perhaps you tried to READ a FHIR Resource (e.g. /Patient/123) and you get back a 404 error page, even though with other Patient IDs, you get back the Resource payload, so "the page" definitely does exist... why should you be getting a 404 error page? 🙄


