Search

Clear filter
Announcement
Anastasia Dyubaylo · Apr 16, 2020

New Tags: InterSystems API Manager (IAM) and IntegratedML

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

Global Masters: new badges for Ideas on InterSystems Ideas Portal

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

Connect Microsoft Excel to InterSystems IRIS via ODBC (Windows)

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

Technology Bonuses for InterSystems FHIR and Digital Health Interoperability Contest

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

Time to vote in the InterSystems FHIR and Digital Health Interoperability Contest

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

Technological Bonuses Results for the InterSystems Java Programming Contest 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

Online Meetup with the winners of the InterSystems Java Programming Contest 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

[On-Demand Webinar] Analytics Capabilities using InterSystems IRIS

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

[Video] The OWASP Top 10 & InterSystems IRIS Application Development

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

[Video] Understanding your InterSystems Login Account & Where to Use It

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

Set up Your InterSystems FHIR Server With One Command

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

LangChain InterSystems PDF to Interview Questions and FlashCards

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

Fast API Development using InterSystems Open Exchange Tools

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

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

Can I get alerts from InterSystems IRIS to SAM

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.