Hi Evgeny,

In my opinion, the best approach is to divide API endpoints into multiple subclasses using Forward functionality. See for example an implementation of %Api.InteropEditors class in %SYS namespace, it showcases how OpenApi can be implemented with Forward functionality

Sergei Shutov · Oct 13, 2025 go to post

Yes you absolutely don't want to hard code those in the code. You have two options: 

1) have a login form which will ask for those and save them in either local variables (will have to enter login password after each page refresh) or local storage (not secure because password is available in plain text). You can try some silly endpoint like _ping to check if it returns 200 or 403 to check if credentials are valid. 

2) use web sessions and store session information in cookies. Here you can use usual iris login page to authenticate, but it's not rest best practices because use of session is discouraged

Or 3) set up and implement jwt authentication as described in documentation https://docs.intersystems.com/iris20242/csp/docbook/DocBook.UI.Page.cls…

I'd say from my experience, best for security and production use is 3, most people implement 2, and 1 is only good for prototyping/experiments because it's not secure

Sergei Shutov · Apr 22, 2025 go to post

That's an ambitious plan for sure! I also recommend the demos&drinks event, you can learn a lot of stuff you don't even have an idea you wanted to know about before you see it :) . See you there!

Sergei Shutov · Apr 17, 2025 go to post

1) Download and install docker

2) Run this code in terminal

docker run --rm --name iris-demo -d -p 9090:52773 -e IRIS_USERNAME=demo -e IRIS_PASSWORD=demo intersystemsdc/irishealth-community:latest

3) Open browser at http://localhost:9090/csp/sys/UtilHome.csp and use VSCode to connect to the same host/port

Regarding SQL Server setup, you'll have to ask on SQL Server forum

Sergei Shutov · Apr 17, 2025 go to post

I'm with Tim on this one, it's OK to create something like https://sergeinator.com for fun and giggles or use is as a prototyping tool instead of MS Paint, but I would not let this code anywhere near production.

Sergei Shutov · Apr 16, 2025 go to post

Great article Tim! I think another area where AI can help a lot and which is usually overlooked in IRIS development is an automated testing

Sergei Shutov · Mar 18, 2025 go to post

Looks like the error is on a back-end, the Java code you are calling is not configured properly. Try running it from the terminal.

Sergei Shutov · Feb 25, 2025 go to post

Which means that Colin guessed the code right and no, trace is not computed when tracing is off :)

Sergei Shutov · Feb 4, 2025 go to post

Hi Stephen, this is a valid approach however you will lose information about problematic calls such as json can't be parsed or API key in headers is wrong. I prefer to actually save the http call in full as http generic message and then call a process or operation with transformation to the proper message format, as Alex demonstrated in his third example. You can still call operation manually if you want, passing the parsed message. 

Sergei Shutov · Aug 5, 2024 go to post

Congratulations to all winners, it was difficult to vote this time, so many great applications and samples!

Sergei Shutov · Feb 4, 2024 go to post

Hi @Evgeny Shvarov 
You need to use port 52773 with localhost in Docker. It's relative to the container not to your host.

I just tried this with intersystemsdc/irishealth-community:latest image above, works fine.

Sergei Shutov · Nov 14, 2023 go to post

Yes but you can have one top-level 'manually created' one and have individual ones based on separate OpenAPI files

Sergei Shutov · Jul 12, 2023 go to post

Well you gave me two so I should have one spare wish :)

Make iris:latest-cd just iris:latest, this way we can just skip the "latest" bit altogether and just use iris without any tag at all.

Sergei Shutov · Jul 3, 2023 go to post

Hi Bob,

That's good news and I like new names much more than old ones. I hope old tags for old releases will still be available?

A couple of entries from my container tagging wishlist (one can dream, you know)

- provide :latest tag for all containers, but especially for community ones, which will just pull the latest working release without having to rebuild dockerfiles every year when license expires

- provide 2023.1.x tag which will follow the latest minor version

Sergei Shutov · Mar 15, 2023 go to post

You can also just use incoming XML as a steam and extract data you need using parser into a custom defined ensemble message, if you only need parts of the incoming data

Sergei Shutov · Mar 15, 2023 go to post

Hi Phillip,

In TrakCare, interoperability is controlled by TrakCare Health Messaging Framework (HMF). Each Interface has to go through HMF Gateway, which is an IRIS Production, and then all those are getting routed through HMF Router which is a separate IRIS production. Please have a look at HMF documentation for more details. A lot of this code is auto-generated so you need to understand what needs to be configured in TrakCare and what needs to be configured in Production.

Sergei Shutov · Mar 15, 2023 go to post

Well first of all there is a first-class support for FHIR data in IRIS for Health and I would definitely recommend to use it instead of rolling out your own class-based solution. See documentation here https://docs.intersystems.com/irisforhealth20221/csp/docbook/Doc.View.c…

If you want to work with projections, given that even basic data fields in FHIR are quite complex https://www.hl7.org/fhir/datatypes.html#primitive you'll need to define separate embedded classes for each data type; it doesn't have to be a separate class for each field.