Clear filter
Announcement
Anastasia Dyubaylo · Oct 23, 2024
Drumroll, please...
🎉 The InterSystems Developer Community has officially surpassed 20,000 registered members! 🎉
But that’s not all – we’ve also achieved some impressive milestones:
📝 21,500 published posts
👁 10,000,000 views
We want to take a moment to celebrate with all of you who have made this possible!
In what feels like the blink of an eye, our community has EXPLODED in size 🤯. We’ve doubled in size in just two years' time! It’s not just numbers — it’s the impact YOU are making, and we couldn’t be more grateful!
This phenomenal growth is all thanks to you — our amazing community of developers, contributors, and trailblazers! Whether you're sharing your expertise and next-level insights, asking thought-provoking questions, or collaborating with others, you are the heartbeat of this Community. ❤️🔥 You’re transforming this platform into a powerhouse of ideas and solutions, and we are here for it!
🌍🫂 With six regional communities in different languages (EN, ES, PT, JP, CN, FR), we’re uniting developers from all over the globe, making the InterSystems Developer Community a truly global hub.
👏 A special shoutout to our superstar moderators, content managers, and admins who keep this incredible machine running smoothly. Your dedication keeps the gears turning, and we couldn’t do it without you!
But guess what? This is just the beginning!We’re excited to keep growing, learning, and innovating TOGETHER. Whether you're new to the community or a long-time member, there’s so much more ahead for all of us!
THANK YOU!
---
Sincerely yours,InterSystems Developer Community Team
Announcement
Bob Kuszewski · Dec 2, 2024
Welcome to the Q4’2024 quarterly platforms update. I hope that your 2024 has been incredible and that 2025 is even better.
If you’re new to these updates, welcome! This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap.
With that said, on to the update…
InterSystems IRIS Production Operating Systems and CPU Architectures
Red Hat Enterprise Linux
Previous Updates
We’ve completed minor OS certification for RHEL 9.4 & 8.10 on IRIS 2024.1 without incident.
Upcoming Changes
The next major update for RHEL will be RHEL 10 which is expected in Q2 of 2025.
Short-term-supported 9.5 & 8.11 were released earlier this month, and we’ve started minor OS certification on IRIS 2024.1.
Further reading: RHEL Release Page
Ubuntu
Previous Updates
We’ve completed minor OS certification for Ubuntu 22.04.3 on IRIS 2024.1 without incident
Upcoming Changes
We’re currently doing minor OS certification on Ubuntu 24.04.1. So far, so good.
Further Reading: Ubuntu Releases Page
SUSE Linux
Previous Updates
SUSE Linux Enterprise Server 15 SP6 was released in May. The release notes can be found here.
General Support from SUSE for Linux Enterprise Server 15 SP3 came to an end on 12/31/2022, but extended security support will continue until December, 2025.
Further Reading: SUSE lifecycle
Oracle Linux
No updates
Further Reading: Oracle Linux Support Policy
Microsoft Windows
Recent Changes
Windows Server 2025 was released earlier this month and we’ve begun the process of adding support for the platform.
Upcoming Changes
Microsoft has pushed back the anticipated release date for Windows 12 to sometime in 2025. We’ll start the process of supporting the new OS after it’s been released.
Further Reading: Microsoft Lifecycle
AIX
Recent Changes
IRIS 2024.3 and up will only support OpenSSL 3. NOTE: This means that 2024.2 is the last version of IRIS that has both OpenSSL 1 and OpenSSL 3 kits. In IRIS 2023.3, 2024.1, & 2024.2, we provided two separate IRIS kits – one that supports OpenSSL 1 and one that supports OpenSSL 3. Given the importance of OpenSSL 3 for overall system security, we’ve heard from many of you that you’ve already moved to OpenSSL 3.
Further Reading: AIX Lifecycle
Containers
Previous Updates
We changed the container base image from Ubuntu 22.04 to Ubuntu 24.04 with IRIS 2024.2
We’re considering changes to the default IRIS container to, by default, have internal traffic (ECP, Mirroring, etc) on a different port from potentially externally facing traffic (ODBC, JDBC, etc). If you have needs in this area, please reach out and let me know.
InterSystems IRIS Development Operating Systems and CPU Architectures
MacOS
Upcoming Changes
Apple has released MacOS 15 and we are planning support for it in IRIS 2025.1
InterSystems Components
Previous Updates
InterSystems API Manager 2.8.4.11 & 3.4.3.11 have been released. If you’re using IAM, please upgrade soon.
InterSystems Reports 24.1 has been released.
Caché & Ensemble Production Operating Systems and CPU Architectures
Previous Updates
A reminder that the final Caché & Ensemble maintenance releases are scheduled for Q1-2027, which is coming up sooner than you think. See Jeff’s excellent community article for more info.
InterSystems Supported Platforms Documentation
The InterSystems Supported Platforms documentation is the definitive source information on supported technologies.
IRIS 2024.1 Supported Server Platforms
IRIS 2023.1 Supported Server Platforms
IRIS 2022.1 Supported Server Platforms
Caché & Ensemble 2018.1 Supported Server Platforms
… and that’s all folks. Again, if there’s something more that you’d like to know about, please let us know.
Article
Kristina Lauer · Jan 23
Updated 02/27/25
Hi Community,
Looking for a way to onboard your team with InterSystems IRIS® for Health? Unlock the full potential of this platform by using these InterSystems learning resources. With a mix of online and in-person training, you can support various roles in your organization and equip your team for success.
Onboarding Resources for Every Role
Developers
Online Learning Program: Getting Started with InterSystems IRIS for Health for Coders (21h)
Classroom Training: Developing with InterSystems Objects and SQL and Building and Managing HL7 Integrations (5 days each)
System Administrators
Learning Path: InterSystems IRIS Management Basics (10h)
Classroom Training: Managing InterSystems Servers (5 days)
Data Analysts
Video: Introduction to Analytics with InterSystems (6m)
Learning Paths for every tool:
Analyzing Data with InterSystems IRIS BI
Delivering Data Visually with InterSystems Reports (1h 15m)
Build Data Models Using Adaptive Analytics (2h 15m)
Classroom Training: Using InterSystems Embedded Analytics (5 days)
System Integrators
Learning Program: Getting Started with InterSystems IRIS for Health for Integrators (14h)
Classroom Training: Developing System Integrations and Building and Managing HL7 Integrations (5 days each)
Learning Paths for integrators working with HL7® FHIR®: Building Basic FHIR Integrations with InterSystems (4h) and FHIR-Enabling Your Applications with InterSystems (3h 30m)
Project managers
Watch product overview videos.
Read success stories to get inspired—see how others are using InterSystems products!
Other Resources from Learning Services
💻 Online Learning: Register for free at learning.intersystems.com to access self-paced courses, videos, exercises, task-based learning paths, role-based programs, and more.
👩🏫 Classroom Training: Sign up for live, in-person or virtual training, or request a private course for your team. Find details at classroom.intersystems.com.
📘 InterSystems IRIS documentation: Comprehensive reference materials, guides, and how-to articles. Explore the documentation.
📧 Support: For technical support, email support@intersystems.com.
Certification Opportunities
Once you and your team members have gained enough training and experience, get certified according to your role!
Learn from the Community
💬Engage in learning on the Developer Community: Chat with other developers, post questions, read articles, and stay updated with the latest announcements. See this post for tips on how to learn on the Developer Community.
Article
Anila Kosaraju · Feb 5
Interoperability of systems ensures smooth workflow and management of data in today's connected digital world. InterSystems IRIS extends interoperability a notch higher with its Embedded Python feature, which lets developers seamlessly integrate Python scripts into the IRIS components, like services, operations, and custom functions.
Why Embedded Python in IRIS?Embedded Python brings the flexibility of Python into the powerful world of InterSystems IRIS and provides the following: Access to Python Libraries: Leverage popular libraries such as pandas, NumPy, and requests for advanced data processing.Ease of Use: Python simplifies the implementation of complex logic.Efficient Interoperability: Develop services, operations, and transformations directly within IRIS, reducing the need for external tools.Below is the code I tried to implement for a python business operation:
from iris import irisnative
class SamplePythonOperation: def on_message(self, request): # Connect to IRIS conn = irisnative.createConnection("localhost", 1972, "USER", "_SYSTEM", "SYS") iris_obj = irisnative.createIRIS(conn)
# Log the request message iris_obj.set("Received: " + request.get("MessageText"), "MyApp", "Log")
# Process the request response = "Hello, " + request.get("MessageText") return {"Result": response}
Embedded Python in InterSystems IRIS allows developers to leverage the flexibility of Python with the robustness of IRIS for interoperability solutions. In transforming data, building APIs, or integrating external systems, traditional expectations are that Embedded Python is a revolution for modern applications.
Use Embedded Python today, and discover new avenues of seamless interoperability! wow, nice article, can you provide more information about how you register this python class into a production ?
for the more, can you tell me what is the difference between embedded python and irisnative, i'm a bit confused. Thanks! Yes I can tell you that. For registering a class into a production,
Navigate to Interoperability > Productions.
Open or create a new production.
Add a new Business Operation.
Select the Python Adapter.
In the Settings, specify your Python class name
The adapter will invoke the method of the Python class whenever the operation receives input.
And the difference between them is- Embedded Python runs natively within InterSystems IRIS, allowing you to build and integrate IRIS components like services or operations directly using Python. In contrast, irisnative is an external Python library for connecting to and interacting with an IRIS database from outside the IRIS environment, such as standalone scripts or external applications.
Thanks, but i can't find the Python Adapter do you mean EnsLib.PEX.BusinessOperation or IOP.BusinessOperation.
Next if Embedded Python runs natively on iris, why i have to declare a connection as you mention in your example ?
Does this work best ?
from iop import BusinessOperation
class HelloWorld(BusinessOperation):
def on_message(self, request):
self.log_info("Hello World")
Yes, You're right. Sorry for the confusion. By saying Python adapter, I meant EnsLib.PEX.BusinessOperation and also you're perfectly correct about the declaration too. irisnative is unnecessary for local interactions. I'm just trying things on iris so don't take me for an expert😄.
Your code is correct and I would like to add that - 'from EnsLib.PEX import BusinessOperation' would be the best.
Announcement
Anastasia Dyubaylo · Sep 3, 2024
Hi Community!
We hope you enjoyed our Developer Community AI sweepstakes and learned something new while interacting with our DC AI. Now, it's time to announce the winner!
And the winner of the sweepstakes is @Akio.Hashimoto1419. Congratulations! We will get in touch soon to deliver your prize, which is a Patagonia Black Hole® MLC™ Cube:
If you're curious to see what questions were asked, here are all 28 of them that took part in the sweepstakes:
Author
Link
@Iryna.Mykhailova
Vector search
@Heloisa.Paiva
Python in IRIS
@Ohata.Yuji
Kill command
@Ohata.Yuji
Kill command
@Ohata.Yuji
Sharding
@Minoru.Horita
REST
@Akio.Hashimoto1419
Database creation
@Akio.Hashimoto1419
Database creation
@Iryna.Mykhailova
Working with dates/times
@Michael.Davidovich
Errors handling
@Timothy.Leavitt
Streams
@George.James
Errors handling
@Muhammad.Waseem
Vector search
@Daniel.Aguilar
Business Process
@Evgeny.Shvarov
XML export
@José.Pereira
Adapters
@Jani.Hurskainen
Using command line
@Jani.Hurskainen
Using command line
@Timothy.Leavitt
VSCode
@Sean.Connelly
Using methods
@Sean.Connelly
Doing calculations
@Sean.Connelly
Doing calculations
@Sean.Connelly
Doing calculations
@Sean.Connelly
Doing calculations
@Vishal.Pallerla
Creating classes
@Pietro.DiLeo
Using streams
@Pietro.DiLeo
Using streams
@LuisAngel.PérezRamos
SQL Gateway
Our sincerest congratulations to our winner! And better luck next time to everyone else who took part! Congratulations to the winner! This was an interesting experience 😁 I hope we will get more sweepstakes like this!
Article
Ashok Kumar T · Sep 13, 2024
In the previous article. Practices of class members and their execution within embedded Python. We will now turn our attention to the process of switching namespaces, accessing global variables , traversing and routine executions within embedded Python.
Before proceeding to the other functions. let us briefly review the execute function within the iris package. This function is exceptionally beneficial for executing the arbitrary ObjectScript functions and class invocation.
>>> b = iris.execute('return $Piece("test^aaaa","^",2)')>>> b'aaaa'>>> b = iris.execute('return $Extract("123456",2,5)')>>> b'2345'>>> b = iris.execute('return $Length(123456)')>>> iris.execute('write ##Class(%SYSTEM.SYS).NameSpace()')LEARNING>>>>>> b = iris.execute('return ##Class(%SYSTEM.SYS).NameSpace()')>>> b'LEARNING'
Let us begin!
4. Switch Namespaces
Switching namespaces during execution is often necessary. However, unlike in IRIS, direct switching of namespaces within embedded Python is not feasible. Therefore, it is essential to utilize existing class definitions or to create a wrapper method to facilitate the switching of namespaces.
ClassMethod SwitchNM() [ Language = python ]
{
import iris
print(iris.cls('%SYSTEM.SYS').NameSpace())
print(iris.system.Process.SetNamespace("USER"))
try:
iris.cls('User.EmbeddedPython').pyGetTemplateString()
except RuntimeError as e:
print("Wrong NameSpace",e)
}
5. Global
To utilize the capabilities of global for data traversal or to retrieve information from legacy global systems directly, rather than through SQL or objects within embedded Python, one can access it directly by employing the gref function from the iris package. To set or get global values, the gref function can be utilized to establish a reference to the global variable and directly assign values within Python.
iris.gref
class gref(builtins.object) | InterSystems IRIS global reference object. | Use the iris.gref() method to obtain a reference to a global | | Methods defined here: | | __delitem__(self, key, /) | Delete self[key]. | | __getitem__(self, key, /) | Return self[key]. | | __len__(self, /) | Return len(self). | | __repr__(self, /) | Return repr(self). | | __setitem__(self, key, value, /) | Set self[key] to value. | | __str__(self, /) | Return str(self). | | data(self, key) | Given the keys of a global as a list, returns the state of that. | Example: x = g.data([i,j]) sets x to 0,1,10,11 0-if undefined, 1-defined, 10-undefined but has descendants, 11-has value and descendants | | get(self, key) | Given the keys of a global as a list, returns the value stored at that node of the global. | Example: x = g.get([i,j]) sets x to the value stored at key i,j of global g. | | getAsBytes(self, key) | Given the keys of a global as a list, returns a string stored at that node of the global, as bytes. | Example: x = g.getAsBytes([i,j]) sets x to the value stored at key i,j of global g, as bytes. | | keys(self, key) | Traverses a global starting at the specified key, returning each key in the global. | Example: for key in g.keys([i, j]) traverses g from key i,j, returning each key in turn. Optional second argumenent 1 or -1, if -1 reverses the returned order | | kill(self, key) | Given the keys of a global as a list, kills that node of the global and its subtree. | Example: g.kill([i,j]) kills the node stored at key i,j of global g and any descendants. | | order(self, key) | Given the keys of a global as a list, returns the next key of the global, optional second argument 1 or -1, if -1 returns the previous key. | Example: j = g.order([i,j]) sets j to the next second-level key of global g. | | orderiter(self, key) | Traverses a global starting at the specified key, returning the next key and value as a tuple. | Example: for (key, value) in g.orderiter([i,j]) traverses g from key i,j, returning the next key and value. Optional second argumenent 1 or -1, if -1 reverses the returned order. | | query(self, key) | Traverses a global starting at the specified key, returning each key and value as a tuple. | Example: for (key, value) in g.query([i,j]) traverses g from key i,j, returning each key and value in turn. Optional second argumenent 1 or -1, if -1 reverses the returned order. | | set(self, key, value) | Given the keys of a global as a list, sets the value stored at that key of the global. | Example: g.set([i,j], 10) sets the value of the node at key i,j of global g to 10 | | ---------------------------------------------------------------------- | Static methods defined here: | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature.
5.1 Set global values
ClassMethod SetGlobal() [ Language = python ]
{
import iris
#create a global reference
g = iris.gref('^mygbl')
g[1],g[2]='Mon','Tue'
g["95752455",1]=iris.execute('return $LFS("Ashok,55720,9639639639,test@gmail.com",",")')
g["85752400",1]=iris.execute('return $LB("Test","9517539635","t@gmail.com")')
g["test","c1"]=iris.execute('return ##Class(MyLearn.EmbeddedPython).executeAndGetResult()') # method wil return some listbuild values
# declare values by using set function
g.set([3],'Wed')
g.set([3,1,1],'Test multilevel')
}
5.2 get global valuesFetch the global values from python directly by using the subscripts or get method.
ClassMethod GetGlobal() [ Language = python ]
{
import iris
#gets a global reference
g = iris.gref('^mybgl')
# get values
print(g[3,1,1])
print(g.get([2,1]))
print(g["95752455",1])
}
5.3 Traversal
order - Traversing the global is essential for collecting multiple level of data's from global. This embedded Python order functions similarly to the $Order command, utilizing the order function from the iris.gref. Initially, it is necessary to establish a reference to the global entity that requires traversal.
Single subscript level traversal
ClassMethod DollarOrder() [ Language = python ]
{
import iris
g = iris.gref('^MyLearn.EmbeddedPythonD') # I use my persistent class global
key = ''
while True:
key = g.order([key])
if key == None:
break
print(f'{key} {g.get([key])}')
}
Multi subscript level traversal
global
zw ^mygbl^mygbl(1)="Mon"^mygbl(2)="Tue"^mygbl(3)="Wed"^mygbl(3,1,1)="Test multilevel"^mygbl(85752400,1)=$lb("Test","9517539635","t@gmail.com")^mygbl(95752455,1)=$lb("Ashok","55720","9639639639","test@gmail.com")^mygbl("test","c1")=$lb("Test","8527538521","pylearn@gmail.com")
ClassMethod DollarOrderMultiLevel() [ Language = python ]
{
import iris
g = iris.gref('^mygbl')
key1= ''
while True:
key1 = g.order([key1])
if key1== None:
break
key2 = ''
while True:
key2 = g.order([key1,key2])
if key2 == None:
break
value = g.get([key1,key2])
print(key1,key2,value)
}
query - query function from the iris.gref similarly $query. This function is collects all the global values in to tuples. the tuple result contains the id(s) in list and values is the next tuple. You can refer the below tuple sample
tuple
ex: zw ^mybgl^mybgl(1)="Mon"^mybgl(2)="Tue"^mybgl(3)="Wed"^mybgl(3,1,1)="Test multilevel"^mybgl(95752455,1)=$lb("Ashok","55720","9639639639","test@gmail.com")
Python tuple : ( [ids], data)(['1'], 'Mon')(['2'], 'Tue')(['3'], 'Wed')(['3', '1', '1'], 'Test multilevel')(['95752455', '1'], '\x07\x01Ashok\x07\x0155720\x0c\x019639639639\x10\x01test@gmail.com')
ClassMethod DollarQuery() [ Language = python ]
{
import iris
g = iris.gref('^mygbl')
key = g.query()#this will return tuples of all the subscripts
for x in key:
print(x) # output (['3', '1', '1'], 'Test multilevel')
}
data - this data function Check whether the given subscript is exist in the global and return the $data values by using the data function
ClassMethod DollarData() [ Language = python ]
{
import iris
g = iris.gref('^mygbl')
key1= ''
print(g.data([1]))
}
6. Routines
Furthermore, it is essential to implement the class members. We must execute the routines as part of the implementation for legacy codebase systems and other related situations. Consequently, there exists a dedicated function within the iris library package that allows for the invocation of routines from embedded python through the use of the routine function.
myirispython.mac
myirispython w 123 qir1 w "running ir1" qadd(p1,p2) public{return p1+p2}sub(p1,p2) s c= p1-p2
ClassMethod RunRoutines() [ Language = python ]
{
import iris
iris.routine('^myirispython')
iris.routine('add^myirispython',1,2) # same as write $$add^myirispython(1,2)
}
Additionally, you can execute the routine by using execute function as well. iris.execute('do ^myirispython')
note: If the routine is not found >>> iris.routine('^myirispythonT')Traceback (most recent call last): File "<input>", line 1, in <module>RuntimeError: Routine not found
Will continue the other topics in the next article.
Great articles. Thanks for sharing.
Why are you using Language Tag and not "pure" python script ? It's so much convient to work with native python script than python code in cls classes. Hello @Guillaume.Rongier7183
Thanks for the feedback! I go over your pretty useful article. I just write python code inside the ObjectScript itself by using language mode because of it's small code snippets. I actually facing some issues while writing IRIS in native python script.
From my pervious community question. First I install this intersystems_irispython-3.2.0-py3-none-any.whl in python and there is no cls, execute, routine, gref, ref or other IRIS script functions available.
As you recommend from the post. I install the official driver https://github.com/intersystems-community/intersystems-irispython/releases/download/3.8.0/intersystems_iris-3.8.0-py3-none-any.whl file and I could use the IRIS functions for embedded python cls, execute, routine, gref, ref etc...
However, I got this ImportError: DLL load failed while importing pythonint: The specified module could not be found." error while executing the .py scripterror while executing my script
script is nothing but simple class method invocation.
import iris
def Execute_Classmethod():
print(iris.cls('MyLearn.EmbeddedPython').test1())
Execute_Classmethod()
anyway when I keep my native python scripts under "IRISinstalldirectory\mgr\python" and import my code as module and it's working because it's running inside the IRIS not using the python "driver"
ClassMethod CallPyscripts()
{
set ap = "mypyap"
set pyImport = ##class(%SYS.Python).Import(ap)
set builtin = $SYSTEM.Python.Builtins()
do builtin.help(pyImport)
write pyImport.irisversion,!
write pyImport."Execute_Classmethod1"()
}
#__init__.py
import iris
from .irisembdpyth2024 import *
irisversion = iris.execute('return $zv')
# irisembdpyth2024.py file
import iris
def Execute_Classmethod1():
print(iris.cls('MyLearn.EmbeddedPython').test1())
Hello Ashok, this is a great article, thanks for sharing it!
However, I would like to ask how to create an oref using a property index. For example, considering the class:
Class User.Test Extends %Persistent
{
Property Code As %String(MAXLEN = 50) [ Required ];
Index CodeIdx On CodeIdx [ Unique ];
}
In ObjectScript I can use the following syntax to open the oref using its ID:
set obj = ##class(User.Test).CodeIdxOpen(ID)
In the same way I can use the CodeIdxDelete or CodeIdxExists as well.
I was wondering how to obtain the same result in Embedded Python. Hello @Pietro.DiLeo
AFAIK, There is no direct execution of the IndexKeyOpen and other generated methods in python. We can write a wrapper method to run those methods.
Class pylearn.NewClass2 Extends %Persistent
{
Property Code As %String(MAXLEN = 50) [ Required ];
Index CodeIdx On Code [ Unique ];
ClassMethod RunCode() [ Language = python ]
{
import iris
iris_obj = iris.cls(__name__).GeObjByIdx("CodeIdx","A212")
print(iris_obj.Code)
}
ClassMethod GeObjByIdx(IndexName, ID)
{
Return $ClassMethod(,IndexName_"Open",ID)
}
} Thanks for the clarification Ashok! I solved in a similar way. It would be good in a future version to have the possibility of executing generated methods too.
Announcement
Danusa Calixto · Oct 14, 2024
Hello, Community!
It's time for the next InterSystems Developer Community contest!
✍️ InterSystems IRIS Technical Tutorial Contest ✍️
Create a Technical Tutorial** that can be considered a guide for InterSystems IRIS programmers of any level: beginner/intermediate/senior, from October 14th to November 24th. The tutorial can be in the form of an Article with text and images and/or a Demonstration Video.
Enjoy and let your creativity flow! Show how easy and fun it can be to create solutions with InterSystems IRIS.
🎁 Prizes for everyone: A special prize for each author participating in the competition!
Prizes
1. Everyone is a winner in the Tech Article Contest! Any member who writes an article during the competition period will receive a special prize:
🎁 InterSystems - Developer Community Thermos Bottle (300 ml)
2. Expert Awards – articles will be judged by InterSystems experts:
🥇 1st place: iPad Air de 11” Wi-Fi 128 GB
🥈 2nd place: Air Pods Pro 2nd gen
🥉 3rd place: Echo Show: Smart Display Full HD 15,6’’ com Alexa
3. Developer Community Award – article with the most likes:
🎁 Echo Dot - Alexa Echo Dot 5th gen
Note:
The author can only be awarded once per category (in total, the author will win two prizes: one for Expert and one for the Community)
In the event of a tie, the number of votes of the experts for the tied articles will be considered a tie-breaking criterion.
Who can participate?
Any Developer Community member, except for InterSystems employees. Create an account!
Contest period
📝 October 14th to November 10th: Publication of articles.
🗳️ November 11th to November 17th: Voting time.
🏅 November 18th: Winners announcement.
Publish an article(s) throughout this period. DC members can vote for published articles with Likes – votes in the Community award.
Note: The sooner you publish the article(s), the more time you will have to collect both Expert & Community votes.
What are the requirements?
❗️ Any article written during the contest period and satisfying the requirements below will automatically* enter the competition:
The article must be a tutorial** on the InterSystems IRIS topic. It can be either for beginners, middle or senior developers.
The article must be in Portuguese (incl. inserting code, screenshots, etc.).
The article must be 100% new (it can be a continuation of an existing article not in the contest).
The article cannot be a translation of an article already published in other communities.
The article should contain only correct and reliable information about InterSystems technology.
The article has to contain the Tutorial tag.
Article size: 400 words minimum (links and code are not counted towards the word limit).
Articles on the same topic but with dissimilar examples from different authors are allowed.
* Our experts will moderate articles. Only valid content will be eligible to enter the contest.
** Tutorial “is a method of transferring knowledge and may be used as a part of a learning process. More interactive and specific than a book or a lecture, a tutorial seeks to teach by example and provide the information to complete a certain task.”https://en.wikipedia.org/wiki/Tutorial
Tutorials provide step-by-step instructions that a developer can follow to complete a specific task or set of tasks.
🎯 EXTRA BONUSES
This time, we've decided to add additional bonuses that will help you to win the prize! Please welcome:
Bonus
Nominal
Details
Topic bonus
5
If your article is on the topic from the list of proposed topics (listed below), you will receive a bonus of 5 Expert votes.
Video bonus
3
Besides publishing the article, make an explanatory video.
Discussion bonus
1
Article with the most useful discussion, as decided by InterSystems experts. Only 1 article will get this bonus.
New participant bonus
3
If you haven't participated in the previous contests, your article(s) will get 3 Expert votes.
Programming bonus
5
Besides publishing the article, Publish your related application on InterSystems Open Exchange. And don't forget to reference it in the article.
Proposed topics
Here's a list of proposed topics that will give your article extra bonuses:
✔️ Using AI/ML/GenAI✔️ Using Vector Search✔️ Using FHIR SQL Builder
Note: Articles on the same topic from different authors are allowed.
It's time to show off your writing skills! Good luck ✨ Obrigado Por Compartilhar. 🤗🤗
Question
Yuhong Snyder · Nov 1, 2024
Hello,
Is there any document regarding the embedded sourceControl in HealthShare management portal GUI?
It has Status, Settings,GitWebUI,AddtoSC,Sync,NewBranch,SwitchBranch,Import, ImportForce buttons, I am pretty new to this and I am wondering what these buttons really do behind the scene and when I need to use them.
Thank you
@Yuhong.Snyder4826 - the following should be helpful to you:
https://github.com/intersystems/git-source-control/tree/main/docs
https://community.intersystems.com/post/video-git-gitlab-shared-development-environments (also the article prior and following)
https://community.intersystems.com/post/git-source-control-launches-release-240-new-basic-mode
Also, in the future we plan to create a new #EmbeddedGit tag to make it easier to follow news and Q&A for these tools
Thank you!
Announcement
Bob Kuszewski · May 21, 2024
Here’s our Q2’2024 quarterly platforms update. If you’re new to these updates, welcome! This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap.
With that said, on to the update…
InterSystems IRIS Production Operating Systems and CPU Architectures
Red Hat Enterprise Linux
Recent Changes
Red Hat threw a lifeline to customers struggling to upgrade from RHEL 7 by announcing 4 years of Extended Life Cycle Support starting July 1, 2024.
Upcoming Changes
We expect Red Hat to release RHEL 9.4 & 8.10 any day now. Once these minor OS changes are released, we’ll begin minor OS certification for them on IRIS 2024.1.
The next major update for RHEL will be RHEL 10 which is expected in Q2 of 2025.
Further reading: RHEL Release Page
Ubuntu
Recent Changes
Support for Ubuntu 24.04 was added in IRIS 2024.1.0.267.2 on May 15, less than three weeks after Ubuntu 24.04 was released.
Now that Ubuntu 24.04 is available, IRIS 2024.1 will be the last major version that supports Ubuntu 20.04. IRIS 2024.2 will only be available for Ubuntu 22.04 and 24.04.
Further Reading: Ubuntu Releases Page
SUSE Linux
Upcoming Changes
SUSE Linux Enterprise Server 15 SP6 is expected late Q2 or early Q3. Details of what’s included are still emerging.
Previous Updates
Minor OS certification has been completed for SUSE Linux Enterprise Server 15 SP5 without problems. SP5 includes Linux Kernel 5.14.21, OpenSSL 3.0.8, and Python 3.11.
General Support from SUSE for Linux Enterprise Server 15 SP3 came to an end on 12/31/2022, but extended security support will continue until December, 2025.
Further Reading: SUSE lifecycle
Oracle Linux
Previous Updates
Oracle Linux 9.2 has completed Minor OS certification on IRIS 2023.1 without incident.
Further Reading: Oracle Linux Support Policy
Microsoft Windows
Upcoming Changes
Windows Server 2025 is expected to be released in Q4. We’re keeping an eye on it and formulating plans for support.
Windows 12 is expected even earlier with a possible GA date as early as June. We’ll start the process of supporting the new OS after it’s been released.
Further Reading: Microsoft Lifecycle
AIX
Upcoming Changes
We’re planning to only support OpenSSL 3 kits starting with IRIS 2025.1. In IRIS 2023.3 & 2024.1, we provided two separate IRIS kits – one that supports OpenSSL 1 and one that supports OpenSSL 3. Given the importance of OpenSSL 3 for overall system security, we’ve heard from many of you that you’ve already moved to OpenSSL 3. If you have concerns about this, please reach out to me directly.
Previous Updates
Minor OS Certification has been completed for AIX 7.2 TL5-06 on IRIS 2023.1.
Further Reading: AIX Lifecycle
Containers
Upcoming Changes
We are planning to change the base container image from Ubuntu 22.04 to Ubuntu 24.04 with IRIS 2024.2
We’re considering changes to the default IRIS container to, by default, have internal traffic (ECP, Mirroring, etc) on a different port from potentially externally facing traffic (ODBC, JDBC, etc). If you have needs in this area, please reach out and let me know.
Previous Updates
We have started regular updates of IRIS containers with patches to the base container image and third-party dependencies. IRIS containers that follow the new tagging scheme now have at least every-other-week updates.
Minimum Supported CPU Models
To repeat the reminder from Q1’s platforms update, we announced that InterSystems IRIS 2024.1+ has a minimum required CPU functionality standard for Intel/AMD-based systems. This allows IRIS to rely on certain CPU instruction extensions, such as AVX & BMI, that will result in significantly better performance of certain operations. For more information, please see my InterSystems IRIS Minimum Supported CPU Models developer community post.
InterSystems IRIS Development Operating Systems and CPU Architectures
MacOS
Previous Updates
Apple has released MacOS 14 with IRIS support in IRIS 2024.1
InterSystems Components
Previous Updates
InterSystems Kubernetes Operator (IKO) 3.7 has been released.
InterSystems API Manager (IAM) 3.4 has also been released.
Caché & Ensemble Production Operating Systems and CPU Architectures
Previous Updates
Cache 2018.1.9 was released on February 14.
There are only 3 more maintenance releases of Caché & Ensemble planned. See Jeff’s excellent community article for more info.
InterSystems Supported Platforms Documentation
The InterSystems Supported Platforms documentation is the definitive source information on supported technologies.
IRIS 2024.1 Supported Server Platforms
IRIS 2023.1 Supported Server Platforms
IRIS 2022.1 Supported Server Platforms
Caché & Ensemble 2018.1 Supported Server Platforms
… and that’s all folks. Again, if there’s something more that you’d like to know about, please let us know.
Article
Vadim Aniskin · Sep 25, 2024
Hi Developers!
We're sure you want your ideas from the Ideas Portal to be implemented, so here are some steps you can take to attract attention to them.
To promote your idea, you can:
1. Create a post on the Developer Community about your idea, inviting users to vote for it on the Ideas Portal. For example, @Heloisa.Paiva wrote an article "About the idea of Using Python Class Definition Syntax to create IRIS classes" mentioning "use Python Class Definition Syntax to create IRIS classes" by @Sylvain.Guilbaud.
2. Request the creation of a poll on the Ideas Portal dedicated to the implementation of the idea. @Guillaume.Rongier7183 requested such a poll about his idea idea "Dark version of InterSystems Community".
To request a poll, write a direct message to @Vadim.Aniskin.
3. Respond to comments about your idea on the Ideas Portal and on the Developer Community.
These three steps will attract attention to your idea and increase the odds of its implementation.
Good luck and keep your ideas coming!
Announcement
Olga Zavrazhnova · Oct 3, 2024
Hi Community,
Global Masters opens the doors!Logging in using InterSystems SSOAccess the platform using >> [this link] << and log in with your InterSystems SSO.Please note: during recent tests, we discovered that some users are encountering errors when trying to log in this way. We’re currently investigating the issue with the vendor. If you experience this error, just ping me via DM, and I will send you a manual invitation!BETA Disclaimer
Please note that this is still a BETA version, and we’re actively working behind the scenes to improve many aspects of the program. If you encounter any issues with access, your profile, or spot any errors, feel free to send me a direct message. Awesome! Welcome back Global Masters and looks pretty good! What great news!!! I can access it here, but apparently the link is broken. It only stays on the challenges page. I am very excited about this too! I checked the link and it is the correct one. If any troubles with logging in pls let me know! Dear Global Masters,
Your GM Magician (me) will be out of the office tomorrow, Friday, October 4th.I’ll respond to all requests on Monday—thank you for your patience! So excited! Welcome back :) I just want to congratulate @Olga.Zavrazhnova2637 and the InterSystems team on the new Global Masters!We missed it for a while, but the wait was totally worth it.The new page is amazing!It’s so beautiful, and the experience is fantastic.
Congratulations again on the incredible work Uhuu! 🎉 Very good news!Welcome back! Awesome! Congratulations to @Olga.Zavrazhnova2637 and the IS team on the new release of Global Masters!The new design looks fantastic. Thank you, Muhammad! So great to have all the Global Masters back! I am not sure why this site is blocked in my org - Optum/UHG.
This page is blocked due to United Health Group policy.
Access to the web site intersystems.customershome.com has been blocked because it considered Uncategorized or a Parked Domain and are not allowed based on UnitedHealth Group's access policies. you will need to discuss with your IT administrators and get it categorized appropriately within your organization
Announcement
Anastasia Dyubaylo · Dec 23, 2024
Hi Community,
It's time to announce the winners of the "Bringing Ideas to Reality" Contest!
Thanks to all our amazing participants who submitted 13 applications 🔥
Now it's time to announce the winners!
Experts Nomination
🥇 1st place and $5,000 go to the vault-link app by @Henrique, @henry, @José.Pereira
🥈 2nd and 3rd place and $2,250 each go to the IRIS Global VSCode Editor app by @Yuri.Gomes and tz - ObjectScript Time Zone Conversion Library app by @Eric.Fortenberry
🏅 4th place and $750 go to the docs-intersystems app by @Dmitry.Maslennikov
🏅 5th place and $500 go to the iris-unit-test-dashboard app by @Chi.Nguyen-Rettig
🌟 $100 go to the iris-HL7v2Gen app by @Muhammad.Waseem
🌟 $100 go to the iris-http-calls app by @Oliver.Wilms
🌟 $100 go to the SharePoint Online SPO REST API app by @Mark.OReilly
🌟 $100 go to the Doxygenerate app by @John.Murray
🌟 $100 go to the ks-fhir-gen app by @Robert.Barbiaux
Community Nomination
🥇 1st place and $1,000 go to the Database-Size-Monitoring app by @sara.aplin
🥈 2nd place and $750 go to the ServiceInspection app by @Wolis.Oliavr
🥉 3rd place and $500 go to the IRIS Global VSCode Editor app by @Yuri.Gomes
🏅 4th place and $300 go to the vault-link app by @Henrique, @henry, @José.Pereira
🏅 5th place and $200 go to the iris-unit-test-dashboard app by @Chi.Nguyen-Rettig
Our sincerest congratulations to all the participants and winners!
Join the fun next time ;) Congratulations to the winners and thank you to everyone who participated! It is great to see such creative solutions being made available in the Open Exchange:-) Thanks community Thank you! Congrats to all 😀 Congratulations! Well done everyone! Congrats to everyone! So many great entries!
Announcement
Bob Kuszewski · Nov 22, 2024
On 4 December 2024, System Alerting and Monitoring (SAM) will be removed from the InterSystems download sites, the container registry, and documentation site.
InterSystems announced last year that it has ceased further development of SAM and simultaneously labelled it as deprecated. InterSystems will continue to support existing customers using the technology in the same manner as product versions beyond the Minimum Supported Version window.
Intersystems has found that most customers who are interested in the type of observability provided by SAM have chosen to connect the InterSystems IRIS metrics API and structured logging to their organization’s existing observability platform to have a more complete view of their operational platform.
If you have questions about your current or planned use of SAM, please reach out to your account team or dbpprodmgrs@intersystems.com.
Announcement
Derek Robinson · Nov 28, 2024
Hi, Community!
Are you using InterSystems Cloud Services? Take a tour of the central hub for managing your services and deployments:
InterSystems Cloud Services Portal Overview
In this video, you will see how to:
Perform tasks such as account registration.
Monitor billing and security settings.
Announcement
Andreas Dieckow · Mar 26, 2024
InterSystems introduced this feature many years ago and a time when using Public Key Infrastructure was not yet widely used. Creating materials for use with Public Key Infrastructure is now widely available, and InterSystems is observing a decline in using the InterSystems PKI. In addition, investments would be required to securely use it. The IRIS PKI documentation stated for years:
The InterSystems PKI is for testing purposes only. Do not use it in a production setting.
As of today March 26, 2024, the InterSystems PKI is now deprecated.
The product documentation has been updated and now states:
Implementation of InterSystems PKI is deprecated. It may be removed from future versions of InterSystems products. The following documentation is provided as reference for existing users only. InterSystems urges users to discontinue use of the PKI features.