Clear filter
Announcement
Anastasia Dyubaylo · Mar 8, 2023
Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ InterSystems Deployment Options @ Global Summit 2022
Choosing the right deployment environment for your application built with InterSystems technologies means making informed decisions on a range of topics:
Container, virtual machine, or bare metal?
On-premise, hosted, private cloud, or public cloud?
Linux or Windows Horizontal scaling, vertical scaling, or both?
Platform high availability or synchronous mirroring?
Disaster recovery required or not.
In this this session, you'll hear real-world feedback about current best practices, the thinking behind it, and how InterSystems can help you make deployment decisions that mean your system will be effective, scalable, and resilient.
🗣 Presenter: @RayWright, Principal Technology Architect, InterSystems
Enjoy it and stay tuned! 👍
Announcement
Anastasia Dyubaylo · May 29, 2023
Hey Developers,
Watch this video to learn about observability of your InterSystems IRIS application with InterSystems System Alerting and Monitoring (SAM) and modern DevOps tooling:
⏯ Observability with InterSystems IRIS @ Global Summit 2022
🗣 Presenter: @Robert.Kuszewski, Product Manager, Developer Experience, InterSystems
Subscribe to InterSystems Developers YouTube to stay tuned!
Announcement
Vadim Aniskin · May 10, 2023
Hey Community!
Welcome to the 6th edition of the InterSystems Ideas news bulletin! This time you can read about:
✓ Ideas implemented last month by Community members
✓ How to create a new idea on InterSystems Ideas
✓ New ideas created recently
The Hall of Fame was updated with the names of Community Members who implemented Community Opportunity ideas:
Add IRIS as a supported database for Apache Superset by @Herman.Slagman7521 was implemented by @Dmitry.Maslennikov
Please add google oauth authorization to login to the management portal by @Aleksandr.Kolesov was implemented by @Yuri.Gomes
👏Thank you for implementing these ideas👏
The new article "How to create a new idea on InterSystems Ideas" describes the idea creation process step by step. Read it when adding new idea to the portal.
And to round up this newsletter, here is the list of new ideas posted since the previous news bulletin
1. Dump SQL tables by @Evgeny.Shvarov 2. Java Hibernate support for IRIS by @Dmitry.Maslennikov 3. Add legitimate special symbol-separator for ObjectScript variable names by @Evgeny.Shvarov 4. allow cancel "Pending approval" by @Robert.Cemper1003 5. provide a switch to Hide/Unhide posts. or fix Re-Publish by @Robert.Cemper1003 6. Traceroutes to Java Gateway Display by @Scott.Roth 7. On Developer Community put animated GIFs behind a play/pause button by @John.Murray 8. Community in numbers on a GEO Dashboard by @Yuri.Gomes 9. Unit testing in VSCode by @Robert.Barbiaux 10. Saving Searched Criteria within Message Search by @Scott.Roth 11. Featured Article or Question by @Yuri.Gomes
👏Thank you for posting new ideas👏
Stay tuned for the next InterSystems Ideas news bulletin!
In the meantime post new ideas for public discussion, vote for existing ideas, and comment on them on our InterSystems Ideas Portal! Hi Developers! 👋The idea "IRIS classes for OpenAI API" was implemented recently. @Francisco.López1549 thank you for implementing this idea and welcome to "Hall of Fame" page of Ideas Portal! 👏
Announcement
Anastasia Dyubaylo · Oct 10, 2024
Hey Community,
We’re excited to introduce a whole new way for you to showcase your creativity and skills! This time, we’re inviting you to participate in our first-ever video challenge:
📹 InterSystems Tech Video Challenge 📹
Submit a video on any topic related to InterSystems IRIS products or services from October 21 - November 10, 2024.
🎁 Gifts for everyone + main prizes!
🔍 What’s the challenge?Create a short video (up to 15 minutes) demonstrating a unique use of InterSystems technology. Whether it’s an innovative solution, a creative project, or a cool use case, we want to see it all!
📢 How to Enter:To participate, you have to fill out the form where you will be required to upload your video. After we upload it to Developer Community YouTube we will post the link in the comments to this post for you to use everywhere.
Who can participate: Any Developer Community member, except for InterSystems employees (contractors are welcome to participate). Create an account!
General Requirements:
The video must focus on InterSystems products or services and be technical in nature.
All content must be in English (incl. code, screenshots, etc.).
Videos must be 100% original and cannot be translations of any previously submitted videos for contests in any community.
All information presented must be accurate and reliable.
Videos should be less than 15 minutes long.
Different authors can submit videos on the same topic with distinct examples.
NB. Our panel of experts will make the final decision on whether a video qualifies for the contest based on criteria such as quality and relevance. Their decision is final and cannot be appealed.
Contest Timeline
📝 October 21 - November 10: create a video and fill out the form throughout this period. DC members can vote for published videos with Likes – votes in the Community award.
📝 November 11-17: experts voting time
📝 November 18: winners' announcement
Prizes
1. Everyone Wins! All participants will receive a special gift:
🎁 Nike Golf Dri-FIT Swoosh Perforated Cap
2. Expert Awards – videos will be judged by the InterSystems experts:
🥇 1st place: 10.9-inch iPad Wi‑Fi 64GB / Sony WH-1000XM5 Wireless Headphones
🥈 2nd place: Moleskine Vertical Device bag - 15" //LEGO NASA Artemis Space Launch System
🥉 3rd place: AirPods 4 with Active Noise Cancellation / LEGO Hogwarts™ Castle: The Great Hall
As an alternative, any winner can choose a prize from a lower prize tier than his own.
3. Developer Community Award – video with the most likes. The winner will have the option to choose one of the following prizes:
🎁 AirPods 4 with Active Noise Cancellation / LEGO Hogwarts™ Castle: The Great Hall
Note: Authors can only win once per category (up to two total prizes: one from Expert and one from Community). In case of a tie, the number of expert votes will serve as the tie-breaking criterion.
Note: Each winning video will be awarded a single prize, regardless of the number of authors.
🎯 Extra bonuses
Here is the list of additional bonuses to help you win the prize! Please welcome:
Bonus
Nominal
Details
Topic bonus
3
Choose a topic from the list of the proposed topics below to get this bonus.
Article bonus
3
Write a brand new explanatory article to support your video and use the tag #Video in it.
Application bonus
5
Upload a new application (or an improved version of an existing one) from your video to Open Exchange.
Translation bonus
2
Translate your video into one of the languages of our regional communities (ES, PT, JP, CN, FR) and upload it using the same form; mention in the description that it is a translation, and provide a YouTube link to the original.
YouTube Shorts bonus
2
Create a YouTube Short for your video (vertical video, up to 60 seconds).
LinkedIn bonus
1
Share the video on your LinkedIn, mentioning that you’re participating in the InterSystems Tech Video Challenge, and tagging the Developer Community LinkedIn page.
Proposed topics
Here's a list of proposed topics that will give your article extra bonuses:
✔️ Using AI / GenAI / RAG✔️ Using Embedded Python in Interoperability✔️ Using External Language Gateways (C#, Java, Python)✔️ Using Data Fabric / Data Lake / Data Warehouse / Data Mesh✔️ Using FHIR✔️ Using REST✔️ IKO common deployments
---
Get ready to shine and inspire others with your tech skills! We can't wait to see what you come up with. ✨
Note 1: By participating in the contest, you agree to have your video uploaded to the Developer Community YouTube.
Note 2: Delivery of prizes varies by country and may not be possible for some of them. A list of countries with restrictions can be requested from @Liubka Zelenskaia
Wow! Something new and very exciting! Can we use a project we have submitted for a different developer contest if we make a completely new video about it and the project has been updated since the contest? Yes, you can 😊 Hi Devs,The "Tech Video Challenge" has begun!We can't wait to see all the amazing entries. 🤩 Wow!The first video appeared. 🤩
Using Character Slice Index in InterSystems IRIS by @Robert.Cemper1003
Who's next?) Hello! I am currently attempting to submit my video, but every time I fill out the form it tells me something went wrong. Hello, please check direct messages. Hi,
Where are we supposed to upload the YouTube Short and Article? Since the form has a field only for the video. Hello, you need to publish an article on the Developer Community and use the tag #Video. To upload a short, please send it using the same form but add in the description that it's a short and name the video. Thanks and good luck! Thanks for your reply. What if we need to submit a long video and a short as well? Do we need to submit another form with the short? Yes, submit the form twice Was the 10th also the deadline for the shorts and the articles? Is there a particular @ or # you would like us to use when tagging the developer community on LinkedIn? You can collect bonuses until the end of the voting period (November 17). Please tag @InterSystems Developer Community; no specific tags are required. Thanks!
Announcement
Anastasia Dyubaylo · Oct 21, 2024
Hello Community!
We are pleased to invite all our clients, partners and members of the community to take cart in the InterSystems DACH Symposium 2024. The registration is already open!
For all those who were unable to travel to the Global Summit in the USA this year, there is once again the opportunity to get all the important information at our InterSystems DACH Symposium in November.
➡️ InterSystems DACH Symposium 2024
🗓 November 5 - 7, 2024
📍 Scandic Frankfurt Museumsufer | Wilhelm-Leuschner-Straße 44 | 60329 Frankfurt am Main
The event kicks off with a welcome session followed by keynotes addressing critical trends in data platforms and AI. Attendees will explore the latest innovations in healthcare, finance, and logistics, with industry experts sharing success stories and practical applications of InterSystems IRIS and related technologies. The day includes breakout sessions focusing on AI, cloud strategies, interoperability, and real-world case studies, concluding with a networking event, giving participants a chance to engage and share insights with peers.
We would be delighted to have your presence to enrich this event with your experience and expertise. Save the Date and register today using our registration form.
Check out the full agenda of the event here.
We look forward to seeing you at InterSystems DACH Symposium 2024! Looking forward to it!
Article
Daniel Cole · Feb 14
InterSystems has been at the forefront of database technology since its inception, pioneering innovations that consistently outperform competitors like Oracle, IBM, and Microsoft. By focusing on an efficient kernel design and embracing a no-compromise approach to data performance, InterSystems has carved out a niche in mission-critical applications, ensuring reliability, speed, and scalability.
A History of Technical Excellence
During its earlier years, InterSystems distinguished itself through its groundbreaking database architecture, which addressed inefficiencies in legacy relational database systems. While competitors like Oracle relied on rigid relational designs, InterSystems introduced a multi-model database powered by its proprietary kernel. This innovation allowed data to be handled as tables, objects, multidimensional arrays, or key-value pairs—all within a unified database engine. The result was a significant performance improvement for transactional workloads compared to conventional databases. These capabilities laid the foundation for InterSystems' dominance in industries such as healthcare and finance, where systems must handle vast amounts of data without compromising speed or accuracy.
Staying Competitive Against Industry Giants
Despite competition from publicly traded companies with vast resources, such as AWS and Microsoft, InterSystems remains a trusted provider for mission-critical applications. This enduring trust stems from its technical superiority and a laser-focused commitment to its customers.
A Kernel Built for Reliability and Low Latency At the core of InterSystems IRIS is its kernel, a high-performance engine designed to maximize speed, reliability, and scalability. Unlike competitors who rely on external layers or middleware for performance scaling, the IRIS kernel integrates key features like data indexing, journaling, and caching natively, ensuring low-latency performance under extreme workloads.
Journaling and Crash Recovery: Advanced journaling techniques in the IRIS kernel minimize recovery times, enabling systems to restore to a consistent state within seconds, even in catastrophic scenarios. Competing solutions often suffer from slower recovery times, which can result in costly downtime.
Scalability with ECP and Sharding: InterSystems IRIS outperforms its rivals by enabling horizontal scalability with Enterprise Cache Protocol (ECP) and data sharding. This allows organizations like Epic Systems, a healthcare software giant, to manage millions of daily healthcare transactions reliably.
Trusted for Mission-Critical Applications Industries like healthcare and finance, where failure is not an option, continue to rely on InterSystems. For example, the U.S. Department of Veterans Affairs and Credit Suisse trust IRIS to deliver consistent, high-performance data handling. This trust is underpinned by InterSystems’ ability to process millions of transactions per second with deterministic latency, far outperforming AWS’s Aurora in transaction-heavy use cases.
Customer-Centric Innovation Unlike publicly traded competitors, InterSystems reinvests heavily in research and development instead of focusing on shareholder returns. This focus has driven innovations like IntegratedML, which embeds machine learning directly into the database, and Multi-Model Data Access, which eliminates the need for costly ETL pipelines.
Positioned for the Age of AI
As artificial intelligence reshapes industries, the demand for high-performance, scalable data systems has reached unprecedented levels. InterSystems IRIS, with its optimized kernel and inherent scalability, is uniquely positioned to meet these demands.
Speed and Low-Latency Performance In AI applications, where milliseconds matter, InterSystems IRIS excels by leveraging in-memory processing and intelligent indexing to minimize latency. Benchmarks reveal that InterSystems IRIS was between 2.7 and 3.1 times more efficient than AWS Aurora MySQL and the efficiency advantage grew larger as the number of nodes in the cluster increased. .
Effortless Scalability for Compute-Intensive Workloads InterSystems IRIS supports vertical scaling for high-core systems and horizontal scaling through sharding and ECP. This architecture allowed Mass General Brigham to scale its healthcare data platform, enabling seamless integration of over 100 million patient records across its network of hospitals and clinics. By leveraging InterSystems IRIS, Mass General Brigham achieved rapid query performance and real-time insights, critical for clinical decision support and population health analytics.
Co-Located Data for AI and Analytics By integrating operational and analytical workloads within the same environment, InterSystems eliminates the need for ETL processes that introduce latency and complexity. This capability allows AI models to access live datasets instantly, accelerating workflows in industries like supply chain and manufacturing.
AI-Ready Integration InterSystems IRIS integrates seamlessly with Python, IntegratedML, and popular AI frameworks like TensorFlow and PyTorch. These integrations enable organizations to deploy AI models directly within the database environment, reducing overhead and latency compared to traditional approaches that require moving data to external systems.
Hard Numbers That Matter
Performance Benchmarks: Test results demonstrate a large advantage in performance for InterSystems IRIS when compared to AWS Aurora MySQL, MariaDB, Microsoft SQL Server, Oracle and PostgreSQL. The insert rate for InterSystems IRIS was between 1.7 times and 9 times faster than for the other systems. The data query rate for InterSystems IRIS was between 1.1 times and 600 times faster than for the other systems.
Scalability: The IRIS kernel supports the ingestion of millions of transactions per second, making it ideal for global enterprises.
Real-World Impact: Over 1 billion health records globally are managed using InterSystems technology, demonstrating unmatched scalability and reliability.
Conclusion
InterSystems’ unique kernel design and multi-decade commitment to innovation have cemented its place as a leader in mission-critical systems. Whether handling healthcare transactions for Epic, powering financial systems for Harris Associates, or enabling real-time AI applications, InterSystems IRIS consistently delivers unmatched speed, reliability, and scalability. As industries embrace the computational demands of AI, InterSystems remains the trusted partner for organizations that cannot afford to compromise.
Daniel,
Excellent article both from a historical and current perspective!
Rich Very interesting insights. Thank you great reminder for why I've loved this technology and company for the past 22 years :) In a historical context:- the Kernel is essentially MUMPS- ECP (DCP), the Cache Object model (NextGen) and the concept of Namespaces, Databases and Mappings came originally from DataTree'Beating' Oracle/ SQLServer et al, is piece of cake for IRIS.What I am more worried about is 'new' technologies such as "Eventual Consistent" synchronization on large clusters.I think IRIS could do more on clustering techniques.
Announcement
Anastasia Dyubaylo · Jan 13
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ InterSystems Package Manager @ Global Summit 2024
InterSystems Package Manager (IPM) is a tool to deploy the packages and solutions into InterSystems IRIS with dependencies. Learn about why you should use it, how to use it, and recent updates for software supply chain security.
Presenters: 🗣 @Timothy.Leavitt, Development Manager, Application Services, InterSystems🗣 @Robert.Kuszewski, Product Manager, Developer Experience, InterSystems
Dive in and enjoy the video—we hope you find it insightful! 👍
Announcement
Vadim Aniskin · Jan 15
Hi Developers!
Welcome to Issue #18 of the InterSystems Ideas newsletter! This edition highlights the latest implemented ideas:
✓ Ideas brought to life during the "Bringing Ideas to Reality" programming contest✓ Ideas implemented by InterSystems in Q4 2024✓ New article featuring an idea realized by the talented Musketeers team
During the programming contest "Bringing Ideas to Reality" Developer Community members implemented 14 ideas
Number
Idea title
Author
Solution name
Developer
1
secrets management
@sween
vault-link
@Henrique, @henry, @José.Pereira
2
Globals Editor
@Evgeny.Shvarov
IRIS Global VSCode Editor
@Yuri.Gomes
3
Time zone conversion
@Veerarajan.Karunanithi9493
tz - ObjectScript Time Zone Conversion Library
@Eric.Fortenberry
4
Class reference generator
@Dmitry.Maslennikov
Doxygenerate
@John.Murray
docs-intersystems
@Dmitry.Maslennikov
5
testing dashboard for InterSystems IRIS
din ba
iris-unit-test-dashboard
@Chi.Nguyen-Rettig
6
HL7 test message generator
@Vadim.Aniskin
iris-HL7v2Gen
@Muhammad.Waseem
ks-fhir-gen
@Robert.Barbiaux
7
Add Inbound Interoperability adapter for HTTP Calls
@Evgeny.Shvarov
iris-http-calls
@Oliver.Wilms
8
SharePoint File Service and Operation
@Ties.Voskamp
SharePoint Online SPO REST API
@Mark.OReilly
9
Automatic setting alerting rapid db size in messages log
@Mark.OReilly
Database-Size-Monitoring
@sara.aplin
10
Advanced Interface Monitoring and Alerting
@Daniel.Metcalfe
ServiceInspection
@Wolis.Oliavr
11
Category dropdown to appear in alphabetical order (ignoring case)production config page
@Mark.OReilly
IRIS WHIZ - HL7v2 Browser Extension
@Rob.Ellis7733
12
Add Search and Sort Functions to the Queue Panel of the Production Settings side bar
@Pietro.DiLeo
13
Export Search Results from Message Search
@Scott.Roth
14
Refresh Button on the small messge browse in the Production panel
@Stefan.Cronje1399
👏 Many thanks to the implementors and authors of these ideas👏
In Q4 of 2024 InterSystems implemented 8 ideas
Number
Idea
Implementation of the idea (project)
1
Date format in LOAD DATA to indicate a date/datetime format other than 'yyyy-mm-dd hh:mm:ss' by @Sylvain.Guilbaud
starting from InterSystems IRIS 2024.2
2
Make Interface Maps more OnDemand by @Scott.Roth
3
Feed the InterSystems Developer Community AI with the documentation by @Heloisa.Paiva
Developer Community AI
4
Promote video contest by @Yuri.Gomes
InterSystems Tech Video Challenge
5
Prioritize search matches by title in documentation by @LuisAngel.PérezRamos
part of a major Algolia project
6
Change the style of the tables in the official documentation by @Heloisa.Paiva
new style sheets were implemented in May 2024
7
Add an AI chatbot to the developers community by @Stella.Tickler
Developer Community AI
8
allow editing of OEX reviews for OWNERs by @Robert.Cemper1003
👏 Thanks to all the InterSystems developers who contributed to making these ideas a reality. 👏
To wrap up this bulletin, check out an article, Implemented ideas: Add a project that helps to generate unittests for an ObjectScript class, showcasing the solution developed by the talented Musketeers team (@Henrique, @henry, @José.Pereira). Thank you to the team for turning this idea into reality and sharing their insights in the article!
✨ Share your ideas, support your favorites with comments and votes, and bring to life the ones you believe matter most to the Developer Community! 🙏

Article
Ashok Kumar T · Sep 12, 2024
Hello Community,
In this article, I will outline and illustrate the process of implementing ObjectScript within embedded Python. This discussion will also reference other articles related to embedded Python, as well as address questions that have been beneficial to my learning journey.
As you may know, the integration of Python features within IRIS has been possible for quite some time. This article will focus on how to seamlessly incorporate ObjectScript with embedded Python.
Essentially, embedded Python serves as an extension that allows for independent writing and execution. It enables the seamless integration of Python code with ObjectScript and vice versa, allowing both to run within the same context. This functionality significantly enhances the capabilities of your implementation.
To begin, you must specify the language for your Python code within the class definition by using the "language" keyword [language = "python"]. Once this is done, you are prepared to write your Python code.
import iris - The iris package is a vital Python library that facilitates communication with InterSystems' native API classes, routines, globals, and SQL. This package is readily available by default. Anyway It is necessary to import this package at the beginning of your python code if you're going to interact with IRIS.
Few important notes before writing
You can use python special variable __name__ to refer the classname inside the class definition.
Use _ for %Methods ex: %New == _New , %OpenId == _OpenId
Let's begin
Class members implementation in Embedded python
1. Objects and Properties
This section is essential as it will cover the process of initializing a new object, altering the values of existing objects, and configuring properties in both static and dynamic contexts. Create your own class definition and use the simple literal properties
1.1 initialize new Object / Modify existing object
Use _New for initiate new object and _OpenId(id) for edit the existing object
ClassMethod SaveIRISClsObject() [ Language = python ]
{
#this method calls the %OnNew callback method and get the object
import iris
try:
iris_obj = iris.cls(__name__)._New()
if not iris.cls(__name__).IsObj(iris_obj):
#IsObj is the objectscript wrapper method : which contains $Isobject()
raise ReferenceError('Object Initlize Error')
except ReferenceError as e:
print(e)
return
#set the object properties and save the values
iris_obj.Name = 'Ashok'
iris_obj.Phone = 9639639635
status = iris_obj._Save()
print(status)
return status
}
1.2 Accessing properties
Prior to commencing the property section, it is important to note that the IRIS data type differs from Python data types, and therefore, IRIS collection data types cannot be utilized directly within Python. To address this, InterSystems has offered a comprehensive solution for converting IRIS data types into Python-compatible formats such as lists, sets, and tuples. This can be achieved by importing the "builtins" module within the IRIS code base, utilizing the class methods ##class(%SYS.Python).Builtins() or by setting builtins = ##class(%SYS.Python).Import("builtins"). I'll cover this in upcoming sections.
So, I use this method to convert the $LB properties into python list for accessing the properties at runtime in python
LEARNING>Set pyList = ##class(%SYS.Python).ToList($LB("Name","Phone","City")) LEARNING>zw pyListpyList=5@%SYS.Python ; ['Name', 'Phone', 'City'] ; <OREF>
ClassMethod GetProperties() [Language = objectscript]
{
set pyList = ##class(%SYS.Python).ToList($LB("Name","Phone","City"))
do ..pyGetPropertiesAtRunTime(pyList)
}
ClassMethod pyGetPropertiesAtRunTime(properties) [ Language = python ]
{
import iris
iris_obj = iris.cls(__name__)._OpenId(1)
for prop in properties:
print(getattr(iris_obj,prop))
}
1.3 Set properties at runtime.
I utilize this python dictionary to designate my property as a key and, with the corresponding property values serving as the values within that dictionary. You may refer to the code provided below and the community post regarding this property set.
ClassMethod SetProperties()
{
Set pyDict = ##class(%SYS.Python).Builtins().dict()
do pyDict.setdefault("Name1", "Ashok kumar")
do pyDict.setdefault("Phone", "9639639635")
do pyDict.setdefault("City", "Zanesville")
Set st = ..pySetPropertiesAtRunTime(pyDict)
}
ClassMethod pySetPropertiesAtRunTime(properties As %SYS.Python) [ Language = python ]
{
import iris
iris_obj = iris.cls(__name__)._New()
for prop in properties:
setattr(iris_obj, prop,properties[prop])
status = iris_obj._Save()
return status
}
1.4 Object share context
As previously stated, both Python and ObjectScript operate within the same memory context and share objects. This implies that you can create or open an object in the InCache class and subsequently set or retrieve it in the Python class.
ClassMethod ClassObjectAccess() [Language = objectscript]
{
Set obj = ..%OpenId(1)
Write obj.PropAccess(),! ; prints "Ashok kumar"
Do obj.DefineProperty("test")
Write obj.PropAccess() ; prints "test"
}
Method PropAccess() [ Language = python ]
{
return self.Name
}
Method DefineProperty(name) [ Language = python ]
{
self.Name = name
}
2. Parameters
Get the parameter arbitrary key value pair by using the _GetParameter. Refer the useful community post
ClassMethod GetParam(parameter = "MYPARAM") [ Language = python ]
{
import iris
value = iris.cls(__name__)._GetParameter(parameter)
print(value)
}
3. Class Method and Methods
3.1 Class Method
The invocation of class methods and functions is highly beneficial for executing the object script code.
Invoke the class method as a static call ex: Do ..Test()
ClassMethod InvokeStaticClassMethods(clsName = "MyLearn.EmbeddedPython") [ Language = python ]
{
import iris
print(iris.cls(clsName).Test())
# print(iris.cls(__name__).Test())
}
Invoke the Class method at runtime Set method="Test" Do $ClassMethod(class, method, args...)
ClassMethod InvokeClassMethodsRunTime(classMethod As %String = "Test") [ Language = python ]
{
import iris
clsMethodRef = getattr(iris.cls(__name__), classMethod) # will return the reference of the method
print(clsMethodRef())
}
3.2 Methods
Invoke the instance methods are same as "object script" format. In the below code I've initiate the object first and call the instance method with parameters.
ClassMethod InvokeInstanceMethodWithActualParameters() [ Language = python ]
{
import iris
obj = iris.cls(__name__)._New()
print(obj.TestMethod(1,2,4))
}
3.3 Pass arguments by value and reference b/w python and objectscript
Basically passing the arguments are inevitable between the functions and the same will remain between ObjectScript and python
3.4 Pass by value - It's as usual pass by value
ClassMethod passbyvalfromCOStoPY()
{
Set name = "test", dob= "12/2/2002", city="chennai"
Do ..pypassbyvalfromCOStoPY(name, dob, city)
}
ClassMethod pypassbyvalfromCOStoPY(name As %String, dob As %String, city As %String) [ Language = python ]
{
print(name,' ',dob,' ',city)
}
/// pass by value from python to object script
ClassMethod pypassbyvalfromPY2COS() [ Language = python ]
{
import iris
name = 'test'
dob='12/2/2002'
city='chennai'
iris.cls(__name__).passbyvalfromPY2COS(name, dob, city)
}
ClassMethod passbyvalfromPY2COS(name As %String, dob As %String, city As %String)
{
zwrite name,dob,city
}
3.5 Pass by reference- Unlike the pass by value. Since Python does not support call by reference natively, so, you need to use the iris.ref() in python code to make it the variable as a reference. refer the reference. To the best of my knowledge, there are no effects on the object script side regarding pass-by-reference variables, even when these variables are modified in Python. Consequently, Python variables will be affected by this pass-by-reference mechanism when the methods of the object script are invoked
ClassMethod pypassbyReffromPY2COS() [ Language = python ]
{
import iris
name='python'
dob=iris.ref('01/01/1991')
city = iris.ref('chennai')
print('before COS ',name,' ',dob.value,' ',city.value)
#pass by reference of dob, city
iris.cls('MyLearn.EmbeddedPythonUtils').passbyReffromPY2COS(name, dob, city)
print('after COS ',name,' ',dob.value,' ',city.value)
}
ClassMethod passbyReffromPY2COS(name, ByRef dob, ByRef city)
{
Set name="object script", dob="12/12/2012", city="miami"
}
// output
LEARNING>do ##class(MyLearn.EmbeddedPythonUtils).pypassbyReffromPY2COS()
before COS python 01/01/1991 chennai
after COS python 12/12/2012 miami
3.5 **kwargs- There is an additional support for passing the python keyword arguments (**kwargs) from object script. Since InterSystems IRIS does not have the concept of keyword arguments, you have to create a %DynamicObject to hold the keyword/value pairs and pass the values as syntax Args...
I have created the dynamicObject { "name": "ashok", "city": "chennai"}and set the required key-value pairs in it and eventually pass to the python code.
ClassMethod KWArgs()
{
set kwargs={ "name": "ashok", "city": "chennai"}
do ..pyKWArgs(kwargs...)
}
ClassMethod pyKWArgs(name, city, dob = "") [ Language = python ]
{
print(name, city, dob)
}
// output
LEARNING>do ##class(MyLearn.EmbeddedPythonUtils).KWArgs()
ashok chennai
I will cover the global, routines and SQL in next article
Thanks! A great summary!
Announcement
Vadim Aniskin · Oct 23, 2024
Hi Developers!
Welcome to the 16th edition of the InterSystems Ideas news! Here's what you can expect from it:
✓ Ideas implemented in Q3 2024
✓ Select an idea to implement from "Community Opportunity" ideas
✓ Vote and comment on new ideas submitted in Q3 2024
We are starting this newsletter with the list of ideas implemented in Q3 2024.
Idea
Implementation of the idea (project)
Developer
Developer Community AI Chatbot by @Anastasia.Dyubaylo
Developer Community AI is here!
InterSystems
Record startup and shutdown user id by @Colin.Richardson
starting from InterSystems IRIS 2024.2
InterSystems
InterSystems IRIS for Carbon tracking by @Heloisa.Paiva
Carbon Footprint Counter
@Yuri.Gomes
Sentient - Use the correct email address by @Alex.Woodhead
iris-email-analyzer-app
@Eric.Mariasis
Dynamic creation of REST Response by @Scott.Roth
IOP REST Client Framework
@Antoine.Dh
IPM (ZPM) extension for VS Code by @John.Murray
IPM in VS Code
@John.Murray
👏 Thanks to all the InterSystems developers and Developer Community members who contributed to making these ideas a reality. 👏
Most popular "Community Opportunity" ideas are waiting to be implemented.
Idea
Author
Votes
Comments
Code snippets library
@Danny.Wijnschenk
35
14
Edit books : InterSystems IRIS for Dummies
@Sylvain.Guilbaud
13
1
IRIS and ZPM(Open Exchange) integration
@Elena.E6756
13
4
Add support for Markdown in class documentation
@Stefan.Cronje1399
12
2
SharePoint File Service and Operation
@Ties.Voskamp
12
0
Create front-end package based on CSS and JS to be used in NodeJS and Angular projects
@LuisAngel.PérezRamos
9
4
Globals Editor
@Evgeny.Shvarov
8
0
Select an idea you like from "Community Opportunity" ideas and implement it to get into the Ideas Portal Hall of Fame!
To round up this newsletter, please find new ideas with "Needs review" status. InterSystems experts regularly triage and analyze new ideas. Vote for ideas you like and comment on them to show your interest.
Idea
Author
OAuth settings option for HS.FHIRServer.Interop.HTTPOperation
@Scott.Roth
Update $ZV to include Health Connect info
@Scott.Roth
Create DTL on the fly from within a Business Process
@Scott.Roth
Exporting OAuth Server/Client Configs using ^SECURITY or another method
@Scott.Roth
Improve Typeahed on Macros in include files
@Stefan.Cronje1399
CSV Wizard - Record Mapper
@Scott.Roth
Audience missing from OAUth 2.0 config
@Mark.OReilly
Category dropdown to appear in alphabetical order (ignoring case)production config page
@Mark.OReilly
Add Search and Sort Functions to the Queue Panel of the Production Settings side bar
@Pietro.DiLeo
Improve selectivity of Articles and Questions in DC
@Robert.Cemper1003
Large XML Timing out on portal message viewer- show more button or more truncated for display- EnsLib.SQL.Snapshot
@Mark.OReilly
Add Search to Banner
@Lewis.Houlden
👏 Thank you for posting these ideas. Special thanks to @Scott.Roth for posting a lot of ideas last quarter! 👏
Stay tuned to read our next announcements!
In the meantime, post your brilliant ideas, vote for existing ideas, and comment on them on our InterSystems Ideas Portal!
Discussion
Fabio Silva · Nov 6, 2024
Does anyone know any InterSystems partners in Canada? A colleague with experience in IRIS asked me about this. we hv a partner who runs biz in both CN and CA. Pls send me email on details. Thx!
Announcement
Preston Brown · Apr 11, 2024
As a InterSystems HealthShare Developer, you will be a part of an Agile team to build healthcare applications and implement new features while adhering to the best coding development standards.
Your key responsibilities include:
Design and implement data integrations using InterSystems HealthShare/IRIS between HIE partners and internal On-prem/Cloud systems
Debug and fix defects in InterSystems HealthShare/IRIS related to HIE connected Healthcare participants
Develop XSLTs and DTLs to transform CCDA/FHIR/HL7 messages to and from Summary Document Architecture (SDA) format
Ensure systems development and support, and create design and technical specifications from business requirement specifications
Oversee best practices design and development, participate in code reviews, and collaborate with fellow developers and Technical Leads
Required Skills
Must have strong software development experience
Should have experience in InterSystems HealthShare UCR, IRIS database, ObjectScript, and XSLT Development
Must have experience in Integration protocols such as TCPIP/MLLP, SFTP, REST, SOAP
Must be able to create DTL mappings from SDA and workflows to process documents
Should have proficiency in CCDA, HL7, JSON and XML messaging
If Interested reach out to Preston Brown @ pbrown@cybercodemasters.com.
Please provide your updated resume/Full Name/Contact phone number and your expected salary.
1099 rate is $60 - $70/hour.
This position will be for 2+ years.
Announcement
Vadim Aniskin · May 29, 2024
Hi Developers!
Welcome to Issue #13 of the InterSystems Ideas news! We dedicate this news bulletin to recently posted ideas:
✓ Most popular new ideas
✓ Recently posted ideas marked for implementation by Community members
✓ New ideas related to topics like Vector Search, GenAI and ML
More than 50 new ideas have been posted since the last news bulletin. We have selected and focused on the 3 most interesting groups to avoid overloading you with information. You can find all new ideas on the Ideas Portal if you're curious.
The first group consists of the most popular new ideas based on the number of votes.
Idea
Author
Votes
Edit books : InterSystems IRIS for Dummies
@Sylvain.Guilbaud
12
Add support for Markdown in class documentation
@Stefan.Cronje1399
10
Implement or incorporate a mocking framework to complement %UnitTest class
@Chi.Nguyen-Rettig
8
See globals size in Management Portal.
@Sylvain.Guilbaud
8
Add browser based terminal to Management Portal
@Bobby.Hanna
7
translated subtitles for learning videos
@Pierre.LaFay2520
6
The second group of ideas includes recently posted ideas that have "Community Opportunity" status, which means that they can be implemented by Developer Community members. You can implement them to join the Ideas portal Hall of Fame.
Idea
Author
Integration with LLMs like GPT,llama
din ba
Implement a summary of a patient's medical history using AI
@Francisco.López1549
A tool to init projects
@Dorian.Tetu
introduce microsoft one-drive inbound and outdbound adapters for Interoperability
@Evgeny.Shvarov
Add support for Markdown in class documentation
@Stefan.Cronje1399
Load Datasets from Hugging Face into IRIS
@Evgeny.Shvarov
IRIS Based Analytics AKS Container to analyse Azure Infrastructure Cost
@Bachhar.Tirthankar
Edit books : InterSystems IRIS for Dummies
@Sylvain.Guilbaud
Finally, here are the ideas that were submitted as a part of the Vector Search, GenAI and ML programming contest.
Idea
Author
Expand Vector Arithmetics
@Robert.Cemper1003
Vector search support for llama-index with metadata
@Somesh.Mehra
GUI for Vector DB Management
@Ikram.Shah3431
specify libraries for vectorization or data preprocessing for IntegratedML
@davimassaru.teixeiramuta
Multidimensional vector search
@xuanyou.du
Exploring Image Vectorization: Potential Revolution in Unstructured Data Processing.
@Lucas.Fernandes7309
👏 Many thanks to the authors of all ideas👏
✨Create your ideas, support ideas you like by comments and votes! Don't forget to advertise your ideas to Developer Community members. 🙏
Announcement
Kristina Lauer · May 21, 2024
Are you new to coding in InterSystems IRIS® data platform?
👩💻 Learn how to start developing an app in InterSystems ObjectScript alongside your language of choice (program, 20h).
🥇 Earn a digital badge by demonstrating your skills in the final assessment!
Need to learn how to implement InterSystems IRIS?
👨💻 Get familiar with InterSystems IRIS integration and programming (program, 26h). Digital badges are available for some learning paths within this program.
Announcement
Anastasia Dyubaylo · Sep 30, 2024
Hi Developer Community,
We all love coding, but every now and then, it’s time to step away from the code and exercise! The InterSystems Walking Challenge will help you recharge your mind and boost your fitness. Embark on a virtual journey from Lübeck to Lüneburg along the historic Salt Road, the legendary trade route that connected Europe centuries ago.
Win exciting prizes like treadmills, smartwatches, and medals.
👟🚶🧑🦼Lace Up, Step Out, and Code Better! 🔋💻💪
📅 Registration is open until November 8.The challenge ends on November 22, 2024, at 6 PM CET
Want to join? Details below.
How it works
Download the app or use the web version, enter the mission code SupplyChain, and start your journey for free, wherever you want and at your own pace. You can join as a walker, a runner or a wheeler. Simply choose in the app.
>> If you join a bit late, you can retrospectively upload your data from your device. To do this, go to mission settings and change your start date:
Be active on our leaderboard and share your ups and downs to keep everyone motivated and in challenge mode!
Awards & prizes
The journey is the reward, but still there are some special prizes for participants. Everyone who completes the Salt Road is rewarded with a medal.
Besides, you will participate in a competition. The goal for the leaderboard is to finish the Salt Road as fast as possible by walking, running or in a wheelchair. Everyone’s individual time will be measured and rewarded.
The top ten participants with the best finishing time can win even more:
1st place: APPLE Watch Series 10 GPS + Cellular 46 mm Smartwatch Aluminium Fluoroelastomer
2nd - 10th place: Sportstech Laufband sWalk Plus 2-in-1
11th - 30th place: elegant water bottle
InterSystems Employees and contractors are welcome to participate but will be ineligible to win the main prizes.
Instructions
Join our challenge simply by clicking on the JOIN button when using the web version. To use the app, download the My Virtual Mission app on either the Apple App Store or the Google Play Store. After signing up with your details, click the JOIN link again to get to our mission.
To make every step count, you need to synchronize My Virtual Mission with your health-related apps. You are able to connect a range of third-party fitness trackers, including Apple Health, Google Fit, Under Armour, Garmin, FitBit, Strava, and Adidas Running. You can manage your connections via the My Virtual Mission app:
Open the My Virtual Mission app
From the home screen, click the menu at the bottom right of the screen
Click 'CONNECTIONS'
Select your desired fitness trackers. Once you have connected your fitness tracker, go to your mission page by selecting 'VIEW MISSION'. Select 'SETTINGS' from the drop down menu on the right hand side. You will then be able to update your posting preferences for our Walking Mission.
Alternatively, you can manually post the distances you covered: Click the '+' icon at the bottom left of the mission page. Click 'MANUALLY POST A DISTANCE' and enter all the information and a photo as proof (e.g., Treadmill distance). However, this will take some time to appear in the Leaderboard.
Keep fit and good luck! Oh, sounds exciting! I'm so going to try to participate! See you in Travemünde!! :) I am so very excited! This should be a lot of fun, even if it's just to see how long it takes me to walk that distance. I see someone is on the 3rd place... Yes indeed! It was a great new challenge for me to reach new personal records on my walkstation :)