Search

Clear filter
Article
Mihoko Iijima · Feb 22, 2024

Points to note when uninstalling InterSystems products on Windows

InterSystems FAQ rubric To remove InterSystems products installed on your Windows system, use Add or Remove Programs in Control Panel (in Windows 10, select Apps from Windows Settings). Since we will be making changes to the system, you will need to log in as a user with administrator privileges. 1) Log in to the system as an administrator. 2) From the system tray, exit the launcher of the InterSystems product instance you want to uninstall (click launcher → exit). 3) Add or Remove Programs in the Control Panel (for Windows 10, select Apps from Windows Settings) Delete <InterSystems product> instance [xxxx] (where xxxx is the instance name). Example: InterSystems IRIS instance [IRIS] 4) Delete the InterSystems product installation directory (C:\InterSystems\<InterSystems product> by default) using Windows Explorer. After you uninstall all InterSystems product instances from your system using the steps above, you can remove any remaining information using the steps below. <Complete deletion> a. Delete related registry keys Delete the following registry key(*). [HKEY_LOCAL_MACHINE\SOFTWARE\InterSystems] [HKEY_CURRENT_USER\SOFTWARE\InterSystems] [HKEY_USER\xxxxxxxx\SOFTWARE\InterSystems] (If this key exists, also delete it) [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems] (64bit system only) Caution: Incorrect registry operations can seriously affect your system. We strongly recommend that you perform a backup such as creating a restore point before performing this task. b. Delete common files Instance common files are stored in the following folder, so delete them using Windows Explorer, etc. C:\Program Files\Common Files\Intersystems c. Remove IIS additional components If IIS (Internet Information Services) is installed on your Windows system and additional components for IIS (CSP Gateway/Web Gateway) are installed, the following folder will exist, so delete it. C:\Inetpub\CSPGateway d.Remove VC++ runtime library The following redistributed runtime libraries can be deleted if they are not referenced or used by other applications. Microsoft Visual C++ 2008 Redistributable - x86 xxxx *Delete using Apps and Features in Windows Settings.
Announcement
Olga Zavrazhnova · Oct 19, 2023

InterSystems Developer Community Roundtable - October 31 2023

Hi Developers, Join our next online Developer Roundtable on October 31 at 10 am ET | 3 pm CET. Our experts will cover two topics: "Deploying Python Applications" - by @Evgeny.Shvarov, Senior Manager of Developer and Startup Programs, InterSystems "Deploying Java project + InterSystems IRIS in Docker" - by @LuisAngel.PérezRamos, Sales Engineer, InterSystems We will have time for Q&A and open discussion. Update: Watch the recording below. Not a Global Masters member yet? Log in using your InterSystems SSO credentials to join the program. I think that I have too many names and last names... Hi all! Tomorrow Luis will be covering "Deploying Java project + InterSystems IRIS in Docker" - register for our roundtable to learn and prepare for Java programming contest! 🔥
Announcement
Evgeny Shvarov · Nov 13, 2023

Technology Bonuses for InterSystems Java Programming Contest 2023

Hi Developers! Here are the technology bonuses for the InterSystems Java Programming Contest 2023 that will give you extra points in the voting: Java Gateway usage - 2 Java Native API usage - 2 Java PEX Interoperability - 4 Java XEP Usage- 2 LLM AI or LangChain usage: Chat GPT, Bard and others - 3 InterSystems IRIS Cloud SQL Usage - 3 Community Java libs: Hibernate and Liquibase - 2 Questionnaire - 2 Docker container usage - 2 IPM Package deployment - 2 Online Demo - 2 Implement InterSystems Community Idea - 4 Find a bug in InterSystems IRIS Java Offerings - 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. Java Gateway - 2 pointsInterSystems IRIS has Java Gateway which provides an easy way for IRIS to interoperate with Java components. Java Native API - 2 points InterSystems IRIS introduces a Java Native API library that helps to interact with InterSystems IRIS from java. Use it and collect 2 extra points for your application. Java Pex Interoperability - 4 points InterSystems IRIS has Java Pex Interoperability module that provides the option to develop InterSystems Interoperability productions from Java. Use it and collect 4 extra points for your application. Here is a pex-demo application. Java XEP Usage- 2 Java XEP is an InterSystems Java library that introduces high-performance persistence technology for Java object hierarchies. Use it and collect 2 more bonus points. Learn more on JAVA XEP. Community Java libs: Hibernate and Liquibase - 2 Use Community Hibernate and Liquibase libs and collect 2 additional bonus points for each. 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. Here is an article with langchain usage example. IRIS Cloud SQL Usage -3 points Use InterSystems IRIS Cloud SQL in your solution and get 3 points more. You can deploy IRIS Cloud server here. Questionnaire - 2 Share your feedback in the questionnaire(TBD) and collect 2 extra 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 IRIS Java Offerings - 2 pointsWe want the broader adoption of InterSystems Java offerings so we encourage you to report the bugs you will face during the development of your java 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. 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! Hello Evgeny Shvarov, a question: we are thinking of participating in a group of 5 people, 4 of them have never contributed to InterSystems Open Exchange contests, in this case, are the points cumulative? Hi Ana, No, the points are awarded per team :) Looks like there are some conflicts in the points...Java Native has 2 and then 3 points.Here the LLM has 3, 4 and 6 points... LLM AI or LangChain usage: Chat GPT, Bard and others - 3LLM AI or LangChain usage: Chat GPT, Bard and others - 4 pointsCollect 6 bonus expert points for building a solution that uses LangChain libs or Large Language Models (LLM) Thank you, Sean! this is fixed. We know it is late, but we missed Java Gateway bonus - are you Ok if we add it? -
Announcement
Anastasia Dyubaylo · Nov 27, 2023

Time to vote in the InterSystems Java Programming Contest 2023

Hi Community, It's voting time! Cast your votes for the best applications in our InterSystems Java Programming Contest 2023: 🔥 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⭐️ @Alex.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: Expert Nomination, Top 4 presto-iris by @Dmitry.Maslennikov iris-parquet by @Yuri.Gomes iris-dmn by @Alexey.Nechaev InterLang by Zacchaeus Chok ➡️ Voting is here. Community Nomination, Top 5 presto-iris by @Dmitry.Maslennikov iris-parquet by @Yuri.Gomes iris-dmn by @Alexey.Nechaev StarChat by Anna Diak quiz-app by @Andrii.Mishchenko ➡️ Voting is here. Experts, we are waiting for your votes! 🔥 Participants, improve & promote your solutions! Here are the results after 2 days of voting: Expert Nomination, Top 4 presto-iris by @Dmitry Maslennikov iris-parquet by @yurimarx Marx iris-dmn by @Alexey Nechaev InterLang by Zacchaeus Chok ➡️ Voting is here. Community Nomination, Top 5 presto-iris by @Dmitry Maslennikov quiz-app by @Andrii Mishchenko fhir-pex by @Flavio.Neubauer iris-parquet by @yurimarx Marx StarChat by Anna Diak ➡️ Voting is here. So, the voting continues. Please support the application you like! Voting for the InterSystems Java Programming Contest 2023 goes ahead! And here're the results at the moment: Expert Nomination, Top 4 presto-iris by @Dmitry Maslennikov iris-parquet by @yurimarx Marx iris-dmn by @Alexey Nechaev InterLang by Zacchaeus Chok ➡️ Voting is here. Community Nomination, Top 5 presto-iris by @Dmitry Maslennikov quiz-app by @Andrii Mishchenko fhir-pex by @Flavio Neubauer StarChat by Anna Diak InterLang by Zacchaeus Chok ➡️ Voting is here. Since the beginning of the voting we have the results: Expert Nomination, Top 4 presto-iris by @Dmitry Maslennikov iris-parquet by @yurimarx Marx iris-dmn by @Alexey Nechaev InterLang by Zacchaeus Chok ➡️ Voting is here. Community Nomination, Top 5 presto-iris by @Dmitry Maslennikov quiz-app by @Andrii Mishchenko fhir-pex by @Flavio Neubauer StarChat by Anna Diak iris-parquet by @yurimarx Marx ➡️ Voting is here. And don't forget! You can use your Technology bonuses to gain more points for your application! Hey devs!Today is the last day of the voting!Please support participants! They need your votes! ➡️ Voting is hereLet's wish them good luck😎
Announcement
Jaceita Chilton- Walker · Oct 24, 2023

Are you looking for a role as a InterSystems Ensemble/IRIS Developer

If interested email to me at jwalkerbdrsolutionsllc.com Ensemble/IRIS Developer to join our growing team! This position will be performed virtually from the individual's home office working on EST time schedule. This position requires US Citizenship with a Public Trust or the ability to obtain one.(Military Veterans are highly encouraged to apply)Role OverviewBDR is in search of a proficient InterSystems Ensemble/IRIS developer to contribute to our Department of Veterans Affairs (VA) contract. The ideal candidate will have a solid background in InterSystems IRIS development within a healthcare setting. Key responsibilities include crafting documentation for VA-crafted software applications, and comprehensive IRIS coding, SQL queries, Object Oriented Programming, documentation, and IRIS system administration. Responsibilities IRIS and SQL Development: Detailed IRIS coding. Writing SQL queries. Object-Oriented Programming. Validate and update data integration reports in support of the VA's software. Validate load of Caché/IRIS Objects, SQL Tables, or other storage structures (Historical Pulls) in all regions/districts for classes in all environments with VistA or Data Syndication data. Documentation: Write documentation for VA-developed software applications. Write up procedures and documentation targeted towards software developers, system administrators, and database architects. Author technical documents illustrating data-center architecture and engineering. Data Analysis and Management: Review error and trace logs. Monitor Queue Depth by service/process/operation. Review Domain adds to Ensemble Production. Validate edits made to Domain record type, schema version, status, and payload size via the GUI Interface and Rule Builder. Validate Ensemble data flows built using VX130 ClassBuilder. Review, update, and maintain Cerner to CDW, VistA, Millennium or Cloud Database data mappings for potential data migrations. Evaluate and integrate data from multiple sources, which requires data mapping from one data source to another minimizing any data loss. Document VistA Extraction and monitoring process. Interpret Cerner's Data model to be used for the construction of APIs, queries, and reports that will be consumed by internal or external applications. Communication and Coordination: Able to coordinate with development and user teams to assess risks, goals, and needs and ensure that all are adequately addressed. Effective communication skills with both technical and non-technical audiences. Problem-Solving and Risk Management: Track messages by domain and reconcile table counts with Cerner. Track the number of records sent per message by domain. Track retry attempts and suspended messages. Experienced in introducing new hardware or software into a new or existing environment while minimizing disruption and mitigating risks. Experience in high-volume environments. Motivation to drive tasks to completion and take ownership of projects. Required Minimum Qualifications 15+ years of professional experience, including InterSystems IRIS in healthcare. Bachelor's degree in Computer Science, Engineering, Math, or equivalent (8 years of relevant experience can be substituted). Previous work experience in the VA. Experience with Electronic Health Record (EHR) implementation. Familiarity with VA legacy and private sector health data. Experience with ETL data processes. Knowledge of VistA data handling. Ability to obtain and maintain a VA Public Trust. Eligibility to work in the United States without sponsorship. Prior successful remote work experience. Code samples or GitHub link must be provided upon application. In addition, U.S Citizenship is required.
Announcement
Anastasia Dyubaylo · Mar 15, 2024

[Video] What is InterSystems TotalView For Asset Management

Hey Developers, Watch this video to explore InterSystems TotalView For Asset Management, the fully managed cloud software that unifies data, automates data processing tasks, and empowers asset management firms with seamless data integration and flexibility. ⏯ What is InterSystems TotalView For Asset Management Subscribe to our YouTube channel InterSystems Developers to stay in the know! 👍
Announcement
Bob Kuszewski · Nov 22, 2023

InterSystems Supported Platforms Update Q4-2023

It’s hard to believe that this wraps up our first year of quarterly platform updates. Thank you for making this a great first year. Today’s update talks about the planned Minimum Supported CPU list, OpenSSL 3.0 for AIX reaching GA, and a bit more. We’ll be back for 2024! This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap. With that said, on to the update… InterSystems IRIS Production Operating Systems and CPU Architectures Minimum Supported CPU Models We’ve recently announced that InterSystems IRIS will start to have minimum required CPU functionality for Intel/AMD-based systems. This allows IRIS to rely on certain CPU instruction extensions, such as AVX, that will result in significantly better performance of certain operations. This change will take effect with IRIS 2024.1 and the minimum CPUs will be reviewed on an annual basis thereafter. For more information, please see my InterSystems IRIS Minimum Supported CPU Models developer community post. Red Hat Enterprise Linux Recent Changes Minor OS Certification has been completed for RHEL 9.2 & 8.8 on IRIS 2023.1. “Minor OS version certification” is a new process that is intended to provide additional security that a minor OS update didn’t break anything obvious and indeed both RHEL 9.2 & 8.8 passed our tests. Upcoming Changes RHEL 9.3 was released on November 7 and RHEL 8.9 is expected to be released shortly. InterSystems is scheduling performing Minor OS Certification for these platforms in the near future. Further reading: RHEL Release Page Ubuntu Recent Changes Ubuntu released 22.04.2 LTS & 20.04.6 LTS in February and March, respectively. InterSystems has completed performing additional testing of IRIS on 22.04.02 LTS through Minor OS version certification. Upcoming Changes The next major update of Ubuntu is 24.04 is on-schedule for April, 2024 Further Reading: Ubuntu Releases Page SUSE Linux Recent Changes InterSystems has deprecated support for the VxFS filesystem. I’m unaware of any customers still using VxFS, but if you are, please upgrade to a XFS or one of our other supported filesystems. Upcoming Changes SUSE Linux Enterprise Server 15 SP5 was released June 20, 2023. SP5 includes Linux Kernel 5.14.21, OpenSSL 3.0.8, and Python 3.11. We’re currently working on Minor OS certification. Previous Updates General Support from SUSE for Linux Enterprise Server 15 SP3 came to an end on 12/31/2022, but extended security support will continue until December, 2025. Further Reading: SUSE lifecycle Oracle Linux Upcoming Changes Oracle surprised us by releasing Oracle Linux 9.2 right around the same time as RHEL 9.2. We’re currently starting Minor OS certification. Further Reading: Oracle Linux Support Policy Microsoft Windows Previous Changes Windows Server 2012 has reached its end of extended support. IRIS 2023.1 is the last release to support the OS. Further Reading: Microsoft Lifecycle AIX Upcoming Changes IRIS 2023.3 adds support for OpenSSL 3.0 for both AIX 7.2 & 7.3. OpenSSL 3.0 is a significant improvement in overall security when compared with OpenSSL 1.0. Minor OS Certification has been completed for AIX 7.2 TL5-04 and TL5-05 on IRIS 2023.1. Further Reading: AIX Lifecycle Containers Upcoming Changes An early warning that we are planning to change the base container image from Ubuntu 22.04 to Ubuntu 24.04 with IRIS 2024.2 We will soon begin regular updates of IRIS containers containing patches to the base container image and third-party dependencies. The new container labeling (below) should make picking up these updates something you don’t even need to think about. Previous Updates From IRIS 2023.2 onward, IRIS containers will only be tagged with the year and release, such as “2023.2” instead of the full build numbers we’ve been using in the past. This way, your application can, by default, pick up the latest maintenance build of your release. We’ve also added “latest-em” and “latest-cd” tags for the most recent extended maintenance and continuous distribution IRIS release. These are good for demos, examples, and development environments. We have started to tag the preview containers with “-preview” so that it’s clear which container is the most recent GA release versus a preview of an upcoming release. InterSystems IRIS Development Operating Systems and CPU Architectures MacOS Recent Changes We’ve added support for MacOS 13 in IRIS 2023.1 Upcoming Changes Apple has released MacOS 14 with IRIS support to follow, likely in IRIS 2024.1 CentOS IRIS 2023.2 is the last release that supports CentOS as a development platform. Red Hat has been running a developer program for a few years now, which gives developers access to free licenses for non-production environments. InterSystems Components InterSystems System Alerting & Monitoring (SAM) has been deprecated. The monitor API, which includes the Open Metrics compatible endpoint, is not impacted by this change. Caché & Ensemble Production Operating Systems and CPU Architectures Previous Updates Cache 2018.1.7 adds support for Windows 11 InterSystems Supported Platforms Documentation The InterSystems Supported Platforms documentation is the definitive source information on supported technologies. IRIS 2023.1 Supported Server Platforms IRIS 2022.1 Supported Server Platforms IRIS 2021.1 Supported Server Platforms Caché & Ensemble 2018.1.7 Supported Server Platforms … and that’s all folks. Again, if there’s something more that you’d like to know about, please let us know.
Question
William Liu · Jan 17, 2024

To integrate InterSystems IRIS for Health with Open Source Drools

Hi, To integrate InterSystems IRIS for Health with Open Source Drools(as rules engine), any advice? Thank you! William @William.Liu you can post an idea on the InterSystems Ideas to implement this integration. Hope it will help. @William Liu thank you so much for posting the idea. Here is a link for voting for this idea to promote it: To integrate InterSystems IRIS for Health with Open Source Drools
Announcement
Olga Zavrazhnova · Jan 15, 2024

InterSystems at TreeHacks 2024 - Stanford's premier hackathon

InterSystems will participate in TreeHacks 2024, Stanford's premier hackathon, taking place from February 16 to 18 2024.We are excited to present a challenge for hackers along with attractive prizes. We look forward to witnessing the innovative projects emerging from this event! Apply now to hack with us! What to be a mentor and join InterSystems team at this event? Drop us a line! Date: February 16 - 18 2024Venue: Stanford’s campus, San Francisco, USAWebsite: https://www.treehacks.com/
Announcement
Anastasia Dyubaylo · Apr 12, 2023

[Video] System Performance Review for InterSystems IRIS Applications

Hey Developers, Enjoy watching the new video on InterSystems Developers YouTube: ⏯ System Performance Review for InterSystems IRIS Applications @ Global Summit 2022 If you hit a bottleneck in system resources, your users will suffer. So to ensure your systems are the right size, you need to understand how your InterSystems IRIS applications use system resources. This is even more important when you move applications to the cloud, where vendors impose strict limits on capacity and throughput. In this session, you'll learn the key metrics and how to collect them. 🗣 Presenter: @Murray.Oldfield, Principal Technology Architect, InterSystems Hope you like it and stay tuned! 👍
Question
Humza Arshad · May 5, 2023

Can I connect InterSystems to third party app

I'm working with a client who has InterSystems in his hospital to the management of patients and nurses. Now he want to develop a web app which can schedule nurse sift. Is there any way I can authenticate the user from his hospital InterSystems and get data from the system when ever the user login through the web app. @Humza.Arshad You can create a REST API/ SOAP API, or any other kind of protocol/technology, to get authentication, retrieve and send data to IRIS. See the documentation: REST SOAP These other two link are two Open Exchange apllication to create Rest Services and Form UI. RESTForms2 RESTFormsUI2 Search in the Leraning Portal for some course that help you. Best Regards.
Announcement
Olga Zavrazhnova · Feb 8, 2024

InterSystems Developer Community Roundtable - March 5, 2024

Hi Developers, Our first Online Developer Roundtable of 2024 will take place on March 5th at 9 am ET | 3 pm CET. Tech talks: ObjectScript Unit Testing Tools, Techniques and Best Practices - by @Timothy Leavitt , Development Manager, Application Services, InterSystems Monitoring and Alerting Capabilities of InterSystems IRIS - by @Mark.Bolinsky , Principal Technology Architect, InterSystems Mark's presentation is rescheduled for the roundtable in April. ▶ Update: watch the recording of the roundtable below: 📅 Date: March 5 🕑 Time: 9:00 am ET | 3:00 pm CET Do you have additional questions which you'd like to discuss on this roundtable? Please share them in the comments to this post. Not a Global Masters member yet? Sign in with your InterSystems SSO credentials. Hi Developers, don't forget to register for this event. After you register, I will send you a calendar hold. >> RVSP in this Global Masters challenge << Is a recording available, @Olga.Zavrazhnova2637? I'm also interested, @Olga.Zavrazhnova2637 :) Hi @Raj.Singh5479. @José.Pereira yes, just published in this post - and here on YouTube channel Mentioned links/comments during the call: Added product idea "Implement or incorporate a mocking framework to complement %UnitTest class" please upvote 👍 if you support the idea.Article: Unit Tests and Test Coverage in the InterSystems Package Manager by Tim LeavittEvgeny Shvarov: "if you want unittest for irisbi you can leverage isc-dev module UnitTest_RuleSet Open Exchange solution, Unit Tests for HL7 Routing in IRIS Integration
Article
José Pereira · Sep 1, 2021

Implementing an IMAP Client in InterSystems IRIS - part I

This article explains how to use the InterSystems IRIS platform to write a basic IMAP client. First, we present an overview of IMAP, then we discuss the main IMAP commands and client implementation. Finally, we offer a simple use of this IMAP client on the IRIS interoperability application. Note that this article isn’t a detailed IMAP explanation. For more detailed information, please check the references of this article. IMAP Overview The Internet Message Access Protocol (IMAP) lets users retrieve emails. Mark Crispin proposed IMAP in the 1980s, and since then, the protocol has been published and revised in RFC 3501. At the time of writing this article, its current version is IMAP4rev1. It’s important to note that this protocol is designed for retrieving only. You must use another protocol, the Simple Mail Transfer Protocol (SMTP), if you need to send emails. There’s also an older protocol for email retrieval that’s as popular as IMAP, called Post Office Protocol version 3 (POP3). Trying Basic IMAP Commands Like POP3, IMAP is a plaintext protocol. You can easily try some of its commands by yourself, using a TCP client like Telnet or OpenSSL. First, you need your IMAP host and email server port. For instance, at the time of writing this article, this is the host and port to connect to the Microsoft Outlook service: outlook.office365.com:993 Let’s connect to this server using our TCP client. Enter the command below and hit ENTER. Note the use of the -crlf flag. This flag is mandatory for IMAP as carriage return and line feed (CRLF) is its line terminator. $ openssl s_client -connect outlook.office365.com:993 -crlf -quiet After you hit enter, the IMAP server shows you some information and stays waiting for input. depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert ... * OK The Microsoft Exchange IMAP4 service is ready. [...] Now we can perform our first IMAP command: CAPACITY. As its name suggests, this command presents features that the server can provide. Note that the first line is the IMAP command itself, and the others lines are its output - this is the same for all other IMAP commands presented here. TAG1 CAPABILITY * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+ TAG1 OK CAPABILITY completed. Note the token before the CAPABILITY command: TAG1. A tag must precede every IMAP command and is any string you want. They identify what command instance the server is responding to. Generally, a simple counter with a prefix fits all your needs. The IMAP server finishes the response with the tag you used to issue the command and a flag indicating the command’s status, followed by miscellaneous information related to the command and status. The statuses allowed are: OK (success), NO (failure), and BAD (wrong command). The command LOGIN expects user and password as arguments. First, let’s check how the server responds if someone gives an invalid username and password: TAG2 LOGIN user@outlook.com wrong-password TAG2 NO LOGIN failed. Note the NO status after the command tag. Now, let’s proceed to a valid login: TAG3 LOGIN user@outlook.com password TAG3 OK LOGIN completed. Now we’re logged in. To finish our session, we use the LOGOUT command: TAG4 LOGOUT * BYE Microsoft Exchange Server IMAP4 server signing off. TAG4 OK LOGOUT completed. We need other commands to implement our IMAP client, so we need to reconnect and log into our IMAP server again. Let’s get some information about the inbox next. First, we must tell the server which mailbox we want to access, INBOX in this case. TAG5 SELECT "INBOX" * 14 EXISTS * 0 RECENT ... TAG5 OK [READ-WRITE] SELECT completed. Now we are ready to access messages in our inbox, but we need a way to refer to them first. There are two ways to do that: by message number or by a unique identifier (UID). Message numbers are just counters, starting from 1 and going up to the number of messages within the inbox. When you delete a message, all following messages have their numbers decremented by 1. You can think of this as an array that has one of its elements removed. UIDs, on the other hand, keep their value whatever happens to the other messages. You can get UIDs using the UID SEARCH command. This command accepts a message number if you'd like to get a specific UID or the ALL parameter to get all UIDs in the directory. In the example below, we search for UID for message number 1, which is 483. TAG6 UID SEARCH 1 * SEARCH 483 TAG6 OK SEARCH completed. Now let’s retrieve message information, like headers, body, and attachments. We use the FETCH command for this. This command has plenty of parameters, which you can explore in detail on RFC 3501. In this article, we only address parameters related to the needs of the IMAP client implementation. The first information we need for this demonstration is the message size. We can get this information using the RFC822.SIZE parameter: TAG7 FETCH 1 RFC822.SIZE * 1 FETCH (RFC822.SIZE 70988) TAG7 OK FETCH completed. This indicates that the size of message number 1 is 70,988 bytes. Note that it’s also possible to use UIDs rather than message numbers to fetch message information: TAG8 UID FETCH 483 RFC822.SIZE * 1 FETCH (RFC822.SIZE 70988 UID 483) TAG8 OK FETCH completed. You can also get the basic From, To, Date, and Subject message headers: TAG9 FETCH 1 (FLAGS BODY[HEADER.FIELDS (FROM TO DATE SUBJECT)]) * 1 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS (FROM TO DATE SUBJECT)] {157} Date: Thu, 22 Apr 2021 15:49:05 +0000 From: Another User <anotheruser@outlook.com> To: user@outlook.com Subject: Greetings from Another User! FLAGS (\Seen)) TAG9 OK FETCH completed. Now let’s retrieve the message body. We can retrieve all the body content using this command: TAG10 FETCH 1 BODY[] * 1 FETCH (BODY[] {9599} ... MIME-Version: 1.0 --00000000000041bd3405c3403048 Content-Type: multipart/alternative; boundary="00000000000041bd3205c3403046" --00000000000041bd3205c3403046 Content-Type: text/plain; charset="UTF-8" ... --00000000000041bd3405c3403048 Content-Type: image/png; name="download.png" Content-Disposition: attachment; filename="download.png" ... TAG10 OK FETCH completed. We can see in this code that some blocks are delimited by hex numbers between -- --, called parts. A message with parts is called a multipart message. It’s possible to get such parts directly by passing the part index to the command. In order to delete messages, the protocol has the commands STORE and EXPUNGE, which mark a message as deleted and commit such an operation. TAG11 STORE 1 +FLAGS (\Deleted) * 0 EXISTS * 0 RECENT TAG11 OK [READ-WRITE] SELECT completed; now in selected state TAG12 EXPUNGE EXPUNGE: TAG12 OK EXPUNGE completed The last command is simple: NOOP. This command does nothing but is used to implement a keep-alive strategy. By default, the IMAP session closes after 30 minutes without commands. So, issuing the NOOP command keeps the connection active. TAG17 NOOP TAG17 OK NOOP completed. And this finishes our IMAP overview. If you’d like more information, there are a lot of good articles on the Web (I've selected some in resources section), and of course always remember the RFC 3501. Resources Atmail’s IMAP 101: Manual IMAP Sessions Fastmail’s Why is IMAP better than POP? IETF’s Internet Message Access Protocol IETF’s Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies Nylas’ Everything you need to know about IMAP Next part, you'll use those commands within IRIS and see them in action! See you!
Announcement
Anastasia Dyubaylo · Dec 9, 2021

Video: InterSystems HealthShare Unified Care Record

Hey Developers, Learn about the recent changes to InterSystems HealthShare Unified Care Record and what is coming next: ⏯ InterSystems HealthShare Unified Care Record Presenters:🗣 @Sebastian.Musielak, Product Manager, HealthShare Operations, InterSystems🗣 Melanie Davies, Product Manager, Unified Care Record, InterSystems Subscribe to the InterSystems Developers YouTube channel and stay tuned!
Announcement
Anastasia Dyubaylo · Dec 27, 2021

2nd InterSystems Tech Article Contest: And the Winners are...

Hey everyone, Lots of new content to read! Thanks to our wonderful participants of the 2nd InterSystems Tech Article Contest! 🌟 25 AMAZING ARTICLES 🌟 So it's time to announce the best of them! Let's meet the winners and their articles: ⭐️ Expert Awards – winners selected by InterSystems experts: 🥇 1st place: Data anonymization, introducing iris-Disguise by @henry 🥈 2nd place: IntegratedML hands-on lab by @José.Pereira 🥉 3rd place and two winners: VSCode-ObjectScript on GitHub by @Dmitry.Maslennikov Invite the FHIR® Accelerator Service to your Kubernetes Microservice Party by @sween ⭐️ Community Award – winner selected by Community members, article with the most likes: 🏆 Data anonymization, introducing iris-Disguise by @henry Hope this win will be a great Christmas present for all of the winners! ⭐️ This time, we'd like to reward some more authors for the number of contributions: @Yuri.Gomes: 4 articles! @MikhailenkoSergey: 3 articles! These guys will get Apple AirPods Pro OR Amazon Kindle 8G Paperwhite OR Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed! And... Let's congratulate all our heroes at https://community.intersystems.com/contests/2: @Robert.Cemper1003 @Henrique @Muhammad.Waseem @Rob.Tweed @John.Murray @alex.kosinets @Iryna.Mykhailova @Oliver.Wilms @Rizmaan.Marikar2583 THANK YOU ALL! You have made an incredible contribution to our Dev Community! Happy Holidays to everyone! 🎅 The prizes are in production now. We will contact all the participants when they are ready to ship Thanks my reward and congrats for the participants, great articles! Congratulations everyone. Very impressive! ![yeee](https://media0.giphy.com/media/l4FGAREbOSRLKMiNq/giphy.gif) What a wonderful surprise!! Thank you all community and congratulations to all participants Congratulations all, and happy new year Congratulations to ALL. It was nice competition Congratulations to the authors :-) Thanks everybody!!! Congratulations! We're lucky to have airpods as the third place prize. Those were easy to split equally between the tied contestants :-) Congratulations! Well done everyone! And now we have beautiful badges for all the winners on Global Masters tied to levels - so these badges will help you to move up through GM levels! Congrats and Happy New Year! Dear participants, regarding prizes and swag delivery: we will be in touch with you at the beginning of January - shortly after the Holidays.