Clear filter
Announcement
Anastasia Dyubaylo · Apr 16, 2020
Hi Community,
We introduced 2 new tags for the posts:
➡️ InterSystems API Manager (IAM)➡️ IntegratedML
Please check the full list of DC tags.
Leave your requests for other new tags to introduce! 👍🏼
Announcement
Olga Zavrazhnova · Sep 26, 2023
Hey Developers,
Please welcome a new set of Global Masters badges for 💡Ideas on InterSystems Ideas Portal!
As you may remember, you get +100 points on Global Masters each time you create a product Idea on InterSystems Idea Portal. Now we have a special set of badges for a number of submitted product ideas:
Badge's Name
Rules
Idea Creator Badge1st published product Idea
Level: Advocate
Awarded after you create 1/ 5 / 10 / 25 / 50 product Ideas on InterSystems Ideas Portal
Advanced Idea Creator Badge5 published product Ideas
Level: Specialist
Bronze Idea Creator Badge10 published product Ideas
Level: Expert
Silver Idea Creator Badge 25 published product Ideas
Level: Ambassador
Gold Idea Creator Badge50 published product Ideas
Level: Legend
Idea to Reality Wizard - for implemented product Idea
Level: Legend
Badge is awarded to Community Members who implemented a product idea suggested at InterSystems Ideas Portal.
Check out the Hall of Fame with the list of Developer Community Members who implemented ideas.
And...
If you are not a Global Masters Advocacy Hub member yet - join now to stay up-to-date, get nice prizes, and let us recognize your contribution to the Developer Community!
Check the additional information about Global Masters:
Global Masters - Start Here! (general info about Global Masters program)
Global Masters Levels Descriptions
How to earn points on Global Masters
Feel free to ask your questions in the comments to this post.
Article
Brad Nissenbaum · Apr 3, 2024
How to create an ODBC connection on your native Windows laptop to IRIS running on a Windows VM on the same computer, test the connection, and pull data from IRIS into Excel.
Recently I learned that Excel can connect to external databases via ODBC. This includes basically any ODBC data source. Since IRIS speaks ODBC via the ODBC API, we can take advantage of the InterSystems ODBC Driver to establish an ODBC connection to IRIS on Windows that Excel can utilize.
Before getting started, make sure you have installed the latest InterSystems ODBC driver on your native Windows, which can either be found on WRC or on GitHub. I assume that you are running IRIS on a Windows VM using VMWare hosted on your Windows machine. I also assume that you have Microsoft Excel installed on your native Windows as well. You’ll also need some data pre-loaded into your namespace to access. For this post, I am using data from the Python Quickstart. The data can be found on GitHub.
First you need to find the IP address for the VM. (Keep in mind that you may need to repeat this step if you restart the VM, connect to a different network or connect/disconnect a VPN connection.)
To find your IP address in the Windows VM, go to the Windows Command Prompt (cmd):
In the VM, hold the Windows key and the R key. This opens the Run dialog (as seen below). Type in “cmd” and click <OK>:
On the Command Prompt, type in “ipconfig -all” to find your IP address. You want to locate the line that says “IPv4 Address….” And make note of the numeric IP address given on that line:
Also make note of the Web Server Port of your VM IRIS, because you’ll need that later.
Now, return to the Windows host system and open the ODBC Data Source Administrator (ODBC DSA) and configure the connection:
In the ODBC DSA, open the “System DSN” tab and click “Add”:
You will be prompted to select a driver for the data source. If you installed the InterSystems ODBC driver on your native Windows machine, you should select “InterSystems IRIS ODBC…” as I have done below and click “Finish”:
This will open a new dialog where you need to name the data source, provide a description, input the IP address you copied previously and the Web Server Port. Input the namespace you want to connect to, the User Name and Password that you use for the Management Portal as well. Then click <Test Connection> as shown below:
If all went well, you should see that the test completed successfully as shown below. This means that we now have a connection via our native Windows to IRIS on the VM:
Now we can open Microsoft Excel and access data via the ODBC data source. We do this by selecting the “Data” tab (1), then clicking “Get Data” (2). Click “From Other Sources” (3), and then “From ODBC” (4).
From the drop down, select the data source you created previously and click OK:
In the Navigator, select the table you want to connect to and click “Load”:
From here, we can see that we successfully connected to the data on IRIS on a VM and are able to access it in Microsoft Excel running on native Windows:
Wrapping up, we might wonder why we would want to access IRIS data in Excel. Many people have years of Excel expertise. They can use Excel to explore data, create pivot tables, visualizations, and dashboards. Well done and well explained - thank you! 💡 This article is considered InterSystems Data Platform Best Practice.
Announcement
Evgeny Shvarov · Jan 14, 2024
Hi Developers!
Here are the technology bonuses for the InterSystems FHIR and Digital Health Interoperability Programming Contest that will give you extra points in the voting:
InterSystems FHIR usage - 3
InterSystems FHIR SQL Builder usage - 3
Digital Health Interoperability - 4
LLM AI or LangChain usage: Chat GPT, Bard and others - 3
Embedded Python - 2
IRIS For Health Instruqt Survey - 2
Docker container usage - 2
IPM Package deployment - 2
Online Demo - 2
Implement InterSystems Community Idea - 4
Find a bug in InterSystems FHIR server - 2
Find a bug in InterSystems Interoperability - 2
New First Article on Developer Community - 2
New Second Article on Developer Community - 1
First Time Contribution - 3
Video on YouTube - 3
See the details below.
InterSystems FHIR usage - 3 points
Implement InterSystems FHIR server in your application either as a standalone cloud FHIR server or as a component of InterSystems IRIS for Health and collect 3 bonus points!
InterSystems FHIR SQL Builder usage - 3 points
FHIR SQL Builder is the feature of InterSystems IRIS for Health that helps to expose FHIR resources for SQL access. Use FHIR SQL Builder module in your application and collect 3 more points in the competition rating! Example
Digital Health Interoperability - 4 points
Collect 4 bonus points if your application is healthcare interoperability solution that uses InterSystems Interoperability to transfer or/and transform healthcare data via messages or it uses healthcare formats data transformation. Here are a couple of examples: one, two, three.
Embedded Python - 2 points
Use Embedded Python in your application and collect 2 extra points. Base template, example application with Interoperability.
LLM AI or LangChain usage: Chat GPT, Bard and others - 3 points
Collect 3 bonus expert points for building a solution that uses LangChain libs or Large Language Models (LLM) such as ChatGPT, Bard and other AI engines like PaLM, LLaMA and more. AutoGPT usage counts too.
A few examples already could be found in Open Exchange: iris-openai, chatGPT telegram bot, rag-demo.
Here is an article with langchain usage example.
IRIS For Health Instruqt Survey - 2 points
We introduced an interactive InterSystems IRIS Digital Health Interoperability Instruqt Course. Please follow it and leave your feedback in this survey. It will give you 2 bonus points.
Docker container usage - 2 points
The application gets a 'Docker container' bonus if it uses InterSystems IRIS running in a docker container. Here is the simplest template to start from.
ZPM Package deployment - 2 points
You can collect the bonus if you build and publish the ZPM(InterSystems Package Manager) package for your Full-Stack application so it could be deployed with:
zpm "install your-multi-model-solution"
command on IRIS with ZPM client installed.
ZPM client. Documentation.
Online Demo of your project - 2 pointsCollect 2 more bonus points if you provision your project to the cloud as an online demo at any public hosting.
Implement Community Opportunity Idea - 4 points
Implement any idea from the InterSystems Community Ideas portal which has the "Community Opportunity" status. This will give you 4 additional bonus points.
Find a bug in InterSystems Digital Health Interoperability - 2 pointsWe want the broader adoption of InterSystems Interoperability engine so we encourage you to report the bugs you will face during the development of your interoperability application with IRIS in order to fix it. Please submit the bug here in a form of issue and how to reproduce it. You can collect 2 bonus points for the first reproducible bug.
Find a bug in InterSystems FHIR Server - 2 pointsWe want the broader adoption of InterSystems FHIR so we encourage you to report the bugs you will face during the development of your FHIR application in order to fix it. Please submit the bug here in a form of issue and how to reproduce it. You can collect 2 bonus points for the first reproducible bug.
New First Article on Developer Community - 2 points
Write a brand new article on Developer Community that describes the features of your project and how to work with it. Collect 2 points for the article.
New Second Article on Developer Community - 1 point
You can collect one more bonus point for the second new article or the translation regarding the application. The 3rd and more will not bring more points but the attention will all be yours.
First-Time Contribution - 3 points
Collect 3 bonus points if you participate in InterSystems Open Exchange contests for the first time!
Video on YouTube - 3 points
Make new YouTube videos that demonstrate your product in action and collect 3 bonus points per each.
The list of bonuses is subject to change. Stay tuned!
Good luck in the competition! Hi developers!
Below I have attached ideas from the Ideas Portal related to the topic of the competition. Not all of them have "Community Opportunity" status, but they can all be useful for choosing app functionality to participate in the Contest.
Idea
Author
RPMShare - Database solution for remote patient | InterSystems Ideas
@Dmitry Alexeev
HL7 test message generator
@Vadim Aniskin
Introduce an Interoperability adapter to import apple health data to IRIS
@Evgeny Shvarov
Intellisense for FHIR resources
@Jose-Tomas Salvador
Interoperability Production: "Add a 'Type-to-Filter' ability in dropdown selections"
@Victoria Castillo
Data Analyzer
@Stella Ticker
HealthShare Patient Unmerge Ooopses
@Sawyer Butterfield
Editable HL7 Editor in the Message Viewer
@Evgeny Shvarov
Iterative build of TrakCare configuration/code tables utilising FHIR and HL7 Messaging.
Linda McKay
FHIR step by step setup
@Scott Roth
Introduce an Interoperability Adapter for POCT1A and POCT1A-2 standards
@Evgeny Shvarov
Speech Recognition to Prepopulate Incoming Patient Data
Jayesh Gupta
Web Interface to convert HL7 V2 to FHIR
@Muhammad.Waseem
Implement support for FHIRPath Patch resources on InterSystems FHIR Server
@Maksym.Shcherban
Good luck! An update in a bonuses list: 2 points for answering the questions of the survey about the interactive InterSystems IRIS Digital Health Interoperability Instruqt Course.
Announcement
Anastasia Dyubaylo · Jan 29, 2024
Hi Community,
It's voting time! Cast your votes for the best applications in our InterSystems FHIR and Digital Health Interoperability Contest:
🔥 VOTE FOR THE BEST APPS 🔥
How to vote? Details below.
Experts nomination:
InterSystems experienced jury will choose the best apps to nominate the prizes in the Experts Nomination. Please welcome our experts:
⭐️ @Guillaume.Rongier7183, Sales Engineer⭐️ @Sylvain.Guilbaud, Sales Engineer⭐️ @akoblov, Senior Support Specialist⭐️ @Eduard.Lebedyuk, Senior Cloud Engineer⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Alexander.Woodhead, Senior Systems Developer⭐️ @Andreas.Dieckow , Principal Product Manager⭐️ @Aya.Heshmat, Product Manager⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Robert.Kuszewski, Product Manager⭐️ @Carmen.Logue , Product Manager⭐️ @Luca.Ravazzolo, Product Manager⭐️ @Raj.Singh5479, Product Manager⭐️ @Patrick.Jamieson3621, Product Manager⭐️ @Stefan.Wittmann, Product Manager⭐️ @tomd, Product Manager⭐️ @Daniel.Franco, Senior Manager - Interoperability Product Management⭐️ @Timothy.Leavitt, Development Manager⭐️ @Evgeny.Shvarov, Senior Manager of Developer and Startup Programs⭐️ @Dean.Andrews2971, Head of Developer Relations⭐️ @Jeffrey.Fried, Director of Product Management
Community nomination:
For each user, a higher score is selected from two categories below:
Conditions
Place
1st
2nd
3rd
If you have an article posted on DC and an app uploaded to Open Exchange (OEX)
9
6
3
If you have at least 1 article posted on DC or 1 app uploaded to OEX
6
4
2
If you make any valid contribution to DC (posted a comment/question, etc.)
3
2
1
Level
Place
1st
2nd
3rd
VIP Global Masters level or ISC Product Managers
15
10
5
Ambassador GM level
12
8
4
Expert GM level or DC Moderators
9
6
3
Specialist GM level
6
4
2
Advocate GM level or ISC Employees
3
2
1
Blind vote!
The number of votes for each app will be hidden from everyone. Once a day we will publish the leaderboard in the comments to this post.
The order of projects on the contest page will be as follows: the earlier an application was submitted to the competition, the higher it will be on the list.
P.S. Don't forget to subscribe to this post (click on the bell icon) to be notified of new comments.
To take part in the voting, you need:
Sign in to Open Exchange – DC credentials will work.
Make any valid contribution to the Developer Community – answer or ask questions, write an article, contribute applications on Open Exchange – and you'll be able to vote. Check this post on the options to make helpful contributions to the Developer Community.
If you change your mind, cancel the choice and give your vote to another application!
Support the application you like!
Note: contest participants are allowed to fix the bugs and make improvements to their applications during the voting week, so don't miss and subscribe to application releases! So! After the first day of the voting, we have the following results:
Community Nomination, Top 5
Health Harbour by @Alena.Krasinskiene
iris-fhirfy by @José.Pereira
iris-fhir-lab by @Muhammad Waseem
fhirmessageverification by @珊珊.喻
FHIR-OCR-AI by @@xuanyou du
➡️ Voting is here.
Experts, we are waiting for your votes! 🔥 Devs!
Here are the results after two days of voting!
Community Nomination, Top 5
iris-fhirfy by @José Roberto Pereira
fhirmessageverification by @Shanshan Yu
FHIR-OCR-AI by @@xuanyou du
Health Harbour by @Alena Krasinskiene
ai-query by @Clinovera
➡️ Voting is here.
Expert Nomination, Top 3
ai-query by @Clinovera
iris-fhirfy by @José Roberto Pereira
IRIS WHIZ - HL7v2 Browser Extension by @Rob.Ellis7733
➡️ Voting is here.
Since the beginning of the voting, we have the following results:
Community Nomination, Top 5
iris-fhirfy by @José Roberto Pereira
Fhir-HepatitisC-Predict by @shan.yue
FHIR-OCR-AI by @@xuanyou du
ai-query by @Olga Verevkina
fhirmessageverification by @Shanshan Yu
➡️ Voting is here.
Expert Nomination, Top 5
ai-query by @Olga Verevkina
iris-fhir-lab by @Muhammad.Waseem
iris-fhirfy by @José Roberto Pereira
fhirmessageverification by @Shanshan Yu
IRIS WHIZ - HL7v2 Browser Extension by @Rob Ellis
➡️ Voting is here. Voting for the InterSystems FHIR and Digital Health Interoperability Contest goes ahead!
And here're the results at the moment:
Community Nomination, Top 5
iris-fhirfy by @José Roberto Pereira
Fhir-HepatitisC-Predict by @shan yue
FHIR-OCR-AI by @@xuanyou du
ai-query by @Olga Verevkina
fhirmessageverification by @Shanshan Yu
➡️ Voting is here.
Expert Nomination, Top 5
ai-query by @Olga Verevkina
iris-fhirfy by @José Roberto Pereira
iris-fhir-lab by @Muhammad Waseem
Health Harbour by @Alena.Krasinskiene
iris-hl7 by @Oliver.Wilms
➡️ Voting is here.
And don't forget! You can use your Technology bonuses to gain more points for your application! Please check out today's voting results:
Community Nomination, Top 5
iris-fhirfy by @José Roberto Pereira
FHIR-OCR-AI by @@xuanyou du
Fhir-HepatitisC-Predict by @shan yue
fhirmessageverification by @Shanshan Yu
Health Harbour by @Alena Krasinskiene
➡️ Voting is here.
Expert Nomination, Top 5
iris-fhirfy by @José Roberto Pereira
Health Harbour by @Alena Krasinskiene
iris-fhir-lab by @Muhammad Waseem
ai-query by @Olga Verevkina
FHIR-OCR-AI by @@xuanyou du
➡️ Voting is here.
Keep voting!Our participants need your support!
Announcement
Evgeny Shvarov · Nov 30, 2023
Hi Developers!
We are happy to present the bonuses page for the applications submitted to the InterSystems Java Programming Contest 2023!
Project
Java Gateway
Java Native API usage
Java PEX Interoperability
Java XEP
LLM AI or LangChain
IRIS Cloud SQL
Community Java libs: Hibernate and Liquibase
Find a bug
Questionnaire
Docker
IPM
Online Demo
Community Idea Implementation
First Article on DC
Second Article on DC
First Time Contribution
Video on YouTube
Total Bonus
Nominal
2
2
4
2
3
3
2
2
2
2
2
2
4
2
1
3
3
41
native-api-command-line-java
2
2
2
2
2
1
3
14
JIRISReport
2
2
2
2
4
2
1
3
18
iris-extlanguage-openpdf
2
3
5
java-global-editor
2
2
2
2
2
1
3
14
iris-parquet
2
2
2
2
2
1
3
3
17
quiz-app
3
3
2
2
2
2
1
3
3
21
presto-iris
2
2
4
iris-dmn
2
3
2
2
2
2
2
15
excel-java-iris
2
2
2
2
2
10
fhir-pex
2
4
3
2
2
2
1
3
3
22
Image AI Creator
2
2
2
2
8
StarChat
2
2
3
3
2
2
2
2
1
3
3
25
InterLang
3
2
2
1
3
3
14
Please apply with your comments for new implementations and corrections to be made here in the comments or in Discord. Hi @Evgeny.Shvarov About The app fhir-pex is counting only 2 points in the "Java PEX Interoperability" bonus.we also use "LLM AI or LangChain" to make recommendations to diagnostic centers, through the class present in the project: https://github.com/flavioneubauer/fhir-pex/blob/master/java-orm/src/main/java/com/flavioneubauer/patient/service/PatientAI.java
Community Hibernate is also being used, present in the project pom by hibernateirisdialect of io.github.yurimarx to persist and query fhir events. https://github.com/flavioneubauer/fhir-pex/blob/master/java-orm/pom.xml
Second Article on DC is published on pt-br Community by : https://pt.community.intersystems.com/post/enviando-de-mensagens-kafka-java-pex-para-processamento-de-progn%C3%B3sticos-de-exames-de-quarentenaThank you for your attention, and if you have any further questions or need additional information, please feel free to reach out. I've added these bonuses to your app. Thank you for feedback! May we submit these for corrections to the bonus for InterLang:
We have a second article for our project here: https://community.intersystems.com/post/interlang-technical-implementation-streamlit-chatbot-and-langchain-fhir-tool
We were also inspired by the community idea on creating a real world application using Streamlit and IRIS. Our technology example shows developers how to combine Streamlit interfaces with a Spring Boot backend: https://ideas.intersystems.com/ideas/DPI-I-445
Hi all! I added the use of AI to my solution (By adding a separate utility https://openexchange.intersystems.com/package/iris-pretty-gpt-1)
Below is an example of use
Hello everyoneI want to mention that quiz-app has IRIS Cloud SQL and IPM, I've added them with Liquibase in the last release. Cloud SQL also uses in online demo. Hello all, I've added Cloud SQL and IPM to my project https://openexchange.intersystems.com/package/StarChat-1 Hi! I've added Cloud SQL bonus. About IPM bonus. Your module deploy nothing. I can't just install and run or install, set up and run. Hi! I've added Cloud SQL bonus. About IPM bonus. Your module deploy nothing. I can't just install and run or install, set up and run. You achieved bonus for second article. But I can't give you bonus for that idea. This idea is about creating template. And also, I didn't find code what working with IRIS at all. HI! This bonus have been added to your app. I claim online demo for iris parquet. http://173.212.233.87:32769/swagger-ui/index.html Hi! This bonus have been added to your app Hi there, I've added online demo https://iris-dmn.demo.community.intersystems.com/dmn/index.html Hi! I've added this bonus to you. I've also added ChatGPT support, so I'd appreciate it if you could check it out. Hello all,I've just updated IPM and introduced the Java Native API along with the Java Gateway. I would appreciate it if you could take a look. Hi! I've added that bonus to your app These bonuses were added to app Also a candidate for the 1 liner category
Announcement
Anastasia Dyubaylo · Dec 4, 2023
Hi Community,
Let's meet together at the online meetup with the winners of the InterSystems Java Programming Contest 2023 – a great opportunity to have a chat with the InterSystems Experts team as well as our contestants.
Winners' demo included!
Date & Time: Thursday, December 7, 12 pm EST | 6 pm CET
Join us to learn more about winners' applications and to have a talk with our experts.
➡️ REGISTER TODAY
See you all at our virtual meetup! Hi Devs,
The "Online Meetup with the winners of the InterSystems Java Programming Contest 2023" starts in 15 minutes)
Follow this link https://us02web.zoom.us/j/9822194974?pwd=bnZBdFhCckZ6c0xOcW5GT1lLdnAvUT09
Or join our YouTube stream - https://youtube.com/live/nET2xSLUwfE?feature=share
Announcement
Anastasia Dyubaylo · Oct 27, 2023
Hi Community,
We're excited to share with you the recording of the next webinar in the series of InterSystems UKI Tech Talk:
👉 Analytics Capabilities using InterSystems IRIS 👈
In this tech talk, we put the spotlight on analytics capabilities developers have using both InterSystems IRIS data platform and InterSystems IRIS for Health, including the following ones.
Adaptive Analytics allows developers to create a business-oriented virtual OLAP model layer between InterSystems IRIS and popular BI client tools like Microsoft Excel and Power BI, or Tableau. By having a centralised common data model, enterprises solve the problem of differing definitions and calculations to provide their end users with one consistent view of business metrics and data characterisation.
Embedded real-time analytics that can be created directly on transactional data model and a fully automated synchronisation option avoids the need for ETL processing.
Columnar Storage is a new storage option for IRIS SQL tables that offers an order-of-magnitude faster analytical queries compared to traditional row storage on IRIS. $vector as a new data type to support columnar storage for SQL tables.
To watch a recording, you need to complete the form.
We trust that you'll find this webinar to be valuable 😉
Announcement
Anastasia Dyubaylo · Mar 3, 2023
Hi Community,
Watch this video to explore common security pitfalls within the industry and how to avoid them when building applications on InterSystems IRIS:
⏯ The OWASP Top 10 & InterSystems IRIS Application Development @ Global Summit 2022
Presenters:
🗣 @Timothy.Leavitt, Application Services Development Manager🗣 @Pravin.Barton, Developer, Application Services🗣 @Wangyi.Huang, Technical Specialist, Application Services
Subscribe to our Youtube channel InterSystems Developers to stay up to date!
Announcement
Anastasia Dyubaylo · Feb 19, 2023
Hey Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ Understanding your InterSystems Login Account & Where to Use It @ Global Summit 2022
Learn about your InterSystems Login Account, how to use it to get access to InterSystems Services like the Developer Community, Evaluation Service, Open Exchange, Online Learning, WRC and others. This will also cover the new features for controlling your personal communication preferences.
Presenters:
🗣 @Timothy.Leavitt, AppServices Development Manager,InterSystems🗣 @Pravin.Barton, Internal Application Developer, InterSystems
Hope you like it and stay tuned! 👍 Correction on this post - I was originally supposed to present but unfortunately was unable to attend Global Summit due to testing positive for COVID the day before :( Call out to @Timothy.Leavitt who stepped in and presented in my place and did a great job.
Watch the video! I got way too much air time last Summit. Thanks for noticing, guys! Fixed ;)
Article
Evgeny Shvarov · Dec 24, 2022
Hi InterSystems Developers!
Recently I've updated the FHIR dev template so that it now publishes an IPM package fhir-server that makes the setup of InterSystems FHIR server a trivial manual or automatic or programmatic procedure one command long.
Please see below how you can benefit from it.
TLDR
USER>zpm "install fhir-server"
All the details below.
Setting up InterSystems FHIR Server without IPM
Of course you can setup InterSystems FHIR server without using IPM package manager. Here are the options:
1. You can setup a cloud FHIR server and have a trial for several days by following these instructions. This will be an InterSystems FHIR server in AWS cloud.
2. You can setup InterSystems FHIR server a running InterSystems IRIS for Health following these steps.
3. And also you can git clone the repository of this template and run in a cloned directory:
$ docker-compose up -d
to have InterSystems FHIR server up and running on your laptop.
What I suggest in the article is point 2 where you can skip all the manual steps and have the FHIR server up and running on a laptop IRIS either in docker or host OS.
Setting up FHIR server with IPM
DISCLAIMER!! The steps described below refer to a newly installed IRIS for Health instance or for usage with docker images. The package creates a new namespace and a new web application so it could possibly harm the setup you had set up before.
IPM stands for InterSystems Package manager, previously known as ZPM. Make sure you have IPM-client installed. You can check this if you run in IRIS terminal zpm command and see the following:
IRISAPP>zpm
=============================================================================
|| Welcome to the Package Manager Shell (ZPM). ||
|| Enter q/quit to exit the shell. Enter ?/help to view available commands ||
=============================================================================
zpm:IRISAPP>
You will need IRIS for Health for that of versions 2022.x and newer.
How to run iris for health on your laptop?
Running on a host-operation
Download the latest IRIS for Health from InterSystems Evaluation site that fits your platform (Windows, Mac, Linux) and install it. Install ZPM. Here is a one-liner:
USER>zn "%SYS" d ##class(Security.SSLConfigs).Create("z") s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="z" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
Running a docker version
Call in your terminal to launch:
docker run --rm --name iris4h -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community
Then start terminal:
docker exec -it iris4h iris session IRIS
Installing FHIR Server
Once having IRIS running either on host or just run in IRIS terminal:
USER>zpm "install fhir-server"
This will install FHIR server in FHIRSERVER namespace with parameters:
Set appKey = "/fhir/r4"
Set strategyClass = "HS.FHIRServer.Storage.Json.InteractionsStrategy"
set metadataPackages = $lb("hl7.fhir.r4.core@4.0.1")
Set metadataConfigKey = "HL7v40"
FHIR REST API will be available at http://yourserver/fhir/r4.
It will also add some synthetic data.
How to understand that server is working?
To test on host version:
http://localhost:52773/fhir/r4/metadata
To test on docker version:
http://localhost:9092/fhir/r4/metadata
Also zpm installs the simple UI which is available at: yourserver/fhirUI/FHIRAppDemo.html
And you'll see something like this (with patient id=1 entered):
How it works?
In fact you can observe what is being installed with this ZPM module in the following module.xml scenario. As you can see it imports code, installs demo frontend application fhirUI, runs the post-install script, which calls the following method. The script in the method performs the FHIR server setup.
Installing FHIR server programmatically
You also can install it programmatically via the following command:
set sc=$zpm("install fhir-server")
Happy FHIR coding!
Added a host setup and docker run examples
Article
Alex Woodhead · Jun 15, 2023
Demonstration example for the current Grand Prix contest for use of a more complex Parameter template to test the AI.
Interview Questions
There is documentation. A recruitment consultant wants to quickly challenge candidates with some relevant technical questions to a role.
Can they automate making a list of questions and answers from the available documentation?
Interview Answers and Learning
One of the most effective ways to cement new facts into accessible long term memory is with phased recall.
In essence you take a block of text information, reorganize it into a series of self-contained Questions and Facts.
Now imagine two questions:
What day of the week is the trash-bin placed outside for collection?
When is the marriage anniversary?
Quickly recalling correct answers can mean a happier life!!
Recalling the answer to each question IS the mechanism to enforce a fact into memory.
Phased Recall re-asks each question with longed and longer time gaps when the correct answer is recalled.For example:
You consistently get the right answer: The question is asked again tomorrow, in 4 days, in 1 week, in 2 weeks, in 1 month.
You consistently get the answer wrong: The question will be asked every day until it starts to be recalled.
If you can easily see challenging answers, it is productive to re-work difficult answers, to make them more memorable.
There is a free software package called Anki that provides this full phased recall process for you.
If you can automate the creation of questions and answers into a text file, the Anki will create new flashcards for you.
Hypothesis
We can use LangChain to transform InterSystems PDF documentation into a series of Questions and answers to:
Make interview questions and answers
Make Learner Anki flash cards
Create new virtual environment
mkdir chainpdf
cd chainpdf
python -m venv .
scripts\activate
pip install openai
pip install langchain
pip install wget
pip install lancedb
pip install tiktoken
pip install pypdf
set OPENAI_API_KEY=[ Your OpenAI Key ]
python
Prepare the docs
import glob
import wget;
url='https://docs.intersystems.com/irisforhealth20231/csp/docbook/pdfs.zip';
wget.download(url)
# extract docs
import zipfile
with zipfile.ZipFile('pdfs.zip','r') as zip_ref:
zip_ref.extractall('.')
Extract PDF text
from langchain.document_loaders import PyPDFLoader
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.prompts.prompt import PromptTemplate
from langchain import OpenAI
from langchain.chains import LLMChain
# To limit for the example
# From the documentation site I could see that documentation sets
# GCOS = Using ObjectScript
# RCOS = ObjectScript Reference
pdfFiles=['./pdfs/pdfs/GCOS.pdf','./pdfs/pdfs/RCOS.pdf']
# The prompt will be really big and need to leave space for the answer to be constructed
# Therefore reduce the input string
text_splitter = CharacterTextSplitter(
separator = "\n\n",
chunk_size = 200,
chunk_overlap = 50,
length_function = len,
)
# split document text into chuncks
documentsAll=[]
for file_name in pdfFiles:
loader = PyPDFLoader(file_name)
pages = loader.load_and_split()
# Strip unwanted padding
for page in pages:
del page.lc_kwargs
page.page_content=("".join((page.page_content.split('\xa0'))))
documents = text_splitter.split_documents(pages)
# Ignore the cover pages
for document in documents[2:]:
# skip table of contents
if document.page_content.__contains__('........'):
continue
documentsAll.append(document)
Prep search template
_GetDocWords_TEMPLATE = """From the following documents create a list of distinct facts.
For each fact create a concise question that is answered by the fact.
Do NOT restate the fact in the question.
Output format:
Each question and fact should be output on a seperate line delimited by a comma character
Escape every double quote character in a question with two double quotes
Add a double quote to the beginning and end of each question
Escape every double quote character in a fact with two double quotes
Add a double quote to the beginning and end of each fact
Each line should end with {labels}
The documents to reference to create facts and questions are as follows:
{docs}
"""
PROMPT = PromptTemplate(
input_variables=["docs","labels"], template=_GetDocWords_TEMPLATE
)
llm = OpenAI(temperature=0, verbose=True)
chain = LLMChain(llm=llm, prompt=PROMPT)
Process each document and place output in file
# open an output file
with open('QandA.txt','w') as file:
# iterate over each text chunck
for document in documentsAll:
# set the label for Anki flashcard
source=document.metadata['source']
if source.__contains__('GCOS.pdf'):
label='Using ObjectScript'
else:
label='ObjectScript Reference'
output=chain.run(docs=document,labels=label)
file.write(output+'\n')
file.flush()
There were some retry and force-close messages during loop.
Anticipate this is limiting the openAI API to a fair use.
Alternatively a local LLM could be applied instead.
Examine the output file
"What are the contexts in which ObjectScript can be used?", "You can use ObjectScript in any of the following contexts: Interactively from the command line of the Terminal, As the implementation language for methods of InterSystems IRIS object classes, To create ObjectScript routines, and As the implementation language for Stored Procedures and Triggers within InterSystems SQL.", Using ObjectScript,
"What is a global?", "A global is a sparse, multidimensional database array.", Using ObjectScript,
"What is the effect of the ##; comment on INT code line numbering?", "It does not change INT code line numbering.", Using ObjectScript,
"What characters can be used in an explicit namespace name after the first character?", "letters, numbers, hyphens, or underscores", Using ObjectScript
"Are string equality comparisons case-sensitive?", "Yes" Using ObjectScript,
"What happens when the number of references to an object reaches 0?", "The system automatically destroys the object.",Using ObjectScript
Question: "What operations can take an undefined or defined variable?", Fact: "The READ command, the $INCREMENT function, the $BIT function, and the two-argument form of the $GET function.", Using ObjectScript, a
While a good attempt at formatting answers has occurred there is some deviation.
Manually reviewing I can pick some questions and answers to continue the experiment.
Importing FlashCards into Anki
Reviewed text file:
"What are the contexts in which ObjectScript can be used?", "You can use ObjectScript in any of the following contexts: Interactively from the command line of the Terminal, As the implementation language for methods of InterSystems IRIS object classes, To create ObjectScript routines, and As the implementation language for Stored Procedures and Triggers within InterSystems SQL.", "Using ObjectScript","What is a global?", "A global is a sparse, multidimensional database array.", "Using ObjectScript","What is the effect of the ##; comment on INT code line numbering?", "It does not change INT code line numbering.", "Using ObjectScript","What characters can be used in an explicit namespace name after the first character?", "letters, numbers, hyphens, or underscores", "Using ObjectScript""Are string equality comparisons case-sensitive?", "Yes", "Using ObjectScript","What happens when the number of references to an object reaches 0?", "The system automatically destroys the object.","Using ObjectScript""What operations can take an undefined or defined variable?", "The READ command, the $INCREMENT function, the $BIT function, and the two-argument form of the $GET function.", "Using ObjectScript"
Creating new Anki card deck
Open Anki and select File -> Import
Select the reviewed text file
Optionally create a new Card Deck for "Object Script"
A basic card type is fine for this format
There was mention of a "Field 4" so should check the records.
Anki import success
Lets Study
Now choose the reinforcement schedule
Happy Learning !!
References
Anki software is available from https://apps.ankiweb.net/
Article
Claudio Devecchi · Jun 20, 2023
In this article, I will share the theme we presented at the Global Summit 2023, in the Tech Exchange room. Me and @Rochael.Ribeiro
In this opportunity, we talk about the following topics:
Open Exchange Tools for Fast APIs
Open API Specification
Traditional versus Fast Api development
Composite API (Interoperability)
Spec-First or Api-First Approach
Api Governance & Monitoring
Demo (video)
Open Exchange Tools for Fast APIs
As we are talking about fast modern APIs development (Rest / json) we will use two Intersystems Open Exchange tools:
The first is a framework for rapid development of APIs which we will detail in this article.
https://openexchange.intersystems.com/package/IRIS-apiPub
The second is to use Swagger as a user interface for the specification and documentation of the Rest APIs developed on IRIS platform, as well as their use/execution. The basis for its operation is the Open Api specification (OAS) standard, described below:
https://openexchange.intersystems.com/package/iris-web-swagger-ui
What is the Open API Specification (OAS)?
It is a standard used worldwide to define, document and consume APIs. In most cases, APIs are designed even before implementation. I'll talk more about it in the next topics.
It is important because it defines and documents Rest APIs for its use, both on the provider and consumer side. But this pattern also serves to speed up tests and API calls in tools (Rest APIs Clients) on the market, such as Swagger, Postman, Insomnia, etc…
Traditional way in to publish API using IRIS
Imagine we have to build and publish a Rest API from an existing IRIS method (picture below).
In the traditional way:
1: We have to think about how consumers will call it. For example: Which path and verb will be used and how will be the response. Whether in a JSON object or as a plain/text.
2: Build a new method in a %CSP.REST class that will handle the http request to call it.
3: Handle the method's response to the intended http response for the end user.
4: Think about how we're going to provide the success code and how we're going to handle exceptions.
5: Map the route for our new method.
6: Provide the API documentation to the end user. We will probably build the OAS content manually.
7: And if, for example, we have a request or response payload (object), the implementation time will increase, because it must also be documented in OAS.
How can we be faster?
By simply tagging the IRIS method with the [WebMethod] attribute. Whatever it is, the framework will take care of its publication, using the OAS 3.x standard.
Why is the OAS 3.x standard so important?
Because It also documents in detail all properties of the input and output payloads.
In this way, any Rest Client tools on the market can instantly couple to the APIs, Like Insomnia, Postman, Swagger, etc. and provide a sample content to call them easily.
Using Swagger we will already visualize our API (image above) and call it. This is also very useful for testing.
API customization
But what if I need to customize my API?
For example: Instead of the name of the method I want the path to be something else. And I want the input parameters to be in the path, not like a query param.
We define a specific notation on top of the method, where we can complement the meta-information that the method itself does not provide.
In this example we are defining another path for our API and complementing the information for the end user to have a more friendly experience.
Projection Map for Rest API
This framework supports numerous types of parameters.
In this map we can highlight the complex types (the objects). They will be automatically exposed as a JSON payload and each property will be properly documented (OAS) for the end user .
Interoperability (Composite APIs)
By supporting complex types, you can also expose Interoperability Services.
It is a favorable scenario for building composite APIs, which use the orchestration of multiple external components (outbounds).
This means that objects or messages used as request or response will be automatically published and read by tools like swagger.
And it's an excellent way to test interoperability components, because usually a payload template is already loaded so that the user knows which properties the API uses.
First the developer can focus on testing, then shape the Api through customization.
Spec-first or Api-first Approach
Another concept widely used today is having the API defined even before its implementation.
With this framework it is possible to import an Open Api Spec. It creates the methods structure (spec) automatically, missing only their implementation.
API Governance and Monitoring
For Api's governance, it is also recommended to use IAM together.
In addition to having multiple plugins, IAM can quickly couple to APIs through the OAS standard.
apiPub offers additional tracing for APIs (see demo video)
Demo
Download & Documentation
Intersystems Open Exchange: https://openexchange.intersystems.com/?search=apiPub
Complete documentation: https://github.com/devecchijr/apiPub
Very rich material for the use of a new development method, bringing facilities and innovation. This will help a lot in the agility of API development.
Congratulations Claudio, for sharing the knowledge. thank you @Thiago.Simoes
Announcement
Bob Kuszewski · Sep 28, 2023
Red Hat Insights alerts now available for InterSystems IRIS
InterSystems and Red Hat are working together to add IRIS-specific alerts to Red Hat Insights.
Red Hat Insights is a service to predict and recommend remediations for system risks in Red Hat Enterprise Linux environments. Insights is free with nearly every RHEL, OpenShift, or Ansible subscription. You can learn more about Insights at Red Hat’s site.
Swappiness Recommendation
The first recommendation “Apply swappiness recommendation for better performance of InterSystems IRIS” has been activated.
This recommendation checks the system memory and, if swap is used at a level above what we recommend, sends our recommendation for the ideal level of swappiness. Swappiness really only comes into play when under memory pressure. File buffer cache can be as large as it can fit in memory. Linux will only push out buffer cache when it needs to free pages for computation pages, so we recommend keeping swappiness at a low level.
Upcoming Recommendations
Red Hat is currently working on Insights recommendations for:
Huge Pages settings
Upgrading old installations
Shmmax
… and more
If you have suggestions for further Red Hat Insights alerts for IRIS, please contact your account team or reach out to me directly.
If you have questions or problems with Red Hat Insights, please contact Red Hat support. Hi Bob
This is great! We already seeing some recommendations on redhat insight for one of our dev systems.
The performance of InterSystems IRIS server may be impacted when Transparent Huge Pages is enabled
Recommend running SystemPerformance 24-hour daily for InterSystems IRIS
Map the Write Image Journaling (WIJ) disk for better performance of InterSystems IRIS
Enable FreezeOnError for the integrity and recoverability of InterSystems IRIS database
Apply swappiness recommendation for better performance of InterSystems IRIS
Apply hugepages recommendation for better performance of InterSystems IRIS
Question
Lauri Kummala · Nov 1, 2023
Hello, I am quite new with InterSystems, SAM and Grafana. I am looking a way to get Log Files and Application Errors from InterSystems to SAM like in this post: https://community.intersystems.com/post/grafana-support-intersystems-iris. Is this plugin still under development or is there any other way to get those errors? By using SAM, I do not get those errors. Hi!
May be with something like this
https://community.intersystems.com/post/get-most-out-intersystems-sam-implement-your-own-alert-handler
or with a custom setup of grafana/prometheus to send alert and not only visualize them.
Be also advised that it's going to be deprecated
https://community.intersystems.com/post/deprecation-intersystems-system-alerting-and-monitoring-sam Thank you!
We heard about this that SAM is being deprecated and we were thinking of another solution.