The demo is based on the raw class descriptions.
The data classes used are Address, Person, Employee, Company
For a more attractive demo, a JSONtoString method by ID was added.
Hi all, it's me again for sharing what I am studying recently.😓
Recently, I am studying how to setup OAuth2 authentication for the InterSystems FHIR repository. And I found the following articles are very good and easy to follow.😁
SMART on FHIR EHR Launch with IRIS for Health
For me, as a user who do not have much knowledge about OAuth2.0.
– 35 new announcements
– 40 new questions
– 7 new discussions
✓ 283 new members joined in December
✓ 15,873 posts published all time
✓ 18,218 members joined all time
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.PatientSearch.Record) As%Status
{
Set tSC=$$$OKsetI 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.Message,%Library.String' or its
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.
Does anyone have any examples on how this could
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 Operation.
Does anyone have a good example outside of what is in the documentation on how to build out a Custom Form for this
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'."
}
}
]
}
Does it mean that HealthShare FHIR gateways are
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.
It can also be spread across multiple
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.
This
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
ClassHi 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 - @' Set:""=source.DocType
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. Like Jim Carrey's character in Yes Man, I found myself saying "no" to new projects -- so much so that I
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 {
w1/0
}
Catch e {
do e.Log() // logging error in the app logwrite"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.
This article provides a step-by-step guide to building

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! This teamwork concept is a wonderful analogy to illustrate how AI agents work and how we use them in our DC-Facilis
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.
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:

