Search

Clear filter
Announcement
Anastasia Dyubaylo · Mar 8, 2023

[Video] InterSystems Deployment Options

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

[Video] Observability with InterSystems IRIS

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

InterSystems Ideas News #6

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

InterSystems Tech Video Challenge

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

InterSystems DACH Symposium 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

Back to Basics: Why InterSystems?

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

[Video] InterSystems Package Manager

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

InterSystems Ideas News #18

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! 🙏 ![aplause](https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExbGt0ZnE0eWlxaGp1dTRiaHA1Y205enl3dzhtaXEwb2E4ZXMzaDFlaCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3ornjHL4fLS94x39Wo/giphy.gif)
Article
Ashok Kumar T · Sep 12, 2024

Embedded python in InterSystems IRIS

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

InterSystems Ideas News #16

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

InterSystems business partner in Canada

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

InterSystems HealthShare Developer

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

InterSystems Ideas News #13

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

Get Started with InterSystems IRIS

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

Join the InterSystems Walking Challenge!

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 :)