Clear filter
Announcement
Kristina Lauer · Sep 26, 2024
Hi, Community!
Does your team need a graphical view of your data? See how to use the InterSystems Reports Designer to create helpful visualizations:
In this video series, you will see how to:
Use the Designer to create a banded report.
Add formulas to a report.
Export reports for sharing.
Learn how to use the Reports Designer.
Article
Zacchaeus Chok · Sep 22, 2024
In this post, we'll discuss our project that leverages Pulumi and Docker Compose to automate the deployment of InterSystems WSGI applications on AWS. The focus is on simplicity and efficiency, using pre-built infrastructure templates for provisioning and scaling AWS resources.
Overview
This repository automates the deployment of a WSGI-based application using AWS infrastructure templates and Pulumi’s Python SDK. The infrastructure is provisioned with Pulumi's declarative approach, while Docker Compose handles application orchestration. The project is structured to minimize the manual effort of setting up complex AWS resources, offering a Python-first way to manage the entire process.
Infrastructure Components
The deployment pipeline focuses on a few key AWS services:
EC2 Instances: The core of the deployment. EC2 instances are provisioned to host the WSGI application using Pulumi. These instances are created with Docker pre-installed, which will later handle the application container.
VPC: A dedicated VPC is created to encapsulate all networking aspects of the deployment. Subnets, route tables, and an internet gateway are configured to ensure proper traffic routing.
Security Groups: Security groups are configured to allow HTTP (port 80) and SSH (port 22) traffic, alongside custom ports for the InterSystems WSGI application.
IAM Roles: Pulumi provisions an IAM role for EC2, granting the necessary permissions for accessing resources like S3 buckets or ECR (if needed).
Pulumi + Python
Pulumi's declarative style makes infrastructure management highly manageable in Python. Here’s how it works:
Define AWS Resources: In __main__.py, Pulumi is used to define the core AWS resources such as EC2 instances, VPCs, and security groups. This is done by interacting with the pulumi_aws module to specify the configuration.
Parameter Injection: The project accepts a repository URL (where the application’s Docker Compose file is hosted) as a configuration parameter. Pulumi’s config module pulls this value and integrates it into the deployment.
Docker Compose for Application Management: Once the EC2 instance is created, Docker Compose is used to pull the application from the given repository, build it, and bring it up in a containerized environment. This isolates the application runtime and ensures consistency across environments.
Test for yourself
Our application can be found here: https://openexchange.intersystems.com/package/Irisheimer
You can use the InterSystems WSGI project: https://github.com/grongierisc/iris-flask-template
Question
Qais Azam · Oct 16, 2024
I am experiencing an issue while executing a stored procedure in InterSystems Cache. Here’s the procedure I createdCREATE PROCEDURE Silk.sp_InsertRecord ( IN RecordDate TIMESTAMP, IN UserName VARCHAR(50), IN RecordType INT, IN RecordID VARCHAR(50), IN CategoryID INT, IN ApprovalDate TIMESTAMP, IN FileSize BIGINT, IN WorkstationName VARCHAR(50))BEGIN INSERT INTO DummyRecords ( RecordKey, FilePath, RecordDate, UserName, RecordType, RecordID, CategoryID, FileSize ) VALUES ( 'd4a4e44b-4b56-4a74-b7f5-e44716fa5a13', '', RecordDate, UserName, RecordType, RecordID, CategoryID, FileSize ); ENDThis creates an SP of Function type.
Issue:
I encounter the following error upon execution:
Namespace: SILKProcess: 29088Error:2024-10-17 12:25:54 [SQLCODE: <-400>:<Fatal error occurred>] [Cache Error: <<UNDEFINED>zspInsertObject+50^Silk.procspInsertObject.1 *%ROWCOUNT>] [Location: <SPFunction>] [%msg: <Unexpected error occurred: <UNDEFINED>%0Ao+3^Silk.procspInsertObject.1 *%mmmsqld(3)>]
However, when I execute the stored procedure without passing any parameters and hardcode the values directly, it executes without any errors. Then it usually creates a query type procedure.
Additional Information:
I am new to Cache and not entirely sure why I'm getting this error.
The stored procedure compiles without any syntax errors. This is just an example..
Can someone help me understand why this error is occurring and how I can resolve it? Any guidance on how to properly debug or fix this issue would be greatly appreciated.
Question
Pavan Kumar Rayudu · Oct 15, 2024
Can InterSystems IRIS Data Platform 2019 be Integrated with Snowflake?
From InterSystems Do we have any predefined packages or Adapters available to Connect with Snowflake?
Can InterSystems be Connected with Snowflake through Web Gateway Management?
According to Snowflake documentation (https://docs.snowflake.com/en/user-guide/intro-key-concepts) is seems that you may use ODBC and JDBC, so SQL gateway can be used (SQL Gateway Connections | InterSystems Programming Tools Index | InterSystems IRIS Data Platform 2019.1)
There are also native connectors (e.g. Python). embedded python is not available on IRIS 2019.2 you may consider an upgrade to IRIS 2021.2
Announcement
Anastasia Dyubaylo · Jan 10
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Leveraging Automation Tools for Deploying InterSystems IRIS Applications @ Global Summit 2024
Automating configuration management, application deployment, and routine tasks reduces errors and saves time. This session highlights typical InterSystems IRIS system configuration and deployment tasks and how open-source tools can automate them. Ansible will be used as the primary example, and we will show you how to mix and match tools to make your InterSystems IRIS application deployments successful.
Presenters: 🗣 @Murray.Oldfield, Principal Technology Architect, InterSystems🗣 @Mark.Bolinsky, Chief Technology Architect, InterSystems
Watch now and let us know what you think — happy viewing! 👍
Announcement
Anastasia Dyubaylo · Sep 4, 2024
Hey Community,
We're pleased to invite you all to the upcoming kick-off webinar for the InterSystems Developer Tools Contest 2024!
During the webinar, you will discover the exciting challenges and opportunities that await IRIS enthusiasts in this contest. We'll discuss the topics we expect from participants and show you how to develop, build, and deploy applications using the InterSystems IRIS data platform.
Date & Time: Tuesday, September 10 – 12:30 pm EDT | 6:30 pm CEST
Speakers: 🗣 @Dean.Andrews2971, Head of Developer Relations🗣 @Evgeny.Shvarov, Senior Manager of Developer and Startup Programs🗣 @Raj.Singh5479, Product Manager
✅ Register for the kick-off today!
Article
Ben Spead · May 21
For 15 over years I have been playing with ways to speed up the way I use InterSystems systems and technology via AutoHotkey scripting. As a power keyboard user (I avoid my mouse when possible) I found it very helpful to set up hotkeys to get to my most frequently accessed systems and research utilities as quickly as possible. While I have used this approach for many years, this is the first time that I am introducing my approach and a customer-facing hotkey script to the D.C. and OEx...
ISCLauncher is a hotkey program based on AutoHotKey (Windows scripting language) which provides quick access a number of useful InterSystems resources and online systems (Windows OS only). Use it to quickly access the following InterSystems resources:
Documentation Search
Developer Community Search
D.C. A.I.
Online Learning
WRC Issues
iService Issues
CCR records
... plus more!
To try it out for yourself, use the "Download' button on the ISCLauncher Open Exchange listing, which will pull down a Zip file from which you can extract the contents. Run the ISCLauncher.exe and you will see the following in your Windows SysTray:
To pull up the Help screen so you can see all of the things that it can do, once you are running ISCLauncher, press [Ctrl]+[Windows]+[?]:
The power of ISCLauncher is that it can turn plain text into a hyperlink. E.g. If you have an ID from a WRC, iService or CCR record in an email, chat or notes, simply highlighting the record ID and using the appropriate hotkey will allow you to just directly to that record. See a demo for a CCR lookup below ([Ctrl]+[Windows]+[c]):
To access a record even faster, use ISC Uber-Key ( [Ctrl]+[Windows]+[Space] ) to try to automatically determine the record type and navigate immediately there (credit to @Chad.Severtson for the original ISC Uber-Key code from years ago!).
In addition to WRC, iService and CCR records - do quick searches against things like InterSystems Documentation ([Ctrl]+[Windows]+[b] ) or the Developer Community ([Ctrl]+[Windows]+[d]):
Make this tool even more powerful by adding your own hotkeys for things that you frequently type or open on your desktop. For some inspiration, here is my personal launcher which I have tuned over the years:
Have ideas how to make this more powerful? Add comments below. Also, once this is in GitHub you can feel free to create PRs with your suggestions. So cool 🤩
Announcement
Anastasia Dyubaylo · Feb 6, 2024
Hey Community,
Watch this video to learn how to use terminal aliases for InterSystems IRIS and also how to set it up with your Docker Developer Environment:
⏯ InterSystems Terminal Aliases and How To Have It In Docker Environment
Enjoy watching and subscribe to the InterSystems Developers YouTube channel for other informative videos! 👍
Announcement
Bob Kuszewski · Feb 9, 2024
InterSystems Kubernetes Operator (IKO) 3.7 is now Generally Available. IKO 3.7 adds significant new functionality along with numerous bug fixes. Highlights include:
When using IKO 3.7 with IRIS 2024.1+, the WebGateway can authenticate to IRIS via mutual TLS.
Support for reporting asynchronous mirror members
Resource requests can now be applied to IAM pods
Improvements to iriscluster resource output
Follow the Installation Guide for guidance on how to download, install, and get started with IKO. The complete IKO 3.7 documentation gives you more information about IKO and using it with InterSystems IRIS and InterSystems IRIS for Health. IKO can be downloaded from the WRC download page (search for Kubernetes). The container is available from the InterSystems Container Registry.
IKO simplifies working with InterSystems IRIS or InterSystems IRIS for Health in Kubernetes by providing an easy-to-use irisCluster resource definition. See the documentation for a full list of features, including easy sharding, mirroring, and configuration of ECP.
Article
Maria Gladkova · May 15, 2024
Hi all! Here I would like to share how we use vector search and GenAI with InterSystems technology. As an example, I'll describe BG-AppealAI project, which our company submitted to the InterSystems Vector Search, GenAI and ML Contest. BG-AppealAI application can write an appeal if you upload an insurance contract and the insurance company’s letter with a refusal to pay medical expenses. Of course, we are aware that at the moment AI has not reached such a level as to create ready-made legal documents. However, it's already possible to create tools to serve as assistants for specialists or ordinary users. Likewise, our application is an AI assistant that answers the question: "Is an appeal possible?" and creates a draft letter of appeal, if possible.
Explore our application in action by following this link: https://appealai.cloud.banksia.global/#/welcome
We've also created a video showcasing our app: https://www.youtube.com/embed/0p6FvZpzaaA
How BG-AppealAI works
Insurance contracts and rejection letters vectorization: to be able to better assist with appeals, AI needs a context of the denial. One of the possible ways we can provide a context is by citing relevant parts of insurance contracts. Upon receiving an insurance contract, BG-AppealAI breaks it down into parts, converting each part into a multi-dimensional vector. These vectors are stored in an InterSystems IRIS database, allowing fast and accurate retrieval when needed.
Vector Search: when you upload a rejection letter to the app, BG-AppealAI converts it to the vector, this is called the vectorization process. BG-AppealAI then uses IRIS vector search functionality to compare vectors extracted from the rejection letter with vectors extracted from the relevant insurance contract.
AI-Powered Appeal Generation: having identified potential context for appeal, BG-AppealAI sends a request to the generative AI service to assess the possibility of drafting an appeal. If it is deemed appropriate, AppealAI sends a new request in order to create a draft letter of appeal.
What's under the hood of the BG-AppealAI
Traditionally, our application consists of backend and frontend parts, where the frontend is developed on Angular framework and the backend on InterSystems IRIS. The video about our application has already shown the work of the frontend part of the application and a brief overview of the product, here I want to focus on the implementation of Interoperability Production. This is where we can clearly see the application of vector search and generative AI.
So, there are the following elements in our system:1) ConversionToVector - process that converts document text into vectors using LangChain, and invokes process GetText and operations SaveVector, SaveDocument for the corresponding actions.
2) GetText - process that parses data from a file into a stream, for further text processing and analysis. Here there is opportunity to work with 2 types of extensions: docx and pdf, as the most common ones for documents.
3) VectorSearch - process that performs a vector search and looks for matches between documents. Also, it is in this business process that methods are called to write promts to the AI and analyze rejection letters.
Note, that here we used a language model developed by OpenAI and the LangChain framework. All business processes are implemented using embedded python as it provides easy access to utilization to use LangChain and write promts to OpenAI.4) AppealIn - service that receives the rejection file and sends it for analysis.5) DocumentIn - service that receives the insurance contract file and sends it for vectorization.6) OpenAiOut - operation that makes a request to a generative AI - OpenAI, receives promt, returns a response from GenAI.7) SaveDocument - operation that stores the document file in the database.8) SaveVector - operation that stores vectors in the database.9) SaveAppeal - operation that gets the text of the appeal and stores it in the database.
The interaction of all the above elements is well shown by the visual trace. Visual trace of taking an insurance contract, dividing it into vectors, and storing the vectors in a database:
Visual trace of receiving a rejection letter, sending requests to OpenAI, and saving the appeal letter if an appeal is possible:
This is an example of a rejection letter:
This is an example of an appeal written by BG-AppealAI:
We hope that our open source project will be useful to this community and help you implement innovative technologies in your projects. Our team would like to thank InterSystems for the opportunity to work with cutting-edge technologies. We're eager to engage with your thoughts and questions in the comments below. Let's continue pushing the boundaries of what's possible with technology together! Stay tuned for more updates and insights from our team.
If you enjoyed getting to know BG-AppealAI and its features and would like to support us, please take a moment to vote for our app here https://openexchange.intersystems.com/contest/36. Thank you! Hi Maria,
Your video is available on InterSystems Developers YouTube:
⏯️ AppealAIMovie
Thank you !! Great overview of a solid approach, thank you!!
Announcement
John McBride · Jul 24, 2024
Overview
The extension and source code are now availableAfter having some discussions at Global Summit and using a lot of package managers in my day to day development (npm,nuget,Chocolatey, etc) in addition to recently using the InterSystems Package Manager for some CICD process I'm building using Intersystems IRIS and IRIS 4 Health, I wanted an easy and integrated way to search/view/install packages related to the Intersystems tech stack.
I recently built a VSCode extension for IPM repositories that I will be open sourcing and publishing to the marketplace but wanted create this post to get some feedback from the community.
Download Information
You can download the extension within VSCode or at https://marketplace.visualstudio.com/items?itemName=extensionsbyjohn.ipm-explorer. Just search for ipm.explorer
Github respository
Click here for the github repository
Video
Initial Screen
Some features in the extension:
VSCode setting for defining multiple repositories
Activity Bar Icon/Explorer View
List of packages in custom view
List/Open github repository configured in package
Details for package in a custom view
Copy ZPM install command for use in IRIS terminal
Setup/Settings:
When you first start the extension, you will need to configure it. You can do this by accessing the settings.json file and adding something like the following.
"ipm.repositories": [
{
"name":"Public IPM",
"url":"https://pm.community.intersystems.com"
},
{
"name":"Internal Packages",
"url":"https://[insert private repo here]"
},
{
"name":"Test Packages",
"url":"https://[insert private repo here]"
}
]
Screenshots:
Ideas/Future
After building this and working with the API, I'd like to propose a couple updates that potentially could be added to the manifest/API for packages to make integrations like this a little easier
License field: (This will let the users know if the package license is compatable with their usage)
Logo: encoded image for the package. Allow the developer of the package to specify an image
Readme: Allow the developer of the package to include a readme markdown file in the package. This can then be displayed in the details section of the extension.
Author: Include the author of the package (can be displayed the details view)
Verified: Allow for an author to be verified. For example Intersystems could be a verified author
Open Source:
Click here for the github repository
Comments/Suggestions
Let me know what you think or if you have suggestions let me know. Would you be interested in using this? Hi John,
Your video is available on InterSystems Developers YouTube:
⏯️InterSystems Package Manager VSCode Extension
👍 Is there a VSCode extension or tool to help build module.xml files for IPM?
Announcement
Anastasia Dyubaylo · Nov 26, 2024
Hey Community,
We're pleased to invite you all to the upcoming kick-off Webinar for InterSystems "Bringing Ideas to Reality" Contest!
During the webinar, our speakers will explore the Community Opportunity Ideas from the InterSystems Ideas Portal, which are the topics of this programming contest. They will show how to develop, build, and deploy applications using the InterSystems IRIS data platform.
Date & Time: Monday, December 2 – 10:00 am EST | 4:00 pm CET
Speakers: 🗣 @Dean Andrews, Head of Developer Relations🗣 @Evgeny Shvarov, Senior Manager of Developer and Startup Programs🗣 @Raj Singh, Product Manager - Developer Experience
✅ Register for the kick-off today! Hi Devs!Please join the kick-off webinar in 15 minutes in Zoom:https://us06web.zoom.us/j/5635395305?pwd=mkfbpaSr5QotWR1JqKbAOm3PYPwwog.1Or enjoy watching the stream via YouTube:
https://youtube.com/live/ORBgFlT7juY?feature=share
Announcement
Evgeny Shvarov · Dec 19, 2024
Hi Developers!
We are happy to present the bonuses page for the applications submitted to the InterSystems "Bringing Ideas to Reality" 2024 Contest!
See the results below.
Project
Vector Search
Embedded Python
InterSystems Interoperability
IRIS BI
VSCode Plugin
FHIR Tools
Docker
IPM
Online Demo
Find a bug
Code quality
First Article on DC
Second Article on DC
Video on YouTube
YouTube Short
First Time Contribution
Total Bonus
Nominal
3
3
3
3
3
3
2
2
2
2
1
2
1
3
1
3
37
IRIS WHIZ - HL7v2 Browser Extension
2
3
5
ServiceInspection
3
3
-
-
6
vault-link
3
2
2
7
SharePoint Online SPO REST API
3
2
3
3
11
tz - ObjectScript Time Zone Conversion Library
3
3
2
2
1
2
3
16
iris-http-calls
3
3
2
2
2
2
1
3
18
ks-fhir-gen
3
3
2
1
9
Database-Size-Monitoring
2
2
2
6
iris-unit-test-dashboard
3
2
3
8
IRIS Global VSCode Editor
3
2
1
3
1
10
iris-HL7v2Gen
3
3
2
2
1
2
13
Doxygenerate
2
2
2
2
1
3
12
docs-intersystems
2
2
Please apply with your comments for new implementations and corrections to be made here in the comments or in Discord. Please accept the in-article links to examples of Doxygenerate's output as fulfilling the "Online Demo" item. Running the app itself isn't at all exciting - it's the output people surely want to explore online.
Links (all to documents hosted on georgejames.com) are in these posts:
https://community.intersystems.com/post/doxygenerate-new-tool-building-standalone-documentation-your-iris-applications-object-model
https://community.intersystems.com/post/producing-pdf-class-documentation-using-doxygenerate
https://community.intersystems.com/post/ipm-090-released#comment-277091
I published a short: https://youtu.be/cjbcEN-lBRk, so I claim the youtube short bonus. Thanks! I claim youtube short (https://community.intersystems.com/post/youtube-short-video-about-iris-globals-vscode) and second article (https://community.intersystems.com/post/learn-create-vscode-extensions-iris-global-editor-app) Hi Yuri! This is common video, not YouTube Short Hi, John! Could you please add this link as demo url to your app? I'll give you bonus after that Hi! About video, it must be in "shorts", e.g. this one. I've added bonus for the second article My tz - ObjectScript Time Zone Conversion Library project now supports Interoperability Rules/DTLs. Thanks! @John.Murray Thank you! Demo bonus have been approved Hi! Points were added. Thank you! YouTube video added to Doxygenerate Thank you! Bonus was added Hi, I claim youtube short, now it is a short: https://youtube.com/shorts/Cg_IukFo6HI?si=2TTloaKee0__KAds I just posted Time Zones and Offsets and ObjectScript, Oh My! article on DC. Thanks! Hi Eric! Bonus was added published a short: https://youtu.be/cjbcEN-lBRk, so I claim the youtube short bonus. Thanks!
00
Hi! I've just seen your comment. Bonus added. I have published the first article for the Database Sze Monitoring project. Thank you, Sara! Bonus was added
Announcement
Anastasia Dyubaylo · Jul 24, 2024
Hey Community,
Play the new video on InterSystems Developers YouTube:
⏯ Optimizing Supply Chains with InterSystems Supply Chain Orchestrator @ Global Summit 2023
Learn how InterSystems Supply Chain Orchestrator addresses business challenges horizontally across vertical segments to enable accelerated time-to-value for supply chain digital transformation. We'll show you how one of our partners is using it in use cases across several industry sectors.
Presenters: 🗣 @Ming.Zhou, Head of Supply Chain Strategy, InterSystems 🗣 Mark Holmes, Senior Supply Chain Advisor, InterSystems
Enjoy watching and look out for more video content! 👍
Announcement
Laurel James (GJS) · Mar 27, 2024
I'm excited to let you know that we at George James Software have released some new VS Code training courses. Following the success of our Basics course we have expanded our offering to help InterSystems users looking to move to VS Code improve their knowledge. Here's what's on offer...Studio to VS Code Migration - The Basics (2.5 hours)An interactive training webinar for those who have never used VS Code before and want hands-on help in getting set up and explaining the basics of how it works.Upcoming dates: Wed, April 17th + Wed, May 15thPrice: $450 / £450 / €450 per personVS Code for ObjectScript Advanced Features (2.5 hours)Tailored for ObjectScript developers, in this interactive training webinar you'll learn how to take your server-side VS Code setup to the next level. Upcoming dates: Wed, April 24th + Wed, May 22ndPrice: $450 / £450 / €450 per personBespoke Training for VS Code (5 hours)Recommended for 4+ attendees, we can cover everything in the public webinars with the added advantage of being able to focus on the areas you need/want to cover.Price: $1,950 / £1,950 / €1,950 per sessionFull-Service MigrationFor organizations seeking comprehensive support, we provide end-to-end guidance through the entire migration process. Visit our website to find out more, or drop any questions you have below. Thanks for providing this service to our community. As mentioned in the 2024.1 release notes, Studio will no longer be installed by default in 2024.2 and later, so now is a great time to fully migrate your staff and processes to VS Code. Thanks for the support, Raj!